操作系统是用来管理整个系统的软硬件资源,必须安装操作系统才能控制软硬件。
进程状态,操作系统管理的时候为进程分配的几种状态,以便于它分配相应的资源。
三态模型
运行状态:进程所需要的所有资源都已经配了,并且有CPU资源。
就绪状态:其他所有资源都配了,缺CPU资源
等待状态:没有CPU资源,还缺其他资源,比如外设的交互,用户指令
状态之间的转换关系
五态模型
时间片
当任务发生的时候,从运行态到就绪态等待CPU调用资源,由于不可能调用CPU所有资源,因此采用时间片轮转算法来分配cpu资源,从就绪到运行只能运行一个时间片,如果时间片用完,任务未完成,任务会退回到就绪态等待下一个时间片调度。
03前趋图(经常考)约束关系
通过图看出哪些任务可以同时运行,哪些有前后关系。
04进程的同步与互斥同步与互斥是进行PV操作的前提。
互斥:同一时刻只允许某一个进程使用一个资源。 同一资源服务同一进程。
同步:同一时刻多个进程,速度有差异,当差距大的时候,速度快的在一定情况下等待。
同步和互斥不是相反的概念。
同步和异步是相反,互斥和共享是相反。
PV操作中的经典问题
05 PV操作(操作系统中最难的)利用同步互斥理念解决实际问题。
pv操作解决的问题实际是并发关系之间出现的一些问题。
S是信号量。
PV操作表示两种操作。P(S)操作和V(S)操作
如果没有pv操作,系统两个进程生产者和消费者。生产者会一直生产产品,则缓冲区容易满。
消费者则会缓冲区没产品不能消费。
06 PV操作练习题主要是分析进程之间的一些约束关系,在哪些位置要阻塞起来,等待另外一个进程进行操作。
V操作不具备阻塞功能,但能唤醒P操作,P操作有阻塞功能。
解题关键点在于找出约束关系,假设一个进程,另一个进程如何。
假设没有PV操作会如何,有PV操作会如何。
07 PV操作与前趋图从左往右,从上往下,标注信号量
尖头起点位置V操作,箭头结尾部分P操作。
08 09死锁问题题型:
(1)给定一定数量的进程,给定资源,判断什么情况下不可能发生死锁。
(2)死锁的预防和避免的问题,涉及银行家算法。
死锁:系统当中有一些资源,和需要用到资源的进程,系统给他们分配资源,进程才能运行,如果系统在某一时刻发现所有可用资源都已经分配出去了,所有进程都没有办法完成本身职责,就会产生死锁。
不发生死锁的最少的资源数=K*(N-1)+1
k进程数,n 资源数
10银行家算法死锁的预防与避免
产生死锁:四大条件,缺一不可
互斥是千军万马过独木桥,,如果不是互斥,则不好会产生死锁。
保持和等待指 进程会保持自己的资源等待系统分配更多的资源给自己
不剥夺指系统不会把分配给某个进程的资源剥夺
环路等待是 a等b给他释放资源,b等c给自己释放资源,c等a释放资源。
死锁的预防是指打破四大条件
银行家算法:以银行放贷的形式的形式释放资源,考虑资源是否能收回来。如果不能收回来,就不分配资源。
系统状态安全=没有发生死锁
假设p1先执行,则执行p1后,剩余资源不足以完成p1,则会产生死锁,因为p1此时不能把占用的资源释放出来
假设执行p2
考试时候验证序列是都走通。



