操作系统进程调度算法

操作系统进程调度算法

进程调度决定就绪队列中哪个进程将获得处理机。
当处理机空闲时,进程调度程序必将处理机分配给一个处于就绪态的进程 ,该进程便由就绪态转换为运行态。当处于运行态的进程在运行过程中需要等待某一事件发生后(例如因I/O请求等待I/O完成后),才能继续运行,则该进程放弃处理机,从运行态转换为阻塞态。当处于阻塞态的进程,若其等待的事件已经发生,于是进程由阻塞态转换为就绪态。当处于运行状态的进程在其运行过程中,因分给它的处理机时间片已用完,而不得不让出(被抢占)处理机,于是进程由运行态转换为就绪态。
而阻塞态――>运行态和就绪态――>阻塞态这二种状态转换不可能发生。
进程调度信息:它包括进程状态(running、ready、blacked)、队列(就绪、阻塞队列)、队列指针,调度参数:进程优先级、进程已执行时间和已等待时间等。
(1)如果用时间片轮转法:可以通过画图表来解答,每个作业运行一分钟就让给另一个作业运行。在第一个五分钟中,A---E每个运行一分钟,在第二个五分钟内,依然是A---E每个运行一分钟,此时C已经运行结束,因此c的周转时间是8分钟(因为按照顺序c是第八分钟运行结束,因此周转时间为8分钟--0分钟=8分钟),由于c已经运行结束,接着就是四个作业在运行,即在第三个四分钟内。A、B、D、E作业每个运行一分钟,这样一直下去,在第四个4分钟中,d运行结束,因此d的周转时间为12分钟(因此从开始都d一直完成,d是在第十二个一分钟完成的,周转时间等于12分钟--0分钟=12分钟),这样一直分析下去即可。总之不管那个作业完成后,在后面的时间片分配的时候就不再给该作业分配时间了。
(2)根据这个优先级,先调度B作业运行,当b作业运行6分钟后结束(因此b作业的周转时间=6分钟--0分钟=6分钟),在b作业运行期间,其它作业等待,等待时间也算在周转时间中了。比如在接着的e作业运行时,e作业在第十四分钟运行结束了,因此e作业的周转时间为14分钟--0分钟=14分钟,一定要记住周转时间=完成时间--到达时间。接下来三个作业也是这样分析的。
(3)先来先服务,其实和优先级调度是一样的,区别仅在于优先级高的先得到服务,而先来先服务不管优先级,先到则运行。在第(2)中,如果按优先级高低依次排列即为BEACD,这样再运行就是先来先服务的算法了。下面给你分析先来先服务的算法,A先到,先得到服务,在第10分钟结束,因此a的周转时间为10分钟--0分钟=10分钟,接着是b作业运行,到第16分钟结束,因此b作业的周转时间为16分钟---0分钟=16分钟,这样依次分析下去即可。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值