操作系统原理 P V操作

作者&投稿:张卓 (若有异议请与网页底部的电邮联系)
在操作系统中 p v操作是一种机器指令吗~

不是!计算机操作系统原理的PV操作一节的描述用的是原语。这是阐释原理的描述性语句。实际实现可以参考Linux系统中的片段。
这个部分算是重点了,现代版的可以看看博文http://www.cnblogs.com/sunada2005/archive/2013/11/30/3451055.html

PV操作与信号量的处理相关,P表示通过的意思,V表示释放的意思。
狄克斯特拉在THE这个系统中所提出的一系统方法和技术奠定了计算机现代操作系统的基础,尤其是关于多层体系结构,顺序进程之间的同步和互斥机制这样一些重要的思想和概念都是狄克斯特拉在THE中首先提出并为以后的操作系统如UNⅨ等所采用的。
对系统中所有同时运行的进程之间所存在的相互制约的同步(synchronization,指为了避免错误,在一个进程访问共享数据时,另一个进程不访问
该数据)和互斥(mutually-exclusive,指两个进程不能同时在一个临界区中使用同一个可重复使用的资源,诸如读写缓冲区)两个关系,狄克
斯特拉巧妙地利用火车运行控制系统中的“信号灯”(semaphore,或叫“信号量”)概念加以解决。
中国读者常常不明白这一同步机制为什么叫PV操作,原 来这是狄克斯特拉用荷兰文定义的,因为在荷 兰文中,通过叫passeren,释放叫vrijgeven,PV操 作因此得名。这是在计算机术语中不是用英 语表达的极少数的例子之一。

Re、Ma、Pt为同步关系
设置信号量e:缓冲区为空,f1:缓冲区中有未加工的记录,f2:缓冲区中有已加工好的记录

int e=1;
int f1=0,f2=0;
main()
{Re();
\\ Ma();
\\ Pt();/*Re()、Ma()、Pt()为并发进程*/
}
Re()
{P(e);
读一条记录放入缓冲区;
V(f1);
}
Ma()
{P(f1);
加工缓冲区中记录;
V(f2);
}
Pt()
{P(f2);
输出缓冲区中加工好的记录;
V(e);
}

PV操作与信号量的处理相关,P表示通过的意思,V表示释放的意思。
狄克斯特拉在THE这个系统中所提出的一系统方法和技术奠定了计算机现代操作系统的基础,尤其是关于多层体系结构,顺序进程之间的同步和互斥机制这样一些重要的思想和概念都是狄克斯特拉在THE中首先提出并为以后的操作系统如UNⅨ等所采用的。
对系统中所有同时运行的进程之间所存在的相互制约的同步(synchronization,指为了避免错误,在一个进程访问共享数据时,另一个进程不访问
该数据)和互斥(mutually-exclusive,指两个进程不能同时在一个临界区中使用同一个可重复使用的资源,诸如读写缓冲区)两个关系,狄克
斯特拉巧妙地利用火车运行控制系统中的“信号灯”(semaphore,或叫“信号量”)概念加以解决。
中国读者常常不明白这一同步机制为什么叫PV操作,原 来这是狄克斯特拉用荷兰文定义的,因为在荷 兰文中,通过叫passeren,释放叫vrijgeven,PV操 作因此得名。这是在计算机术语中不是用英 语表达的极少数的例子之一。

初始化:
bufnum=2;
mutex[bufnum]=1;
bulfull[bufnum]=0;
input
begin:
int
i=0;
while(true){
i=(++i)%bufnum;
if
(!buffull[i])
{
p(mutex[i]);break;
}
}
put(buf[i]);
buffull[i]=1;
v(mutex[i];
input
end
output
begin:
int
i=0;
while(true){
i=(++i)%bufnum;
if
(buffull[i])
{
p(mutex[i]);break;
}
}
get(buf[i]);
buffull[i]=0;
v(mutex[i];
output
end

Ra是干嘛的


正蓝旗15757982149: 操作系统中PV操作疑问操作系统中,常说的PV操作:P操作V操作各自对应的是哪个英文单词?为了方便记忆,不至混淆,所以想弄明白,我国读者常常不明... -
翠师疏痛:[答案] 1962年,狄克斯特拉离开数学中心进入位于荷兰南部的艾恩德霍芬技术大学(Eindhoven Technical University)任数学教授.... 狄克斯特拉设计了一种同步机制叫“PV操作”,P操作和V操作是执行时不被打断的两个操作系统原语.执行P操作P(S)时信号量S...

正蓝旗15757982149: 操作系统用来实现进程中同步与互斥的P、V操作实际上是由()过程组成的. a、一个可被中断的;b、一个不可被中断的;c、两个可被中断的;d、两个不... -
翠师疏痛:[答案] 根据操作系统的使用环境和对作业处理方式来考虑,可分为批处理系统(MVX、DOS/VSE)、分时系统(WINDOWS、UNIX、XENIX、Mac OS)、实时系统(iEMX、VRTX、RTOS,RT Linux); 根据所支持的用户数目,可分为单用户(MSDOS...

正蓝旗15757982149: 为什么在操作系统中引入信号量及P、V操作? -
翠师疏痛: 在操作系统理论中有一个非常重要的概念叫做P,V原语.在我们研究进程间的互斥的时候经常会引入这个概念,将P,V操作方法与加锁的方法相比较,来解决进程间的互斥问题.实际上,他的应用范围很广,他不但可以解决进程管理当中的互斥...

正蓝旗15757982149: 求教一下操作系统中的PV原语首先请问P,V到底是什么意思,书上的写法我看不明白.我看到有这样的写法P(S1),V(S2),S1和S2是两个信号量,P(S1)是什么意... -
翠师疏痛:[答案] P,V是指两种针对信号量的操作,分别对应 Wait()和 signal()操作.再简单点就是,P操作对变量减一,而V操作对变量加1.但P操作同时还包含一个动作,就是如果变量值减的小于0了,那么就会让进程进入循环等待,从而实现不同进...

正蓝旗15757982149: 在操作系统中,P操作和V操作各自的动作是如何定义的急…… -
翠师疏痛:[答案] 答:P操作顺序执行下述两个动作: ①信号量的值减1,即S=S-1; ②如果S≥0,则该进程继续执行; 如果S<0,则把该进程的状态置为阻塞态,把相应的PCB连入该信号量队列的末尾,并放弃处理机,进行等待(直至其它进程在S上执行V操作,把它...

正蓝旗15757982149: 操作系统原理有关P.V操作的题目 -
翠师疏痛: 初始化: bufNum=2; mutex[bufNum]=1; bulFull[bufNum]=0; input begin: int i=0; while(true){ i=(++i)%bufNum; if (!bufFull[i]) { p(mutex[i]);break; } } put(buf[i]); bufFull[i]=1; v(mutex[i]; input end output begin: int i=0; while(true){ i=(++i)%bufNum; if (bufFull[i]) ...

正蓝旗15757982149: 求教一下操作系统中的PV原语 -
翠师疏痛: P,V是指两种针对信号量的操作,分别对应 Wait()和 signal()操作.再简单点就是,P操作对变量减一,而V操作对变量加1. 但P操作同时还包含一个动作,就是如果变量值减的小于0了,那么就会让进程进入循环等待,从而实现不同进程的同步操作.当然一个前提条件也不能忘,那就是信号量(也就是前面说的变量)是一个可以供多个进程同时访问的公共变量,是不同于普通变量的.

正蓝旗15757982149: 操作系统中P,V操作分别意味着要求什么 -
翠师疏痛: A,C

正蓝旗15757982149: P V操作是一种? -
翠师疏痛: 低级进程通信原语,这个是操作系统的课程,在操作系统这本书上有,我有些忘了,你自己看书吧.大学二年级课程,操作系统概论

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网