HYZOS进程管理.ppt

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
HYZOS进程管理.ppt

北京交通大学计算机学院何永忠 本节主要内容 重点:并发进程的制约 进程并发执行带来的难题:失去封闭性和可再现性,是并发编程的难点 重点难点:解决方法 临界资源 临界区 第二章 进程管理 2.1 进程的基本概念 2.2 进程控制 2.3 进程同步 2.4 经典进程同步问题 2.5 管程 2.6 进程通信 2.7 线程 2.3 进程同步 2.3.1 并发进程间制约关系 2.3.2 临界资源与临界区 2.3.3 进程同步机制准则 2.3.4 信号量机制 2.3.5 信号量机制应用基础 并发进程间制约关系 资源共享关系?间接制约(竞争关系) 多个进程彼此无关,独立完成自己的任务 必然会共享I/O设备等资源,导致对资源的争夺 系统须协调诸进程对资源的(互斥)访问 相互合作关系?直接制约(合作关系) 多个进程共同合作完成一个任务 系统应保证相互合作的诸进程在执行次序上的协调(同步)。 程序并发执行错误的举例 共享初值为5的变量N的两进程(线程)A、B A: N:=N+1 B: N:=N-1 两个进程并发执行的结果是什么? 先A后B: N=5 先B后A: N=5 还有其他可能的执行结果吗? 并发性 计算机中执行的是机器代码,并发最小粒度是机器指令! 程序并发执行不可再现性举例 程序A: N=N+1 0040102F mov eax,dword ptr [ebp-4] add eax,1 mov dword ptr [ebp-4],eax 程序B: N=N-1 0040102F mov eax,dword ptr [ebp-4] sub eax,1 mov dword ptr [ebp-4],eax 程序并发执行不可再现性举例 A1.0040102F mov eax,dword ptr [ebp-4] A2 add eax,1 A3 mov dword ptr [ebp-4],eax B1.0040102F mov eax,dword ptr [ebp-4] B2 sub eax,1 B3 mov dword ptr [ebp-4],eax 程序并发执行不可再现性举例 前提条件 1、同一个进程里面的代码顺序执行 例如:A2 A1 A3 B1 B2 B3 错误! 2、引入了进程后,进程切换时保持并恢复了现场(上下文切换),从而保证一个进程中断后下次执行操作系统已经恢复为原来寄存器的值。 程序并发执行不可再现性举例 A1.0040102F mov eax,dword ptr [ebp-4] B1.0040102F mov eax,dword ptr [ebp-4] A2 add eax,1 A3 mov dword ptr [ebp-4],eax B2 sub eax,1 B3 mov dword ptr [ebp-4],eax 结果: N=4 程序并发执行不可再现性举例 B1.0040102F mov eax,dword ptr [ebp-4] A1.0040102F mov eax,dword ptr [ebp-4] B2 sub eax,1 A2 add eax,1 B3 mov dword ptr [ebp-4],eax A3 mov dword ptr [ebp-4],eax 并发执行序列的总数 程序1:M条指令 程序2:N条指令 并发执行序列数目: (M+N)!/(M!*N!) C NM+N 2.3 进程同步 2.3.1 并发进程间制约关系 2.3.2 临界资源与临界区 2.3.3 进程同步机制准则 2.3.4 信号量机制 2.3.5 信号量机制应用基础 临界资源 一段时间内只允许一个进程访问的资源 打印机 许多物理设备、变量及表格 举例 两个进程A、B共享变量N,M(初值均为5) A: P=1;N:=N+1;M=N+1;Q=2; B: X=1;N:=N-1;M=N-1;Y=2; M,N值就是临界资源,只要能保证互斥的访问,就不会出现错误的结果 如何保证互斥的访问临界资源? 临界区:每个进程中访问临界资源的那段代码称为临界区 A: P=1;[N:=N+1;M=N+1];Q

文档评论(0)

rewfdgd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档