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

软考系统分析师每日学习卡 | [日期:2025-07-30] | [今日主题:进程管理(一)]

一、今日学了啥?

进程管理核心内容包括:同步与互斥,其中互斥通过信号量(初值1)实现临界资源独占访问,同步通过信号量(初值为资源数)协调任务执行顺序;PV操作是实现同步互斥的原语,P操作申请资源,V操作释放资源;前驱图描述任务间的先后依赖关系,进程资源图反映进程与资源的分配/请求状态。


二、重点/要记住的!

用🔺标关键概念,❌标易混淆点(1-3条):
🔺 结构化方法的核心是“自顶向下、逐步分解”(易考选择题)
❌ 注意:UML是建模工具,不是开发方法本身(教材P50强调)

  • 🔺 同步和互斥

    • 临界资源:各进程间需要以互斥方式对其进行访问的资源

    • 临界区:进程中对临界资源实施操作的那段程序(本质是程序代码)

    • 互斥:某(临界)资源在同一时间内只能由一个任务单独使用,使用时需要加锁,使用后解锁才能被其它任务使用,如打印机

    • 同步:多个任务可以并发执行,只在速度上存在差异,在一定情况下停下等待,不存在资源是否单独或共享问题,如A、B相约到电影院会合看电影

    • 互斥信号量:对临界资源采用互斥访问,使用互斥信号量后对其它进程无法访问,初值为1

    • 同步信号量:对共享资源的访问控制,初值一般为共享资源的数量

  • 🔺 PV操作

    • P操作:申请资源,资源不足则等待。

    • V操作:释放资源,唤醒等待的进程。

    • 关键

      • 原子性:P/V操作不能被中断,否则会出错(比如两个进程同时抢资源)。

      • 成对使用:每个P必须对应一个V,否则资源无法释放(死锁)。

    • 信号量类型

      • 二进制信号量(0/1):类似互斥锁(Mutex)。

      • 计数型信号量:支持多个资源(如缓冲区大小)。

      image

  • 🔺 前驱图

    • 定义:用来表示哪些任务可以并行执行,哪些任务之间有顺序关系

      image

  • 🔺 进程资源图

    • 定义:用来表示进程和资源之间的分配请求关系

      image


三、今天的小收获/卡住的地方

PV操作的理解


PV操作是操作系统中用来管理多个进程共享资源**的工具,就像“红绿灯”一样,控制谁先用、谁后用。

  • P操作(Proberen,荷兰语“尝试”)
    就像你去餐厅吃饭,先看有没有空位。

    • 如果有空位(信号量 > 0),你可以坐下,空位数减1。
    • 如果没空位(信号量 = 0),你就得排队等,直到有人离开。
  • V操作(Verhogen,荷兰语“增加”)
    就像你吃完饭离开,把空位还给系统。

    • 空位数加1,如果有排队的人,就叫他们来坐下。

信号量(Semaphore):一个“计数器”,记录可用资源的数量。
比如:一个图书馆有3个座位,信号量初始为3。

  1. 进程A来:执行P操作,信号量从3→2,坐下。
  2. 进程B来:P操作,信号量2→1,坐下。
  3. 进程C来:P操作,信号量1→0,坐下。
  4. 进程D来:P操作,信号量0→-1,被阻塞,只能等别人离开。
  5. 进程A离开:执行V操作,信号量0→1,唤醒D,D坐下。

场景:生产者-消费者问题

  • 生产者:生产商品,放入缓冲区。
  • 消费者:从缓冲区取出商品消费。
  • 信号量
    • empty:缓冲区空位数(初始为N)。
    • full:缓冲区已占位数(初始为0)。

流程

  1. 生产者想放商品:
    • 执行 P(empty)(确保有空位),再 V(full)(通知消费者有商品)。
  2. 消费者想取商品:
    • 执行 P(full)(确保有商品),再 V(empty)(释放空位)。

效果:避免缓冲区溢出或空取,保证同步。


四、明天学啥?

明天学习进程管理死锁和银行家算法


像实干家一样思考问题,像思想家一样付诸行动。

愿你我共同进步!

http://www.sczhlp.com/news/1843/

相关文章:

  • c#nopi读取excel内容
  • 容器云网络故障深度排查:POD访问SVC超时全解析
  • 一些图论进阶
  • Django模型关系:从一对多到多对多全解析
  • Higress curl测试Mcp
  • 2025年10款必须知道的项目管理软件推荐,好用的项目管理工具都在这里!
  • 数字时代的隐私盾牌:深度解析Seaoss临时邮箱如何重塑你的网络安全
  • day6
  • 好用的临时邮箱十分钟邮箱推荐(亲测)
  • 临时邮箱、tempmail、十分钟邮箱、24小时邮箱、可丢弃邮箱推荐
  • SSH连接服务器正常显示GUI程序
  • PY_0001:python的安装和打包exe程序
  • 亲测好用的临时邮箱推荐
  • 全链路电商解决方案
  • 智能化婚恋服务解决方案
  • 好用的临时邮箱十分钟邮箱推荐
  • halcon_02_控制结构
  • vue3中组合式api的执行顺序问题
  • 【LeetCode 23】力扣困难算法:合并 K 个升序链表 —— “ 优先队列算法 ”
  • SQL 获取某个作业的最近一次执行时间
  • Higress 案例
  • 基于LVGL 8.4.1,自己实现截图功能,不使用LVGL库函数
  • 360环视技术推荐的硬件平台:支持多摄像头与三屏异显的理想选择
  • 在vue3项目中使用Umo Editor 打包到生产环境报错 Key xxxx must be a async function
  • 钉钉直播回放视频下载工具,如何在电脑端下载钉钉直播回放视频文件到本地?
  • 【IT转码 Day01】
  • 读《构建之法》有感
  • 火山引擎多模态数据湖:AI时代的数据湖如何挖掘图片、视频、语音的“富矿”?
  • 智能矿山综合管控平台
  • 企业内部用什么聊天软件?4款内网通讯工具亲测推荐​