首页 > 编程知识 正文

Pv分配策略,示例和范例

时间:2023-05-06 10:48:52 阅读:150726 作者:3518

标题:这几天在学习操作系统,遇到了关于信号量的知识,所以想记录下来学习。

正文: http://www.Sina.com/: http://www.Sina.com/: 1965年荷兰学者DIJKSTRA提出的信号量机制是一种有效的过程同步工具。 在长期而广泛的应用中,信号量机制又有了很大的发展。

33558www.Sina.com//诸如3358www.Sina.com/密钥,指示由于出现某些事件(满足互斥条件)而使两个或多个过程的操作同步通俗地说,流程将在允许的信号下运行。

信号量

信号量机制pv操作:我来解决互斥和同步问题。 视点操作我们分别看。

首先,信号量的作用操作(等待信号量) :

信号量有效(值0 )信号量值为负1任务继续执行信号量值=0信号量等待进程注册在信号量等待进程列表中。 可以理解的是:

if () s=s-1 (=0) ) ) ) ) ) ) ) ) ) ) )。

继续这个过程;

else

挂起并等待本流程/本流程

然后看看信号量的实质:操作:

没有进程等待信号量的值1具有进程等待信号量的值1可以理解为等待某个进程处于准备完毕状态:

if () s=s1) ) ) ) )。

不引起s队列中的等待过程;

else//(s=s1 )=0

唤醒s的队列中的等待过程;

继续这个过程;

简单记住这个原理,通过一个例子说明什么是PV操作。

接下来,我们就来看看如何通过操作信号量,来实现控制进程的执行。

我在图上画了步骤,以后会严格按照步骤一步一步地进行。

首先,在驱动程序过程中使用p操作。 (S1=S1-1=-1 ),当前S1的值为-1。 查看p操作,它应该是PV的操作:。 这意味着驱动程序进程将暂时挂起,然后转到P。 进入V后,首先进入公交车司机与售票员的问题:,然后进行v操作(S1=S1 1=0),找到满足v操作的else后,首先进入3358www.Sina.com/售票后执行p操作(S2=S2-1=-1 ),如果发现满足p操作的else,则暂时挂起挂起本进程。 运行http://www.Sina.com/3358 www.Sina.com /,售票员进程售票员进程,v操作(S2=S2 1=0) 但是,队列里有列车员的流程,我们在关车门进入司机进程中,进入http://ww.Sina.com。司机和列车员的问题结束了。 关于PV操作中容易产生的疑问:

1、1,http://www.Sina.com/

s大于0意味着确实有可用的临界资源,这意味着此时进程没有被该资源阻塞,因此不需要唤醒。

2、2,http://www.Sina.com/

v基元的操作本质是,某个进程在使用关键资源后释放关键资源,并对s加1以通知其他进程。 此时,在S0的情况下,从块队列中调用进程以“转售”这样的资源,因为它指示存在被阻止的进程。 例如,假设有两种类型的资源,并且四个进程a、b、c和d使用该类型的资源。 最初S=2,如果a进入,则S=1,如果b进入,则S=0,表示该种类的资源正好没有。 如果输入c,则S=-1,表示一个进程被阻止。 d进去的话S=-2。 a用尽此类资源时,进行v操作,S=-1,释放此类资源。 因为S0,表示进程堵塞了那样的资源,让一个清醒。

3、3,http://www.Sina.com/

进程被阻止的时候,它已经执行了p操作,堵塞在临界区的那个地方。 觉醒后立即进入自己的临界区域,不需要执行p操作,在执行临界区域的程序后,执行v操作。

4、4,http://www.Sina.com/

如果信号量s小于0,则其绝对值表示通过请求此类资源而在系统中被阻止的进程的数目,如果s大于0,则表示可用极限资源的数目。 请注意,不同的情况下表达的含义也不同。 等于0时,表示正好用完了。

售票员进程可以看出我们严格遵循了之前PV操作的定义。 其实,我们身边的很多例子都是这样一步步实现的。 如果有很多发现,用这种计算机思想思考可以得到很多锻炼。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。