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

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

兄弟们操作系统的进程管理一直是软考里最让人头疼的“硬骨头” 。什么“阻塞”、“挂起”、“信号量”、“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就叫醒。怎么样这下子操作系统最硬的两块骨头是不是变得像看段子一样轻松了赶快收藏这篇笔记咱们考场上见

相关文章:

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

兄弟们,操作系统的进程管理一直是软考里最让人头疼的“硬骨头” 🦴。什么“阻塞”、“挂起”、“信号量”、“PV操作”,听着就像天书 📚。 但今天,飞哥绝不跟你拽学术名词!咱们就通过“去理发店剪个头” &a…...

如何在 React Native 中使用 Expo AV 高效缓存视频文件

本文详解在裸 React Native 项目中集成 expo-av 实现视频本地缓存的完整方案,涵盖路径处理、文件写入、URI 适配及常见兼容性问题(如 react-native-fs 路径不被 expo-av 识别),并提供可直接运行的优化代码与关键注意事项。 本…...

mysql备份工具选择_mysqldump对InnoDB与MyISAM支持

mysqldump默认对MyISAM用表级锁、InnoDB不启用事务快照,混合引擎必须用--lock-all-tables保证一致性,且需确保REPEATABLE READ隔离级别和ROW/MIXED binlog格式。mysqldump 默认行为对 InnoDB 和 MyISAM 完全不同默认不加任何参数时,mysqldump…...

Go语言如何部署到K8s_Go语言Kubernetes部署教程【进阶】

Go服务容器化失败主因是镜像路径与WORKDIR不匹配、containerPort未对齐监听端口、Probe未适配程序健康接口、ConfigMap/Secret挂载权限不足,需逐一核验镜像内容、网络声明、文件权限及进程监听行为。Go 服务打包成容器镜像时,main.go 路径和 WORKDIR 不匹…...

c++如何通过文件映射mmap在多进程间实现高性能数据共享【进阶】

mmap 多进程共享必须用 MAP_SHARED,因其确保所有进程映射同一物理页并同步回文件;MAP_PRIVATE 为写时复制,修改不共享。需 O_RDWR 打开、ftruncate 预设大小,并配合适当同步机制。为什么 mmap 在多进程共享中必须用 MAP_SHARED 而…...

宝塔面板怎样实现数据库的多地异地自动备份_结合阿里云OSS与定时任务插件

宝塔面板需通过定时任务ossutilmysqldump实现阿里云OSS数据库自动备份:先配置ossutil及MySQL凭据文件,再编写含时间戳命名与NTP校时的Shell脚本,避免依赖无效的远程备份模块。宝塔面板怎么配置阿里云OSS自动备份数据库能,但得绕过…...

OpenAI估值逼近6万亿!连散户都杀入,但天价融资背后的“算计”,让人细思极恐

出品 | 网易智能 作者 | 小小 编辑 | 王凤枝 1220亿美元(约合8800亿元人民币)的承诺资金,8520亿美元(约合6.1万亿元人民币)的投后估值。 3月31日,OpenAI正式官宣了一轮规模惊人的融资,甚至连散户…...

【DIY小记】解决MacOS上Edge浏览器bilibili全屏卡顿的问题

近日笔者发现自己Macbook-Pro播放B站视频,全屏的时候必然卡顿,退出全屏就没事。笔者电脑的参数是: 芯片:M3系统:Tahoe 26.4浏览器:Edge 到网上一查发现《Edge浏览器在MacOS 26(Tahoe)系统上看B站卡顿》一…...

Claude Code泄露,

昨晚在我们的微信群里面,我的大学师兄发了一个链接出来,我点进去一看,为什么这么多的 Star,然后再看了下新闻,简直是炸裂。https://github.com/instructkr/claw-code搞过前端的都知道,发 npm 包之前要配 .n…...

第四天(实习无忧)

##文件结束的判定,编译与链接##1.文件结束的判定:fgetc(pf)读取结束返回EOF,fgets(arr,100,pf)读取结束返回NULL,fread(arr,sizeof(int),n,pf)读取结束返回对应的n。而成功读取到文件尾结束可以用feof(pf)判断,若中途因…...

OpCore-Simplify:技术赋能Hackintosh的开源工具革命

OpCore-Simplify:技术赋能Hackintosh的开源工具革命 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify OpCore-Simplify是一款革命性的开源工…...

计算机毕业设计:Python中国地铁网络智能分析系统 Flask框架 数据分析 可视化 高德地图 数据挖掘 机器学习 爬虫(建议收藏)✅

博主介绍:✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业项目实战6年之久,选择我们就是选择放心、选择安心毕业✌ > 🍅想要获取完整文章或者源码,或者代做,拉到文章底部即可与…...

Claude Code 官方回应代码泄漏:这次,他们没有“甩锅人”

这两天,Claude Code 的“代码泄漏”事件在技术圈引发了不少讨论。各种版本的故事层出不穷,甚至还有营销号声称“新员工背锅被开除”。但从官方回应来看,事情的走向,其实完全不一样。👉 Claude Code 团队,正…...

如何利用 HTML 结构优化网页内容结构_通过 HTML 结构优化内容层次化对 SEO 的作用是什么

如何利用 HTML 结构优化网页内容结构_通过 HTML 结构优化内容层次化对 SEO 的作用是什么 在当今的互联网时代,搜索引擎优化(SEO)已经成为网站成功的关键因素之一。一个好的 SEO 策略不仅能够提高网站的可见度,还能够吸引更多的访…...

119. 使用 Fluentd concat 过滤器插件在牧场日志中串接多行日志

Situation 地理位置Logs of multiple lines are separated across multiple log events within Pod logs and there is a need to combine them into a single event before forwarding them to a logging solution. 多行日志在 Pod 日志中被分隔在多个日志事件中,…...

118. 从 RKE1(Docker)迁移到 RKE2(容器化)后,JSON 日志未能正确解析

Situation 地理位置After migrating the cluster from RKE1 to RKE2, JSON logs sent to Elasticsearch are not being split into fields correctly. 在将集群从 RKE1 迁移到 RKE2 后,发送到 Elasticsearch 的 JSON 日志没有被正确划分为字段。 Resolution 结局T…...

117. 如何在Rancher监控中测试 AlertManager

Procedure 程序This guide demonstrates how to test Alertmanager and PrometheusRule configuration, to validate that alerts are sent successfully by Alertmanager. 本指南演示如何测试 AlertManager 和 PrometheusRule 配置,以验证 AlertManager 是否成功发…...

电商 SEO 优化与社交媒体营销的关系是什么_电商 SEO 优化效果如何评估

电商 SEO 优化与社交媒体营销的关系 在当今互联网时代,电子商务(电商)已成为全球经济的重要组成部分。电商 SEO 优化和社交媒体营销是两种互补的推广手段,它们之间的关系不仅丰富了电商平台的推广策略,也为企业带来了…...

116. 为项目监控员生成的警报添加标签

Procedure 程序To label alerts for Project Monitors, you must configure the Prometheus Federator Helm charts values section. This is done by adding additionalRuleLabels under defaultRules within helmProjectOperator. You can perform this modification during…...

凌晨裁员3万人,史上最大裁员潮来了!

作者 | 文韬报道 | 环球电商“我们决定取消您的岗位,今天是您的最后一个工作日。”不少员工醒来才发现,岗位没了,系统权限也快没了,今天就是最后一个工作日。过去大家总觉得,只有快撑不住的公司,才会用这种…...

2025届学术党必备的降重复率助手实际效果

Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 对于AI生成文本展现出的高频特性,我们可运用如下一系列指令来实现去机械化的目标…...

Python对象生命周期全链路追踪,从PyObject_MALLOC到gc_collect:一线工程师压测验证的5个致命内存误用场景

第一章:Python对象生命周期全链路追踪概览Python对象的生命周期涵盖创建、使用、引用管理直至最终销毁的全过程。理解这一链条对诊断内存泄漏、优化资源使用及编写健壮代码至关重要。对象并非仅在 __init__ 中诞生,也非仅靠 del 显式终结;其真…...

【Python 3.14 JIT性能调优权威指南】:20年CPython核心开发者亲授3大接入瓶颈突破法

第一章:Python 3.14 JIT编译器的演进脉络与接入价值Python 3.14 引入了实验性但高度集成的内置 JIT(Just-In-Time)编译器,标志着 CPython 运行时首次在官方发行版中提供可生产级启用的动态编译能力。该 JIT 并非独立运行时或第三方…...

Phi-3-mini-4k-instruct-gguf入门指南:轻量模型为何更适合中小团队AI能力快速验证

Phi-3-mini-4k-instruct-gguf入门指南:轻量模型为何更适合中小团队AI能力快速验证 1. 为什么选择轻量模型 在AI技术快速发展的今天,中小团队常常面临一个困境:既想快速验证AI能力,又受限于计算资源和时间成本。这正是Phi-3-mini…...

Windows Defender优化工具:提升系统性能的安全配置方案

Windows Defender优化工具:提升系统性能的安全配置方案 【免费下载链接】windows-defender-remover A tool which is uses to remove Windows Defender in Windows 8.x, Windows 10 (every version) and Windows 11. 项目地址: https://gitcode.com/gh_mirrors/wi…...

运维养龙虾--腾讯云 CloudQ 上线:把企业云上治理,装进你每天都在用的聊天框

想象一下:凌晨两点,你被告警叫醒,不用登录控制台,不用翻文档,直接在企业微信里问一句"昨晚华东区账单怎么涨了",2分钟后就拿到了完整的根因分析报告。这不是科幻,这是 CloudQ 正在做的…...

科技企业如何利用智能手段提升研发效率?

观点作者:科易网-国家科技成果转化(厦门)示范基地 现状概述:传统研发模式的瓶颈与挑战 在全球科技创新加速迭代的背景下,科技企业面临的核心挑战之一是如何提升研发效率。传统研发模式往往存在以下痛点: 信…...

高校科研如何提升成果产业化能力?

观点作者:科易网-国家科技成果转化(厦门)示范基地高校科研作为科技创新的核心源头,近年来在基础研究、核心技术突破等方面取得了显著进展。然而,如何将实验室里的“论文成果”有效转化为产业界的“经济产出”&#xff…...

Java调用C/C++库从未如此简单:3步实现JNI替代方案,性能提升40%的FFM实测报告

第一章:Java调用C/C库从未如此简单:3步实现JNI替代方案,性能提升40%的FFM实测报告Java开发者长期受限于JNI繁琐的头文件生成、本地方法注册、内存生命周期管理等痛点。如今,Java 21正式将Foreign Function & Memory API&#…...

终极指南:如何快速构建企业级Vue3后台管理系统

终极指南:如何快速构建企业级Vue3后台管理系统 【免费下载链接】vue3-element-admin 🔥基于 Vue 3 Vite 7 TypeScript element-plus 构建的后台管理前端模板(配套后端源码),vue-element-admin 的 vue3 版本。 项目…...