你最愿意做的哪件事,才是你的天赋所在

0%

OS-review3

调度的类型

长期调度

将已进入系统并处于后备状态的作业按某种算法选择一个或一批,为其建立进程,并装入主机,当该作业执行完毕时,负责回收系统资源。

中期调度(交换调度)

能将进程从内存或者从CPU竞争中移出,从而降低多道程序设计的程度,之后能被重新调入内存,并从中断处继续执行。主要的任务是按照给定的原则和策略,将处于外存交换区中的就绪状态或等待状态的进程调入内存,或把处于内存就绪状态或内存等待状态的进程交换到外存交换区

短期调度(进程调度,低级调度,微观调度)

使用最多的就是短期调度,它的主要任务是按照某种策略和算法将处理机分配给一个处于就绪状态的进程,分为抢占式和非抢占式进程。

进程调度方式

指当某一进程正在处理及上执行时,若由某个更为重要或进迫的进程需要进行处理,即有优先权更高的进程进入就绪队列,此时应如何分配处理机。通常有两种进程调度方式。

抢占方式

所谓剥夺调度方式是指当一个进程正在处理机上执行时,若有某个更为重要或紧迫的进程需要使用处理机,则立即暂停正在执行的进程,将处理机分配给这个更重要或紧迫的进程。剥夺方式又称抢占方式、可剥夺方式。

非抢占方式

非剥夺调度方式是指当某一进程正在处理机上执行时,即使有某个更为重要或紧迫的
进程进入就绪队列,仍然让正在执行的进程继续执行,直到该进程完成或发生某种事件而
进入完成或阻塞状态时,才把处理机分配给更为重要或紧迫的进程。非剥夺方式又称非抢
占方式、不可剥夺方式。

进程调度算法

先来先服务(FCFS)

先来先服务调度算法是一种最简单的调度算法,其算法思想是按照进程进入就绪队列的先后次序来分配处理机。先来先服务算法采用非抢占式调度方式。
缺点:若一个运行时间长的进程占有了处理机,则会使很多晚到的运行时间段的进程等待时间过长,引起许多段进程用户的不满。

最高优先权优先调度算法(Priority)

基本思想:把处理机分配给优先权最高的进程。

进程优先权

静态优先权和动态优先权

静态优先权

静态优先权是在创建进程时确定的,确定之后整个进程运行期间不再改变。确定静态优先权的依据有:进程的类型,进程所使用的资源,进程的估计运行时间等因素。进程所索取的资源越多,估计的运行时间越长,进程的优先权越低。进程类型不同,优先权也不同。

动态优先权

动态优先权一般根据进程占有CPU时间的长短,进程等待CPU时间的长短等因素确定。占有处理机的时间越长,则优先权越低,等待时间越长,则优先权越高

基于优先权的调度算法还可以按调度方式不同分为非抢占优先权调度算法和可抢占优先权调度算法。
非抢占优先权调度算法的实现思想就是一旦处理机分配给就绪队列中优先权最高的进程后,该进程便一直运行下去,直到自身的原因主动让出处理机
抢占优先权调度算法实现思想就是将处理机分配给优先权最高的进程,使之运行,在进程运行过程中,一旦出现了另一个优先权更高的进程时,进程调度程序就停止原运行进程,而将处理机分配给新出现的高优先权滴进程。

时间片轮转调度算法(RR)

系统将所有就绪进程按照到达时间的先后次序拍成一个队列,进程调度程序总是选择队列中的第一个只能够,并执行一定是时间(该时间为时间片)。当该进程使用完这一事件片时(几十进程并未完成其运行),系统将它送至就绪队列队尾,再把处理机分配给下一个就绪进程。这样,处于就绪队列中的进程就可以依次轮流地获得一个时间片处时间。如此循环。时间片的大小应选择恰当

多级反馈队列(MQ)

首先,设置多个就绪队列,并且各个队列赋予不同的优先权,第一个队列的优先权最高,依次类推
其次,每个队列中进程执行的时间片大小也各不相同,进程所在队列的优先权越高其对应的时间片越短。
第三,当一个进程进入内存后,首先将他放入第一个队列的末尾,按先来先服务的原则排队等待调度。当轮到该进程执行时如能再此时间片内完成,便可准备车立系统,如果它再一个时间片结束时尚未完成,调度程序将该程序转入第二个队列的末尾,再同样按FCFS的原则等待进行调度。如此反复,最后一个队列使用时间片轮转调度算法。

死锁

死锁的概念

死锁是指多个进程因竞争资源而造成的一种僵局,若无外力作用,这些进程都将无法向前推进。

死锁产生的原因

1.系统资源不足
2.进程推进顺序不当

死锁产生的必要条件

互斥条件

进程要求对所分配的资源进行拍它性控制

无法剥夺

进程所获得的资源在未使用完毕之前,不能被其他进程强劲夺走

占有并等待

进程每次申请它所需要的一部分资源,在等待新资源的同时,进程继续占有已分配到的资源。

成环

存在一种进程资源的循环等待链,链中每一个进程以获得的资源同时被链中下一个进程所请求。

死锁的处理

(1). 预防死锁
破坏形成死锁的四个必要条件中的一个或几个来防止死锁
(2). 避免死锁
在资源的动态分配过程中,用某种方法防止系统进入不安全中泰,从而避免死锁。
(3). 检测及接触死锁
通过系统的检测机构及时地检测出死锁的发生,然后采取某种措施解除死锁。

-------------你最愿意做的哪件事才是你的天赋所在-------------