【架构师通关】理发店排队 + 车库停车,大白话秒懂“进程状态模型”与“PV操作

news2026/4/3 18:52:26
兄弟们操作系统的进程管理一直是软考里最让人头疼的“硬骨头” 。什么“阻塞”、“挂起”、“信号量”、“PV操作”听着就像天书 。但今天飞哥绝不跟你拽学术名词咱们就通过“去理发店剪个头” ‍♂️ 和“去商场地下车库停车” 这两个大家再熟悉不过的生活场景把这两大高频考点一次性炖烂、嚼碎一、‍♂️ 理发店里的“进程三态模型”想象一下你周末去一家非常火爆的理发店。店里只有一个最牛的Tony老师CPU但排队剪头发的人进程有十几个。如果大家都不排队一窝蜂冲上去抢Tony老师手里的剪刀场面是不是就失控了操作系统也是一样。为了让大家都能按顺序理发操作系统必须给每个顾客贴上不同的“状态标签” ️。最经典的“进程三态模型”其实就是顾客在理发店里的三种基本状态运行态Running场景你正坐在理发椅上Tony老师正在给你咔嚓咔嚓剪头发 ✂️。本质进程拿到了CPU正在执行代码。就绪态Ready场景你洗完头坐在店里的沙发上等 ️。你什么都不缺万事俱备就缺一个空闲的Tony老师只要叫到你的号马上就能坐上去剪。本质进程具备了运行的所有条件只差分配到CPU时间。等待态/阻塞态Blocked/Waiting场景你刚坐上理发椅突然发现没带手机付钱 只能赶紧给老婆发微信求转账。这时候Tony老师肯定不能干等你啊于是让你去店里的角落蹲着等进入阻塞态他先给下一个人剪。就算Tony老师现在有空你老婆钱没转过来你也剪不了本质进程正在等待某个事件如等待网络、等待读取硬盘等即使现在给它CPU也跑不下去。⚠️这里有一个超级高频的考试陷阱如果老婆把钱转给你了你是直接冲上去抢过Tony老师的剪刀吗绝对不行‍♂️ 阻塞态等到钱之后必须乖乖回沙发重新排队进入就绪态核心骨架图三态转换① 叫号 (调度)② 剪完重排 (时间片完)③ 发现没钱 (等待事件)④ 钱到了 (事件发生)就绪态 (Ready)坐在沙发上运行态 (Running)正在剪头发阻塞态 (Blocked)蹲角落等钱二、 软考必考的“五态模型”到底把你赶去了哪注意了架构师考试里最爱考的“五态模型”并不是加了“新建”和“终止”而是引入了“挂起Suspend”这个概念这五个状态分别是运行、活跃就绪、静止就绪、活跃阻塞、静止阻塞。听起来是不是像念经别慌咱们继续在理发店里待着 。引入“挂起”的唯一原因就是店里的沙发内存坐不下了只能把一部分人赶到**店门外的大马路上外存/磁盘**去等 ‍♂️。活跃 在店里面在内存里静止 在店门外被挂起到磁盘上️活跃就绪Active Ready坐在店里的沙发上等Tony老师。随时可以叫号上去剪在内存中具备运行条件。静止就绪Static Ready店里沙发满了老板让你去店门外马路上站着排队被挂起。你得先被老板叫回店里激活才能被Tony老师服务在磁盘中具备运行条件等待调入内存。活跃阻塞Active Blocked蹲在店里的角落等老婆微信转账在内存中等资源。静止阻塞Static Blocked你不仅没钱还因为太占地方被老板赶到了店门外马路上去等钱 在磁盘中等资源。运行Running坐在椅子上剪头发 ✂️。核心骨架图带挂起的五态转换【理发店内】活跃状态 (内存)【店外马路】静止 / 挂起状态 (外存)① 叫号(调度)② 时间片完③ 没带钱(等待)④ 钱到了(事件发生)挂起(赶出门)激活(叫进店)挂起(赶出门)激活(叫进店)⑤ 门外收到钱静止就绪 (Static Ready)站在门外排队静止阻塞 (Static Blocked)站在门外等钱活跃就绪 (Active Ready)坐在沙发上运行 (Running)正在理发活跃阻塞 (Active Blocked)蹲在角落等三、️ 进阶Boss用“地下车库”秒懂PV操作与信号量如果你搞懂了上面的进程状态流转那接下来这个经常让人在下午案例题里丢分的“PV操作”咱们也能顺手秒杀理发店的例子解决的是“状态流转”但如果遇到多个同类资源我们换一个大家周末都会遇到的绝佳场景去商场地下停车场停车️。商场的地下停车场车位是有限的这就是操作系统里的“临界资源”。如果100辆车同时往只有50个车位的车库里开里面绝对会堵成一锅粥。怎么管理呢商场会在门口设一个自动抬杆机和余位显示牌信号量 S进场叫“拿卡P操作” 出场叫“还卡V操作” 。把“信号量 S”想象成停车场门口显示牌上的“空闲车位数量”S 0表示现在车库里还有几个空车位。S 0表示车位刚刚停满一个空位都没了。S 0注意了负数的绝对值表示门口起落杆外有几辆车正在排队等车位比如 S -2表示里面全满门外还有2辆车在排队 。P操作Passeren进场拿卡 / 申请资源你开到门口按一下机器拿一张停车卡同时显示牌上的空位减一S S - 1。如果减完之后S 0说明你拿到卡了抬杆放行你开进去停车进程继续运行。如果减完之后S 0说明车位早满了机器根本不吐卡你只能在杆外踩着刹车苦等进程进入阻塞态V操作Vrijgeven出场还卡 / 释放资源你逛完商场开出来了在出口把停车卡还给收费员同时显示牌上的空位加一S S 1。你把卡还回去之后如果S 0注意这里是小于等于0因为你刚加了1说明加之前肯定是负数这代表你刚才在里面停的时候门外一直有车在苦苦排队收费员拿到你这张卡马上用对讲机喊入口保安“刚空出一个车位放门外排队的第一辆车进来” ️唤醒一个阻塞态的进程让它进入就绪态。核心骨架图PV操作逻辑V操作 (出场还卡 / 释放资源)是 (有人在门外排队)否 (没人排队)S S 1S 0 ?保安放一辆排队的车进来(叫醒别人)直接开走(继续执行)P操作 (进场拿卡 / 申请资源)是 (车位满了)否 (拿到卡了)S S - 1S 0 ?在门外排队等待(自我阻塞)抬杆进场(继续执行)四、 飞哥总结考前必背的通关口诀为了帮大家在考场上秒杀选择题和案例题飞哥把这两大块核心考点浓缩成了下面的“避坑指南”建议直接截图保存 进程状态避坑要点活跃 vs 静止在店里内存就是活跃被踢到门外外存/硬盘就是静止挂起。就绪 vs 阻塞万事俱备就差Tony老师CPU就是就绪缺别的东西等钱、等网速就是阻塞。门外的逆袭如果在门外等钱静止阻塞钱突然到了你不能直接冲进店你只会变成在门外排队静止就绪只有等老板叫你进店激活才能变成坐在沙发上等活跃就绪。 PV操作避坑要点P是自己等P操作进场拿卡如果失败了是把自己挡在门外“阻塞”了等车位。V是叫醒别人V操作出场还卡是在还车位如果发现有人在等顺手“唤醒”门外的一辆车让他进场。万能口诀⭐P减1小于0就等V加1小于等于0就叫醒。怎么样这下子操作系统最硬的两块骨头是不是变得像看段子一样轻松了赶快收藏这篇笔记咱们考场上见

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…