进程调度策略

来源:百度知道 编辑:UC知道 时间:2024/06/07 01:32:30
请问:操作系统中进程调度策略由哪几种?

我看别人回答的一个帖子说的还可以,帮你贴过来吧
http://zhidao.baidu.com/question/5661119.html?si=2

首先硬件机制上如何保证操作系统的内核调度进程可以一定的时机可以获得CPU,来进行进程调度.?

通常我们会在软件层次上找答案.其实,是通过在CPU的硬件处理机制上实现的.CPU在执行完每个指令的周期后回扫描CPU的内部的一个中断寄存器,查询是否存在中断发生,若没有,则继续执行指令;若有,则保存当前的CPU工作环境,跳转到中断服务列程,CPU执行中断服务程序,在推出中断后,跳转到内核调度程序(这是个内核程序,但是是对所有的进程共享的,包括用户进程);此时,内核调度程序占据CPU,进行进程的调度,以决定下个将占用CPU的进程.

接下来就要谈谈什么时候会需要进行进程调度?

在教科书书说到的有几种情况:1时间片到,即每个进程所分配的时间片用完后,要跳转到调度程序; 2 占用CPU的当前运行进程提出I/O操作,发起对内核的系统调用时,在系统调用结束后,跳转到调度程序; 3 我自己的想法: 当前运行进程对所有内核系统调用的结束时都要跳转到调度程序,根据当前的调度信息来决定下一个可以占用CPU的进程. 我所指的系统调用也包括中断列程.不过对与具体的调度时机,很多书上都写的不清不楚,真不知道他们不懂,还是不屑于写出来告诉我们. 其实除了在大多数硬件中断的触发后跳转到调度程序, 每个时钟中断发生的时候,我觉得都需要跳转到调度程序.(在进入时钟中断列程中,要对进程表中的所有的进程的调度信息进行更新和对各个进程队列的处理),对更新后的进程信息进行处理以决定调度哪个进程. 通常的教科书中都将硬件物理的处理机制和软件的调度处理机制分开,在物理和逻辑两个层次上分开谈,不利于我们理解.最好是把这两个结合起来理解进程调度的工作机制.目前需要解决的是:在什么时候需要内核调度程序占据CPU来调度? 至于调度的算法那就是逻辑层次上要考虑的东西.