- 1、本文档共98页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Os-04-1_2同步与互斥
1
计算机操作系统教程
(第2版)
2
4.4 .1 进程间的互斥
( Mutual Exclusion )
为什么要讨论
互斥?
3
现代操作系统中进程执行的特点:
独立性,异步性,并发
并发带来的影响:
资源共享(提高资源利用率 如CPU)
资源竞争(出现不希望出现的错误)
4
{
ReadFromFileA ( X ) ;
if ( X 1 ) then
X := X - 1;
WriteToFileA( X ) ;
}
飞机订票系统:
远程终端通过位于服务器主机中的进程Ti处理订票业
务;
位于服务器主机中的文件FileA存放的数据表示剩余的票
数和下一次即将卖出的座位号
25ms
50ms
5
T1
{
ReadFromFileA
(X) ;
if ( X 1 ) then
X := X - 1;
WriteToFileA( X ) ;
}
50ms (1)
飞机订票系统:
位于武昌的某远程终端通过位于服务器主机中的进程 T1 处理订票业务;
位于汉口的某远程终端通过位于服务器主机中的进程 T2 处理订票业务;
T2
{
ReadFromFileA
(X) ;
if ( X 1 ) then
X := X - 1;
WriteToFileA( X ) ;
}
50ms (2)
6
T1
{
ReadFromFileA
(X) ;
if ( X 1 ) then
}
25ms (1)
T2
{
ReadFromFileA
(X) ;
if ( X 1 ) then
}
X := X - 1;
25ms (3)
WriteToFileA( X ) ;
25ms (2)
X := X - 1;
25ms (4)
WriteToFileA( X ) ;
飞机订票系统:
7
1. 大量共享资源如只读数据可以同时访问,以
提高资源的利用率;
2. 部分资源(如外设、共享数据结构),多个
进程在对其进行访问时(主要是进行写入或修
改),可能出现无法预料的错误。
提高资源利用率的前提是要保证数据的完
整性和安全性。
进程间的并发必须加以控制
怎么控
制?
8
进程的互斥 Mutual Exclusion
1.可以同时使用的
2.不可以同时使用的
由于各进程要求共享资源,而有些资源需要
互斥使用,因此各进程间竞争使用这些资源,进
程间的这种关系为进程互斥。
两个概念:
临界资源:critical resource
临界区 :critical section
9
系统中某些资源一次只允许一个进
程使用,称这样的资源为临界资源或互
斥资源。
临界资源:critical resource
10
程序 段1
程序 段2
程序 段n
共享变 量
11
临界区(互斥区):critical section
在进程中涉及到临界资源的程序段
叫临界区。
多个进程关于同一临界资源的一组
临界区称为相关临界区集合。
12
临界区的访问过程的抽象算法
entry section
critical section
exit section
remainder section
13
进程间互斥问题的解决(P、V操作)
P1
P(mutex)
V(mutex)
互斥区
P2
P(mutex)
V(mutex)
P3
P(mutex)
V(mutex)
14
进程互斥问题模拟演示
有控的进程并发
无控的进程并发
具体实
现?
15
4.4 .2 互斥算法
1 中断屏蔽方法
2 “测试并设置”指令
3 上锁原语
4 信号量 (semaphore)
16
临界区的访问过程
entry section
critical section
exit section
remainder section
17
中断屏蔽方法
“开关中断”指令
进入临界区前执行:
执行“关中断”指令
离开临界区后执行:
执行“开中断”指令
简单,有效
较高的代价,限制CPU并发能力(临界区小)
不适应多处理器
“测试并设置”指令
boolean TS (boolean
*lock)
{
boolean old;
old = *lock;
*lock = true;
Return old;
}
Test-and-Set指令
lock表示资源的两种状态:
TRUE
FALSE
占用
空闲
利用TS实现进程互斥:每个临界资源设置一个
公共布尔变量lock,初值为FALSE
在进入区利用TS进行检查:有进
您可能关注的文档
- OK1.2复数的有关概念.ppt
- oled电视机的特点讲解.pptx
- OK智能烙铁原理简介.ppt
- office综合培训.pptx
- 四年级健康网络-远离网瘾主题班会(2014.05.05)概要.ppt
- onenet设备终端接入协议2-EDP.docx
- 四年级复习概要.ppt
- 四年级复习要点概要.doc
- OOAD 第7章问题域部分的设计 CUMT.ppt
- ok李德智-二建-市政-精-第1章5(管道工程)(美工版2014.3.14).doc
- 洋流高中地理人教版(2019)选择性必修一.pptx
- 2024年天津市第一中心医院门诊协诊岗招聘考试真题 .docx
- 第三单元 3 宜人的设计 教学设计人美版2025美术七年级下册 .docx
- 2025年广东深圳市高三二模高考生物试卷试题(精校打印) .pdf
- 统编版语文一年级下册第六单元综合素养测评A卷.doc
- 2025年中考语文三轮冲刺:名著+散文 专项突破限时测试卷4(含答案) .pdf
- 算法与程序设计:第4章 贪心算法.ppt
- 美国(金融)霸权的终结——美国金融垄断资本主义的产生、本质、特征与终结+课件--2025届高三统编版(2019)历史二轮复习 .pdf
- 2025年中考语文三轮冲刺:名著+散文 专项突破限时测试卷9(含答案) .pdf
- 学院教职员工教育培训制度.docx
文档评论(0)