- 时间:2021-09-08 17:23 编辑:曾宝仪 来源:蚂蚁资源 阅读:221
- 扫一扫,手机访问
摘要:大家好,今天给大家介绍关于操作系统pv操作(pv操作信号量初始值)的相关内容,详细讲解简单计算机操作系统PV操作求步骤,操作系统PV是什么意思,PV操作的定义等,希望可以帮助到您。
简单计算机操作系统PV操作求步骤,这只能参考计算机操作系统关于P,V操作的章节。也就是说:P操作是应用系统资源,透析性SEM减去1; v操作是发布系统资源,信号量SEM加1。
操作系统PV是什么意思,它是要使用的操作系统中使用的两个操作。具体细节可以是指:操作系统理论中的一个非常重要的概念称为p,v原语。当我们研究进程之间的相互排除时,这个概念经常介绍这一概念,比较P,V操作方法与锁定方法解决过程之间的互斥问题。事实上,他的应用范围很广,不仅可以解决过程管理中的互斥问题,而且还可以使用这种方法来解决过程同步和过程通信的问题。 [1] P,V原始理论解释了P,V原语的理论,是一个拥有着名的荷兰科学家E.W.Dijkstra的人。如果你对这位科学家没有印象,那么Dijk表算法在图表理论中的最短路径问题应该是我们更熟悉。 1965年,他的P,v原语和P.需要使用的概念和需要使用的示例,V v操作是由他制作的。信号量的数量是解决过程同步和互斥锁的最早机制,包括a可变称为信号量和其两个原始操作。信号量是整数,我们将此信号设置为:SEM。显然,我们指定可以在SEM中使用的资源实体数大于或等于零,SEM小于零,表示等待使用关键区域的进程数。根据这个原则,当我们附上数量的数量时,我们显然设置了他的初始值大于零。 P操作和V操作是不间断的块,称为基元。 p,v小语言p是荷兰语passeren,相当于通过,v是荷兰verhoog,相当于英文中的Incremnet。 p原始操作的动作是:(1)SEM减去1; (2)如果SEM减少,则仍然大于或等于零,则该过程仍在继续; (3)如果SEM减少,则如果SEM减少,则该过程被阻止。输入与此信号对应的队列,然后转动流程计划。 v主要语言的动作是:(1)SEM加1; (2)如果结果大于零,过程仍在继续; (3)如果结果小于或等于零,请从信号的等待队列唤醒。等待等待,然后返回原来继续执行或转移的内部过程。需要提醒每个人P,V操作只能为每个进程完成一次。有必要使用。在执行P,V的执行期间,在执行期间没有中断。对于特定实现,有很多方法,并且您可以实现硬件或实现。我们使用以下定义:程序p(var s:samephore); {S.Value = S.Value-1; if(s.value <0) asleep(s.queue); } procedure v(var s:samephore); { s.value=s.value+1; if (s.value<=0) wakeup(s.queue); } 其中用到两个标准过程: asleep(s.queue);执行此操作的进程控制块进入s.queue尾部,进程变成等待状态 wakeup(s.queue);将s.queue头进程唤醒插入就绪队列对于这个过程,s.value初值为1时,用来实现进程的互斥。虽软说信号量机制毕加锁方法要好得多,但是也不是说它没有任何的缺陷。由此我们也可以清晰地看到,这种信号量机制必须有公共内存,不能用于分布式操作系统,这是它最大的弱点。[二]P,V原语的应用正如我们在文中最开始的时候提到的,P,V原语不但可以解决进程管理当中的互斥问题,而且我们还可以利用此方法解决进程同步与进程通信的问题。(1)用P V原语实现进程互斥把临界区置于P(sem) 和V(sem)之间。当一个进程想要进入临界区时,它必须先执行P原语操作以将信号量sem减1,在进程完成对临界区的操作后,它必须执行V原语操作以释放它所占用的临界区。从而就实现了进程的互斥:具体的过程我们可以简单的描述如下:PA:P(sem)
; v(sem)pb:p(sem); V(2)过程同步处理与PV基元的同步也可以通过该操作来解决。我们假设两个进程需要要同步,一个进程是计算过程,另一个进程是打印过程,然后此时,两个进程的定义可以是rEPRSENTED AS:PC(表示计算过程)A:本地BUF重复BUF = BUF直到BUF =空气计算GET计算结果BUF =计算结果GOTO A PP :(表示打印过程)B:本地PRI重复PRI = BUF直到PRI! =空气打印BUF数据清除BUF数据GOTO B的实施P,v原语是:PA:存款(数据)开始本地XP(BUFEMPTY)按FIFO选择一个空气缓冲区BUF(x)buf(x)= databuf(x )全标签v(buccull)endpb:删除(数据)开始本地XP(BUFFULL)按FIFO选择缓冲区BUFF(x)DATA = BUF(x)BUF(x)结束标记V(BUFEMPTY)结束(3)实施处理与PV主要语言的通信时间:邮箱通信的条件是:<1>;发送消息时发送进程,必须在mai中存储至少一个空格lbox。当接收到该过程接收到消息时,存在邮箱中的至少一个消息。发送流程和接收过程我们可以执行以下描述:存款(m)是传输过程,接收过程是删除(m)。 fromnum是私有信号量,邮箱空间N.Mesnum的数量是接收过程的私有SEMAPCHER,初始值为0.POSE(M):开始本地XP(FROMNUM)选择空格X将消息X放入空间X中的空间X是全V(Mesnum)Endremove M)开始本地XP(Mesnum)选择Green X以删除全X.M模式X标志是空V(rEFNUM)结束作者只讨论最基本的过程问题p,v原始应用程序。当然,这部分的应用是非常普遍。例如,在操作系统文化的历史中,非常经典的哲学家用餐问题,生产 - 消费问题,读者 - 作家,理发师问题等人都可以尝试实现信号的方法。主要参考书:“计算机操作系统辅导”清华大学出版社张伟操作系统 - 设计和实施,Prentice Hall
PV操作的定义,PV操作与信号量的处理有关,P意味着通过的含义,V表示释放的含义。 PV操作是典型的同步机制之一。它与具有信号的信号相关联。当信号量的值为0时,尚未生成所需的消息;当信号的值不是0时,存在所需的消息。在使用P V操作的过程同步时,调用P操作测试消息到达,调用V操作以发送消息。可以在信号量变量上执行两个基元:P操作和V操作,定义如下:程序P(var s:amephore); {S.Value = S.Value-1; if(s.value <0)睡着了(s.queue);}程序v(var s:samephone); {S.Valu.E = S.Value + 1; if(s.value <= 0)唤醒(s.queue);
责任编辑(曾宝仪)
以上就是关于**操作系统pv操作,pv操作信号量初始值**的全部内容,如有需要以上系统,请在搜索框搜索商品或者咨询客服,了解更多请关注蚂蚁资源网。
内容来源于网络,如无意中有侵权,请联系客服核实,以便及时删除,谢谢支持!
- 源码资源网
- 操作系统PV操作中的semaphore是什么意思啊,semaphore只是用来记录有多少个线程正在使用他(他并没有互斥的性质,他可以被多个线程拥有),他只是维护一个引用计数,任何线程都可以在任何时刻Release他,造成的结果就是semaphore的引用计数减1应该这样说,任何时刻,你都不知道具体是哪个线程处于运行状态。semaphore的作用不仅仅是在于实现互斥,它只是说,任何时刻,最多只有这个semaphore指定的最大数量的线程可以获得这个semaphore。什么时候释放和这个semaphore无关,释放了,只不过是semaphore的计数减一,其他线程有机会获得这个semaphore。
- 2021-09-08 17:23:17
- 510167024
- 我有一个非常好的帖子,请学习:在计算机操作系统中,PV操作是过程管理中难点。首先,它应该澄清PV操作的含义:PV操作由P操作原语和V操作原语(基元是不间断的过程),操作信号量,具体定义如下:P(S):1将发出值数量S减少1,即S = S-1; 2如果s?,那么过程仍在继续;否则,该过程处于等待状态,等待队列被放电。 v(s):1表示信号S = S + 1的值; 2如果s> 0,则继续该过程;否则释放队列中的第一等待信号量的过程。 PV操作的含义:我们使用信号量和光伏ope实现同步和相互排除过程的口粮。 PV操作属于该过程的低级通信。信号量是多少?信号量的数据结构是值和指针,指针指向下一个过程等待信号量的数量。信号量的值与相应资源的使用有关。当其值大于0时,它表示当前可用资源的数量;当其值小于0时,其绝对值表示等待资源的进程数。请注意,只能通过PV操作更改信号的值。通常,信号量S是,S表示可用资源的数量。执行P操作意味着请求分配了一个单元资源,因此s的值减少;当S <0时,请求不可用资源,请求者必须等待其他进程释放可以运行的资源类型。 V操作装置的执行释放一个单元资源,因此添加了S的值;如果是的话,据说一些进程正在等待资源,所以等待状态将被唤醒,这样它运行。使用模拟和光伏作用的过程互排的一般模型是:P11工艺P2 ...... P1 ... ... P(s); p(s); p(s);关键区域;关键区域;关键地区; v(s); v(s); v(s); ...... ......如果信号量S用于静音,初始值为1.如果使用PV操作以实现过程相互排除时应注意:(1)用户在每个程序中实现相互排除,V操作必须配对,首先执行P操作,输入关键区域,然后执行V操作,露天区域。如果有多个分支,我们必须仔细检查他们的光束。 (2)P,V操作应接近关键区域的头部,关键区域的代码应尽可能短,没有死循环。 (3)互异信号量的初始值通常是1.使用信号量和PV操作的过程同步PV操作的实现是典型的同步机制之一。当信号值为0时,尚未生成所需的消息;当信号的值不是0时,所需的消息已经存在。在实现与PV操作的过程同步时,调用P操作测试消息来达到,调用V操作以发送消息。应该注意使用PV操作来实现过程同步时:(1)分析过程之间的限制性关系,确定信号量。在保持过程之间正确的同步关系的情况下,首先执行哪个过程,执行哪些进程,以及如何使用资源(半处理)来清除哪些域将被设置。 (2)信号的初始值与相应资源的数量有关,也与程序代码中的程序代码中出现的位置有关。 (3)P,V v的同一信号量,但它们处于不同的过程中代码分别。 [示例1]多通道编程环境中的生产者 - 消费者问题,过程同步是一个非常重要的问题,而制作人 - 消费者问题是其中一个代表过程同步问题。在这里,我们提供了生产者 - 消费者问题,深入分析并彻底了解生产,深入分析,以及在操作系统内的同步的全面分辨率中的互斥问题的大大帮助。 (1)制片人,消费者,一个普通龙津。定义两个同步信号:空 - 指示缓冲区是否为空,初始值为1.完整 - 指示缓冲区是否已满,初始值为0.生产者进程(真实){产品的生产; p(空);产品是发送到缓冲区; v(满);}(2)生产者,消费者,公共N个环形缓冲区。定义两个同步信号:空 - 表示缓冲区是否为空,初始值为n。完整 - 指示缓冲区是否已满,初始值为0.缓冲区的数量为1到n-1,定义两个指针进出,这是生产者流程和消费者过程中使用的指针,指向下一个可用的指针缓冲。生产者进程(真实){产品的生产; p(空);产品被发送到缓冲区(IN);在=(+ 1)mod n; v(满);}(3)一组生产者,一个集团的消费者,公共N环缓冲区在这个问题上,不仅在生产者和消费者之间,而且在各种生产商之间,每个消费者也必须相互独家访问缓冲区。定义四个逻辑逻辑:空 - 表示缓冲区是否为空,初始值是n。完整 - 指示缓冲区是否已满,初始值为0. Mutex1 - 制作人之间的相互排除量,初始值为1.互斥锁2 - 消费者之间的相互排除量为1.缓冲区数量为1到n-1,定义两个指针进出,是生产者进程和消费者进程使用的指针,指向下一个可用缓冲区。生产者进程(真实){生产产品; p(空); p(互斥锁);产品被发送到缓冲区;在=(+ 1)mod n; v(互斥锁); v(满);需要注意的是,在消费者进程或消费过程中是否不能反转两个P操作的顺序。同步SEMAPHOREP操作,然后执行e相互独家信号量的P操作,否则可能导致过程僵局。 [示例2]表上有一个空磁盘,允许存储水果。爸爸可以把苹果放在盘子里,你也可以把橘子放在盘子里,你的儿子的车队在盘子里吃橘子,女儿正在吃苹果。它规定只有一个水果可以在磁盘空空时拍摄,请使用p,v原语来实现爸爸,儿子和女儿的三个并发进程的同步。分析在这个问题中,爸爸,儿子,女儿分享了一盘,只有一个水果可以放在磁盘中。当托盘空空时,爸爸可以将水果放入水果板中。如果橙色被放置在水果板中,它可以让儿子吃,Dau掠夺者必须等待;如果苹果放在水果板中,女儿被允许吃,儿子必须等。这个问题实际上是生产者 - 消费者问题的变形。在这里,有两种类型的产品将生产者放在缓冲区中,消费者有两种类型,每种类型的消费者只能消耗固定类型的产品。解决方案:在这个问题中,三个信号S,SO,SA和信号量S表示光盘是否为空,其初始值是L;信号量为表示光盘中是否存在橙色,其初始值为0;信号量SA表示光盘中是否有Apple,这是0.如下同步:INT S = 1; int sa = 0; int so = 0; main(){cobegin父亲(); / *父亲进程* / son(); / *儿子进程* / 女儿 (); / *女儿进程* / keend}父亲(){虽然(1){p(s);将水果放入磁盘;如果(放入橙色)v(SO);否则v(sa);}}儿子){虽然(1){p(so);从磁盘上取出橙色; v(s);吃橙色;}}女儿(){虽然(1){p(sa);从磁盘上删除Apple; v(s);进入Apple;进程A,B,C,D被读取共享文件F,并且系统允许多个进程同时读取文件F。但是,限制是处理A和过程C而不是同时读取文件F,进程B和进程D,并且不能同时读取文件f。为了制作这四个进程,可以根据系统使用该文件,并使用PV操作来管理,请回答以下问题:(1)研讨会的数量和初始值应该定义: (2)填写适当的P,V在以下过程中进行操作,以确保它们可以正常工作:a()b()c()d()d(){{{{[1]; [3]; 5]; [7];读f;读f;读f;读f; [2]; [4]; [6]; [8];}}}}}}(1)定义两个部分S1,S2,初始值为1,即:S1 = 1,S2 = 1.处理A和C使用信号量S2使用信号量S1,过程B和D.(2)从[1]至[8]:p(S1)V(S1)P(S2)V(S2)V(S2)V(S2)V(S1)V(S2)(S2 )v(S2)
- 2021-09-08 17:23:17
- LouisWang
- 说明:通过操作信号量来处理流程之间的同步和相互排除的PV原语。它的核心是您无法中断的过程。 1965年的示例信号,着名的荷兰计算机科学家Dijkstra,其基本思想是用新的变量类型(信号量)录制当前可用资源。有两种实现:1)信号量的值必须大于或等于0.0表示当前没有空闲资源目前否,并且正数表示当前的空闲资源数量; 2)信号量的值可以是否定的,负值表示等待进入关键区域的进程数。信号量由操作系统维护,用户Pro维护CES只能通过初始化和两个标准基元(P,V原语)访问。初始化可以指定非负整数,即自由资源的总数。 p原始操作的动作是:(1)SEM减去1; (2)如果SEM减少,则仍然大于或等于零,则该过程仍在继续; (3)如果SEM减少,则如果SEM减少,则该过程被阻止。输入与此信号对应的队列,然后转动流程计划。 v主要语言操作的动作是:(1)SEM加1; (2)如果结果大于零,过程仍在继续; (3)如果结果阶段小于或等于零,则从信号的等待队列唤醒等待过程,然后返回原始过程以凝固执行或转移流程时间表。 PV操作只能为每个过程执行一次,并且必须配对使用。在执行PV期间没有中断发生。
- 2021-09-08 17:25:09