操作系统(第三版)孙钟秀主编 课后习题参考答案汇总.doc
《操作系统(第三版)孙钟秀主编 课后习题参考答案汇总.doc》由会员分享,可在线阅读,更多相关《操作系统(第三版)孙钟秀主编 课后习题参考答案汇总.doc(33页珍藏版)》请在三一文库上搜索。
1、习题一操作系统答案目录目录习题一1习题二3习题三7习题四16习题五23习题六27I习题六习题一一思考题3. 什么是操作系统?计算机系统中配置操作系统的主要目标是什么?答(p1):操作系统是管理系统资源、控制程序执行、改善人机界面、提供各种服务,合理组织计算机工作流程和为用户有效使用计算机提供良好运行环境的一种系统软件。配置操作系统的主要目标可归结为:(1) 方便用户使用(2) 扩大机器功能(3) 管理系统资源(4) 提高系统效率(5) 构筑开放环境。5. 操作系统要为用户提供哪些基本和共性的服务?答(p25):操作系统提供给程序和用户的共性服务大致有:(1) 创建程序(2) 执行程序(3) 数
2、据I/O(4) 信息存取(5) 通信服务(6) 错误检测和处理9试叙述系统调用的实现原理。答(p28)系统调用的实现有以下几点:编写系统调用处理程序 设计一张系统调用入口地址表,每个入口地址都指向一个系统调用的处理程序,有的系统还包含系统调用自带参数的个数 陷入处理机制,需开辟现场保护,以保存发生系统调用时的处理器现场。10.试叙述系统调用与过程调用的主要区别。答(p29)调用形式不同 被调用代码的位置不同 提供方式不同 调用的实现不同二应用题2. 一个计算机系统,有一台输入机和一台打印机,现有两道程序投入运行,且程序A先开始做,程序B后开始运行。程序A的运行轨迹为:计算50ms、打印100m
3、s、再计算50ms、打印100ms,结束。程序B的运行轨迹为:计算50ms、输入80ms、再计算100ms,结束。试说明(1)两道程序运行时,CPU有无空闲等待?若有,在哪段时间内等待?为什么会等待?(2)程序A、B有无等待CPU的情况?若有,指出发生等待的时刻。答:画出两道程序并发执行图如下:(1)两道程序运行期间,CPU存在空闲等待,时间为100至150ms之间(见图中有色部分)。(2)程序A无等待现象,但程序B有等待。程序B有等待时间段为180ms至200ms间(见图中有色部分)。 学生补充:程序B在050ms时也存在等待。31习题二一思考题26.什么是进程?计算机操作系统中为什么引入进
4、程?(教材113教材114页)进程的定义:进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。引入进程的原因:一是刻画系统的动态性,发挥系统的并发性,提高资源利用率。二是解决共享性,正确描述程序的执行状态。28.进程最基本的状态有哪些?哪些事件可能引起不同状态之间的转换?进程最基本的状态有三种:运行态:进程占有处理器正在运行。就绪态:进程具备运行条件,等待系统分配处理器以便运行。等待态:又称为态或睡眠态,指进程不具备运行条件,正在等待某个事件的完成。进程状态转换的具体原因:运行态等待态 等待使用资源或某事件发生,如等待外设传输、等待
5、人工干预。等待态就绪态 资源得到满足或某事件已经发生,如外设传输结束;人工干预完成。运行态就绪态 运行时间片到,或出现有更高优先权进程。就绪态运行态 CPU空闲时被调度选中一个就绪进程执行。34. 叙述组成进程的基本要素,并说明它的作用。(教材120页)每个进程有4个要素组成:控制块、程序块、数据块和堆栈。(1)进程控制块 每一个进程都将捆绑一个进程控制块,用来存储进程的标志信息、现场信息和控制信息。进程创建时建立进程控制块,进程撤销时回收进程控制块,它与进程一一对应。(2)进程程序块 即被执行的程序,规定了进程一次运行应完成的功能。通常它是纯代码,作为一种系统资源可被多个进程共享。(3)进程
6、数据块 即程序运行时加工处理对象,包括全局变量、局部变量和常量等的存放区以及开辟的工作区,常常为一个进程专用。(4)系统/用户堆栈 每一个进程都将捆绑一个系统/用户堆栈,用来存储进程的标志信息、现场信息和控制信息。进程创建时建立进程控制块,进程撤销时回收进程控制块,它与进程一一对应。38. 什么是进程的上下文?简述其主要内容。(教材120页)操作系统中把进程物理实体和支持进程运行的环境合称为进程上下文(process context)。它包括三个组成部分:(1)用户级上下文(user-level context)。 由用户进程的程序块、用户数据块(含共享数据块)和用户堆栈组成的进程地址空间。(
7、2)系统级上下文(system-level context)。包括进程控制块、内存管理信息、进程环境块,以及系统堆栈等组成的进程地址空间。(3)寄存器上下文(register context)。由程序状态字寄存器、各类控制寄存器、地址寄存器、通用寄存器、用户栈指针等组成。52. 试从调度、并发性、拥有资源和系统开销四个方面对传统进程和线程进行比较。线程进程调度是操作系统中的基本调度和分派单位,具有唯一的标识符和线程控制块。进程具有独立的虚地址空间,以进程为单位进行任务调度,系统必须交换地址空间,切换时间长。并发性同一进程的多个线程可在一个/多个处理器上并发或并行地执行许多多任务操作系统限制用户
8、能拥有的最大进程数目,这对许多并发应用来说是不够的。拥有资源同一进程的所有线程共享但不拥有进程的状态和资源,且驻留在进程的同一个主存地址空间中,可以访问相同的数据,通信和同步的实现十分方便。是系统中资源分配和保护的基本单位,也是系统调度的独立单位。每个进程都可以各自独立的速度在CPU上推进。系统开销作为系统调度和分派的基本单位,会被频繁地调度和切换。同一进程中的多线程共享同一地址空间,能使线程快速切换。对多个进程的管理(创建、调度、终止等)系统开销大,如响应客户请求建立一个新的服务进程的服务器应用中,创建的开销比较显著。58什么是内核级线程、用户级线程和混合式线程?对它们进行比较。内核级线程
9、线程管理的所有工作由操作系统内核来做。优点:(1)在多处理器上,内核能够同时调度同一进程中多个线程并行执行;(2)若其中的一个线程被阻塞了,内核能调度同一进程的其它线程占有处理器并运行,也可以运行其它进程中的线程。(3)由于内核线程仅有很小的数据结构和堆栈,KLT的切换比较快,内核自身也可以用多线程技术实现,从而,能提高系统的执行速度和效率。缺点:应用程序线程在用户态运行,而线程调度和管理在内核实现,在同一进程中,控制权从一个线程传送到另一个线程时需要用户态内核态用户态的模式切换,系统开销较大。用户级线程 线程管理的全部工作都由应用程序来做,在用户空间内实现,内核是不知道线程的存在的。优点:(
10、1)线程切换不需要内核特权方式。(2)按应用特定需要允许进程选择调度算法。缺点:(1)在传统的基于进程操作系统中,大多数系统调用将阻塞进程。 (2)在纯ULT中,多线程应用不能利用多重处理的优点。二应用题11.有5个批处理作业A到E均已到达计算中心,其运行时间分别10、6、2、4和8分钟;各自的优先级分别被规定为3、5、2、1和4,这里5为最高级。若不考虑系统切换开销,计算出平均作业周转时间。(1)FCFS(按A、B、C、D、E);(2)优先级调度算法,(3)时间片轮转法(每个作业获得相同的2分钟长的时间片)。(1)FCFS调度算法(调用次序:A、B、C、D、E)(2)优先级调度算法(调用次序
11、:B(5)、E(4)、A(3)、C(2)、D(1)(3)时间片轮转法(调用次序:按照2s的时间间隔循环)按次序A B C D E A B D E A B E A E A轮转执行。14.单道批处理系统中,下列三个作业采用先来先服务调度算法和最高响应比优先算法进行调度,哪一种算法性能较好?请完成下表:FIFOHRRF开始时只有作业1,作业1被选中,执行时间2小时。作业1执行完毕后,作业2的时间响应比为1+(2-1:50)/1 = 1.1667 作业3的时间响应比为1+(2-1:35)/0:25 = 1+0.416667故选3然后选择作业2。可见HRRF比FIFO要好。本次的作业出现如下四个问题:1
12、)结果未能全部化为小数 2)单位要统一3)小数点四舍五入4)大多数同学没有能够画图说明习题三一思考题8.解释进程的竞争关系和协作关系。(教材213页)竞争关系:系统中的多个进程之间彼此无关,它们并不知道其它进程的存在,并且也不接受其它进程执行的影响。协作关系:某些进程为完成同一任务需要分工协作,由于合作的每一个进程都是独立地以不可预知的速度推进,这就需要相互协作的进程在某些协调点上协调各自的工作。当合作进程中的一个到达协调点后,在尚未得到其伙伴进程发来的消息或信号之前应阻塞自己,知道其它合作进程发来协调信号或消息后方被唤醒并继续执行。这种协作进程之间相互等待对方消息或信号的协调关系称为进程同步
13、。9试说明进程的互斥和同步两个概念之间的异同。进程的互斥是解决进程间竞争关系(间接制约关系)的手段。进程互斥是指若干个进程要使用同一资源时,任何时刻最多允许一个进程去使用,其它要使用该资源的进程必须等待,直到占有资源的进程释放该资源。进程的同步是解决进程间协作关系(直接制约关系)的手段。进程同步指两个以上进程基于某个条件来协调它们的活动。一个进程的执行依赖于另一个协作进程的消息或信号,当一个进程没有得到来自于另一个进程的消息或信号时则需等待,直到消息或信号到达才被唤醒。10什么是临界区和临界资源?对临界区管理的基本原则是什么?临界区并发进程中与共享变量有关的程序段。临界资源共享变量代表的资源。
14、临界区管理的基本原则:(1)一次至多一个进程能够在它的临界区内;(2)不能让一个进程无限地留在它的临界区内;(3)不能强迫一个进程无限地等待进入它的临界区。特别,进入临界区的任一进程不能妨碍正等待进入的其它进程的进展;19试比较管程与进程的不同点(教材237页)。19. (1)管程是由局部于自己的若干公共变量及其说明和所有访问这些公共变量的过程所组成的软件模块;进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。20. (2)管程可以作为程序设计语言的一个成分,采用管程作为同步机制便于用高级语言来书写程序,也便于程序正确性验证。有相
15、对固定的代码编写模式;进程则可以采用中级语言(C语言)也可以采用高级语言实现,其代码编写模式相对自由。21. (3)管程提供了一种互斥机制,进程可以互斥地调用这些过程;进程可以并发地执行,进程的并发性能改进资源利用率提高系统效率。22. (4)管程把分散在各个进程中互斥地访问公共变量的那些临界区集中了起来,提供对他们的保护;进程既是系统中资源分配和保护的基本单位,也是系统调度的独立单位。23. (5)管程是一段管理临界区资源的代码,而进程则有生命周期。24什么是管道?如何通过管道机制实现进程间通信?(教材254页)管道(pipeline)是连接读写进程的一个特殊文件,允许进程按先进先出传送数据
16、,也能使进程同步执行操作。发送进程视管道文件为输出文件,以字符流形式把大量数据送入管道;接收进程将管道文件视为输入文件,从管道中接收数据,所以,也叫管道通信。管道中的消息是无界的,它存于外存。此外,还需要一定的机制协调读写进程。25什么是消息队列机制,叙述其工作原理。消息队列本身是操作系统核心为通信双方进程建立的数据结构,两个用户进程间通过发送和接收系统调用来借助消息队列传递和交换消息,这样通信进程间不再需要共享变量。如图3-11(教材263页)所示,进程间的通信通过消息队列进行。消息队列可以是单消息队列,也可以是多消息队列(按消息类型);既可以单向,也可以双向通信;既可以仅和两个进程有关,也
17、可以被多个进程使用。28什么是死锁?什么是饥饿?试举日常生活中的例子说明之。如果在一个进程集合中的每个进程都在等待只能由该集合中的其它一个进程才能引发的事件,则称一组进程或系统此时发生了死锁(教材268页)。饥饿是指一个进程由于其它进程总是优先于它而被无限期拖延(教材214页)。29叙述产生死锁的必要条件。(1)互斥条件(mutual exclusion):进程应互斥使用资源,任一时刻一个资源仅为一个进程独占,若另一个进程请求一个已被占用的资源时,它被置成等待状态,直到占用者释放资源。(2)占有和等待条件(mutual exclusion):进程应互斥使用资源,任一时刻一个资源仅为一个进程独占
18、,若另一个进程请求一个已经被占用的资源时,它被置成等待状态,直到占用者释放资源。(3)不剥夺条件(no preemption):任一进程不能从另一进程那里抢夺资源,即已被占用的资源,只能由占用进程自己来释放。(4)循环等待条件(circular wait):存在一个循环等待链,其中,每一个进程分别等待它前一个进程所持有的资源,造成永远等待。二应用题2.设有n个进程共享一个互斥段,如果:(1)每次只允许一个进程进入互斥段;(2)每次最多允许m个进程(mn)同时进入互斥段。试问:所采用的信号量初值是否相同?信号量值的变化范围如何?所采用的互斥信号量初值不同。1)互斥信号量初值为1,变化范围为 -n
19、+1 ,1。当没有进程进入互斥段时,信号量值为1;当有1个进程进入互斥段但没有进程等待进入互斥段时,信号量值为0;当有1个进程进入互斥段且有一个进程等待进入互斥段时,信号量值为-1;最多可能有n-1个进程等待进入互斥段,故此时信号量的值应为-(n-1)也就是-n+1。2)互斥信号量初值为m,变化范围为 -n+m ,m。当没有进程进入互斥段时,信号量值为m;当有1个进程进入互斥段但没有进程等待进入互斥段时,信号量值为m-1;当有m个进程进入互斥段且没有一个进程等待进入互斥段时,信号量值为0;当有m个进程进入互斥段且有一个进程等待进入互斥段时,信号量值为-1;最多可能有n-m个进程等待进入互斥段,
20、故此时信号量的值应为-(n-m)也就是-n+m。4.有一阅览室,读者进入时必须先在一张登记表上登记,该表为每一座位列出一个表目,包括座号、姓名,读者离开时要注销登记信息;假如阅览室共有100个座位。试用:1)信号量和P、V操作;2)管程,来实现用户进程的同步算法。1) 使用信号量和P、V操作:var A: array1.100 of Rec; Rec=record number:integer; name:string; end;i:integer;for i:=1 to 100 do Ai.number:=i; Ai.name:=null;mutex,seatcount:semaphore;
21、/semaphore中文含义:信号量mutex:=1;seatcount:=100;cobegin process readeri(var readername:string)(i=1,2,) P(seatcount); P(mutex); for i:=1 to 100 do i+; if Ai.name=null then Ai.name:=readername;/*读者登记*/ /必须采用这种方式,因为该空位是随机产生的。我们无法知道哪个 /读者何时离开。 V(mutex) 进入阅览室,座位号i,坐下读书; P(mutex);/读书完毕,需要退场 Ai name:=null; V(mut
22、ex); V(seatcount); 离开阅览室; coend.2) 使用管程操作:TYPE readbook=monitorVAR R:condition;i,seatcount:integer;name:array1.100 of string;DEFINE readercome,readerleave;USE check,wait,signal,release;procedure readercome(readername)begin check(IM); if seatcount100 wait(R,IM) seatcount:=seatcount+1; for i=1 to 100
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统第三版孙钟秀主编 课后习题参考答案汇总 操作系统 第三 孙钟秀 主编 课后 习题 参考答案 汇总
链接地址:https://www.31doc.com/p-5185767.html