软件工程师培训计算机工程学院软件工程教研室张伟娜1第三章操作系统知识操作系统知识3.1操作系统基础知识(约2分)3.2处理机管理(2~4分)3.3存储管理(约2分)3.4设备管理(1~2分)3.5文件管理(约2分)3.6作业管理(约2分)3.7网络操作系统和嵌入式操作系统实例3.8UNIX操作系统实例(约1分)本章节约占总分数的10%左右(7-9道题目)。2高频考点操作系统的基本概念;状态转换图;PV操作;安全序列和死锁;进程的同步与互斥;磁盘调度算法;地址变换的相关计算;43.1操作系统基础知识—知识点1操作系统的定义操作系统是计算机系统中的一个系统软件,它管理和控制着计算机系统的硬件和软件资源,合理地组织计算机的工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。操作系统的作用1.通过资源管理,提高计算机系统的效率。2.改善人机界面,向用户提供友好的工作环境5练习操作系统是裸机上的第一层软件,其他系统软件(如(1)等)和应用软件都是建立在操作系统基础上的。下图①②③分别表示(2)(1)A.编译程序、财务软件和数据库管理系统软件B.汇编程序、编译程序和Java解释器C.编译程序、数据库管理系统软件和汽车防盗程序D.语言处理程序、办公管理软件和气象预报软件(2)A.应用软件开发者、最终用户和系统软件开发者B.应用软件开发者、系统软件开发者和最终用户C.最终用户、系统软件开发者和应用软件开发者D.最终用户、应用软件开发者和系统软件开发者6操作系统的特征并发性共享性虚拟性不确定性操作系统的功能处理机管理作业管理存储管理设备管理文件管理73.1操作系统基础知识—知识点2练习一个作业第一次执行时用了5min,而第二次执行时用了6min,这说明了操作系统的()特点A.并发性B.共享性C.虚拟性D.不确定性83.1操作系统基础知识—知识点3操作系统的类型批处理操作系统:作业成批调入内存分时操作系统:时间片实时操作系统:响应速度网络操作系统:支持网络功能的分布式操作系统:基于分布式硬件的操作系统微机操作系统:windows、IOS等嵌入式操作系统:应用于电器或智能终端设备9练习1.为了使系统中所有用户得到及时的响应,操作系统应该是()A.实时系统B.批处理系统C.分时系统D.网络系统2.如果分时系统的时间片一定,那么()会使响应时间越长。A.用户数越少B.用户数越多C.内存越少D.内存越多3.下面关于操作系统的叙述中正确的是()A.批处理作业必须具有作业控制信息B.分时系统不一定都具有人机交互功能C.从响应时间的角度看,实时系统与分时系统差不多D.由于采用了分时技术,用户可以独占计算机的资源103.2处理机管理—知识点1基本概念1.进程:是由程序、数据和进程控制块(PCB)组成的。进程的程序部分描述了进程需要完成的功能,进程数据集合部分包括程序执行时所需的数据及工作区。2.前趋图:(PrecedenceGraph)是一个有向无循环图。用于描述进程之间执行的先后顺序。图中的每个结点可用于描述一个进程或程序段,乃至一条语句;若I1→P1,表示P1开始之前,I1一定完成,称I1是P1的直接前趋,而称P1是I1的直接后继.11I1P1O1O2I2P23.2处理机管理—知识点2进程的状态及其转换12运行就绪阻塞时间片用完进程调度请求I/O或等待某事件I/O完成或事件完成运行就绪阻塞时间片用完进程调度请求I/O或等待某事件I/O完成或事件完成退出创建接纳完成三态模型五态模型练习某系统的进程状态转换如下图所示。图中1、2、3和4分别表示引起状态转换时的不同原因。原因4是由于(1);一个进程状态转换会引起另一个进程状态转换的是(2)。(1)A.就绪进程被调度B.运行进程执行了P操作C.阻塞进程等待的事件发生了D.运行进程时间片到了(2)A.1→2B.2→1C.3→2D.2→4133.2处理机管理—知识点3进程间的通信1.同步与互斥同步是合作进程间的直接制约问题,互斥是申请临界资源进程间的间接制约问题。2.(整型)信号量与P、V操作信号量是一个整型变量,根据控制对象的不同赋不同的值,一般分为两类:(1)公用信号量:实现进程间的互斥,初值=1或资源数目;(2)私用信号量:实现进程间的同步,初值=0或某个正整数。14练习以下进程之间存在相互制约关系吗?若存在,是什么制约关系?为什么?a在食堂打饭,吃饭和洗碗b只有一个车道的桥梁,左右双方均想通过。c课堂上的师生互动d工厂的生产部门和销售部门e小旅店只剩下2个单人间,却来了3个顾客信号量的PV操作voidwait(semaphores){s.value=s.value-1;if(s.value0)block(s.queue);/*将进程阻塞,并将其投入等待队列s.queue*/}voidsignal(semaphores){s.value=s.value+1;if(s.value=0)wackup(s.queue);/*唤醒阻塞进程,将其从等待队列s.queue取出,投入就绪队列*/}s.value=0时,表示某资源的可用数s.value0时,|s.value|表示等待使用该资源的进程队列中的进程数。使用信号量解决互斥问题互斥信号量s的初值是临界资源的个数,如果是独占资源,它初始值一般为1。在每个程序中用于实现互斥的P(s)和V(s)必须成对出现,即先做P操作(为临界资源加锁),进入临界区;后做V操作(为临界资源解锁),退出临界区。17while(1){P(mutex);临界区V(mutex);剩余区;};使用信号量解决同步问题同步信号量的初值一般为0,它相当于一个“信号”;同步信号量的P、V操作也要“成对”出现,但是,它们分别出现在不同的进程代码中。V操作出现的“前驱进程”中,P操作出现在“后继进程”中。V操作用于发送“信号”,P操作用于检查是否有“信号”到达。18S1S3S2absemaphorea,b=0,0;{s1;V(a);V(b);}{P(a);s2;}{P(b);s3;}进程S1:进程S2:进程S3:吃水果问题桌上有一空盘,只允许存放一个水果。爸爸专向盘中放橙子,妈妈专向盘中放苹果,女儿专等吃橙子,儿子专等吃苹果。规定当盘空时一次只能放一个水果供吃者自用,请用PV操作实现爸爸、妈妈、女儿、儿子四个并发进程的同步。吃水果问题semaphores1=1//s1表示盘的状态:1为空;0为满。father(){while(1);{P(s1);放入橙子;V(s2);}}daughter(){while(1);{P(s2);从盘中取出橙子;V(s1)}}son(){while(1);{P(s3);从盘中取出苹果;V(s1)}}semaphores2=s3=0//s2和s3分别表示橙子和苹果的个数。mother(){while(1);{P(s1);放入苹果;V(s3);}}练习某企业生产流水线M共有两位生产者,生产者甲不断地将其工序上加工的半成品放入半成品箱,生产者乙从半成品箱取出继续加工。假设半成品箱可存放n件半成品,采用PV操作实现生产者甲和生产者乙的同步可以设置三个信号量S、S1和S2,其同步模型如下图所示。信号量S是一个互斥信号量,初值为(1);S1、S2的初值分别为(2)。(1)A.0B.1C.nD.任意正整数(2)A.n、0B.0、nC.1、nD.n、121练习进程P1、P2、P3、P4和P5的前趋图如下:若用PV操作控制进程P1~P5并发执行的过程,则需要设置6个信号S1、S2、S3、S4、S5和S6,且信号量S1-S6的初值都等于零。下图中a和b处应分别填写(1);c和d处应分别填写(2),e和f处应分别填写(3)。(1)A.P(S1)P(S2)和P(S3)P(S4)B.P(S1)V(S2)和P(S2)V(S1)C.V(S1)V(S2)和V(S3)V(S4)D.P(S1)P(S2)和V(S1)V(S2)(2)A.P(S1)P(S2)和V(S3)V(S4)B.P(S1)P(S3)和V(S5)V(S6)C.V(S1)V(S2)和P(S3)P(S4)D.P(S1)V(S3)和P(S2)V(S4)22(3)A.P(S3)P(S4)和V(S5)V(S6)B.V(S5)V(S6)和P(S5)P(S6)C.P(S2)P(S5)和P(S4)P(S6)D.P(S4)V(S5)和P(S5)V(S6)练习进程P1、P2、P3和P4的前趋图如下:若用PV操作控制这几个进程并发执行的过程,则需要设置4个信号量s1、s2、S3和s4,且信号量初值都等于零。下图中a和b应分别填写(1),c和d应分别填写(2)。(1)A.P(S1)P(S2)和P(s3)B.P(s1)P(s2)和V(s1)C.V(S1)V(s2)和P(S1)D.V(S1)V(S2)和V(S3)23(2)A.P(S1)P(S2)和P(s4)B.P(s2)P(s3)和P(s4)C.V(S1)V(s2)和V(S4)D.V(S2)V(S3)和V(S4)练习某火车票销售系统有n个售票点,该系统为每个售票点创建一个进程Pi(i=1,2,…,n)。假设Hj(j=1,2…m)单元存放某日某车次的剩余票数,Temp为Pi进程的临时工作单元,x为某用户的订票张数。初始化时系统应将信号量S赋值为(1)。Pi进程的工作流程如下,若用P操作和V操作实现进程间的同步与互斥,则图中a、b和c应分别填入(2)。24练习(续上题)(1)A.0B.1C.2D.3(2)A.P(S)、V(S)和V(S)B.P(S)、P(S)和V(S)C.V(S)、P(S)和P(S)D.V(S)、V(S)和P(S)试题答案:B,A253.2处理机管理—知识点4进程调度高级调度:从外存中选择后备作业调入内存;中级调度:进程执行中的内外存对换;低级调度:进程在内存中的状态转换。调度方式:可剥夺式和不可剥夺式进程调度算法先来先服务时间片轮转优先级调度多级反馈调度26进程号进入时间运行时间FCFS时间片轮转(3)完成时间周转时间带权周转时间完成时间周转时间带权周转时间10444112123211014131.322212.13262018318162.6643222199.51184平均13.53.714.252.94进程调度算法思想1.初始情况下,只有一个就绪队列。2.新创建的进程首先放到第一个就绪队列的队尾,按FCFS原则进行调度。第一个就绪队列的时间片较短;3.其中进程在它的时间片内未完成时,该进程就被投入第二个就绪队列,第二个就绪队列比第一个的优先级较低,但时间片较长;4.当第二个就绪队列中某个进程在它的时间片内未完成时,该进程被投入第三个就绪队列,此队列比第二个队列的优先级较低,但时间片较长。以此类推。5.只有第一个就绪队列所有进程都执行结束后,才执行第二个队列中的进程,以此类推。多级反馈队列算法(MFQ)多级反馈队列调度算法CPU就绪队列1退出新进程就绪队列3……就绪队列n就绪队列2S1CPU退出S2CPU退出S3CPU退出Sn时间片S1S2S3…Sn进程号进入时间运行时间开始时间MFQ完成时间周转时间带权周转时间103215332495平均1091.81561.2441.3852.561.7采用多级反馈多列(MFQ)算法进行调度,其中,第1个队列的时间片为1,第i个队列的时间片为q=2*(i-1)。01410多级反馈队列调度算法练习假设某分时系统采用简单时间片轮转法,当系统中的用户数为n,时间片为q时,系统对每个用户的响应时间T=()。A.nB.qC.n×qD.n+q313.2处理机管理—知识点5死锁1.产生死锁的原因:资源竞争及进程推进顺序非法。2.产生死锁的4个必要条件:互斥条件、请求保持条件、不可剥夺条件、环路条件。3.进程资源有向图(1)请求资源:箭头由进程指向资源;(2)分配资源:箭头由资源指向进程