总结一下操作系统里面的几个算法

 

1.作业调度算法

2.进程调度算法

 

3.银行家算法

 

 

4.页面置换算法

5.磁盘调度算法

 

 

 

 

1.作业调度算法

(1)先来先服务(FCFS)

  (2)短作业优先(SJF)

  (3)优先级调度算法(PSA)

 

 

  (4)高响应比优先调度算法(HRRN)

     在批处理系统中,fcfs算法所考虑的只是作业等待时间,而忽视了作业运行时间,而sjf正好相反,只考虑作业运行时间,不考虑作业等待时间,高响应比优先算法即考虑了作业的等待时间,又不至于长作业等待太久,从而改善了处理机调度性能。

 

 

   实现:为每个作业引入一个动态优先级,即优先级是可以改变的,他随等待时间延长而增加,这使长作业的优先级在等待中慢慢增加,足够时间后,必然有机会获得处理机,该优先级的变化规律可描述为

总结一下操作系统里面的几个算法_第1张图片

总结一下操作系统里面的几个算法_第2张图片

由上面可以看出

a).如果作业的等待时间相同,则要求服务时间越短,其优先权越高,因而类似于短作ye优先算法(sjf),有利于短作业。

b).当要求服务时间相同时,作业的优先权又决定其等待时间,因而类似于fcfs算法。

c).对于长作业的优先级,可以随等待时间的增加而提高优先级,,,该算法实现了较好的折中,每次要进行调度之前,都需要先做响应比计算,会增加系统开销。

 

 

 

 

2.进程调度算法 

 

进程调度的任务:

1)保存处理机的现场信息

2)按某种算法选取进程

3)把处理器分配给进程

 

 

进程调度方式:

    1)非抢占方式(早期),在采用这种调度方式时,一旦把处理机分配给某进程后,就一直让他运行下去,绝不会因为时钟中断或任何其他原因去抢占当前正在运行的进程的处理机,直到该进程完成,或发生某事件而被阻塞时,才把处理机分配给其他进程.

    2)抢占方式,这种调度方式允许调度程序根据某种原则,去暂停某个正在执行的进程,将已分配进程的处理机分配给其他进程,对于批处理系统,可以防止一个长进程长时间地占用处理机,,以确保处理机能为所有进程提供更为公平的服务,。在分时系统中,只有采用抢占方式才能才有可能实现人机交互,在实时系统中,抢占方式能够满足任务的需求。但抢占方式比较复杂,所需付出的系统开销也比较大。

 

你可能感兴趣的:(Linux)