系统架构-进程管理

进程的状态

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

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

五态模型:

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

前趋图

进程的同步与互斥:

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

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

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

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

信号量与pv操作

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

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

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

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

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

死锁及银行家算法

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

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

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

死锁的的四大条件和避免

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

避免:

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

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

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

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

相关推荐
花酒锄作田19 小时前
Pydantic校验配置文件
python
hboot19 小时前
AI工程师第四课 - 深度学习入门
pytorch·python·神经网络
ZhengEnCi1 天前
P2M-Matplotlib折线图完全指南-从数据可视化到趋势分析的Python绘图利器
python·matlab·数据可视化
ZhengEnCi1 天前
P2L-Matplotlib饼图完全指南-从数据可视化到图表定制的Python绘图利器
python·matlab
曲幽1 天前
你的REST接口还在“过度投喂”数据吗?——FastAPI + GraphQL实战避坑指南
python·fastapi·web·graphql·route·cors·rest·strawberry
用户8358086187911 天前
基于 Self-RAG 与列表级重排序的进阶 RAG 系统设计与实现
python
Warson_L2 天前
Python `Annotated` 与 LangGraph Reducer 学习笔记
python
韩师傅2 天前
海天线算法的前世今生
python·计算机视觉
韩师傅2 天前
当你的甲方设备过烂,要如何快速出效果?
python·计算机视觉
Warson_L2 天前
LangGraph的MessageState and HumanMessage
python