第二章习题答案一_第1页
第二章习题答案一_第2页
第二章习题答案一_第3页
第二章习题答案一_第4页
第二章习题答案一_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第二章作业(P81):第8题:说明进程在三种基本状态(就绪、运行、阻塞)之间转换的典型原因: abcdef运行就绪阻塞交互用户作业后备队列完成作业调度命令解释进程3 32a: 交互用户发出的命令,由命令解释进程立即创建进程投入就绪队列;进程运行中利用系统调用创建的进程投入就绪队列 。 f:(1)有作业进入后备队列。(2)或系统某资源变得可用时 作业调度进程被唤醒,为满足资源要求的作业创建进程。作业调度进程平时处于阻塞状态。 b:引起进程调度的事件: (1) 进程完成。 (2)进程异常终止。 (3)运行进程阻塞。 (4)CPU被剥夺。c:正在执行进程的CPU被剥夺: () 时间片到剥夺。(2)

2、就绪队列中优先级高的进程去剥夺运行进程的CPU。3d:等待事件(进程阻塞): ()等待I/O完成。()进程无事可做。(设备驱动进程、消息通信中的接受进程)。() 申请资源(buffer、设备)得不到满足。(4 ) 等待其它进程的数据或信号量wait操作e: 事件发生,由发现事件发生的进程(正在执行的进程)唤醒相关阻塞进程。 4第10题:在进程切换时,所要保存的CPU状态信息有哪些?()等待I/O完成。()进程无事可做。(设备驱动进程、消息通信中的接受进程)。() 申请资源(buffer、设备)得不到满足。(4 ) 等待其它进程的数据或信号量wait操作PC、PSW、SP、通用寄存器内容。第15

3、题:试说明引起进程阻塞或唤醒的事件是什么?5signal(mutex);C Critical S Sectionremainder sectionwait(mutex);实现互斥: 为临界资源设置一个互斥(公用)信号量mutex(MUTual Exclusion),其初值为1; 在每个进程中将CS置于wait(mutex)和signal(mutex)原语之间;第21题:如何利用信号量机制来实现多个进程对临界资源的互斥访问?举例说明。举例说明:变量、队列、表格、登记表、 6第22题:利用记录式信号量机制描述前趋关系S1S2S3S4S5S6abcdefgBegin S1; Signal(a); S

4、ignal(b); EndBegin wait(a); S2; Signal(c); Signal(d); EndBegin wait(b); S3; Signal(e) ; End各信号量的初值全为0 7第25题:我们为某临界资源设置一把锁W,当W=1时表示关锁;W=0表示锁已打开。写出开关锁原语,并利用它们去实现互斥。1) wq(w) 表示等待该资源的队列(阻塞队列)。2) 执行进程调用阻塞原语block(wq(w),把自己插入到wq(w)队列。3) 执行进程调用唤醒原语wakeup(wq(w),把wq(w)队列中的一个进程唤醒。用类Pascal语言去定义具有“让权等待”功能的开/关锁原语

5、:unlock(w)/lock(w)。约定:81)原语答案:Procedure Lock(w):beginif w=1 then block(wq(w) else w:=1;EndendProcedure Unlock(w):beginif wq(w) then wakeup(wq(w);w:=0;9Var w:integer :=0;Begin parbegin p1: begin lock(w);cs unlock(w); end p2: begin lock(w);cs unlock(w); end Parendend2)实现互斥实现互斥10 非让权方式开/关锁原语:关锁原语lock(w

6、):Begin If w=1 then do skip else w:=1; end开锁原语unlock(w): Begin w: = 0; end11第28题:在测量控制系统中,数据采集任务把所采集的数据送入一个单缓冲区;计算任务从该缓冲区取数据进行计算。写出利用信号量机制实现这两个任务共享单缓冲的同步算法。分析:任务就是进程数据采集进程collector把采集的数据送单缓冲buffer计算进程computer从buffer中取数据处理是单缓冲下生产者/消费者问题用wait、signal实现二者之间的同步。S1为数据采集进程collector的私用信号量2为计算进程computer的私用信号

7、量12Var s1,s2 :semaphore :=1,0;BeginParbegin Collector: begin Repeat Collect datas to x1; wait(s1); Add x1 to buffer; signal(s2); Until false EndComputer: begin Repeat wait(s2); Take datas of buffer to x2; signal(s1); Compute datas of x2; Until false EndParendEnd13第29题:画图说明管程有哪几部分组成,为什么要引入条件变量?管程有四部分

8、组成:管程名称 数据结构说明:一组局部于管程的控制变量一组操作过程(对控制变量和临界资源进行操作 )这些原语是互斥的,任一时刻只允许一个进程去调用,其他需要访问的进程必须等待管程的互斥权。 初始化代码:对控制变量进行初始化的代码14过程n 过程1初始化程序条件变量局部数据管理部分条件队列条件队列1 1条件队列条件队列n n紧急队列紧急队列入口等待入口等待队列队列队列部分退出由于管程是编程的构件,入口的互斥由编译器负责,无需程序员按排。15 当进入管程的进程因资源被占用等原因不能继续运行时,必须使其等待(在相关的条件变量上等待),而不能简单的使用阻塞原语(block)、和唤醒原语(wakeup)

9、。 例如:生产者/消费者问题中,生产者进入管程内部,发现缓冲区已满,如果试图靠调用block阻塞自己,等待消费者唤醒,这是不可能实现的:由于管程入口在生产者进入时已被锁定,因此消费者不可能进入管程。 需要一种特殊变量(条件变量),当进程对其进行等待操作时释放入口、自己再阻塞。16C.wait :紧急队列非空, 则唤醒第一个等待进程执行此操作的进程投入C链尾部紧急队列空,则释放互斥权, 开放管程入口执行此操作的进程投入紧急等待队列的尾部或或退出管程C.signal:如果C队列为空,则相当于空操作执行此操作的进程继续不空唤醒C队列第一个等待者条件变量C17低级通信:通信能力弱 OS负担轻:仅仅提供

10、缓冲区的管理用户编程复杂: 定义缓冲区的数据结构 定义信号量 解决互斥与同步问题第33题:试比较进程间的低级与高级通信工具。高级通信:通信能力强OS负担重: 提供缓冲区的管理、互斥、同步 提供用户使用的通信命令或原语用户编程简单:18轻型实体:TCB、一组寄存器和栈调度和分派单位:并发执行: 同一进程内各线程并发执行 不同进程间各线程并发执行 各线程共享所在进程的资源:工作在进程的地址空间第37题:试说明线程具有哪些属性。19 私用信号量:用于同一进程内各线程间的通信,OS不知道它的存在。公用信号量:用于不同进程间线程的通信,OS知道它的存在、实施对公用信号量的管理。第40题:实现线程同步的私用信号量与公用信号量之间有何差异?20把线程库(线程包、运行时系统)完全放在用户空间,内核对线程库一无所知,内核只知道它管理的是一个进程(即单线程的进程);在用户空间一个进程可有多个线程在运行,共享所在进程的资源和进程分得的时间片。因此,在不支

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论