系统架构-进程管理

进程的状态

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

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

五态模型:

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

前趋图

进程的同步与互斥:

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

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

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

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

信号量与pv操作

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

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

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

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

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

死锁及银行家算法

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

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

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

死锁的的四大条件和避免

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

避免:

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

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

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

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

相关推荐
huisheng_qaq9 分钟前
【Python基础篇-09】深入理解python的闭包与装饰器
python·闭包
编码者卢布1 小时前
【App Service 】WebJobs 多实例实验:谁在运行,什么时候运行?
开发语言·python
quantdash_cc1 小时前
Python 获取实时行情后如何进行批量筛选?从全市场快照到策略候选池
开发语言·python·数据分析·量化交易·股票数据·quantdash
小蜗 strong1 小时前
和电脑猜拳(随机程序应用)
服务器·前端·python
华研前沿标杆游学2 小时前
企业标杆游学|走进东莞OPPO总部✨探秘智造与品牌出海
python
大侠归来2 小时前
C语言内存管理:从栈到堆的完整指南
c语言·开发语言·python
LOVE️YOU3 小时前
Python 数据结构的本质:位置、对象引用、Hash 与可变性
数据结构·python·哈希算法
李航19833 小时前
自动动手开发图形引擎,不仅能AI建模,还能AI渲染
人工智能·python·计算机视觉·ai·ai编程
LeoCrawls3 小时前
Python 读取 JSON 常见报错排查,附完整处理函数
python·json·php
zzZ··*3 小时前
CodeBuddy 用量看板:本地解析 Token 与积分消耗,不联网不上传
python·vue·ai编程