调度

I/O密集型

输入的比较多吧,等待I/O操作比较多

计算密集型

使用cpu的此时比较多

时钟中断分类

非抢占式

阻塞就一直等到阻塞结束,不会有其他程序来占用当前cpu,或者是该进程释放cpu,当处理完进程如果没有

抢占式

抢占式,选择一个进程,将起运行到时间的最大值,就结束,不关是不是被允许结束

调度算法分类

批处理
交互式
实时

概念

批处理系统

周转时间:

其中周转时间是提交到进程结束的最小时间

cpu利用率:

保持cpu忙碌

吞吐量:

每小时最大的作业数

批处理系统中的调度

先来先服务的(Frist-come first-server)

先来的执行其对应期待时间,其他作业被安排到队列,当进程被阻塞,且,那么就换队列的换队列的下一个进程,将被阻塞的变为就绪的放入队列末

坏处

对于先来先服务的操作,比如计算密集性每次一秒,和一个少量使用cpu但是每次都要进行1000次读取磁盘操作,每次读取一块磁盘,如果执行是FCFS,每次转换,要1000s,
如果有调度算法10ms抢占式计算机密集型进程,就要10s,1秒的计算机密集进程,现在是1s/10ms = 100次,每次一块,就10s

最短作业时间(SJB)

前提

多个进程能够同时执行

影响

作用与平均周转时间

例子:

名称 A B C D
运行时间 8 4 4 4

最短时间优先

名称 B C D A
时间 4 4 4 8


类似有点像你烧水,准备茶叶这种
那么周转时间就是4,8,12,20,假设依次运行时间为a,b,c,d周转身平均周转时间\((4a+3b+2c+d)/4\),就知道a小,平均周转时间就小

最短时间优先

比较的是剩余的时间,如果一个新的进程等到来,和当前进程剩余的时间比较,如果新进程运行时间比剩余的时间,那么执行新进程,当前的进程挂起

交互式系统

概念

为避免进程无限期占用cpu(及时一般不会无限期占用,但是防止是当前程序出错,导致无法运行其他进程),导致其他进程无法进行运行,所以采用抢占式

轮转算法

有时间片,当前进程运行结束/阻塞或者时间片到期,就将cpu分配给其他进程,将当前进程移到队列末尾

及时有时间片,但是cpu切换也要用一定的时间,如果时间片小,那么cpu切换的比例就加大了,时间占用多,造成了cpu利用率的降低,

如果时间片设置的过大,那么队列尾端的进程等待的时间就会过长,一般设置时间片20~50ms

优先级调度

概念

RRT中认为的是每个进程同等重要,但是不是所有人都认为如此,由此引入优先级调度

posted @ 2022-11-07 21:52  壹剑霜寒十四州  阅读(89)  评论(0编辑  收藏  举报