吉林大学操作系统 作业解析1ppt课件_第1页
吉林大学操作系统 作业解析1ppt课件_第2页
吉林大学操作系统 作业解析1ppt课件_第3页
吉林大学操作系统 作业解析1ppt课件_第4页
吉林大学操作系统 作业解析1ppt课件_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

操作系统作业 一 作业 1 进程切换时需要保存哪些现场信息 请尽量考虑完全 答案 进程切换过程是进程上下文的切换过程 进程上下文是指进程运行的物理环境 包括地址映寄存器 通用寄存器 浮点寄存器 SP PSW 程序状态字 PC 指令计数器 以及打开文件表等 2 由核心返回目态程序时 进程的PSW和PC为何必须用一条机器指令同时恢复 答案 中断向量中程序状态字PSW和指令计数器PC的内容必须由一条指令同时恢复 这样才能保证系统状态由管态转到目态的同时 控制转到上升进程的断点处继续执行 如果不同时恢复 则只能1 先恢复PSW再恢复PC 在恢复PSW后已经转到目态 操作系统恢复PC的使命无法完成2 先恢复PC再恢复PSW PC改变后转到操作系统另外区域 因为PSW仍在系统状态 PSW无法恢复 作业 2 Considerthefollowingprogram varblocked array 0 1 ofboolean turn 0 1 procedureP id integer beginrepeatblocked id true whileturniddobeginwhileblocked 1 id do nothing turn idend blocked id false untilfalseend beginblocked 0 false blocked 1 false turn 0 parbeginP 0 P 1 parend end ThisisasoftwaresolutiontothemutualexclusionproblemproposedbyHyman Findacounterexampletodemonstratethatthissolutionisincorrect ItisinterestingtonotethateventheCommunicationoftheACMwasfooledonthisone beginrepeatblocked id true whileturniddobeginwhileblocked 1 id do nothing 1 turn idend 若turn 1 blocked 0 true blocked 1 false P 0 P 1 并发执行 P 0 先推进 当P 0 执行到whileblocked 1 id 时不满足条件跳出循环在 1 处让出处理机P 1 推进 P 1 执行whileturnid而进入临界区后让出处理机 P 0 继续也进入临界区 不满足正确性 作业 3 关于读者写者问题改进算法semaphorer w w mutex s 1 intcount 0 写者活动 P s P r w w 写操作 V r w w V s 读者活动 P s P mutex count if count 1 p r w w V mutex V s 读操作 P mutex count if count 0 v r w w V mutex 写者优先算法intreadcount writecount 0 semaphorersem wsem 1 Semaphorex y z 1 Reader writer p z 1p y p rsem 2writecount p x if writecount 1 p rsem 4readcount v y if readcount 1 p wsem p wsem 5v x v rsem 3v wsem v z p y writecount p x if writecount 0 readcount v rsem 6if readcount 0 v wsem 7v y v x 作业 4 设系统有5台类型相同的打印机 依次编号为1 5 又设系统有n个使用打印机的进程 使用前申请 使用后释放 每个进程都有一个进程标识 用于区分不同的进程 每个进程有一个优先数 不同进程的优先数各异 当有多个进程同时申请打印机时 按照进程优先数由高到低的次序实施分配 试用信号量和PV操作实现对打印机资源的管理 即要求编写如下函数和过程 1 函数require pid pri 申请一台打印机 参数pid为进程标识 其值为1 n之间的一个整数 pri为进程优先数 其值为正整数 函数返回值为所申请到的打印机的编号 其值为1 5的一个整数 2 过程return prnt 释放一台打印机 参数prnt为所释放的打印机的编号 其值为1 5的一个整数 intlp 5 initialvalueis1 intcount 5 intp N initialvalueis 1 semaphoreq N initialvalueis0 semaphoremutex 1 intrequire intpid intpri p mutex L if count 0 pri pid pri v mutex P q pid gotoL count inti for i 0 i 5 i if lp i 0 lp i 0 return i V mutex intreturn intprnt P mutex lp prnt 1 count intmax i j max 1 for j 0 jmax max p j i j if max 1 V mutex else p i 1 v q i 2 Hoare管程实现SCAN算法 Procedureupscan VarI 0 200 BeginI headpos flag true While I 199 and count I 0 DoI I 1 IfI 199ThenBegincount I count I 1 signal cylinder I flag false EndEnd Proceduredownscan VarI 1 199 BeginI headpos flag true While I 0 and count I 0 DoI I 1 IfI 0ThenBegincount I count I 1 signal cylinder I flag false EndEnd Procedurerelease Beginbusy false Ifdirection upThenBeginupscan ifflag truethendownscanEndElseBegindownscan ifflag truethenupscanEndEnd Hansen管程中signal操作在唤醒条件队列的一个进程后执行此操作的进程离开管程 在本例中signal操作在release中的upscan和downscan中执行 如下 ProcedurereleaseBeginIfdirection upThenBeginupscan downscanEndElseBegindownscan upscanEndEnd 当在upscan或downscan中执行signal操作时 进程就离开了管城即结束了release 不会去执行upscan或downscan后面的downscan或upscan 但是在Hoare管程中当进程执行signal操作时 不仅会唤醒条件队列中的一个进程 同时执行此操作的进程并不离开管程而是在管程中的紧急队列排队 若还沿用Hanson管程的代码会出现以下情况 若进程在upscan中执行signal操作后进入紧急队列 当进程在紧急队列被唤醒后就会继续执行release中的后续代码即执行downscan 这不符合程序的语义 一个进程一次只能释放一个资源同时也就只能唤醒一个进程 若进程继续执行downscan会执行下一个唤醒动作 读者 写者问题 写者优先 1 用Ada语言中的会合解决读者 写者问题 要求写者优先 即编写一个任务 其中有如下四个入口 start read finish read start write finish write 提示 可以使用嵌套的accept语句 读者 写者问题 Taskreaders writersisentrystart read entryfinish read entrystart write entryfinish write Endreaders writes Taskbodyreaders writersis Varread count write count integer beginread count 0 write count 0 读者 写者问题 Loopselectwhenwrite count 0 acceptstart readdoread count read count 1 endstart readorwhenread count 0 acceptfinish readdoread count read count 1 endfinish read or 读者 写者问题 whenwrite count 0 acceptstart writedowhileread count 0doacceptfinish readdoread count read count 1 endfinish readendwhileendstart write write count write count 1 orwhenwrite count 0 acceptfinish writedowrite count write count 1 endfinish write ends

温馨提示

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

评论

0/150

提交评论