软件设计师,进程管理PV操作、互斥模型、同步模型

  • P是荷兰语的Passeren(通过),V是荷兰语言的Verhoog(释放)

  • PV操作是一种实现进程互斥与同步的有效方法。PV操作与信号量的处理相关。

    • 信号量:是一种特殊的变量

    • 信号量可以表示资源量

    • 信号量为负数时还可以表示排队进程数

PV操作示意图:

 

S:信号量

P操作:申请/锁定资源,判断S是否小于零(检查资源是否足够),当S大于零时表示资源足够用,当S小于零时表示资源不够,进入阻塞队列。

V操作:释放/解锁资源,判断S是否小于等于零(检查是否在进程阻塞),当小于或等于零时表示有进程存在阻塞,当大于零时通知进程可以继续。

因为P操作是先申请操作,所以S要先减去1,当S为零时资源正好够用

而V操作就需要在S加1,所以当S等于零时正好有一个进程阻塞

PV操作是操作系统提供的具有特定功能的原语。利用PV操作可以()。

A 保证系统不发生死锁 B 实现资源的互斥使用 C 提高资源利用率 D 推迟进程使用共享资源的时间

B

对于资源来讲,给他加锁就是降低他的利用率,所以C选项错了

而PC操作使用的是临界资源,所以D错误

假设系统中有n个进程共享3台扫描仪,并采用PV操怍实现进程同步与互斥。若系统信号量S的当前值为-1,进程P1、P2又分别执行了1次P (S) 操作,那么信号量S的值应为( )。

A3 B-3 C1 D-1

B

PV操作互斥模型

 

S为资源数量

个人感觉就是单线程顺序执行:从给资源上锁、使用资源、给资源解锁、然后通知进程使用完毕。

PV操作同步模型

 

S_1初始值为1,S_2初始值为0。

相对于互斥模型,比他多了一个缓冲区。可以通过缓冲区接受并发的操作。

缓冲区可以拥有多个,有多少个缓冲区就有多少个S_1

PV操作综合模型:

 

因为缓冲区是不支持并行操作的所以,可以将两个缓冲区操作看为互斥模型。

假设铁路自动售票系统有n个售票终端,该系统为每个售票终端创建一个进程Pi (i=,2,",n) 管理车票销售过程。假设Tj (=,,**,m) 单元 存放某日某趟车的车票剩余票数,Temp为Pi进程的临时工作单元,x为某用户的购票张数。Pi进程的工作流程如下图所示,用P操作和V操作实现进程间的同步与互斥。初始化时系统应将信号量S赋值为( )。图中(a)、(b)和(c)处应分别填入()。

 

A n-1 B 0 C 1 D 2

A V(S)、P(S)和P(S) B P(S)、P(S)和V(S) C V(S)、V(S)和P(S) D P(S)、V(S)和V(S)

C、D

因为进入缓冲区是互斥模型所以信号量是1

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值