【摘要】:当将页交换到交换文件中时,Linux总是避免写页。页已经被交换出内存后若有进程再次访问时又要将它重新调入内存。如果交换缓存入口为非0值表示在交换文件中的这一页没有被修改。当Linux需要将一个物理页交换到交换文件时,它将检查交换缓存。如果对应此页存在有效入口,则不必将这个页写到交换文件中。交换缓存中的入口是已换出页的页表入口。它们虽被标记为无效,但为Linux提供了页在哪个交换文件中以及文件中的位置等信息。
4.8.3 交换高速缓存
当将页交换到交换文件中时,Linux总是避免写页。页已经被交换出内存后若有进程再次访问时又要将它重新调入内存。只要页在内存中没有被写过,交换文件中的拷贝就是有效的。
Linux使用交换缓存来跟踪这些页。这个交换缓存是一个页表入口链表,每一个对应于系统中的物理页。交换缓存对应于交换出页的页表入口,并且描述页放置在哪个交换文件中以及在交换文件中的位置。如果交换缓存入口为非0值表示在交换文件中的这一页没有被修改。如果此页被修改(或者写入),则其入口将从交换缓存中删除。
当Linux需要将一个物理页交换到交换文件时,它将检查交换缓存。如果对应此页存在有效入口,则不必将这个页写到交换文件中。这是因为内存中这一页在最近一次由交换文件中读出后还没被修改过。
交换缓存中的入口是已换出页的页表入口。它们虽被标记为无效,但为Linux提供了页在哪个交换文件中以及文件中的位置等信息。
文件管理的缓冲机制将在文件系统一章中详细介绍。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。