您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 计算机操作系统(第三版)汤小丹第2章
计算机操作系统(第三版西电)复习提纲及重点习题注意:1)“本章要点”部分,用红字标注的不是期末考试出题范围。2)“习题部分”用蓝字标注的是重点习题,期末考试50%的题目是这些习题的原题。红字标注的习题期末考试不考,仅供考研的同学参考。3)大部分习题答案只给出要点,同学们可以自行适当补充,但一定要简明扼要。4)如“本章要点”部分用红字标注的非考试内容,在“习题”部分有相关的重点习题,则对该部分内容只需做该习题即可。------------------------------------------------------------第二章要点这一章和第3章是本课程最重要的两章。2.1进程的基本概念本小节重点内容是进程的概念、进程的三种状态及转换(围绕P38图2-5理解)、进程控制块FCB的概念及作用、进程就绪队列和阻塞(等待)队列的概念。其它内容作一般性的了解即可。2.2进程控制掌握原语的概念。其它内容作一般性的了解即可。2.3进程同步这一小节是至关重要的,也是相当难的。(1)P47-50,临界资源问题、临界区的概念、同步机制应遵循的规则。(2)P50,整型信号量原语的含义,及其缺点。(3)P51,记录型信号量原语的含义,特点,及其优点(与整形信号量对比)。(4)P52-53AND型信号量和信号量集,一般性了解。(5)P532.3.3信号量的应用,一般性了解。(6)P55管程,一般性了解。计算机操作系统(第三版西电)复习提纲及重点习题2.4经典进程的同步问题熟练掌握用记录型信号量解生产者—消费者、哲学家进餐、读者--写者问题。其它解法(AND信号量、信号量集、管程等)可以不看。2.5进程通信:一般性了解。2.6线程概念性的掌握什么是线程、线程与进程主要的异同、线程的状态、内核线程、用户线程。对于软件班和数学班的同学,上述概念将结合实验考核,二学历班的同学无此要求。教材习题1什么是前驱图?为什么要引入前驱图?答:P35。前驱图是一个有向无循环图,用于描述进程之间执行的前后关系。引入前驱图可以比较直观的描述多道程序进程之间的不确定(异步)关系。2试画出下面四条语句的前驱图:S1:a=x+y;S2:b=z+1;S3:c=a-b;S4:w=c+1答:参考P36图2-4。根据变量赋值的顺序,有(S1,S2)-S3-S43.程序并发执行为什么会产生间断性特征?答:P36。因为程序在并发执行过程中存在相互制约性(同步要求),另外进程时而要求使用CPU、时而I/O也会造成进程间断。4.程序并发执行为何会失去封闭性和可再现性?答:P37。多个进程共享系统中的各种共享资源(可以表示为共享变量或共享内存),一方面资源状态可由多个进程来改变,另一方面处置不当可能引起共享变量出错(需要互斥来解决),即存在资源共享性使程序失去封闭性;而失去了计算机操作系统(第三版西电)复习提纲及重点习题封闭性导致程序失去可再现性。5.在操作系统中为什么要引入进程概念?它会产生什么样的影响?a.为了使程序在多道程序环境下能并发执行,并能对并发执行的程序加以描述,而引入了进程概念。b.影响:OS通过管理进程,使程序的并发执行得以实行.6.试从动态性,并发性和独立性上比较进程和程序?a动态性是进程最基本的特性,程序是静态实体;b并发性是进程的重要特征,程序是不能并发执行的.c独立性是指进程实体是一个能独立运行的基本单位,同时也是系统中独立获得资源和独立调度的基本单位.而对于未建立任何进程的程序,都不能作为一个独立的单位参加运行.7.试说明PCB的作用?为什么说PCB是进程存在的唯一标志?答:P41a.PCB是进程实体的一部分(进程实体包括PCB、程序代码、数据),是操作系统中最重要的记录型数据结构,PCB中记录了操作系统所需的用于描述进程情况及控制进程运行所需的全部信息.b.在进程的整个生命周期中,系统总是通过其PCB对进程进行控制,系统是根据进程的PCB而感知到该进程的存在的,所以说,PCB是进程存在的唯一标志.8.试说明进程在三个状态之间转换的典型原因答:结合P38图2.5说明。主要原因是请求I/O和I/O完成、CPU调度。9.为什么要引入挂起状态?该状态具有哪些性质?答:P39。挂起是进程在就绪队列上等待,进程挂起时不接受CPU调度。计算机操作系统(第三版西电)复习提纲及重点习题a.引入挂起状态是由于5种需要:终端用户的需要,父进程的需要,操作系统的需要,对换的需要和负荷调节的需要.b.处于挂起状态的进程虽在就绪队列中,但不能接收处理机调度。10在进行进程切换时,所要保存的处理机状态信息主要有哪些?答:P42第一段。11试说明引起进程创建的主要事件.12试说明引起进程撤消的主要事件.答:P44----45。13在创建一个进程时,需完成的主要工作是什么?答:P44操作系统发现请求创建新进程事件后;1)申请空白PCB;2)为新进程分配资源;3)初始化进程控制块;4)将新进程插入就绪队列.14在撤消一个进程时,需完成的主要工作是什么?答:P45“2进程的终止过程”15试说明引起进程阻塞或被唤醒的主要事件是什么?答:P4616进程在运行过程中存在哪两种形式的制约?试举例说明之答:P48第1-2段。1)直接制约:进程共享独占式资源的互斥制约(比如互斥使用打印机);2)间接制约:进程之间存在合作关系带来的同步制约(比如生产者消费者问题)计算机操作系统(第三版西电)复习提纲及重点习题3)互斥也可以看作是一种特殊的同步。补充习题:什么是临界资源和临界区?a.一次仅允许一个进程使用的资源成为临界资源,这种资源可以用共享变量代表,这种资源必须是互斥使用的。b.在每个进程中,访问临界资源的那段程序称为临界区。17.为什么进程在进入临界区之前,应先执行进入区代码,在退出临界区后又执行退出区代码?答:P50。为了实现多个进程对临界资源的互斥访问,必须在临界区前面增加一段用于检查欲访问的临界资源是否正被访问的代码,如果未被访问,该进程便可进入临界区对资源进行访问,并设置正被访问标志,如果正被访问,则本进程不能进入临界区,实现这一功能的代码成为进入区代码;在退出临界区后,必须执行退出区代码,用于恢复未被访问标志。使用信号量,则进入区代码为P(S),“退出区”代码为V(S),S初值为118同步机构应遵循哪些基本准则?为什么?答:P50a.空闲让进.b.忙则等待.c.有限等待.d.让权等待.上述准则适合于进程的同步和互斥。记录型信号量实现了上述原则。19试从物理概念上说明记录型信号量wait和signal答:P51。Wait操作又叫P操作,signal操作又叫V操作。20.你认为整型信号量机制和记录型信号量机制,是否完全遵循了同步机构的四条准则?答:P50-51。计算机操作系统(第三版西电)复习提纲及重点习题a.在整型信号量机制中,未遵循让权等待的准则,存在“忙等”现象。b.记录型信号量机制完全遵循了同步机构的四条准则。21如何利用信号量机制来实现多个进程对临界资源的互斥访问?并举例说明之。答:P50的伪代码RepeatEntrysectionCriticalsection//对共享资源(临界资源)的访问ExitsectionRemaindersection//不访问共享资源的其他代码Untilfalse说明了多个进程对临界资源的互斥访问的解决思路,具体的,可设一记录型信号量S,初值为1,用P(S)替代Entrysection,V(S)替代Exitsection在教材生产者消费者和读者写者的例子中都能看到上述用法。22试写出相应的程序来描述图2-17所示的前驱图(图略)答:参考P54-55“2利用信号量实现前驱关系”(考研的同学应把这部分内容看一下)。这也是信号量对进程同步的一种用法,信号量初值为0。23.在生产者-消费者问题中,如果缺少了signal(full)或signal(empty),对执行结果会有何影响?答:缓冲区满后,生产者进程被阻塞(进入关于信号量empty的等待队列),由于消费者取走产品后不执行signal(empty),被阻塞的生产者进程继续被阻塞,即便缓冲区有空位也不能生产。缓冲区空后,消费者进程被阻塞(进入关于信号量full的等待队列),由于生产者生产后不执行signal(full),被阻塞的消费者进程继续被阻塞,即便缓冲区有产品也不能消费。计算机操作系统(第三版西电)复习提纲及重点习题24.在生产者-消费者问题中,如果将两个wait操作即wait(full)和wait(mutex)互换位置;或者是将signal(mutex)与signal(full)互换位置结果会如何?答:首先,教材P58是生产者消费者问题的最佳解,它支持多个生产者进程和多个消费者进程并发,而不仅仅是一个生产者进程和一个消费者进程并发。(1)如果将(消费者的)两个wait操作即wait(full)和wait(mutex)互换位置,后果是:a.影响了多个消费者的并发性,当一个消费者进行了wait(mutex),其它消费者因得不到mutex被阻塞,即便缓冲区有多个产品也不允许取。形象的说,教材的解法允许多个消费者同时逛商店,但拿产品时一个一个消费者拿;而颠倒wait(full)和wait(mutex)顺序后,商店一次只能允许一个顾客进入,等顾客拿完产品出门后,另一位顾客才能进去。b.可能造成死锁。假如某消费者执行wait(mutex)后没被阻塞,但接着执行wait(full)后被阻塞了,要等待生产者的signal(full)才能解除阻塞,而生产者可能因消费者提前使mutex=0而被阻塞,无法执行signal(full),这样就造成死锁。c可能还有其它后果。(2)将(生产者的)signal(mutex)与signal(full)互换位置,似乎不会影响并发性,也不会造死锁,个人认为这也是一种正确的写法。这道题我给出的答案仅供参考。25.我们为某临界区设置一把锁W,当W=1时,表示关锁;W=0时,表示锁已打开.试写出开锁原语和关锁原语,并利用它们去实现互斥.答:先看教材P50的伪代码RepeatEntrysectionCriticalsectionExitsectionRemaindersectionUntilfalse计算机操作系统(第三版西电)复习提纲及重点习题说明了多个进程对临界资源的互斥访问的解决思路,在前面的第21题中,讨论了可设一记录型信号量S,初值为1,用P(S)替代Entrysection,V(S)替代Exitsection。还有一种办法是教材P75介绍的“互斥锁”,其思路很简单:将Criticalsection想象成只允许一个进程进入的小黑屋,小黑外有一把锁,当进程发现锁是开着的,可以进入小黑屋,然后关上锁不让其它进程进入,出来时把锁打开给其它进程进入的机会。锁可以看作是(小黑屋外的)共享变量W,对W有两个操作:unlock(W),lock(W),这两个操作必须也是原子操作,其理由与信号量必须是原子操作一样。开锁原语:unlock(W){W=0;}关锁原语:lock(W){if(W==1)dono_op;W=1;}利用开关锁原语实现互斥,用lock(W);替代Entrysection,unlock(W)替代Exitsection即可。varW:=0;process:repeatlock(W);criticalsectionunlock(W);remaindersectionuntilfalse;锁比信号量简单,但只能用于进程互斥,不能用于同步。26试修改下面生产者—消费者问题解法中的错误答:按P58的正确解法修改即可。27试利用记录型信号量写出一个不会出现死锁的哲学家进餐问题的算法.答:先看P62哲学家进餐问题的解及可能出现死锁的原因(出现了循环等待)。根据P105死锁的四个必要条件,只要破除其中一个必要计算机操作系统(第三版西电)复习提纲及重点习题条件即可。下面的解的思路是:偶数哲学家现拿左面的筷子,后拿右面的,奇数哲学家正相反,这样就破除了循环等待,使死锁不可能发生。设初始值为1的
本文标题:计算机操作系统(第三版)汤小丹第2章
链接地址:https://www.777doc.com/doc-2099955 .html