南昌航空大学操作系统总结.docx
《南昌航空大学操作系统总结.docx》由会员分享,可在线阅读,更多相关《南昌航空大学操作系统总结.docx(28页珍藏版)》请在冰豆网上搜索。
南昌航空大学操作系统总结
一、操作系统的功能
1、处理器管理
2、存储管理
3、设备管理
4、文件管理
5、网络与通信管理
6、用户接口
二、操作系统的作用
1、操作系统作为用户接口和公共服务程序
2、操作系统作为程序执行的控制者和协调者
3、操作系统作为扩展机或虚拟机
4、操作系统作为资源的管理者和控制者
三、系统调用
系统调用是把应用程序的请求送至内核,调用相应的内核函数完成所需的处理,将结果返回给应用程序。
四、系统调用的分类
1、进程管理
2、文件操作
3、设备管理
4、主存管理
5、进程通信
6、信息维护
五、死锁
如果在一个进程集合中的每个进程都在等待只能由该集合中的其他一个进程才能引发的事件,则称一组进程或系统此时发生死锁。
六、死锁产生的因素
1、系统拥有的资源数量
2、资源分配策略
3、并发进程的推进顺序
七、系统形成死锁的四个必要条件
1、互斥条件
进程互斥使用资源
2、部分分配条件
申请新资源时不释放已占有资源
3、不剥夺条件
一个进程不能抢夺其他进程占有的资源
4、环路条件
存在一组进程循环等待资源的
八、死锁防止
1、破坏第一个条件
使资源可同时访问而不是互斥使用,
2、破坏第三个条件
采用剥夺式调度方法,当进程在申请资源未获准许的情况下,如主动释放资源(一种剥夺式),然后才去等待。
3、破坏第二个条件或第四个条件
上述死锁防止办法造成资源利用率和吞吐率低
九、比较实用的死锁防止方法
1、采用层次分配策略(破坏条件2和4)
资源被分成多个层次
当进程得到某一层的一个资源后,它只能再申请较高层次的资源
当进程要释放某层的一个资源时,必须先释放占有的较高层次的资源
当进程得到某一层的一个资源后,它想申请该层的另一个资源时,必须先释放该层中的已占资源
2、层次策略的变种按序分配策略
把系统的所有资源排一个顺序,例如,系统若共有n个进程,共有m个资源,用ri表示第i个资源,于是这m个资源是:
r1,r2……,rm
规定如果进程不得在占用资源ri(1≤i≤m)后再申请rj(j
不难证明,按这种策略分配资源时系统不会发生死锁。
十、死锁避免的主要思想
动态的检测资源分配状态以确保循环等待条件不可能成立。
十一、死锁的解除
1、结束进程
一、结束所有进程的执行,重新启动操作系统。
方法简单,但以前工作全部作废,损失很大。
二、撤销陷于死锁的所有进程,解除死锁继续运行。
三、逐个撤销陷于死锁的进程,回收其资源重新分派,直至死锁解除。
2、剥夺资源
一、剥夺陷于死锁的进程占用的资源,但并不撤销它,直至死锁解除。
可仿照撤销陷于死锁进程的条件来选择剥夺资源的进程
二、根据系统保存的检查点,让所有进程回退,直到足以解除死锁,这种措施要求系统建立保存检查点、回退及重启机制。
三、当检测到死锁时,如果存在某些未卷入死锁的进程,而随着这些进程执行到结束,有可能释放足够的资源来解除死锁。
十三、操作系统的主要特性
1、并发性
2、共享性
3、异步性
练习题
第一章
5、在单CPU和两台I/O(I1、I2)设备的多道程序设计环境下,同时投入3个作业运行。
其运行轨迹如下:
Job1:
I2(30ms),CPU(10ms),I1(30ms),CPU(10ms)
Job2:
I1(20ms),CPU(20ms),I2(40ms)
Job3:
CPU(30ms),I1(20ms)
如果CPU、I1和I2都能并行工作,优先级从高到低以此为Job1,Job2,Job3,优先级高的作业可以抢占优先级低的作业的CPU。
试求:
(1)每个作业从投入到完成分别所需要的时间。
(2)从作业的投入到完成,CPU的利用率。
(3)I/0设备利用率。
答案:
答案:
如果作业i的周转时间为ti,所需运行时间为tk,则称wi=ti/tk为该作业的带权周转时间。
(1)响应时间
答案:
交互式进程从提交一个请求(命令)到接收到响应之间的时间间隔称响应时间。
(2)吞吐率
答案:
单位时间内处理的作业数。
11、为什么说操作系统是由中断驱动的?
答案:
因为每当应用程序执行各种内部和外部事件时,都要通过中断机制产生中断信号并启动内核工作,可以说操作系统是由“中断驱动”的。
应用题:
1、下列指令中,哪些只能在核心态运行?
(1)读时钟日期;用户态
(2)访管指令用户态
(3)设时钟日期核心态
(4)加载PSW核心态
(5)置特殊寄存器核心态
(6)改变存储器映像图核心态
(7)启动I/0指令核心态
3、并发进程之间有何种制约关系?
下列日常生活中的活动属于哪种制约关系?
(1)踢足球互斥
(2)吃自助餐同步
(3)图书馆借书互斥
(4)电视机生产流水线工序同步
7、假定作业Job1~Job5,,作业号即为其到达顺序,依次在时刻0按照序号1、2、3、4、5进入单处理器系统。
(1)分别采用先来先服务调度算法、时间片轮转算法、短作业优先算法及非抢占优先权调度算法计算出各作业的执行次序(注意优先权越高其数值越小)
(2)计算每种情况下作业的平均周转时间和平均带权周转时间。
--------------------------------------------------------
作业号执行时间/ms优先权
-------------------------------------------------------
Job1103
Job211
Job323
Job414
Job552
-------------------------------------------------------
答案:
(1)先来先服务(FCFS):
1,2,3,4,5
时间片轮转法:
1,2,3,4,5,1,3,5,1,5,1,5,1,1,1,1,1,1
非抢占优先权:
2,5,1,3,4
短作业优先(SJF):
2,4,3,5,1
(2)先来先服务:
平均周转时间:
(10+11+13+14+19)/5=13.4
平均带权周转时间:
(10/10+11/1+13/2+14/1+19/5)/5=7.26
时间片轮转法:
平均周转世间:
(19+2+7+4+14)/5=9.2
平均带权周转时间:
(19/10+2/1+7/2+4/1+14/5)/5=2.84
非抢占优先权:
平均周转时间:
(16+1+18+19+6)/5=14
平均带权周转时间:
(16/10+1/1+18/2+19/1+6/5)/5=6.36
短作业优先:
平均周转时间:
(19+1+4+2+9)/5=7
平均带权周转时间:
(19/10+1/1+4/2+2/1+9/5)/5=1.74
5、在道数不受限制的多道程序系统中,作业进入系统的后备队列时立即进行作业调度。
现有4个作业进入系统,有关信息列举如下,作业调度和进程调度均采用高优先级算法(规定数值越大则优先级越高)。
------------------------------------------------------------------------------------------------------
作业名进入后备队列的时间执行时间/min优先数
-----------------------------------------------------------------------------------------------------
Job18:
00601
Job28:
30502
Job38:
40304
Job48:
50103
-----------------------------------------------------------------------------------------------------
试填充下表。
----------------------------------------------------------------------------------------------------------------------
作业名|进入后备队列|执行时间|开始执行|结束执行|周转时间|带权周转
|的时间|/min|时间|时间|/min|时间
----------------------------------------------------------------------------------------------------------------------
Job1|8:
00|60|8:
00|10:
30|150|2.5
----------------------------------------------------------------------------------------------------------------------
Job2|8:
30|50|8:
30|10:
00|90|1.8
----------------------------------------------------------------------------------------------------------------------
Job3|8:
40|30|8:
40|9:
10|30|1
----------------------------------------------------------------------------------------------------------------------
Job4|8:
50|10|9:
10|9:
20|30|3
----------------------------------------------------------------------------------------------------------------------
平均周转时间T=(150+90+30+30)/4=75
----------------------------------------------------------------------------------------------------------------------
带权平均周转时间W=(2.5+1.8+1+3)/4=2.075
----------------------------------------------------------------------------------------------------------------------
9、对某系统进行监测后表明,每个进程在I/0阻塞之前的平均运行时间为T,一次进程切换的系统开销时间为S。
若采用时间片长度为Q的时间片轮转法,对下列各种情况计算CPU的利用率。
(1)Q=无穷大CPU利用率=T/(T+S)
(2)Q>TCPU利用率=T/(T+S)
(3)S(4)Q=SCPU利用率=50%
(5)Q接近于0CPU利用率接近于0
17、如果在限制为两道的多道程序系统中,有4个作业进入系统,其进入系统时间、估计运行时间列于下表中,系统采用SJF作业调度算法,采用SRTF(最短剩余时间优先算法)进程调度算法,请填充下表。
----------------------------------------------------------------------------------------------------------------------
作业|进入系统时间|估计运行时间/min|开始运行时间|结束运行时间|周转时间/min
----------------------------------------------------------------------------------------------------------------------
Job1|10:
00|30|10:
00|11:
05|65
----------------------------------------------------------------------------------------------------------------------
Job2|10:
05|20|10:
05|10:
25|20
----------------------------------------------------------------------------------------------------------------------
Job3|10:
10|5|10:
25|10:
30|20
----------------------------------------------------------------------------------------------------------------------
Job4|10:
20|10|10:
30|10:
40|20
----------------------------------------------------------------------------------------------------------------------
平均周转时间T=(65+20+20+20)/4=31.25
----------------------------------------------------------------------------------------------------------------------
带权周转时间W=(65/30+20/20+20/5+20/10)/4=2.2925
----------------------------------------------------------------------------------------------------------------------
21、有一个具有3道作业的多道批处理系统,作业调度采用短作业优先调度算法,进程调度采用依优先数为基础的抢占式调度算法。
在下表所示的作业序列中,作业优先数即为进程优先数,优先数越小则优先级越高。
----------------------------------------------------------------------------------------------------------------------
作业名到达时间估计运行时间/min优先数
----------------------------------------------------------------------------------------------------------------------
A10:
00405
B10:
20303
C10:
30604
D10:
50206
E11:
00204
F11:
10104
----------------------------------------------------------------------------------------------------------------------
试填充下表
----------------------------------------------------------------------------------------------------------------------
作业进入主存时间运行结束时间作业周转时间/min
----------------------------------------------------------------------------------------------------------------------
A10:
0012:
40160
----------------------------------------------------------------------------------------------------------------------
B10:
2010:
5030
----------------------------------------------------------------------------------------------------------------------
C10:
3011:
5080
----------------------------------------------------------------------------------------------------------------------
D10:
5013:
00130
----------------------------------------------------------------------------------------------------------------------
E12:
0012:
2080
---------------------------------------------------------------------------------------------------------------------
F11:
50120050
----------------------------------------------------------------------------------------------------------------------
平均作业周转时间=(160+30+80+130+80+50)/6=88.33
----------------------------------------------------------------------------------------------------------------------
27、某多道程序系统供用户使用的主存空间为100KB,磁带机2台,打印机1台。
采用可变分区主存管理,采用静态方式分配外部设备,忽略用户作业I/0操作时间。
现有作业序列如下:
----------------------------------------------------------------------------------------------------------------------
作业号进入输入井时间运行时间/min主存需求量/KB磁带机需求/台打印机需求/台
----------------------------------------------------------------------------------------------------------------------
18:
00251511
28:
20103001
38:
20206010
48:
30202010
58:
35151011
----------------------------------------------------------------------------------------------------------------------
作业调度采用FCFS策略,优先分配主存低地址区且不准移动已在主存中的作业,主存中的各作业平分CPU时间。
现求:
(1)作业调度的先后次序
(2)全部作业运行结束的时间
(3)作业平均周转时间
(4)最大作业周转时间。
答案:
(1)1,3,4,2,5
(2)9:
30
(3)作业平均周转时间T=(30+55+40+40+55)/5=48
(4)最大作业周转时间55
第三章
6、在一个盒子里,混装了数量相等的黑白围棋。
现在利用自动分拣系统把黑子、白字分开,设分拣系统有两个进程P1和P2,其中进程P1拣白子,进程P2拣黑子。
规定每个进程每次拣一子;当一个进程在拣时,不允许另一个进程去拣;当一个进程拣了一子时,必须让另一个进程去拣。
试写出进程P1和P2能够正确并发执行的程序。
答案:
实质上是两个进程的同步问题,设信号量S1和S2分别表示可拣白子和黑子,若先拣白子。
Semaphores1=1,s2=0;
Inti=N,j=N;
Cobegin
ProcessP1(){|ProcessP2(){
While(i>0){While(j>0){
P(s1);P(s2);
拣白子;拣黑子;
i--;j--;
V(s2);V(s1);
}}
}}
coend
8、设在公共汽车上,司机和售票员的活动分别如下。
(1)司机的活动:
启动车辆;正常行车;到站停车。
(2)售票员的活动:
关车门;售票;开车门。
答案:
在汽车行驶过程中,司机活动与售票员活动之间的同步关系为:
售票员关车门后,向司机发开车信号,司机接到开车信号后启动车辆,在汽车正常行驶过程中售票员售票,到站时司机停车,售票员在车停后开门让乘客上下车。
因此,司机启动车辆的动作必须与售票员关车门的动作取得同步;售票员开车门的动作也必须与司机停车取得同步。
应设置连个信号量:
S1,S2;S1表示是否允许司机启动汽车(其初值为0);S2表示是否允许售票员开门(其初值为0)。
用P、V原语描述若下:
SemaphoreS1=0,S2=0;
Cobegin
Process司机(){|Process售票员(){
While(true){while(true){
P(S1);关车门;
启动车辆;V(S1);
正常行车;售票;
到站停车;P(S2);
V(S2);开车门;
}}
}}
Coend
43、某工厂有两个生产车间和一个装配车间,两个生产车间分别生产A、B两种零件,装配车间的任务是把A、B两种零件组装成产品。
两个生产车间每生产一个零件后都要分别把它们送到装配车间的货架F1、F2