ImageVerifierCode 换一换
格式:PPTX , 页数:20 ,大小:89.68KB ,
资源ID:8167809      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/8167809.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(进程管理实验要点.pptx)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

进程管理实验要点.pptx

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,#,支持多个进程并发运行的简单进程管理模拟系统,本系统的同步机构采用信号量上的,P,、,V,操作的机制;控制机构包括:,(,1),阻塞和唤醒操作;,(,2),时间片中断处理程序模拟时间片中断;,(,3),进程调度程序负责为各进程分配处理机。,系统中涉及了,3,个并发进程。它们之间的关系是:,(,1)3,个进程需要互斥使用临界资源,S2,。,(,2),进程,1,和进程,2,又需互斥使用临界资源,S1,本系统在运行过程中随机打印出各进程的状态变换过程,系统的调度过程及公共变量的变化情况。,题目,系统为进程设置了,5

2、种运行状态:,e,执行态;,r,高就绪态;,t,低就绪态(执行进程因时间片到限而转入);,w,等待态;,c,完成态。各进程的初始状态均设置为,r.,系统分时执行各进程,并规定,3,个进程的执行概率均为,33,。通过产生随机数,x,来模拟时间片。当进程,process1,访问随机数,x,时,若,x=0.33,;当进程,process2,访问,x,时,若,x=0.66;,当进程,process3,访问,x,时,若,x0.66,,则分别认为各进程的执行时间片到限,产生“时间片中断”而转入低就绪态,t,。,基本思路,进程调度算法采用剥夺式最高优先数法。各进程的优先数通过键盘输入予以静态设置。调度程序

3、每次总是选择优先数最小(优先权最高)的就绪进程投入执行。先从,r,状态进程中选择,再从,t,状态进程中选择。当现行进程唤醒某个等待进程,且被唤醒进程的优先数小于现行进程时,则剥夺现行进程的执行权。,各进程在使用临界资源,S1,和,S2,时,通过调用信号量,sem1,和,sem2,上的,P,、,V,操作来实现同步。阻塞和唤醒操作负责完成从进程的执行态到等待态以及从等待态到就绪态的转换。,系统启动后,在完成必要的系统初始化后便执行进程调度程序。当执行进程因,“,时间片中断,”,,或被排斥使用临界资源,或唤醒某个进程时,立即进行进程调度。当,3,个进程都处于完成状态后,系统退出运行。,基本思路,(,

4、1,)每个进程有一个进程控制块,PCB,,内容包括:,id,进程标识号,,id,0,,,1,,,2,;,status,进程状态,可为,e,,,r,,,t,,,w,,,c,;,priority,进程优先数;,nextwr,等待链指针,指示在同一信号量上等待的下一个进程的标识号。,(,2,)信号量,semaphore,,对应于临界资源,S1,和,S2,分别有,sem1,和,sem2,,均为互斥信号量,内容包括:,value,信号量,初值为,1,;,firstwr,等待链首指针,指示在同一信号量上等待的下一个进程的标识数。,数据结构,(,3,)现场保留区,用数组,savearea34,表示。即每个进

5、程都有一个大小为,4,个单元的保留区,用来保存被“中断”时的现场信息,如通用寄存器的内容和断点地址等。,此外,系统中还用到下列主要全程变量:,exe,执行进程指针,其值为进程标识号;,i,用来模拟一个通用寄存器;,addr,用来模拟程序计数器;,s1,s2,两个公共变量,用作共享临界资源,数据结构,const MAXPRI=100;NIL=-1;,TYPE procp=record,PCB,类型,id:integer;status:char;,进程号,进程状态,nextwr:integer;mess:message;,等待号,消息队指针,inum:integer;addr:char;,运行次数

6、返回地址,priority:integer;end;,优先数,message=messagetp;,指向消息块指针类型,messagetp=record,消息块类型,(,信息,指针,发送者号,),num:integer;next:message;pro:integer;end;,semaphorel=record,信号量类型,(,信号量,等待队头号,),value:integer;firstwr:integer;end;,VAR,pcb:array1.3 of procb;,PCB,表,sem:array1.2 of semaphorel;,信号量表,addr:char;i,seed,exe

7、integer;,当前进程地址,运行次数,随机变量,当前运行进程号,program processc(input,output);,var q,p:message;,工作指针,begin new(p);p.num:=snum;,申请消息块,写入缓冲,p.next:=NIL;p.pro:=sender;,下一指针置空,置发送者,writeln(send message to process,receiver);writeln(process,sender,already run,snum,times);q:=pcbreceiver.mess;,q,指向接收者消息等待队列首,if(q=NIL)t

8、hen pcbreceiver.mess:=p,q,空则,p,插入队首,else begin while(q.nextNIL)do q:=q.next;,q,移到队尾,q.next:=p;,将,p,链接到队尾,end;end;,proc send(sender,receiver,snum:integer);,发送,var p,q:message;,工作指针,begin,p:=pcbreceiver.mess;,p,指向接收者消息等待队列首,while(pNIL)do,begin,显示发送者和接收者信息,writeln(receive message from process,p.pro);,w

9、riteln(process,p.pro,is already run,p.num,times);,q=p;,陆续将接收过的的消息块删除并释放,p:=p.next;,dispose(q),end;,pcbreceiver.mess:=NIL;,接收完后消息等待队列置空,end;,proce receive(receiver:integer);,接收,var j:integer;begin for j:=1 to 3 do,初始化各进程控制块,begin,pcbj.id:=j;pcbj.status:=r;,进程号,进程状态,pcbj.nextwr:=NIL;pcbj.mess:=NIL;,等待

10、消息指针,write(process,j,priority?);,readln(pcbj.priority);,读入优先数,pcbj.inum:=0;pcbj.addr:=0;,运行次数,地址,end;,sem1.value:=1;sem1.firstwr:=NIL;,对信号量初始化,sem2.value:=1;sem2.firstwr:=NIL;exe:=NIL;,当前执行进程号置为空,end;,proce init;,初始化,func random:real;,proc eexit(n:integer);,func random:real;,产生,01,之间的随机数,var m:inte

11、ger;begin,seed,为,integer,型,实际值在,-32768,到,32767,之间,if seed0 then m:=-seed else m:=-seed;seed:=(,25171,*seed+,13841,)mod 65536;random:=m/32767.0 end;,proce eexit(n:integer);,退出,begin pcbn.status:=c;,本进程置为完成态,writeln(process,n,is completed!);exe:=NIL;,当前执行进程号置空,end;,func find:integer;,选进程,var j,pd,w:in

12、teger;begin pd:=NIL;W:=MAXPRI;for j:=1 to 3 do,先在高就绪态中找优先数最小的进程,if pcbj.status=r then,if pcbj.priorityw then begin w:=pcbj.priority;pd:=j end;,if pd=NIL then for j:=1 to 3 do,再在低就绪态中找优先数最小的进程,if pcbj.status=t then,if pcbj.priorityw then,begin w:=pcbj.priority;pd:=j end;,find:=pd,返回进程号,end;,func sche

13、duler:integer;,调度,var pd:integer;begin pd:=find;,找优先进程,if(pdNIL)or(exeNIL)then,begin if pdNIL then,若有就绪进程则,if exe=NIL then,若无当前执行进程则,begin pcbpd.status:=e;exe:=pd;,新进程置执行态,writeln(process,exe,is executing);end else if pcbpd.priority=0 then p:=false,有资源不等待,else begin block(se);,阻塞到,se,等待队列,pcbexe.inu

14、m:=i;pcbexe.addr:=ad;,保护现场,exe:=NIL;p:=true,执行进程置空,等待标志置真,end;end;,function v(se:integer;ad:char):boolean;,signal,操作,begin semse.value:=semse.value+1;,信号量加,1,if semse.value0 then v:=false,无等待不重新调度,else begin wakeup(se);,有等待唤醒,se,等待队列的进程,pcbexe.inum:=i;pcbexe.addr:=ad;,保护现场,v:=true,要重新调度,end;end;,fun

15、ction timeint(ad:char):boolean;,模拟时间片中断,var x:real;begin x:=rendom;,x,为,01,之间的随机数,if,(x=0.67)and(exe=3),or(x0.33)and(x0.67)and(exe=2),then timeint:=false,若在各自的时间片不产生中断,else begin,否则产生时间片中断,pcbexe.inum:=i;pcbexe.addr:=ad;,保护现场,pcbexe.status:=t;,置为低就绪态,writeln(Times silce interrupt.);writeln(process,e

16、xe,enter into ready);exe:=NIL;,执行进程置空,timeint:=true,中断标志置真,end;end;,procedure process1(var s1,s2:integer);,模拟并发进程,1,label a1,b1,c1,d1,e1,f1,stop1;,begin if addr=a then goto,a1,;if addr=b then goto,b1,;if addr=c then goto,c1,;if addr=d then goto,d1,;if addr=e then goto,e1,;if addr=f then goto,f1,;,wh

17、ile(i=5)then eexit(1);,5,次循环后本进程结束,end;,writeln(process1 calls p on sem1);,if p(1,a)then goto stop1,;,对信号量,1,进行,P,操作返回,a,地址,a1:,writeln(process1 is execution on its cretical section 1.);,入临界区,if timeint(b)then goto stop1,;,若时间片到则重新调度,b1:,s1:=s1+1;writeln(s1=,s1);,s1,是临界资源不是信号量,writeln(process1 calls

18、 v on sem1 and quit cretical section 1);,if v(1,c)then goto stop1,;,对信号量,1,进行,V,操作,出临界区,c1:,writeln(process1 calls p on sem2);,if p(2,d)then goto stop1,;,对信号量,2,进行,P,操作返回,d,地址,d1:,writeln(process1 is execution on its cretical section 2.);,if timeint(e)then goto,stop1,;,e1:,s2:=s2+1;writeln(s2=,s2);,

19、s2,是临界资源不是信号量,writeln(process1 calls v on sem1 and quit cretical section 2.);,if v(2,f)then goto,stop1,;,对信号量,2,进行,V,操作,出临界区,f1,:writeln(process1 cyclen count=,i+1);i:=i+1;send(1,2,i);send(1,3,i);readln;,循环次数加,1,发消息,procedure process2(var s1,s2:integer);,模拟并发进程,2,label a2,b2,c2,d2,e2,f2,stop2;begin,

20、if addr=a then goto,a2,;if addr=b then goto,b2,;if addr=c then goto,c2,;if addr=d then goto,d2,;if addr=e then goto,e2,;if addr=f then goto,f2,;while(i=5)eexit(2);end;,procedure process3(var s1,s2:integer);,模拟并发进程,3,label a3,b3,c3,stop3;,begin,if addr=a then goto a3,;,if addr=b then goto b3;,if addr

21、c then goto c3,;,while(i=5)eexit(3);end;,procedure main;,主程序,label 100;var k,s1,s2:integer;,s1,s2,是临界资源公用计数器,begin writeln(C.O.S.Example one);writeln;init;s1:=0;s2:=0;writeln(s1=,s1,s2=,s2);writeln(p1,p2,p3 are all in ready!);,100:,k:=scheduler;,调用调度程序返回选中进程号,if kNIL then case k of 1:begin process1(s1,s2);goto,100,;end;2:begin process2(s1,s2);goto,100,;end;3:begin process3(s1,s2);goto,100,;end;end;writeln;writeln(s1=,s1,s2=,s2);writeln;writeln(COMPLETED);readln;end;,

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服