当前位置: 首页 > news >正文

软件设计师学习笔记9-进程调度

目录

1. PV操作

1.1进程的同步与互斥

1.1.1互斥

1.1.2同步

1.2 PV操作

1.2.1信号量

1.2.2 PV操作的概念

2.信号量与PV操作

2.1 PV操作与互斥模型

2.2 PV操作与同步模型

2.3 互斥与同步模型结合

3.前趋图与PV操作


1. PV操作

1.1进程的同步与互斥

1.1.1互斥

互斥:如千军万马过独木桥,属于间接制约关系

如下图(该图片来自希赛软考):

其中的独木桥被称为临界资源

临界资源:诸进程间需要互斥方式对其进行共享的资源(进程中访问临界资源的那段代码称为临界区)

1.1.2同步

同步:速度有差异,在一定情况停下等待,属于直接制约关系

举个例子,在A,张三和李四约好一起到B玩,但是因为两人速度不同,先到的要等后到的

如下图(该图片来自希赛软考):

注意:(1)同步和互斥这两种方式可以同时存在(2)进程之间并发过程中,由PV操作实现互斥与同步

1.2 PV操作

1.2.1信号量

信号量:是一种特殊的变量(且为全局变量)

信号量可以表示资源数量(比如打印机数量)

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

1.2.2 PV操作的概念

(1)P是荷兰语的Passeren,V是荷兰语的Verhoog

P操作即P(S),是加锁的过程;V操作即V(S),是解锁的过程。这两个是原语,即原子性语言

注:(1)S指的是信号量(2)原子性:一个原子事务要么完整执行,要么干脆不执行(3)加锁会降低资源的利用率,且有锁就有可能产生死锁(4)PV操作是对于临界资源来控制访问的,而不是共享资源

(2)PV操作的示意图如下:

2.信号量与PV操作

2.1 PV操作与互斥模型

多个进程共享一个打印机的问题(互斥模型),如下图:

互斥信号量S的初值为1

2.2 PV操作与同步模型

单缓存区生产者、消费者问题(同步模型),如下图:

注:(1)单缓冲区或多缓冲区指的是缓冲区的空间资源,类似于停车场有100个停车位,那么就有100个空间可以让汽车使用,这就相当于空间为100的缓存区,单缓冲区即只有1个车位,所以单缓冲区下S1的值为1

2.3 互斥与同步模型结合

单缓存区生产者、消费者问题,只不过市场(临界资源)不允许双方同时访问,如下图:

3.前趋图与PV操作

对于前趋图而言,无论从哪个进程开始,结果都是一样的,因为被箭头指向的进程(后趋活动)要等箭头开始处的进程(前趋活动)都执行完成才能执行,信号量S与趋线(即箭头)有关

以包饺子为例,如下图·:

此处我们不难发现,PV操作与箭头的关系,有箭头开始的必然有V操作,有被箭头指向的必然有相对应的P操作

声明:笔记内容来源于希赛软考

上一篇:软件设计师学习笔记8-操作系统+进程

相关文章:

软件设计师学习笔记9-进程调度

目录 1. PV操作 1.1进程的同步与互斥 1.1.1互斥 1.1.2同步 1.2 PV操作 1.2.1信号量 1.2.2 PV操作的概念 2.信号量与PV操作 2.1 PV操作与互斥模型 2.2 PV操作与同步模型 2.3 互斥与同步模型结合 3.前趋图与PV操作 1. PV操作 1.1进程的同步与互斥 1.1.1互斥 互斥&…...

09:STM32-------USART串口通信+串口数据包

目录 一:串口协议 1:通信接口 2:串口通信 3:硬件电路 4:电平标准 5:串口参数及其时序 二:USART介绍 1:简历 2:USART框图 3:USART的基本结构 4:数据帧 5: 波特率发生器 6:数据模式 三:案例 A:串口发送--单发送 1:连接图 2:函数介绍 3:代码 B:串口发送接收 1…...

“安全即服务”为网络安全推开一道门

8月30日,三六零(下称“360”)集团发布了2023年半年报,其中安全业务第二季度收入6.54亿元,同比增长98.76%,环比增长157.16%,安全第二增长曲线已完全成型!特别值得一提的是&#xff0c…...

vue3的生命周期

1.vue3生命周期官方流程图 2.vue3中的选项式生命周期 vue3中的选项式生命周期钩子基本与vue2中的大体相同,它们都是定义在 vue实例的对象参数中的函数,它们在vue中实例的生命周期的不同阶段被调用。生命周期函数钩子会在我们的实例挂载,更新…...

[E2E Test] Python Behave Selenium 一文学会自动化测试

前言 本文将使用Python Behave与Selenium,和同学们一起认识自动化测试,并附上完整的实践教程。 项目源码已上传:CSDN 郭麻花 Azure Repo python-behave-selenium 核心概念 1. 什么是E2E Test E2E即End-to-end,意思是从头到尾…...

Knowledge Graph Prompting for Multi-Document Question Answering

本文是LLM系列文章,针对《Knowledge Graph Prompting for Multi-Document Question Answering》的翻译。 多文档问答中的知识图谱提示 摘要1 引言2 符号3 知识图谱构建4 LM引导的图形遍历器5 实验6 相关工作7 结论 摘要 大型语言模型的“预训练、提示、预测”范式…...

ElMessageBox.prompt 点击确认校验成功后关闭

ElMessageBox.prompt(, 验证取货码, {inputPattern: /^.{1,20}$/,inputErrorMessage: 请输入取货码,inputPlaceholder: 请输入取货码,beforeClose: (action, instance, done) > {if (action confirm) {if (instance.inputValue) {let flag false;if (flag) {done()} else …...

调整Windows11桌面图标间隔

调整Windows11桌面图标间隔 WinR 快捷键如何使用 在Windows系统中,通过 WinR 的快捷键可以快速打开Windows系统的“运行”窗口,然后在这里输入相应的命令就可以快速执行指定的任务。 具体的操作方法是,同时按下键盘上的Windows键和R键即可。…...

Spring最佳实践: 构建高效可维护的Java应用程序

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…...

stable diffusion webui中的sampler

Stable Diffusion-采样器篇 - 知乎采样器:Stable Diffusion的webUI中,提供了大量的采样器供我们选择,例如Eular a, Heum,DDIM等,不同的采样器之间究竟有什么区别,在操作时又该如何进行选择&…...

MySQL表的内连和外连

文章目录 MySQL表的内连和外连1. 内连接(1) 显示SMITH的名字和部门名称 2. 外连接2.1 左外连接(1) 查询所有学生的成绩,如果这个学生没有成绩,也要将学生的个人信息显示出来 2.2 右外连接(1) 对stu表和exam表联合查询,把所有的成绩都显示出来…...

StatefulSets In K8s

摘要 StatefulSets是Kubernetes的一种资源对象,用于管理有状态应用程序的部署。与Deployment不同,StatefulSets保证应用程序的有序部署和有状态的维护,确保每个Pod都有唯一的标识和稳定的网络标识。这些特性使得StatefulSets非常适合部署需要…...

leetcode刷题笔记——单调栈

1.模板&#xff1a; stack<int> st; for(int i 0; i < nums.size(); i){while(!st.empty() && st.top() > nums[i]){st.pop();//计算、存放结果}st.push(nums[i]); }2.注意事项&#xff1a;需要注意单调栈中stack存放元素为nums数组的『下标』还是nums数…...

关于 ogbg-molhi数据集的个人解析

cs224w_colab2.py这个图属性预测到底咋预测的 dataset.meta_info.T Out[2]: num tasks 1 eval metric rocauc download_name …...

RabbitMQ:hello结构

1.在Linux环境上面装入rabbitMQ doker-compose.yml version: "3.1" services:rabbitmq:image: daocloud.io/library/rabbitmq:managementrestart: alwayscontainer_name: rabbitmqports:- 6786:5672- 16786:15672volumes:- ./data:/var/lib/rabbitmq doker-compos…...

SpringBoot整合Redis 并 展示使用方法

步骤 引入依赖配置数据库参数编写配置类构造RedisTemplate创建测试类测试 1.引入依赖 不写版本号&#xff0c;也是可以的 在pom中引入 <!--redis配置--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-…...

js中如何实现字符串去重?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用 Set 数据结构⭐ 使用循环遍历⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感…...

Axure RP仿QQ音乐app高保真原型图交互模板源文件

Axure RP仿QQ音乐app高保真原型图交互模板源文件。本套素材模板的机型选择华为的mate30&#xff0c;在尺寸和风格方面&#xff0c;采用标准化制作方案&#xff0c;这样做出来的原型图模板显示效果非常优秀。 原型中使用大量的动态面板、中继器、母版&#xff0c;涵盖Axure中技…...

2023牛客暑假多校第四场(补题向题解:J)

终于有时间来慢慢补补题了 J Qu’est-ce Que C’est? 作为队内的dp手&#xff0c;赛时想了好久&#xff0c;等学弟学妹都出了还是不会&#xff0c;羞愧&#xff0c;还好最终队友做出来了。 链接J Qu’est-ce Que C’est? 题意 长度为 n n n 的数组 a a a&#xff0c;每…...

第 362 场 LeetCode 周赛题解

A 与车相交的点 数据范围小直接暴力枚举 class Solution { public:int numberOfPoints(vector <vector<int>> &nums) {unordered_set<int> vis;for (auto &p: nums)for (int i p[0]; i < p[1]; i)vis.insert(i);return vis.size();} };B 判断能否…...

PCB设计实战:数字模拟隔离的元件抉择——从0Ω电阻到磁珠的精准应用

1. 数字模拟隔离的基础原理与挑战 在混合信号电路设计中&#xff0c;数字电路和模拟电路就像两个性格迥异的邻居。数字电路工作时会产生高频开关噪声&#xff0c;就像隔壁装修时的电钻声&#xff1b;而模拟电路对噪声极其敏感&#xff0c;如同正在录音的麦克风。这时候&#xf…...

NRF_LOG时间戳配置全攻略:从sdk_config.h修改到RTT Viewer显示(附常见问题排查)

NRF_LOG时间戳配置全攻略&#xff1a;从sdk_config.h修改到RTT Viewer显示&#xff08;附常见问题排查&#xff09; 在嵌入式开发中&#xff0c;日志系统是调试和问题排查的重要工具。对于使用Nordic Semiconductor芯片的开发者来说&#xff0c;NRF_LOG结合RTT Viewer提供了高效…...

如何将Uvicorn部署到Azure Functions Premium Plan:完整指南

如何将Uvicorn部署到Azure Functions Premium Plan&#xff1a;完整指南 【免费下载链接】uvicorn An ASGI web server, for Python. &#x1f984; 项目地址: https://gitcode.com/GitHub_Trending/uv/uvicorn Uvicorn是Python生态中备受推崇的ASGI Web服务器&#xff…...

如何用torchtext快速构建文本分类模型?5分钟上手RoBERTa与T5实战教程

如何用torchtext快速构建文本分类模型&#xff1f;5分钟上手RoBERTa与T5实战教程 【免费下载链接】text Models, data loaders and abstractions for language processing, powered by PyTorch 项目地址: https://gitcode.com/gh_mirrors/te/text 想要在PyTorch生态中快…...

RustFS实战:5分钟在Linux服务器上搭个私有S3兼容存储(保姆级配置+避坑指南)

RustFS实战&#xff1a;5分钟在Linux服务器上搭个私有S3兼容存储&#xff08;保姆级配置避坑指南&#xff09; 最近在折腾一个需要私有文件存储的Side Project&#xff0c;既不想用公有云S3&#xff08;太贵&#xff09;&#xff0c;又嫌MinIO配置繁琐。偶然发现RustFS这个基于…...

如何快速解锁原神60帧限制:免费开源工具终极指南

如何快速解锁原神60帧限制&#xff1a;免费开源工具终极指南 【免费下载链接】genshin-fps-unlock unlocks the 60 fps cap 项目地址: https://gitcode.com/gh_mirrors/ge/genshin-fps-unlock 想要在《原神》中体验120帧甚至更高帧率的流畅游戏画面吗&#xff1f;genshi…...

告别丑曲线!PPT波浪线绘制保姆级教程(含压缩技巧)

告别丑曲线&#xff01;PPT波浪线绘制保姆级教程&#xff08;含压缩技巧&#xff09; 在商务演示、学术报告或品牌提案中&#xff0c;一条流畅的波浪线往往能成为视觉焦点——它既能引导观众视线&#xff0c;又能传递动态趋势。但PPT自带的形状库中&#xff0c;那些生硬的预设曲…...

AI 自动获客系统正在重构企业线索获取方式

在数字化营销持续深化的当下&#xff0c;企业获客成本逐年攀升&#xff0c;传统 “广撒网” 的线索获取模式早已难以为继。销售团队大量时间耗费在无效线索筛选上&#xff0c;真正用于精准跟进、成交的时间不足两成&#xff0c;人力与投入的失衡让企业陷入增长内耗。而 AI 自动…...

LeetCode 153. 旋转排序数组找最小值:二分最优思路

LeetCode中等难度的经典题目——153. 寻找旋转排序数组中的最小值。这道题的核心考点是「二分查找」&#xff0c;难点在于如何利用“旋转排序数组”的特性&#xff0c;在O(log n)时间复杂度内找到最小值&#xff0c;也是面试中常考的二分变形题。 一、题目解读&#xff1a;读懂…...

RTX 3090 + PyTorch 1.7.1环境配置全攻略:从Scene-Graph-Benchmark.pytorch到Apex安装避坑指南

RTX 3090深度学习环境配置实战&#xff1a;从PyTorch到Scene-Graph-Benchmark全流程解析 当高端硬件遇上前沿算法&#xff0c;环境配置往往成为开发者面临的第一道技术门槛。RTX 3090凭借24GB显存和Ampere架构的强大算力&#xff0c;成为计算机视觉研究的理想选择&#xff0c;但…...