📜  操作系统-流程计划

📅  最后修改于: 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,寄存器等。这时,第二个进程可以开始执行。

过程上下文切换

由于必须保存和恢复寄存器和内存状态,因此上下文切换需要大量的计算。为了避免上下文切换时间,某些硬件系统会使用两组或更多组处理器寄存器。切换过程后,将存储以下信息供以后使用。

  • 程序计数器
  • 安排信息
  • 基本和极限寄存器值
  • 当前使用的寄存器
  • 改变状态
  • I / O状态信息
  • 会计信息