- 论坛徽章:
- 0
|
帅绝人寰 发表于 2014-04-29 10:29 ![]()
看懂了!
顺便请教下, PG_swapcache和PG_swapbacked有什么区别? 各自代表什么?
PG_swapbacked表示一个页是以交换区/交换文件作为后备空间的,类比于page cache页,它是以存储介质中的文件作为后备空间的。
PG_swapcache表示一个页在交换缓存中。
一个页要被交换时,并不是马上写出,而是先置于交换缓存中,此时PG_swapcache置位,并且,该进程的该页表项不会马上修改为swap entry项,
因为可能还有其他进程映射到该页,所以得等所有进程都unmap到该页后,才会真正把该页交换到交换区/交换文件,并且把 页表项改为swap entry,
表示该页现在在交换区/交换文件。
另一方面,当进程要访问该页时,发现swap entry, 知道其在交换区/交换文件中,于是会把它调入到交换缓存中,同样,该进程此时不会马上把swap entry
修改为页表项,因为可能其他进程还未把该页换入,所以该页可能还要在交换缓存中呆一会。等到所以进程都换入该页时,该页才会从交换缓存中删除。
大致如此。细节可能要修改。我研究下代码再来更新。
|
|