操作系统必备定义2.2

2.2 CPU调度

  1. CPU调度:是对CPU进行分配,即从就绪队列中按照一定的算法(公平高效的原则)选择一个进程,并将CPU分配给它运行,以实现进程并发的执行。CPU调度是多道程序操作系统的基础,是操作系统设计的核心问题。
  2. 调度的层次:①高级调度(作业调度了):按照某种规则,从外存上处于后备队列中的作业中挑选一个(或多个),给他(们)分配内存、I/O设备等必要的资源,并建立相应的进程,使他们获得竞争CPU的权利。简言之,作业调度就是内存与储存之间的调度,每个作业只调入一次,调出一次。②中级调度(内存调度):引入中级调度的目的是提高内存利用率和系统吞吐量,为此将那些暂时不能运行的进程调至外存等待,此时进程的状态称为挂起态。当它们已具备运行条件且内存又稍有空闲时,由中级调度来决定将外存上的那些已具备运行条件的挂起进程再重新调入内存,并修改其状态为就绪态,挂在就绪队列上等待。中级调度实际上是存储器管理中的对换功能。③低级调度(进程调度),按照某种算法,从就绪队列中选取一个进程,将CPU分配给它,进程调度是最基本的一种调度。在各种操作系统中都必须配置这级调度;进程调度的频率很高,一般几十毫秒一次。
  3. 三级调度的联系:作业调度从外存的后备队列中选择一批作业进入内存,为他们建立进程。这些进程被送入就绪队列,进程调度从就绪队列中选取一个进程,并将其状态改为运行态,将CPU分配给它。中级调度是为了提高内存的利用率,系统将那些暂时不能运行的进程挂起来。作业调度为进程活动做准备;进程调度使进程正常活动起来;中级调度将暂时不能运行的进程挂起,中级调度处于作业调度和进程调度之间。作业调度次数少,高级调度次数略多,进程调度频率最高。进程调度是最基本的、不可或缺的。
  4. 调度程序:用于调度和分派CPU的组件。
  5. 调度程序的组成:排队器、分派器、上下文切换器。
  6. 排队器:将系统中所有就绪进程按照一定的策略排成一个或多个队列,以便于调度程序选择。每当有一个进程转变为就绪态时,排队器便当它插在相应的就绪队列。
  7. 分派器:依据调度程序所选的进程,将其从就绪队列中取出,将CPU分配给新进程。
  8. 上下文切换器:在对CPU进行切换时,会发生两对上下文的切换操作。第一对:将当前进程的上下文保存其PCB中,再装入分派程序的上下文,以便分派程序运行。第二对:移出分派程序的上下文,将新选进程的CPU现场信息装入CPU的各各相应寄存器。
  9. 在上下文切换时,需要执行大量的load和store指令,以保存寄存器的内容,因此会花费较大的时间。现在通常采用两组寄存器,其中一组供内核使用一组供用户使用,这样上下文切换时只需要改变指针,让其指向当前寄存器组即可。
  10. 调度的时机切换与过程:调度程序是操作系统内核程序请求调度的事件发生后才可能运行调度程序调度了新的就绪进程后才会进行进程切换。理论上这三件事应该顺序执行,但在实际操作系统内核程序运行中,若某时刻发生了引起进程调度的因素,则不一定能马上进行调度与切换。
  11. 进行CPU调度的事件或时机:创建新进程后,父进程和子进程都处于就绪态。因此需要决定是浚县紫禁城建筑程序可以和法的决定其中一个进程先运行;进程正常结束或异常终止后,必须从就绪这类中选择某个进程运行。若没有就绪进程,则通常运行一个系统提供的闲逛进程;当进程因爱有请求信号量操作或其他原因被阻塞时需要调度其他进程运行;当io设备准备就绪后,发出io中断,原先等待io的进程,从主色态变为旧序态。此时需要决定是让新的就绪进程投入运行,还是让中断发生时运行的进程继续执行。
  12. 闲逛进程:当进程切换时,若系统中没有就绪进程,则会调度形状进程运行它的pi d为0,若没有其他进程就绪该进程就一直运行并在指令周期后测试中断行光进程的优先级最低没有就绪进程时才会运行闲逛进程只要有就绪进程就立即让出CPU,闲逛进程不需要CPU之外的资源,它不会被阻塞。
  13. 不能进行进程的调度与切换:在处理中断的过程中中断处理过程复杂,在实现上很难做到进程切换,而且中断处理是系统工作的一部分,逻辑上并不属于某一键程,不应剥夺pu资源;需要完全屏蔽中断的原子操作过程中如加锁解锁中断现场保护恢复等原子操作,在原子过程中连中段都要屏蔽,更不应该进行进程调度与切换。
  14. 进程调度的方式:是指当某个进程在CPU上执行时,若有某个更为重要或急迫的进程,需要处理即有优先权,更高的进程进入就绪对此时应如何分配CPU。分为两种:非抢占调度方式、抢占调度方式。
  15. 非抢占调度方式也称非剥夺方式,是指当一个进程正在CPU上执行时,即使有某个更为重要或紧迫的进程进入就绪。队列仍然让正在执行的进程继续执行,直到该进程运行完成或发生某种事件如等待io操作在进程通信或同步中执行了block原语而进入主色态时才将CPU分配给其他进程非抢占调度方式的优点是实现简单系统开销小适用于早期的批处理系统,但它不能用于分时系统和大多数的实时系统。
  16. 抢占调度方式也称剥夺方式是指当一个进程正在CPU上执行时,若有某个更为重要或紧迫的进程,需要使用CPU则允许调度程序根据某种算法去暂停在执行的进程将CPU分配给这个更为重要或紧迫的进程抢占调度方式,对操作系统吞吐量和影响效率有明显的好处,但抢占不是一种任意性行为,必须遵守一定的原则,主要有优先权、短进程优先和时间片原则等。
  17. 两种线程的调度:①用户级线程调度,因为内核并不知道线程的存在,所以内核还是和以前一样选择一个进程并给予时间控制,由进程中的调度程序决定哪个线程运行。②内核级线程调度:内核选择一个特定线程运行,通常不用考虑该线程属于哪个进程,对未选择的线程赋予一个时间片。如果超过了时间片则会强制挂起在线程。
  18. 两种线程调度的比较:用户级线程的线程切换在同一进程中运行,仅需少量的机器指令;内核级线程的线程切换需要完整的上下文切换、修改内存映像、使高速缓存失效,这就导致了若干数量级的延迟。
  19. CPU利用率:CPU有效工作时间/(CPU有效工作时间+CPU空闲等待时间)
  20. 系统吞吐量:表示单位时间内CPU完成作业的数量长,作业需要较长的CPU时间,因此会降低系统的吞吐量。对于短作业需要消耗CPU时间较短,因此能提高系统的吞吐量调度算法和方式不同也会对系统的吞吐量产生较大的影响。
  21. 周转时间:是指从作业提交到作业完成所经历的时间是作业等待在就绪队列中排队在CPU上运行以及io操作所花费的时间总和。周转时间=作业完成时间-作业提交时间。
  22. 平均周转时间是指多个作业周转时间的平均值。
  23. 等待时间指进程处于等待CPU的时间之和等待时间越长,用户满意度越低,CPU调度算法实际上并不影响作业执行和io操作的时间,只影响作业就是这类中等待所花的时间因此衡量一个调度算法的优劣常常只需要简单的考察等待时间。

你可能感兴趣的:(学习)