软考架构师笔记-进程管理

1.4 进程管理

  • 进程状态:运行、等待、就绪。阻塞不能直接到运行状态,需要到就绪状态排队。五态图等。
  • 进程管理:前驱图
  • 临界资源:共享的资源,如打印机等
  • 临界区:访问临界资源的那段代码称为临界区
  • 信号量:特殊的变量

生产者和消费者

  • P操作,信号量 S < 0 时,阻塞
  • V操作,信号量 S <= 0 时,唤醒阻塞的进程队列

示例

  • S1初值为1,S2初值为0
  • 生产者:
    • 生产一个产品
    • P(S1)
    • 送到缓冲区
    • V(S2)
  • 消费者
    • P(S2)
    • 从缓冲区取产品
    • V(S1)
    • 消费产品
  • 几种情况分析
    • 第一次执行生产者(S1=0, S2=1),第二次执行生产者(S1=-1 阻塞)或者消费者(S1=1, S2=0)
    • 第一次执行消费者(S2=-1<0,阻塞),第二次执行消费者(不会执行,仍在阻塞中)或者生产者(S1=0,S2=0,唤醒消费者)

死锁问题

死锁预防

  1. 互斥(资源互斥)
  2. 保持和等待(保持现有分配资源,并等待未分配资源)
  3. 不可剥夺
  4. 环路等待(A->B->C->A)

死锁避免

  1. 有序资源分配
  2. 银行家算法(放贷思想,资源能收回来就能放贷,否则不放贷)
    • 注意释放一个进程后:剩余资源 = 进程已经分配的资源 + 现有资源
相关推荐
shandianchengzi6 小时前
【小白向】错位排列|图文解释公考常见题目错位排列的递推式Dn=(n-1)(Dn-2+Dn-1)推导方式
笔记·算法·公考·递推·排列·考公
浅念-6 小时前
C语言编译与链接全流程:从源码到可执行程序的幕后之旅
c语言·开发语言·数据结构·经验分享·笔记·学习·算法
The森6 小时前
Linux IO 模型纵深解析 01:从 Unix 传统到 Linux 内核的 IO 第一性原理
linux·服务器·c语言·经验分享·笔记·unix
tq10866 小时前
Skills 的问题与解决方案
笔记
三水不滴6 小时前
有 HTTP 了为什么还要有 RPC?
经验分享·笔记·网络协议·计算机网络·http·rpc
三块可乐两块冰7 小时前
【第二十九周】机器学习笔记三十
笔记
听麟7 小时前
HarmonyOS 6.0+ 跨端智慧政务服务平台开发实战:多端协同办理与电子证照管理落地
笔记·华为·wpf·音视频·harmonyos·政务
risc1234568 小时前
认识一个事物,需要哪些基本能力与要素?
笔记
firewood20249 小时前
共射三极管放大电路相关情况分析
笔记·学习
Hello_Embed9 小时前
libmodbus STM32 主机实验(USB 串口版)
笔记·stm32·学习·嵌入式·freertos·modbus