b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

事实:什么是CPU调度,CPU调度的完整指南

电脑杂谈  发布时间:2020-10-02 23:02:24  来源:网络整理

CPU调度是多程序操作系统的基础。通过在进程之间切换CPU,操作系统可以使计算机效率更高。

对于单处理器系统,一次只能运行一个进程。其他进程应等待,直到CPU空闲且可调度为止。多重编程的目的是始终允许某个进程运行以最大化CPU利用率。

这个想法相对简单。进程执行直到应该等待,通常等待I / O请求的完成。对于简单的计算机系统,CPU处于空闲状态。所有这些等待时间将被浪费,并且将无法完成任何有用的工作。我们尝试使用多个过程来有效利用这段时间。多个进程同时在内存中。当一个进程等待时,操作系统从该进程接管CPU控制,然后将CPU移交给另一个进程。此方法不断重复。当一个进程必须等待时,另一进程将接管CPU使用权。

这种调度是操作系统的基本功能。几乎所有计算机资源都必须在使用前进行计划。当然,CPU是最重要的计算机资源之一。因此,CPU调度是操作系统设计的重要组成部分。

CPU-I / O执行周期CPU调度的成功取决于观察到的过程属性,如下所示。进程执行包括定期CPU执行和I / O等待。该过程在这两种状态之间交替。

进程执行从CPU执行开始,然后是I / O执行;然后是另一个CPU执行,然后是另一个I / O执行;等等。最后,最后一个CPU执行被系统请求终止,以终止执行(图1)。

CPU执行和I/O执行的交替序列

图1 CPU执行和I / O执行的交替顺序

这些CPU执行时间已经过广泛测试。尽管它们随过程的不同而变化很大,但它们的频率曲线与图2所示相似。

CPU执行时间的直方图

图2 CPU执行时间直方图

曲线通常呈指数或超指数形式,具有大量的短CPU执行次数和少量的长CPU执行次数。 I / O密集型程序通常具有很多短暂的CPU执行时间。 CPU密集型程序可能只具有少量的长时间CPU执行。这种分布对于选择适当的CPU调度算法非常重要。抢占式调度要求CPU调度可分为以下四种情况:进程从运行状态切换到等待状态时(例如,I / O请求或wait()调用以等待子进程的终止) 。当进程从运行状态切换到就绪状态时(例如,发生中断时)。当进程从等待状态切换到就绪状态时(例如,I / O完成)。进程终止时。

对于第一种和第四种情况,除了安排之外别无选择。必须选择一个新进程(如果就绪队列中存在一个进程)来执行。但是,对于第二和第三种情况,仍然有选择。

如果调度只能在第一种和第四种情况下发生,则该调度方案称为非抢先式或合作式;否则,调度方案称为抢占式。在非抢占式调度下,一旦将进程分配给CPU,该进程将继续使用CPU,直到它终止或切换到等待状态。

Windows3.x使用此调度方法。 Windows 95引入了抢占式调度,并且所有后续Windows操作系统都使用抢占式调度。 Macintosh操作系统Mac OS X使用抢占式调度,而以前的Macintosh操作系统使用协作式调度。在某些硬件平台上,协同调度是唯一的方法,因为它不需要特殊的硬件(例如计时器)来支持抢占式调度。

但是,当多个进程共享数据时,抢先式调度可能会引起竞争。假设两个进程共享数据。当第一个进程正在更新数据时,它将被抢占,以便第二个进程可以运行。然后,第二个过程可能会尝试读取数据,但是此时数据处于不一致状态(可以使用互斥锁,信号灯等)。

抢占还影响操作系统的内核设计。处理系统调用时,内核可能会忙于该进程的某些活动。这些活动可能涉及对重要内核数据(例如I / O队列)的更改。如果在进行这些更改时抢占了一个进程,并且内核(或设备驱动程序)需要读取或修改相同的结构,结果将是什么?

绝对引起混乱。某些操作系统(包括大多数UNIX系统)以这种方式处理问题:在上下文切换之前,等待系统调用完成,或者等待I / O阻塞的发生。此方案可确保内核结构的简单性,因为当内核数据结构处于不一致状态时,内核不会抢占进程。不幸的是,这种内核执行模式对实时计算的支持很差(实时系统中的任务应在给定时间内执行)。

因为根据定义,中断可能随时发生,并且不能始终被内核忽略,所以应保护受中断影响的代码段,以避免同时使用。操作系统几乎必须能够在任何时候接受中断,否则输入将丢失或输出将被覆盖。为了防止多个进程同时访问这些代码段,中断在进入时被禁用,在退出时被启用。重要的是要注意,禁用中断的代码段很少发生,并且通常只有很少的指令。

CPU调度程序与CPU调度功能有关的另一个组件是调度程序。调度程序是一个模块,用于将CPU控制权转移给短期调度程序选择的进程。

调度程序的功能包括:

调度程序应尽可能快,因为每次进程切换时都会使用它。调度程序停止一个进程并启动另一个进程所需的时间称为调度延迟。

无论何时CPU空闲,操作系统都应从就绪队列中选择一个要执行的进程。该进程选择使用短期调度程序或CPU调度程序。调度程序从内存中选择可以执行的进程,并为其分配CPU。

请注意,就绪队列不必是先进先出(FIFO)队列。它的实现可以是FIFO队列,优先级队列,树或简单的无序链表等。但是,从概念上讲,就绪队列中的所有进程都必须排队等待在CPU上运行。队列中的记录通常是过程控制块(PCB)。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-323494-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 李生德
        李生德

        我们还可以顺理成章确认这些人工岛符合

      • 张天文
        张天文

        真爱国绝不是动不动就喊打喊杀

      • 刘肇
        刘肇

        美国害的伊拉克还不够惨吗

      热点图片
      拼命载入中...