📅  最后修改于: 2020-12-13 15:40:11             🧑  作者: Mango
进程调度是进程管理器的活动,负责根据特定策略从CPU中删除正在运行的进程并选择另一个进程。
进程调度是Multiprogramming操作系统的重要组成部分。这样的操作系统允许一次将一个以上的进程加载到可执行内存中,并且所加载的进程使用时分复用来共享CPU。
操作系统将所有PCB维护在进程调度队列中。操作系统为每个进程状态维护一个单独的队列,并且处于相同执行状态的所有进程的PCB都放置在同一队列中。当进程的状态更改时,其PCB从当前队列取消链接,并移至新的状态队列。
操作系统维护以下重要的流程调度队列-
作业队列-此队列将所有进程保留在系统中。
就绪队列-此队列将一组驻留在主内存中的所有进程保留为一组,准备就绪并等待执行。一个新的进程总是放在这个队列中。
设备队列-由于I / O设备不可用而被阻塞的进程构成此队列。
操作系统可以使用不同的策略来管理每个队列(FIFO,循环,优先级等)。 OS调度程序确定如何在就绪队列和运行队列之间移动进程,该队列在系统上每个处理器内核只能有一个条目。在上图中,它已与CPU合并。
两状态流程模型是指运行状态和非运行状态,如下所述-
S.N. | State & Description |
---|---|
1 |
Running When a new process is created, it enters into the system as in the running state. |
2 |
Not Running Processes that are not running are kept in queue, waiting for their turn to execute. Each entry in the queue is a pointer to a particular process. Queue is implemented by using linked list. Use of dispatcher is as follows. When a process is interrupted, that process is transferred in the waiting queue. If the process has completed or aborted, the process is discarded. In either case, the dispatcher then selects a process from the queue to execute. |
调度程序是特殊的系统软件,可通过多种方式处理流程调度。他们的主要任务是选择要提交到系统中的作业,并确定要运行哪个进程。调度程序是三种类型-
它也称为作业计划程序。长期调度程序确定哪些程序被准入系统进行处理。它从队列中选择进程,并将其加载到内存中以执行。进程加载到内存中以进行CPU调度。
作业调度程序的主要目标是提供平衡的作业组合,例如I / O绑定和处理器绑定。它还控制着多重编程的程度。如果多重编程的程度是稳定的,则进程创建的平均速率必须等于离开系统的进程的平均离开速率。
在某些系统上,长期调度程序可能不可用或很小。分时操作系统没有长期调度程序。当进程将状态从新更改为就绪时,则需要使用长期调度程序。
也称为CPU调度程序。它的主要目的是根据所选标准来提高系统性能。是流程从就绪状态到运行状态的转变。 CPU调度程序在准备执行的进程中选择一个进程,并将CPU分配给其中一个。
短期调度程序(也称为调度程序)决定下一步执行哪个进程。短期计划程序比长期计划程序要快。
中期计划是交换的一部分。它从内存中删除进程。它降低了多重编程的程度。中期调度程序负责处理换出的流程。
如果正在运行的进程发出I / O请求,则可能会挂起。暂停的流程无法在完成方面取得任何进展。在这种情况下,为了从内存中删除该进程并为其他进程腾出空间,已暂停的进程将移至辅助存储。此过程称为swapping ,并且该过程被称为交换或推出。可能需要交换以改善过程组合。
S.N. | Long-Term Scheduler | Short-Term Scheduler | Medium-Term Scheduler |
---|---|---|---|
1 | It is a job scheduler | It is a CPU scheduler | It is a process swapping scheduler. |
2 | Speed is lesser than short term scheduler | Speed is fastest among other two | Speed is in between both short and long term scheduler. |
3 | It controls the degree of multiprogramming | It provides lesser control over degree of multiprogramming | It reduces the degree of multiprogramming. |
4 | It is almost absent or minimal in time sharing system | It is also minimal in time sharing system | It is a part of Time sharing systems. |
5 | It selects processes from pool and loads them into memory for execution | It selects those processes which are ready to execute | It can re-introduce the process into memory and execution can be continued. |
上下文切换是一种在进程控制块中存储和恢复CPU的状态或上下文的机制,以便以后可以从同一点恢复进程执行。使用此技术,上下文切换器使多个进程可以共享一个CPU。上下文切换是多任务操作系统功能的重要组成部分。
当调度程序将CPU从执行一个进程切换为执行另一个进程时,当前运行进程的状态将存储到进程控制块中。此后,将从其自己的PCB加载下一个要运行的进程的状态,并用于设置PC,寄存器等。这时,第二个进程可以开始执行。
由于必须保存和恢复寄存器和内存状态,因此上下文切换需要大量的计算。为了避免上下文切换时间,某些硬件系统会使用两组或更多组处理器寄存器。切换过程后,将存储以下信息供以后使用。