auto commit

This commit is contained in:
CyC2018
2018-05-30 18:41:35 +08:00
parent 0a47291191
commit b04f8e35a4
10 changed files with 230 additions and 198 deletions

View File

@ -725,17 +725,18 @@ Linux 中管道通过空文件实现。
> NRU, Not Recently Used
首先,系统为毎一页面设置了两个状态位。当页面被访问(读或写)时设置R位;当页面(即修改页面)被写入时设置M位。当启动一个进程时它的所有页面的两个位都由操作系统设置成0R位被定期地(比如在每次时钟中断时)清零,以区别最近没有被访问的页面和被访问的页面。
首先,系统为毎一页面设置了两个状态位。当页面被访问 (读或写) 时设置 R 位; 当页面 (即修改页面) 被写入时设置 M 位。当启动一个进程时,它的所有页面的两个位都由操作系统设置成 0R 位被定期地 (比如在每次时钟中断时) 清零,以区别最近没有被访问的页面和被访问的页面。
当发生缺页中断时,操作系统检査所有的页面并根据它们当前的R位和M位的值,把它们分为4类:
* 第0类:没有被访问,没有被修改
* 第1类:没有被访问,已被修改
* 第2类:已被访问,没有被修改
* 第3类:已被访问,已被修改
当发生缺页中断时,操作系统检査所有的页面并根据它们当前的 R 位和 M 位的值,把它们分为 4 类:
NRU算法随机地从类编号最小的非空类中挑选一个页面淘汰之。
* 第 0 类: 没有被访问,没有被修改
* 第 1 类: 没有被访问,已被修改
* 第 2 类: 已被访问,没有被修改
* 第 3 类: 已被访问,已被修改
算法隐含的意思是,在最近一个时钟滴答中(典型的时间是大约20ms)淘汰一个没有被访问的已修改页面要比一个被频繁使用的“十净”页面好。NRU主要优点是易于理解和能够有效地被实现虽然它的性能不是最好的但是已经够用了
NRU 算法随机地从类编号最小的非空类中挑选一个页面淘汰之
算法隐含的意思是,在最近一个时钟滴答中 (典型的时间是大约 20ms) 淘汰一个没有被访问的已修改页面要比一个被频繁使用的 “十净” 页面好。NRU 主要优点是易于理解和能够有效地被实现,虽然它的性能不是最好的,但是已经够用了。
### 4. 最近最久未使用
@ -751,13 +752,13 @@ NRU算法随机地从类编号最小的非空类中挑选一个页面淘汰之
### 5. 第二次机会算法
FIFO算法可能会把经常使用的页面置换出去为了避免这一问题对该算法做一个简单的修改
FIFO 算法可能会把经常使用的页面置换出去,为了避免这一问题,对该算法做一个简单的修改:
当页面被访问(读或写)时设置该页面的R位为1。需要替换的时候检查最老页面的R位。如果R位是0那么这个页面既老又没有被使用可以立刻置换掉;如果是1就将R位清0并把该页面放到链表的尾端修改它的装入时间使它就像刚装入的一样然后继续从链表的头部开始搜索
当页面被访问 (读或写) 时设置该页面的 R 位为 1。需要替换的时候检查最老页面的 R 位。如果 R 位是 0那么这个页面既老又没有被使用可以立刻置换掉; 如果是 1就将 R 位清 0并把该页面放到链表的尾端修改它的装入时间使它就像刚装入的一样然后继续从链表的头部开始搜索
<div align="center"> <img src="../pics//2018-05-29-15275543393037.jpg"/> </div><br>
<div align="center"> <img src="../pics//ecf8ad5d-5403-48b9-b6e7-f2e20ffe8fca.png"/> </div><br>
第二次机会算法就是寻找一个最近的时钟间隔以来没有被访问过的页面。如果所有的页面都被访问过了该算法就简化为纯粹的FIFO算法。
第二次机会算法就是寻找一个最近的时钟间隔以来没有被访问过的页面。如果所有的页面都被访问过了,该算法就简化为纯粹的 FIFO 算法。
### 6. 时钟