复习笔记——操作系统

2014年12月考研前一周写的笔记。。。

放在这里,希望对其他人有帮助。。。

===========================================================
本来想和linux源代码一起参照一下,结果现在拖到这个时候,没时间了,囧
内容主要参考:
http://oa.gdut.edu.cn/os/multimedia/oscai/main.htm
http://www.educity.cn/zk/czxt/201305301133411490.htm
http://see.xidian.edu.cn/cpp/html/2628.html(这个就是和王道几乎是相同的,不知道是谁超谁)
===========================================================

1.准备

2.进程管理
2.1.进程调度
2.1.1调度的层次
高级、中级和低级调度作业从提交开始直到完成,往往要经历下述三级调度:
高级调度:(High-Level Scheduling)又称为作业调度,它决定把后备作业调入内存运行;
低级调度:(Low-Level Scheduling)又称为进程调度,它决定把就绪队列的某进程获得CPU;
中级调度:(Intermediate-Level Scheduling)又称为在虚拟存储器中引入,在内、外存对换区进行进程对换。
2.1.2剥夺非剥夺
(1)非剥夺方式
分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生进程调度
某事件而阻塞时,才把处理机分配给另一个进程。
(2)剥夺方式
当一个进程正在运行时,系统可以基于某种原则,剥夺已分配给它的处理机,将之分配给其它进程。剥夺原则有:优先权原则、短进程优先原则、时间片原则。
例如,有三个进程P1、P2、P3先后到达,它们分别需要20、4和2个单位时间运行完毕。
假如它们就按P1、P2、P3的顺序执行,且不可剥夺,则三进程各自的周转时间分别为20、24、
26个单位时间,平均周转时间是23.33个时间单位。
假如用时间片原则的剥夺调度方式,可得到:
可见:P1、P2、P3的周转时间分别为26、10、6个单位时间(假设时间片为2个单位时间),平均周转时间为14个单位时间。
衡量进程调度性能的指标有:周转时间、响应时间、CPU-I/O执行期。
2.2.进程同步
2.3.死锁

3.内存管理
3.1.内存分配
3.2.虚拟内存

4.文件管理
4.1.文件系统
4.2.磁盘

5.IO管理
5.1


附:
1.进程同步,PV操作例子
设某台机挂有两个I/0通道:分别挂一台输入机和一台打印机。卡片机上有一叠数据卡片,现在要把这些数据逐一输入到缓冲区B1,然后再复制到缓冲区B2,并在打印机上打印出来。
问:系统可设哪些进程来完成这个任务?


由上图可见,系统可设 3个 进程: 输入进程 复制进程 打印进程 ;分别用 进程R 进程C 进程P 来表示。 问: 这些进程之间有什么相互制约关系? R受C的约束C受RP的约束P受C的约束 问: 用P-V原语写这些进程的同步算法。 4个 信号量: S1=1,S2=0,S3=1,S4=0

也可以把 S1设成0 ,把 R进程 P(S1)调到V(S2)后面
 
问: 用Send和Rece原语写这些进程的同步算法。 RECEIVE取代P 操作;用 SEND取代V 操作。
 
即:用 RECEIVE(C)取代P(S1)和P(S4),用SEND(C)取代V(S2)和V(S3)
           RECEIVE(R)取代P(S2),用SEND(R)取代V(S1)
      
RECEIVE(P)取代P(S3),用SEND(P)取代V(S4)
 
问: 画出各进程的状态转换图。
复习笔记——操作系统_第1张图片

2.死锁,例子
首先,介绍一个由于共享资源而产生 死锁 的例子: 设系统有一台打印机(R1),一台读卡机(R2),两进程共享这两台设备。 用信号量S1表示R1是否可用,初值为1; 用信号量S2表示R2是否可用,初值为1;

复习笔记——操作系统_第2张图片


3.段页
复习笔记——操作系统_第3张图片

4.Clock置换算法

  4.1. 简单的Clock置换算法

复习笔记——操作系统_第4张图片

  4.2. 改进型Clock置换算法

  由访问位A和修改位M可以组合成下面四种类型的页面:

  1类(A=0, M=0): 表示该页最近既未被访问,又未被修改,是最佳淘汰页。

  2类(A=0, M=1):表示该页最近未被访问,但已被修改,并不是很好的淘汰页。

  3类(A=1, M=0):最近已被访问,但未被修改,该页有可能再被访问。

  4类(A=1, M=1): 最近已被访问且被修改,该页可能再被访问。其执行过程可分成以下三步:

  (1) 从指针所指示的当前位置开始,扫描循环队列,寻找A=0且M=0的第一类页面, 将所遇到的第一个页面作为所选中的淘汰页。在第一次扫描期间不改变访问位A。

  (2) 如果第一步失败,即查找一周后未遇到第一类页面,则开始第二轮扫描,寻找A=0且M=1的第二类页面,将所遇到的第一个这类页面作为淘汰页。在第二轮扫描期间,将所有扫描过的页面的访问位都置0。

  (3) 如果第二步也失败,亦即未找到第二类页面,则将指针返回到开始的位置,并将所有的访问位复0。然后重复第一步,如果仍失败,必要时再重复第二步,此时就一定能找到被淘汰的页。

5.磁盘分配的成组链接法【1】

复习笔记——操作系统_第5张图片

题目如图片:

问题是:

(1)该磁盘中目前还有多少个空闲盘块?【答】:我知道是2+100+100+99=301个吧
(2)在给文件F分配三个盘块后,试给出分配后的盘块链接情况【答】是先299号 再300号 再301号吧?

(3)接着,系统要删除另一个文件,并回收它所占的5个盘块,它们的盘块号依次为700,711,703,788,701,试给出回收后的盘块链接情况

【就第三个不太理解。是先底部700,然后往上1 0处711 703吗?还是怎么分,求解释?】
第一组中的块都分配完后,把下一组中的块都放到超级块中,这样就少了一个组,然后再进行分配。回收是先把块放到第一组中,如果满了就把这个组变为第二组。
s.free 4
711
703
788
701 。

700
每组就相当于个堆栈。



参考资料:

【1】 http://zhidao.baidu.com/link?url=cbFVuBEaHbL7NtGAiXqEMwx6LiCq-SpaClCoTt3_H68OwwFpcThFS8bL6SHQE7F5ALVEfFQsILwjXzwc-8aBanD6FyHpV-KyERCloGXEvLa

你可能感兴趣的:(操作系统)