操作系统第三章

    操作系统第三章讲的是什么呢?-进程调度和死锁当然讲的就是进程调度和死锁了,确实就是讲的这些。本来我是很少总结自考的,为什么要总结这一章呢?因为有计算!我觉得有必要总结一下!

进程调度

    进程大家都知道是允许并发执行的程序在数据集合上运行的过程,其实呢也就是一个过程。而进程调度顾名思义就是对进程进行调度。为什么要进程调度?因为啊这么多进程在运行,没有指挥规划不就乱了么。

死锁

    死锁又是什么呢?死锁是由于多个进程竞争共享资源引起的进程不能向前推行的僵死状态。本章中还有一个饥饿,这两个看起来意思差不多啊。其实,死锁与饥饿是不同的,死锁是同步的,饥饿是异步的(同步异步大家应该都知道)。举两个例子大家就知道了:例如两个山羊过独木桥,两个山羊同时走到桥中间,第一只羊等第二只过去它再过,第二只等第一只过去它再过,这样哪只都过不去了就形成了死锁。再例如三个人传球,球总是在其中两个人之间传,第三个人根本碰不到球,这就是饥饿。

进程调度算法

    进程调度算法书中介绍了六种:
    1.先来先服务算法。顾名思义,就是哪个进程先到就为它分配CPU让它从就绪态进入执行态。但是这种方法却有可能让短进程等待时间太长。

    2.短进程优先算法。通过先来先服务例子可知让短进程先执行能降低平均等待时间,提高系统吞吐量。

    3.优先权调度算法。就是为进程加权,优先权值越高就越先执行。这种算法分为非抢占式抢占式
    非抢占式:不管新来的进程优先权有多高,即使比当前进程高很多也要等当前时间正常运行完再抢占,这是:为我独尊
    抢占式:只要来了优先权比当前进程大的就让优先权高的先执行。(基于时钟中断的抢占和立即抢占)这是:望而生畏。
    但是这种算法容易引起饥饿问题。为何?因为高优先权的总来总抢低优先权的还怎么执行。可以用老化技术(逐渐增加等待进程的优先权)来解决。

    4.时间片轮转调度算法。什么是时间片?就是CPU分配给每个进程一段时间,这段时间就是时间片。这种方法主要是确定时间片的大小,太大太小都不行。而时间片(q)与系统响应时间(T)和进程数量(N)有关系。牢记T=Nq这个公式即可。

    5.多级队列调度算法。这种算法就是把就绪队列分为多个独立队列,进程永久进入一个队列,每个队列的算法,优先权都可能不同。但是这种算法不够灵活,也会造成饥饿问题。

    6.多级反馈队列调度算法。这是对多级队列算法的加强,多了一个反馈。通过老化技术来防止饥饿问题的产生。

实时系统中的调度

几种调度算法

    1.最早截止时间优先。这种算法是开始截止时间越早,越早执行。

    2.最低松弛度优先。
这个松弛都是什么?一个实时进程的紧迫程度。这种算法是依据进程的完成截至时间当前时间处理完该任务还需要的时间

扫描二维码关注公众号,回复: 1595134 查看本文章

    松弛度=完成截至时间-当前时间-处理完该任务还需要的时间

    截至完成时间:看书中例子,A每20ms执行一次,那它的完成截至时间是在20ms的基础上增长,也就是完成下一次执行的截至时间。这么说可能不太明白哈,来看书中的A,它在T1时刻的完成截至时间是多少?20ms!因为它的下一次执行就是它自己(它自己还没有完成),所以就是20ms,那T4时刻呢?60ms!因为它已经完成了两次,下一次执行完成就是第三次完成就是60ms,T6时刻呢?80ms!因为它已经完成了3次,下一次就是第四次执行完成,是80ms。B同理。

    当前时间:这个不必说,都能明白。

    处理完该任务还需要的时间这个也好说,书中例子:A的执行时间为10ms,它只是在这10ms内执行,那它为什么20m执行一次呢?因为它执行完一次之后需要等待,也就是从执行态变为就绪态在变为执行态的过程。所以T1时刻处理完该任务还需要的时间为10ms,T2时刻就是10ms,T4时刻也为10ms为什么?因为T1时刻第一个进程还没有完成,处理完该任务需要10ms,T2时刻第一个进程已经完成,要等待执行第二个进程,处理的就是第二个进程,那处理完该任务就需要10ms。B同理。

死锁

    产生死锁的原因:竞争共享资源且分配资源顺序不当。

    产生死锁需要同时满足4个条件:互斥条件,请求和保持条件,不剥夺条件,环路等待条件。 这个书上说的很详细,不过多介绍。

系统的安全状态

    系统的安全状态一定可以避免死锁,系统的不安全状态不一定是死锁状态,只是有可能进入死锁。

安全状态举例和不安全状态举例

    书中的例子是啥意思?那两个表格看起来差不多怎么就一个是安全状态,一个是不安全状态了?
首先我们先来看安全状态(看书):P2进程,最大需求的最小的,也就是需要的最少。例子中已经分配了5+2+2=9个资源,一共有12个,还剩下3个,那将这3个分配给P2进程,它已经被分配了2个资源了,再给它3个资源他就一定能执行了,然后它执行完毕释放出它占用的4个资源,再加上剩下的一个资源就是5个资源,P1正好需要5个资源,分配给P1之后P1能执行,P1执行完毕后释放自己的10个资源,而P3只需要7个资源,那么就会有P2,P1,P3的安全状态了,不安全状态同理!

第三章课后题第三题解析

    为什么最少资源数会是9?

    因为四个并发进程,每一个需要3个资源,可能发生死锁的上限资源是每个进程都差一个资源,而不发生死锁最少资源就是再额外多加一个资源可以用来执行完毕释放再让其他进程执行,那就是4*2+1=9。

此博客只是个人观点,如发现有错误之处请指出,如有需要完善的地方也请指出。

欢迎阅读,感谢您的建议和意见!

猜你喜欢

转载自blog.csdn.net/s123456slll/article/details/79410449
今日推荐