




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统作业(一),作业#1,进程切换时需要保存哪些现场信息?请尽量考虑完全。,答案:进程切换过程是进程上下文的切换过程,进程上下文是指进程运行的物理环境。包括地址映寄存器、通用寄存器、浮点寄存器、SP、PSW(程序状态字)、PC(指令计数器)、以及打开文件表等。,2.由核心返回目态程序时,进程的PSW和PC为何必须用一条机器指令同时恢复?,答案:中断向量中程序状态字PSW和指令计数器PC的内容必须由一条指令同时恢复,这样才能保证系统状态由管态转到目态的同时,控制转到上升进程的断点处继续执行。如果不同时恢复,则只能1.先恢复PSW再恢复PC,在恢复PSW后已经转到目态,操作系统恢复PC的使命无法完成2.先恢复PC再恢复PSW,PC改变后转到操作系统另外区域(因为PSW仍在系统状态),PSW无法恢复,作业#2,Considerthefollowingprogram:varblocked:array0.1ofboolean;turn:0.1;procedureP(id:integer);beginrepeatblockedid:=true;whileturniddobeginwhileblocked1-iddonothingturn:=idend;blockedid:=false;untilfalseend;,beginblocked0:=false;blocked1:=false;turn:=0;parbeginP(0);P(1)parend;end.ThisisasoftwaresolutiontothemutualexclusionproblemproposedbyHyman.Findacounterexampletodemonstratethatthissolutionisincorrect.ItisinterestingtonotethateventheCommunicationoftheACMwasfooledonthisone.,beginrepeatblockedid:=true;whileturniddobeginwhileblocked1-iddonothing(1)turn:=idend;若turn=1,blocked0:=true,blocked1:=false,P(0),P(1)并发执行,P(0)先推进,当P(0)执行到whileblocked1-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的一个整数。,intlp5;(initialvalueis1)intcount=5;intpN;(initialvalueis-1)semaphoreqN;(initialvalueis0)semaphoremutex=1;,intrequire(intpid,intpri);p(mutex);L:if(count=0)pripid=pri;v(mutex)P(qpid);gotoL;count-;inti;for(i=0;i5;i+)if(lpi!=0)lpi=0;return(i);V(mutex);,intreturn(intprnt)P(mutex);lpprnt=1;count+;intmax,i,j;max=-1;for(j=0;jmax)max=pj;i=j;if(max=-1)V(mutex);elsepi=-1;v(qi;,2.Hoare管程实现SCAN算法,Procedureupscan;VarI:0.200;BeginI:=headpos;flag:=true;While(I=0ThenBegincountI:=countI-1;signal(cylinderI)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_count0=acceptfinish_readdoread_count:=read_count-1;endfinish_read;or,读者-写者问题,whenwrite_count=0=acceptstart_writedowhileread_count0doacceptfinish_readdoread_count:=read_count-1;endfinish_readendwhileendstart_write;write_count:=write_count+1;orwhenwrite_count0=acceptfinish_writedowrite_count:=wri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- (2025年标准)合同绘画协议书
- 2025年制盐行业需求分析及创新策略研究报告
- 2025广西南宁市良庆区农业农村局公开招聘工作人员4人考试备考题库及答案解析
- 2025福建漳州土地开发服务集团有限公司正式工作人员招聘3人备考题库及答案解析
- (2025年标准)农村分书协议书
- (2025年标准)违约行为协议书
- 2025广西柳州市事业单位公开招聘中高级 (急需紧缺)人才76人(第三批)考试备考试题及答案解析
- 2025年联合销售代理协议书
- 黑龙江省牡东部地区四校联考2025年生物高三第一学期期末联考试题
- 2025江苏苏州工业园区方洲小学行政辅助人员招聘1人备考题库及答案解析
- 工程造价培训用课件
- 储能消防培训课件
- 混凝土浇筑作业平台承重验算
- JG/T 220-2016铜铝复合柱翼型散热器
- 美乐家退会员终止协议书
- 情侣间恋爱合同协议书
- 会务服务技能试题及答案
- 城市轨道交通施工机械设备管理措施
- 《2023 AHA心肺复苏与心血管急救指南》解读
- 2025年有限空间作业安全考试题库:有限空间作业安全教育与培训试题
- 胰岛素皮下注射团体标准解读
评论
0/150
提交评论