操作系统期末复习——四大算法

946 阅读3分钟

这是之前期末复习的小总结。

进程调度算法:

周转时间=完成时间-到达时间

带权周转时间=周转时间/服务时间

假设第一个到达的进程的到达时间为0

时间片轮转调度RR:

在一个时间轴(以时间片q为单位长度)上,若现在只有A进程在运行,则在下一个进程B到达前,每一个单位刻度之接都填上A,下一个进程B到达时间的刻度填上B。之后则是AB依次填上,若下一个进程C到达时间在AB之间,则先继续填上AB,再接着填上C,之后则是ABC依次填上,以此类推,字母A、B、C等的出现次数为服务时间/时间片q,即进程完成后就去掉。

先来先服务调度FCFS:

第一个进程 完成时间=服务时间+0

其后的进程 完成时间=上一个进程的完成时间+该进程的服务时间

短作业优先调度SJF:

从就绪队列中选出一个估计运行时间最短的进程先执行

第一个到达进程先执行,其完成时间=服务时间+0

之后在就绪队列中选择服务时间小的先执行,

其完成时间=上一个进程完成时间+该进程服务时间

如此继续直到完成所有进程。

响应比高者优先调度HRP:

响应比Rp=等待时间+要求服务时间/要求服务时间=响应时间/要求服务时间

优先权=(等待时间+要求服务时间)/要求服务时间

先执行第一个进程,其完成时间=服务时间+0,之后在就绪队列中先执行响应比高者,每执行一个进程,都需要求出其就绪队列中其他进程的响应比,选择,响应比高者先执行(等待时间=上一个进程完成时间-到达时间)

其完成时间=上一个进程完成时间+该进程服务时间

银行家算法:

需求资源Need=最大资源需求Max-当前已分配到的资源Allocation

系统当前可用资源Available

P_i请求资源Request

先检查:

Request<=Need_i

Request<=Available_i

若以上两式成立,则改变相应数据结构,即Allocation_i=Allocation_i+Request

再利用安全性算法检查系统是否安全 其中系统当前可用资源Work=释放的分配资源Allocation+Work Work>=Need,则Finish=true。

页面置换算法:

Optimal替换算法(即最佳置换算法):

每次替换未来最长时间内不再被访问的页面

FIFO替换算法(即先进先出页面置换算法):

每次替换出现最久的页面

LRU替换算法(即最近最久未使用置换算法):

每次替换自上次被访问以来所经历的时间t最大的页面

磁盘调度算法:

先来先服务(FCFS,First Come First Served):

按请求磁道号序列依次访问

最短寻道时间优先(SSTF,Shortest Seek Time First):

每次访问距离最近的磁道号

扫描算法SCAN:

按指定方向访问距离最近的磁道号,直至该方向再无磁道要访问,调转方向,再次访问距离最近的磁道号

循环扫描算法CSCAN:

按指定方向访问距离最近的的磁道号,直至该方向再无磁道要访问,再从最小的磁道号开始,依次访问距离最近的磁道号