- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章-进程同步-教案提纲
第6章 进程互斥与同步
多道程序系统中进程是并发执行的,这些进程之间存在着不同的相互制约关系,为了协调进程之间的相互制约关系,就需要实现进程的同步。
而互斥则是同步的一种特殊情况。
6.1 进程互斥
1. 临界资源与临界区
(1)临界资源:把一次仅允许一个进程使用的资源称为临界资源。
许多物理设备都属于临界资源,如打印机,绘图机等。
还有许多共享变量,共享数据等也属于临界资源。
(2)临界区:在每个进程中,访问临界资源的那段程序称为临界区。
2. 互斥
在操作系统中,当一个进程进入临界区使用临界资源时,另一个进程必须等待,当占用临界资源的进程退出临界区后,另一个进程才允许进入它的临界区去访问此临界资源。
互斥:进程间的这种相互制约关系称为互斥。
为禁止两个进程同时进入临界区,可采用软件解决办法或者一个同步机构来协调它们。
不论是软件还是同步机构都应遵循下述准则:
当有若干个进程欲进入它的临界区时,应在有限时间内使进程进入临界区。换言之,它们不应该相互阻塞而致使彼此都不能进入临界区;
每次至多有一个进程处于临界区;
进程在临界区内仅停留有限时间。
3. 互斥的实现方法
(1)利用“锁”机制实现互斥
在同步机构中,常用一个变量来代表临界资源的状态,并称它为锁。
通常用0表示资源可用,用1表示资源已被占用。
进程在使用临界资源之前,必须完成下列动作(即关锁操作):
(a)考察锁位的值(是0还是1);
(b)如果原来的值为0,将锁值置成1(表示占用资源);
(c)如果原来的值为1(即资源已被占用),则返回(a)再考察。
当进程使用完资源后,应将锁值置成0,即称为开锁操作。
注:在测试锁的值和置锁的值为1这两步之间,锁值不得被其他进程所改变,这是应该绝对保证的。
系统可提供在一个锁w上的两个原语操作lock(w)和unlock(w)。
其算法描述如下:
算法 lock
输入:锁变量w
输出:无
{
test: if (w==1) goto test;
else w=1;
}
算法 unlock
输入:锁变量w
输出:无
{
w=0;
}
利用上锁原语和开锁原语,可以解决并发进程对临界资源访问的互斥问题。
下面给出并发进程p1和p2互斥使用临界资源的描述:
进程p1 进程p2
. .
. .
. .
lock(w) lock(w)
临界区 临界区
unlock(w) unlock(w)
. .
. .
. .
(2) 利用P、V操作实现互斥
信号量的概念
信号量是一个确定的二元组(s,q);
其中s是一个具有非负初值的整形变量,q是一个初始状态为空的队列;
整形变量s表示系统中某类资源的数目:
当其值大于0时,表示系统中当前可用资源的数目;
当其值小于0时,其绝对值表示系统中因请求该类资源而被阻塞的进程数目。
除信号量的初值外,信号量的值仅能由P操作和V操作改变,操作系统利用它的状态对进程和资源进行管理。
P、V操作(有的书上叫Wait操作与Signal操作)
P、V操作为两条原语,信号量的值仅能由这两条原语来改变。
P、V操作成对出现。
P、V操作的定义:
P操作:P操作记为P(S),其中S为一信号量,它执行时,主要完成以下动作:
S=S-1;
若S≥0,则进程继续执行;
否则若S0,则进程被阻塞,并将该进程插入到信号量S的等待队列中。
说明:实际上,P操作可以理解为分配资源的计数器;
或是使进程处于等待状态的控制指令。
V操作:V操作记为V(S),其中S为一信号量,它执行时,主要完成以下动作:
S=S+1;
若S0,则进程继续执行;
若S≤0,则从信号量S的等待队列中移出第一个进程,使其变为就绪状态,然后返回原进程继续执行。
说明:实际上,V操作可以理解为归还资源的计数器;
或是唤醒进程使其处于就绪状态的控制指令。
利用信号量及其P、V操作能方便地实现进程互斥。
设S为一互斥信号量,其初值=1,表示某临界资源未被占用。利用信号量实现并发进程P1、P2互斥访问临界区的描述如下:
进程p1
原创力文档


文档评论(0)