Merge pull request #264 from Sixzeroo/master

Update 计算机操作系统.md
This commit is contained in:
CyC2018 2018-05-30 18:30:50 +08:00 committed by GitHub
commit 0a47291191
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 28 additions and 2 deletions

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB