系统架构-进程管理

进程的状态

三态模型:阻塞 -> 就绪 -> 运行

  • 就绪状态被调度会进入运行态
  • 运行态时间片到了会回到就绪态
  • 非cpu资源耗尽会进入阻塞状态
  • 阻塞态等待非cpu资源释放会进入就绪态

五态模型:

五态模型:静止就绪、静止阻塞、活跃阻塞、活跃就绪、运行

前趋图

进程的同步与互斥:

  • 互斥:同类资源的竞争关系,是间接制约关系,由资源进行互斥制约,共享使用,同一时刻只允许一个人用
  • 同步:进程间的协作关系,是直接制约关系,是多个进程之间的协作制约关系,至少有两个不同的进程

同步模型的具体应用有:生产者和消费者

互斥模型的具体应用有:打印机

同步模型在应用的过程中需要利用的pv操作

信号量与pv操作

  • 临界资源:诸进程间需要互斥方式对其进行共享的资源,如打印机、磁带机
  • 临界区:每个进程中访问临界资源的那段代码称为临界区
  • 信号量:是一种特殊的变量

pv操作都会结合信号量进行操作,p意味着加锁,v意味着释放锁

s为负数时,即代表有多少个进程在等待

在前趋图中,每个节点都有前驱和后继节点,代表的是两个进程,箭头指向的方向是 P 操作,来源方向是 V 操作,每根间线都代表一个信号量。用来控制两个进程的协作

如果在需要确认信号量的题目中,如果信号量都相等,则无所谓位置,如果信号量不等则需要根据题目进一步确认每个进程所需要的信号量

死锁及银行家算法

进程是资源分配和调度的基本单位,进程占用了资源了使用完会释放

M个进程,各自需要 w个资源,系统共有n个资源,不可能死锁的条件:

n >= m * (w -1)+1 每个进程都差1个最后只要再加1个就可以解决死锁

死锁的的四大条件和避免

  • 互斥:资源是互斥的,不能同时被两个进程使用
  • 环路等待:进程形成环路
  • 不剥夺:每个进程不会去抢夺其他进程已分配的资源
  • 保持和等待:没有资源的情况下会保持和等待

避免:

  • 有序资源分配法
  • 银行家算法

银行家算法:配资源的原对

  • 当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程
  • 进程可以分期请求资源,但请求的总数不能超过最大需求量
  • 当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源

银行家算法 要注意资源总数和已分配资源数

相关推荐
Cloud_Shy61818 分钟前
解读《Effective Python 3rd Edition》:从练气到老魔(第四章 Item 27 - 29)
开发语言·人工智能·经验分享·python·学习方法
机汇五金_24 分钟前
交换机箱体材质如何选择?铝合金与钢板有什么区别?
python·材质
asdzx6725 分钟前
使用 Python 精准提取 Word 文档中的文本与表格
python·word
某林21227 分钟前
ROS 2 与大模型融合实战:从进程连环崩溃到类型安全防御的深度排障复盘
c++·python·安全·机器人·人机交互·ros2
勇往直前plus38 分钟前
Redis&Python 梳理
数据库·redis·python
开源量化GO39 分钟前
多品种组合单品种剧烈波动:组合风控先平谁
python
大任视点41 分钟前
智绘秀番与腾讯云达成战略合作,推动 AI 动漫生产进入 Agent 协同时代
人工智能·云计算·腾讯云
战族狼魂1 小时前
AI 全栈开发实战训练路线(企业级)
人工智能·python·chatgpt·大模型
AC赳赳老秦1 小时前
用 OpenClaw 制定技术学习计划:根据目标岗位自动生成学习路线、推荐学习资源
开发语言·c++·人工智能·python·mysql·php·openclaw
长和信泰光伏储能1 小时前
探索绿色能源未来:光伏储能技术解析
python