博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
复习笔记——操作系统
阅读量:6987 次
发布时间:2019-06-27

本文共 2471 字,大约阅读时间需要 8 分钟。

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

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

。。

===========================================================

本来想和linux源码一起參照一下,结果如今拖到这个时候,没时间了,囧
内容主要參考:
(这个就是和王道差点儿是同样的,不知道是谁超谁)
===========================================================
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)
 
问:
画出各进程的状态转换图。
2.死锁,样例
首先,介绍一个因为共享资源而产生
的样例:
设系统有一台打印机(R1),一台读卡机(R2),两进程共享这两台设备。
用信号量S1表示R1是否可用,初值为1。
用信号量S2表示R2是否可用,初值为1;

3.段页
4.Clock置换算法

  4.1. 简单的Clock置换算法

  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】

题目如图片:

问题是:

(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】
你可能感兴趣的文章
ASP.NET MVC+EF框架+EasyUI实现权限管理系列之开篇
查看>>
class左边nbu 2414 Please help the poor donkey!
查看>>
[转]UML类图、关系及其JAVA代码
查看>>
销售管理系统设计与实现源码
查看>>
PhotoShop算法原理解析系列 - 像素化---》碎片。
查看>>
oracle卸载清除注册表(彻底卸载)
查看>>
PHP event 事件机制
查看>>
【ARDUINO】HC-05蓝牙不配对问题
查看>>
CentOS ping: unknown host 解决方法
查看>>
设计模式之责任链模式
查看>>
在 Windows 下安装 Oracle 11g XE (Express Edition)
查看>>
php多态设计
查看>>
oracel SQL多表查询优化
查看>>
Spring-Context的注解实现依赖注入功能
查看>>
CSS格式化 CSS代码压缩工具
查看>>
Android的TextView使用Html来处理图片显示、字体样式、超链接等
查看>>
mvc伪静态<三> IIS配置
查看>>
.NET设计模式(12):外观模式(Façade Pattern)(转)
查看>>
【leetcode】Maximum Gap(hard)★
查看>>
Visual Studio中的lib的链接顺序
查看>>