From 0a76772b7930426bd62187a79d9a20c90ffb52fa Mon Sep 17 00:00:00 2001
From: CyC2018 <1029579233@qq.com>
Date: Tue, 20 Mar 2018 16:44:26 +0800
Subject: [PATCH] auto commit
---
notes/计算机操作系统.md | 57 +++++++++++++-----
pics/5f5ef0b6-98ea-497c-a007-f6c55288eab1.png | Bin 0 -> 30720 bytes
2 files changed, 41 insertions(+), 16 deletions(-)
create mode 100644 pics/5f5ef0b6-98ea-497c-a007-f6c55288eab1.png
diff --git a/notes/计算机操作系统.md b/notes/计算机操作系统.md
index 42a2d317..131b1c13 100644
--- a/notes/计算机操作系统.md
+++ b/notes/计算机操作系统.md
@@ -15,7 +15,7 @@
* [三、死锁](#三死锁)
* [死锁的必要条件](#死锁的必要条件)
* [死锁的处理方法](#死锁的处理方法)
-* [四、存储器管理](#四存储器管理)
+* [四、内存管理](#四内存管理)
* [虚拟内存](#虚拟内存)
* [分页与分段](#分页与分段)
* [页面置换算法](#页面置换算法)
@@ -447,7 +447,7 @@ void philosopher(int i) {
}
```
-为了防止死锁的发生,可以两个条件:
+为了防止死锁的发生,可以设置两个条件:
1. 必须同时拿起左右两个筷子;
2. 只有在两个邻居都没有进餐的情况下才允许进餐。
@@ -664,7 +664,9 @@ Linux 中管道通过空文件实现。
- 假若找到这样一行,将该进程标记为终止,并将其已分配资源加到 A 中。
- 重复以上两步,直到所有进程都标记为终止,则状态时安全的。
-# 四、存储器管理
+如果一个状态不是安全的,也需要拒绝进入这个状态。
+
+# 四、内存管理
## 虚拟内存
@@ -714,27 +716,35 @@ Linux 中管道通过空文件实现。
## 页面置换算法
-在程序运行过程中,若其所要访问的页面不在内存而需要把它们调入内存,但是内存已无空闲空间时,系统必须从内存中调出一个页面到磁盘对换区中,并且将程序所需要的页面调入内存中。页面置换算法的主要目标是使页面置换频率最低(也可以说缺页率最低)。
+在程序运行过程中,如果要访问的页面不在内存中,就发生缺页中断从而将该页调入内存中。此时如果内存已无空闲空间,系统必须从内存中调出一个页面到磁盘对换区中来腾出空间。
-### 1. 最佳(Optimal)
+页面置换算法的主要目标是使页面置换频率最低(也可以说缺页率最低)。
+
+### 1. 最佳
+
+> Optimal
所选择的被换出的页面将是最长时间内不再被访问,通常可以保证获得最低的缺页率。
-是一种理论上的算法,因为无法知道一个页面多长时间会被再访问到。
+是一种理论上的算法,因为无法知道一个页面多长时间不再被访问。
举例:一个系统为某进程分配了三个物理块,并有如下页面引用序列:
-进程运行时,先将 7, 0, 1 三个页面装入内存。当进程要访问页面 2 时,产生缺页中断,会将页面 7 换出,因为页面 7 再次被访问的时间最长。
+开始运行时,先将 7, 0, 1 三个页面装入内存。当进程要访问页面 2 时,产生缺页中断,会将页面 7 换出,因为页面 7 再次被访问的时间最长。
-### 2. 先进先出(FIFO)
+### 2. 先进先出
+
+> FIFO
所选择换出的页面是最先进入的页面。
该算法会将那些经常被访问的页面也被换出,从而使缺页率升高。
-### 3. 最近最久未使用(LRU, Least Recently Used)
+### 3. 最近最久未使用
+
+> LRU, Least Recently Used
虽然无法知道将来要使用的页面情况,但是可以知道过去使用页面的情况。LRU 将最近最久未使用的页面换出。
@@ -744,27 +754,39 @@ Linux 中管道通过空文件实现。
-### 4. 时钟(Clock)
+### 4. 时钟
-Clock 页面置换算法需要用到一个访问位,当一个页面被访问时,将访问位置为 1。
+> Clock
+
+需要用到一个访问位,当一个页面被访问时,将访问位置为 1。
首先,将内存中的所有页面链接成一个循环队列,当缺页中断发生时,检查当前指针所指向页面的访问位,如果访问位为 0,就将该页面换出;否则将该页的访问位设置为 0,给该页面第二次的机会,移动指针继续检查。
+
+
# 五、设备管理
## 磁盘调度算法
-当多个进程同时请求访问磁盘时,需要进行磁盘调度来控制对磁盘的访问。磁盘调度的主要目标是使磁盘的平均寻道时间最少。
+当多个进程同时请求访问磁盘时,需要进行磁盘调度来控制对磁盘的访问。
-### 1. 先来先服务(FCFS, First Come First Served)
+磁盘调度的主要目标是使磁盘的平均寻道时间最少。
+
+### 1. 先来先服务
+
+> FCFS, First Come First Served
根据进程请求访问磁盘的先后次序来进行调度。优点是公平和简单,缺点也很明显,因为未对寻道做任何优化,使平均寻道时间可能较长。
-### 2. 最短寻道时间优先(SSTF, Shortest Seek Time First)
+### 2. 最短寻道时间优先
+
+> SSTF, Shortest Seek Time First
要求访问的磁道与当前磁头所在磁道距离最近的优先进行调度。这种算法并不能保证平均寻道时间最短,但是比 FCFS 好很多。
-### 3. 扫描算法(SCAN)
+### 3. 扫描算法
+
+> SCAN
SSTF 会出现饥饿现象。考虑以下情况,新进程请求访问的磁道与磁头所在磁道的距离总是比一个在等待的进程来的近,那么等待的进程会一直等待下去。
@@ -772,7 +794,9 @@ SCAN 算法在 SSTF 算法之上考虑了磁头的移动方向,要求所请求
当一个磁头自里向外移动时,移到最外侧会改变移动方向为自外向里,这种移动的规律类似于电梯的运行,因此又常称 SCAN 算法为电梯调度算法。
-### 4. 循环扫描算法(CSCAN)
+### 4. 循环扫描算法
+
+> CSCAN
CSCAN 对 SCAN 进行了改动,要求磁头始终沿着一个方向移动。
@@ -785,3 +809,4 @@ CSCAN 对 SCAN 进行了改动,要求磁头始终沿着一个方向移动。
- [进程间的几种通信方式](http://blog.csdn.net/yufaw/article/details/7409596)
- [Operating-System Structures](https://www.cs.uic.edu/\~jbell/CourseNotes/OperatingSystems/2_Structures.html)
- [Processes](http://cse.csusb.edu/tongyu/courses/cs460/notes/process.php)
+- [Inter Process Communication Presentation[1]](https://www.slideshare.net/rkolahalam/inter-process-communication-presentation1)
diff --git a/pics/5f5ef0b6-98ea-497c-a007-f6c55288eab1.png b/pics/5f5ef0b6-98ea-497c-a007-f6c55288eab1.png
new file mode 100644
index 0000000000000000000000000000000000000000..a3ea0a24dd977d368f4898802258acd15b4d2db5
GIT binary patch
literal 30720
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
Z0$+oD^yam^c$ug{!2jR>|8MO7{{cW??=}Dc
literal 0
HcmV?d00001