- 0
- 0
- 约3.85千字
- 约 21页
- 2019-12-01 发布于广东
- 举报
进程管理 进程同步 定义:我们把在异步环境下的一组并发进程因直接制约,互相发送消息,并进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。 具有同步关系的一组并发进程称为合作进程;合作进程间互相发送的信号称为消息或事件。 同步的概念 进程同步 例:计算进程和打印进程公用同一缓冲区Buf。 PC(计算) PP(打印) A:local Bufˊ B:local Pri Repeat Repeat Bufˊ Buf Pri Buf Until Bufˊ=空计算 Until Pri ≠ 空 得到计算结果 打印Buf中数据 Buf 计算结果 清除Buf中数据 Goto A Goto B 进程同步 问题:浪费CPU时间。 采用消息的方法实现直接制约(同步): ①设过程Wait(过程名)表示进程等待合作进程发来消息。 过程signal(消息名)表示向合作进程发送消息。 ②设消息名Bufempty表示Buf空,设消息名Buffull表示Buf满(装满数据)。 ③初始化:Bufempty=true,Buffull=false 进程同步 Pc Pp A:wait(Bufempty) B:wait(Buffull) 计算 打印Buf中的数据 Buf 计算结果 清除Buf中的数据 Bufempty false Buffull false Signal(Buffull) signal(Bufempty) Goto A Goto B 进程同步 私用(有)信号量 把各进程间发送的消息作为信号量看待,这种信号量只与制约进程和被制约进程有关,但不与整组并发进程有关,这种信号量称为私用信号量(Private Semaphore)。 与私用信号量相对应,我们称进程互斥时使用的信号量为公用信号量。 进程同步 用P、V原语操作实现进程的直接制约(同步) 例子:设进程和通过缓冲区队列传送数据(如图3.13), PA为发送进程,PB为接收进程;PA发送数据时调用发送过程deposit(data),PB接收数据时调用过程remove(data)。且数据的发送与接收过程满足如下条件: 1)在PA至少送一块数据入一个缓冲区之前,PB不可能从缓冲区中取出数据(假定数据块长等于缓冲区长度)。 进程同步 2)PA往缓冲队列发送数据时,至少有一个缓冲区是空的; 3)由PA发送的数据块在缓冲队列中按先进先出(FIFO)方式排列。 PA Buff1 buff2 buff3 …. Buffn PB 进程同步 我们按如下三步描述过程deposit(data)和 remove (data) 1)设Buf-empty为进程PA的私用信号量,表示缓冲区是否有空;Buf-full为进程PB的私用信号量,表示缓冲区是否有数可取; 2)Buf-empty的初始值为n (n为缓冲队列的缓冲区个数),Buf-full的初始值为0; 进程同步 3) 算法描述如下: PA: deposit(data) Begin local x; P(Buf-empty); 按FIFO方式选择一个空缓冲区Buf(x); Buf(x) data; Buf(x)置满标记; V(Buf-full); End. 进程同步 PB: remove(data) Begin local x; P(Buf-full); 按FIFO方式选择一个装满数据的缓冲区Buf(x); data Buf(x); Buf(x)置空标记; V(Buf-empty); End. 进程同步 这里,
您可能关注的文档
最近下载
- SYT 5069-2017 石油天然气工业 钻井和采油设备 管柱类落物打捞工具.docx VIP
- WF-007A多功能自动氩弧填丝机使用说明书7.pdf VIP
- SYT 5496-2017 石油天然气工业 钻井和采油设备 震击器及加速器.pdf VIP
- 2025年烟花爆竹经营企业(包括批发和零售企业)安全检查表.pdf VIP
- 2025至2030药用真菌行业调研及市场前景预测评估报告.docx VIP
- SYT 5382-2009 钻井液固相含量测定仪.docx VIP
- 《消毒供应质量控制指标(2024年版)》.docx VIP
- 股市主力操盘盘 口摩斯密码(原创内容,侵权必究).pptx
- 2012下半年深圳市机关公开招考公务员职位表.doc VIP
- 国际期刊科技论文写作与发表.PDF VIP
原创力文档

文档评论(0)