计算机操作系统精品教学:第三章进程管理.pptVIP

计算机操作系统精品教学:第三章进程管理.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3.2.2 进程控制块 1.进程的组成:程序、数据集、PCB 2.进程控制块作用 3. PCB信息 例3-2:PCB的C语言描述 struct pentry{ int pid; int pprio; char pstate; int pname; int msg; int paddr; int pregs[SIZE]; /现场保护区大小 ….. }pcb[]; 4.PCB组织方式 操作系统的控制机构控制进程的状态变换。进程的控制机构首先表现在建立、撤消、解挂、挂起等方面。通常系统提供了称作原语的具有特定功能的程序段来完成进程的建立、撤消进程以及完成进程各状态间的转换。 原语:机器语言的扩充,由若干条机器指令组成的具有特定功能的程序段。 原语与一般系统调用功能的区别:在系统态下执行的,执行其间不可被打断。常用进程控制原语有:(用户以系统调用的方式使用这些原语) 创建原语 撤消原语 阻塞原语 唤醒原语 3.3 进程的控制 3.4.1 互斥 1.临界资源 2.临界区 例3-3:假设在一飞机售票系统中,某一时刻数据库中关于某一航班的机票数量counter=5。某一窗口的售票程序执行的 一条操作语句是counter=counter-1;而另一窗口退票程序执行的一条操作语句是counter=counter+1。 用高级语言书写的语句counter=counter+1和 counter=counter-1所对应的的汇编语言指令如下: ①LOAD A, conuter ;  ①LOAD B, conuter ; ②ADD A, 1;         ②SUB B, 1; ③STORE A, counter ;  ③STORE B, counter ; 3.互斥 4.互斥的执行准则 3.4  进程同步 进程间两种制约关系:接间制约与直接制约 3.4.2 进程的同步 例3-4: 在控制测量系统中,数据采集任务反复把所采集的数据送入一个单缓冲区;计算任务不断从该单缓冲区中取出数据进行计算。 var buf;      int flag=0;        collection( )  { while (TRUE) { 采集数据; while(flag==1);    将采集的数据放入buffer; flag=1 } } calculate ( )    { while(TRUE) {    while(flag==0);    从buf中取出数据;   flag=0; 计算处理; } } 3.4.3 同步机构 1.加锁原语LOCK(ω)定义:(整型信号量,wait(s)) ①测试ω是否为1;②若ω=1,则0→ω;③若ω=0,则返回到①。  开锁原语UNLOCK(ω)定义(signal(s))   1→ω。   临界区的互斥控制:进入临界区的进程先要执行加锁原语,退出时要执行开锁原语。 描述: pro{ … LOCK(key(s)) /key(s)表示类名为S的临界区的状态 临界区 UNLOCK(key(s))     …   } 2.信号量和P、V原语 (1)信号量定义 ①S是一个整型变量而且初值非负。 ②对信号量仅能实施P(S)操作和V(S)操作,也只有这两种操作才能改变S的值。 ③对每一个信号量,都对应有一个(空或空非)的等待队列,队列中的进程处于阻塞状态。  (2)P(S)原语(wait(s)) ①S减l; ②若S.value减1后仍大于或等于零,则进程继续执行; ③若S减l后小于零,则该进程被阻塞后并进入该信号相对应的等待队列中,然后转进程调度。Block(s.l)  (3)V原语(signal(s)) ①S.value加1; ②若相加结果大于零,进程继续执行;   ③若相加结果小于或等于零,则从该信号的等待队列中唤醒一等待进程,然后再返回原进程继续执行或转进程调度。Wakeup(s.l) Type semaphore=record value: integer; L:

您可能关注的文档

文档评论(0)

1243595614 + 关注
实名认证
文档贡献者

文档有任何问题,请私信留言,会第一时间解决。

版权声明书
用户编号:7043023136000000

1亿VIP精品文档

相关文档