下载此文档

《进程通信》.ppt


文档分类:IT计算机 | 页数:约85页 举报非法文档有奖
1/85
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/85 下载此文档
文档列表 文档介绍
第四章 进程通信
操作系统
陆松年 ******@
1
编辑ppt
进程的同步与互斥
同步与互斥的概念
两个或两个以上的进程要协作完成一个任务,它们之间就要互相配合,需要在某些动作之间进行同步。
进程间另一种关系是互斥,这种关系一般发生在两个或两个以上的进程竞争某些同时只能被一个进程使用的资源的情况下。
2
编辑ppt
临界段问题
在一段时间内只能允许一个进程访问的资源称为临界资源,如打印机、磁带机、光盘刻写机、绘图仪等
进程执行的访问临界资源的程序段称为临界段或互斥段。
临界资源与临界段
3
编辑ppt
统计两个进程 P1和P2对共享变量count访问计数:
P1: : P2: :
R1=count (0) R2=count(1)
R1=R1+1 R2=R2+1
count=R1 (1) count=R2 (2)
: :
结果:count=2
设count初值=0
4
编辑ppt
两个进程可能的相对执行次序
P1:R1=count (0)
R1=R1+1 (1)
P2:R2=count (0)
R2=R2+1 (1)
count=R2 (1)
P1:count=R1 (1)
虽然P1和P2进程各自都执行了对count加1的操作段,但结果count只增加1。
因此,变量count就是临界资源,P1、P2访问count的两个程序段就是临界段,诸进程必须互斥地进入临界段。
5
编辑ppt
进程间互斥控制方法
锁可以用于控制临界段的互斥执行。锁有两个状态,一个是打开状态,另一个是关闭状态,故锁可以用布尔变量表示。在C中,锁变量可以定义为char或int类型变量。设x为锁变量,则定义:
x = 0 锁的打开状态;
1 锁的关闭状态。
锁的表示和操作
6
编辑ppt
当进程希望进入临界段时,首先要测试锁的状态,如锁是打开的,表示无进程处于临界段,那么可以关闭该锁,并进入临界段。
当该进程处于临界段时,其他试图进入临界段的进程由于在测试锁的状态时发现它处于关闭状态,就只能在临界段外等待。
用锁变量控制临界段的执行
7
编辑ppt
用锁操作控制进程对临界段的互斥执行
(a)
LOCK (x)
x=0 ?
x=1
临界段
+
-
UNLOCK (x)
临界段
x=0
(b)
8
编辑ppt
锁的安全控制
锁的关闭操作LOCK包括测试和关闭两个操作步骤,这两个操作步骤涉及临界资源x,故这段程序也是临界段。
假定锁是打开的,当一个进程P1在测试锁的状态后,还没来得及关闭它的一瞬间,发生了中断;
中断返回时,系统可能调度另一个进程P2执行。P2执行时也对该锁的状态进行测试,发觉它处于打开状态,于是关闭该锁,并进入临界段。那么两个进程就同时处于一个临界段之中。
9
编辑ppt
1. 测试并设置指令test&set
有些计算机提供专门的锁操作指令test&set,该指令首先测试锁变量的值,如为1,则重复执行本指令;如为0,则立即将锁变量的值置为1。
由于test&set是一条完整的指令,而在一条指令的执行中间是不会被中断的,故保证了锁的测试和关闭操作的连续性。
10
编辑ppt

《进程通信》 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数85
  • 收藏数0 收藏
  • 顶次数0
  • 上传人相惜
  • 文件大小484 KB
  • 时间2021-07-12