操作系统-02进程管理
一、基本概念
进程是程序在一个数据集合上运行的过程
由程序块、进程控制块(PCB)和数据块三部分组成
进程与程序的区别
进程是程序的一次执行过程,没有程序就没有进程
程序是静态的
进程是动态的
进程进行资源的分配和调度,程序不行
例题:
进程和程序是一种一对一对应的关系(错)
进程是一个程序关于某个数据集的一次运行(√)
进程是系统分配资源的基本单位,而程序不是(√)
一个程序可以包含多个进程(√)
从静态角度看,进程由3个部分组成,通常,
二、进程的状态

CPU时间片用完了,所以运行回到了就绪状态
一个进程的优先级比当前进程的优先级更高,所以低优先级只能回到就绪的状态
只有就绪状态和运行状态可以相互转换的
运行到等待(等待)
等待到就绪(等待)
进程的同步与互斥
直接制约关系
速度有差异,在一定的条件下停下来等待
间接制约关系

我占了你就不能占
临界关系
PV操作
临界资源:诸多进程间需要互斥方式对其进行共享的资源,如打印机,磁带机
临界区:每个进程中访问临界资源的那段代码称为临界区
信号量:一种特殊的变量,可正可负
P操作:申请资源的操作
V操作:释放资源的操作

S代表的是临界资源的资源总数
如果资源小于0,就要进入到阻塞队列
如果分配完之后资源还有,所以再进行下面的执行
V操作时释放资源
当资源数小于等于0的时候,阻塞队列里面可以被唤醒,告诉我们可以直接运行,不会执行阻塞
互斥模型
多个进程共享一台打印机问题(互斥模型)

理发店
理发店有一个师父
师父就是临界资源
S=1
来一个客人去理发
申请一个资源:P(S)
S=S-1
客人2来了
申请一个资源,但是小于0
只能等待,进入阻塞队列里挂起
只有客人1剪完头了,释放一个资源出来,所以S从-1变为0
所以客人2又可以继续进行
同步模型
单缓存区生产者、消费者问题(同步模型)

S1代表的是市场部的产品
S2代表的是生产出的产品
对于生产者来说
PV操作应用
文字加图

找最简单的开始切入
收银员最开始干什么,一开始在睡觉,等待消费者来买书P操作,来一个购书的人扫码,收费,可以叫下一个付款,V操作,等待的是第一个购书者来买书,所以是P(S1),V(S2)
购书者
第一个人来的时候要叫醒收银员,V(S1)
第二个人来的时候只能排队等,P(S2)
答案:V(S1)、P(S2)
P(s1)、P(S2)
前驱图
A->D
A完成才能去D

ABC都完成我们才能开始D
死锁问题
进程管理是操作系统的核心,但如果设计不当,就会出现死锁的问题。如果一个进程在等待一件不可能发生的事,则进程就死锁了。而如果一个或多个进程产生死锁,就会造成系统死锁
例,系统有5个进程,ABCDE,这5个进程都需要4个系统资源,如果系统资源至少有多少个资源,则不可能发生死锁
(3+1)*5=20


鸵鸟策略(不理睬策略)
看不见危险
死锁的预防
死锁的检测
死锁的避免
(1)有序资源分配法–简单,但资源浪费多
(2)银行家算法–
银行家算法

有一家银行有300万存款,A要借钱,350万,不理他,本身就没有钱
要接纳的是少于300万,即不超过系统的资源数
进程可以分期请求资源,但请求的总数不能超过最大需求量
A第一次借100万,第二次50万,第三次50万
当系统资源不能满足进程尚有资源数时,对进程的请求可以推迟分配,但总能使进程在优先的时间内得到资源

原本R1,R2,R3是985,
现在分配给,7,7,5
所以现在剩的是2,1,0–系统里面还有这么多资源
还要搞清楚,他们还要生成多少资源

P2可以优先分配,因为R2资源,系统还有,分配给他系统就可以执行了,因为他分配的资源已经够了
P2执行完之后,能够释放多少资源,即已经分配的资源数,所以还剩,4,2,1
所以可以执行P4,P4执行完之后可以收到5,4,1
所以P1,P5都可以执行,所以再执行P3
2227

被折叠的 条评论
为什么被折叠?



