【软考】PV 操作

#国庆发生的那些事儿#

  • 临界资源: 诸进程间需要互斥方式对其进行共享的资源,如打印机、磁带机等
  • 临界区: 每个进程中访问临界资源的那段代码称为临界区
  • 信号量: 是一种特殊的变量。

信号量的值与相应资源的使用情况有关: 

①: 当信号量的值大于0时,表示当前可用资源的数量

②: 当它的值小于0时,其绝对值表示等待使用该资源的进程个数 

注意,信号量的值仅能由PV操作来改变。

P操作:申请资源操作。

P(S): ① 将信号量 S 的值减 1,即 S = S - 1;

                 ② 如果 S >= 0(S = 0时,证明资源的数量已经没有了,但是还是可以执行,因为 S-- 是在此判断之前,到此段临界区时,是还有资源),则该进程继续执行;否则该进程置为等待状态,排入等待队列。

V操作:释放资源操作。

V(S): ① 将信号量 S 的值加 1,即S = S + 1;

                 ② 如果 S > 0(同上,为什么这里 S = 0时不能继续执行呢,因为 已经S++了,但还是等于 0,到此段临界区时,还是没有资源),则该进程继续执行;否则该进程置为等待状态,排入等待队列。

 收银员进程 b1 处肯定一开始会阻塞(P),也就是不会去发出收银这个动作,直到有购书者到达付款步骤时,才会释放资源(V)唤醒收银员进程,这一过程的PV操作对应,信号量为同一个。

然后直到收银员完成一系列动作后,购书者才能到达下一步,因此 a2 处会阻塞(P),收银员完成一系列动作,释放资源(V),购书者离开书店,这一过程的PV操作对应,信号量为同一个。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/124863.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【每日一题】买卖股票的最佳时机 IV

文章目录 Tag题目来源题目解读解题思路方法一:动态规划 写在最后 Tag 【动态规划】【数组】【2023-10-04】 题目来源 188. 买卖股票的最佳时机 IV 题目解读 本题与 121. 买卖股票的最佳时机、122. 买卖股票的最佳时机 II、123. 买卖股票的最佳时机 III 题意目的一…

学会安装Redis数据库到服务器或计算机(Windows版)

Redis 是一个基于内存的开源数据库系统,被广泛应用于 Web 应用、消息队列、缓存、实时统计等领域。它支持多种数据结构,包括字符串、哈希表、列表、集合、有序集合等,并提供了多种操作命令。 Redis 的特点如下: 内存存储&#xf…

【C++】多线程的学习笔记(2)——白话文版(bushi

目录 前一篇 本章内容提要 使用mutex锁的原因 mutex锁的概念 mutex的使用教程 锁的声明以及命名 mutex的加锁以及解锁 例子 结果 注意 mutex的其他方式的锁介绍 lock_guard 介绍 例子 运行结果 adopt_lock参数 unique_lock 介绍 try_to_lock defer_lock re…

堆排序——向下调整

之前我们要想实现堆排序,是运用建堆代码来实现的: 向上调整建堆——向下调整排序 那么去我们可不可以只适用一种调整方法(向下调整)就能实现这样的功能呢? 向要只使用向下调整就实现堆排序 首先就是把数组里的值使用…

Linux--socket编程

socket套接字编程 一、服务器和客户端的开发步骤: 1、创建套接字 2、为套接字添加信息(ip地址和端口号) 3、监听网络连接 4、监听到有客户端接入,接受连接(如没有接入,会发生阻塞到) 5、数据…

导出视频里的字幕

导出视频里的字幕 如何利用剪映快速提取并导出视频里的字幕 https://jingyan.baidu.com/article/c35dbcb0881b6fc817fcbcd2.html 如何快速提取视频中的字幕?给大家介绍一种简单高效又免费的提取方法。需要利用到“剪映”,以下是具体的操作步骤和指引&a…

第2篇 机器学习基础 —(1)机器学习方式及分类、回归

前言:Hello大家好,我是小哥谈。机器学习是一种人工智能的分支,它使用算法和数学模型来使计算机系统能够从经验数据中学习和改进,而无需显式地编程。机器学习的目标是通过从数据中发现模式和规律,从而使计算机能够自动进…

SpringMVC(二)@RequestMapping注解

我们先新建一个Module。 我们的依赖如下所示&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaL…

Is This The Intelligent Model(这是智能模型吗)

Is This The Intelligent Model 这是智能模型吗 Ruoqi Sun Academy of Military Science Defense Innovation Institute, Beijing, 100091, China E-mail: ruoqisun7163.com The exposed models are called artificial intelligent models[1-3]. These models rely on knowled…

LOD1.3快速构建 | 多源数据自动化作业、图元和体块模型快速编辑、智能纹理贴图...

2023年&#xff0c;自然资源部先后发布了《实景三维中国建设总体实施方案&#xff08;2023—2025年&#xff09;》、《实景三维中国建设城市三维模型快速构建技术规定&#xff08;征求意见稿&#xff09;》等文件&#xff0c;明确提出&#xff0c;2024年底完成城市三维模型&…

[Unity][VR]Oculus透视开发图文教程1-Passthrough应用XR项目设置

Oculus现在已向开发者公布了如何使用自己的设备Camera,本系列课程就来手把手地告诉你如何在Unity中使用这个特性。 第一步,既然用的是Quest的特性,那就需要先引入Quest的Unity开发SDK。并且完成基本的VR开发项目设置。 新建Unity项目后,在编辑器界面先点击Window,打开资…

Go基础之变量和常量

Go基础之变量和常量 文章目录 Go基础之变量和常量一. 标识符、关键字、内置类型和函数1.1 标识符1.2 关键字1.3 保留字1.4 内置类型1.4.1 值类型&#xff1a;1.4.2 引用类型&#xff1a;(指针类型)1.5 内置函数1.6 内置接口error 二.Go变量命名规范2.1 采用驼峰体命名2.2 简单、…