《操作系统》第二章 2.2处理机调度

简介: 《操作系统》第二章 2.2处理机调度

1 内容概览

这是第二章的第二部分内容基本上讲了以下几个内容:

  1. 什么是处理机调度,处理机调度大致可以分为几种?
  2. 处理机在什么情况下进行调度?
  3. 常见的处理机调度算法是什么,基于什么样的标准进行调度?

原文件(第二章所有)在这里。不仅有思维导图的原文件,还有PDF格式的思维导图。

源文件链接:第二章 进程管理

提取码:9o10

首先需要明白概念,什么是处理机呢?

处理机:包括中央处理器,主存储器,输入-输出接口,加接外围设备就构成完整的计算机系统。

所以通俗地讲,处理机就是计算机系统除去外围设备剩下的部分。

本部分内容如下所示。

2 调度算法

2.1 调度算法简介

如上图所示,常见的进程调度算法有以下几种:先来先服务调度算法、短作业优先调度算法、高响应比优先调度算法、时间片轮转调度算法、优先级调度算法、多级反馈队列调度算法。可以用下图所示的口诀帮助记忆。

先来短坐高响应,时间轮转优先赠。可以想象是家里来了客人,先来的客人,就让他先坐一会儿,然后那个客人也很健谈,即所谓的“高响应”。所谓的时间轮转优先赠,时间一分一秒地过去,主人还没来,所我们就先给了点小食甜点打发时间,让客人再等一会儿。

2.2 多级反馈队列调度算法

前面的几个调度算法都比较好理解,作为综合的调度算法,多级反馈队列博采众长,兼具:

  • 先来先服务算法的顺序公平性
  • 短作业优先算法的高效(较低的平均等待/周转时间)
  • 时间片轮转调度算法运行时间公平性
  • 优先级调度算法的灵活性(根据任务的紧急程度进行进程调度)

举个例子,有下面几个进程,如何采用多级反馈队列调度算法进行处理?

进程 到达时间 运行时间
p1 0 8
p2 1 4
p3 5 1

分析:这个例子中,各个进程到达时间不一致,而且先到达的进程运行时间反而比较长,所以很具有代表性。

最先到达的是p1进程,进入第一级队列,由于没有其他进程,可直接执行,执行完一个时间片之后,还没有执行完,则会进入第二级队列。

此时p2到达,由于第一级队列的优先级较高,则会优先运行p2进程,运行完一个时间片之后,进入第二级队列,如下图所示:

此时运行了两个时间片,p3进程还没到,再次运行p1进程,运行两个时间片,运行完两个时间片之后,仍没有运行结束,还需要5个时间片,则将其放入下一级队列,p2上处理机进行运行,如下图所示:

但是,在p2尚未运行完毕的时候,p3进程到达,进入第一级队列,比p2的优先级高,所以暂时将p2退回第二级队列队尾,优先执行p3进程,执行完一个进程后,p3已经处理完毕,被调出内存,无需再次处理。如下图所示:

剩下的就比较简单了,p2此时已经运行了2个时间片,再运行完2个时间片,然后被调出内存,如下图所示:

最后再次执行p1进程,运行完一次之后,p1总共运行了7个时间片,仍未执行完毕,然后再次退出处理机,由于没有其他进程,所以会再次上处理机进行处理。自此,进程全部处理完毕。

更加具体的运行情况如下面的甘特图所示:

---------------------------------------------------------------------------------END----------------------------------------------

相关实践学习
CentOS 8迁移Anolis OS 8
Anolis OS 8在做出差异性开发同时,在生态上和依赖管理上保持跟CentOS 8.x兼容,本文为您介绍如何通过AOMS迁移工具实现CentOS 8.x到Anolis OS 8的迁移。
相关文章
|
3月前
|
算法 调度 UED
深入理解操作系统:进程调度与优先级队列
【10月更文挑战第31天】在计算机科学的广阔天地中,操作系统扮演着枢纽的角色,它不仅管理着硬件资源,还为应用程序提供了运行的环境。本文将深入浅出地探讨操作系统的核心概念之一——进程调度,以及如何通过优先级队列来优化资源分配。我们将从基础理论出发,逐步过渡到实际应用,最终以代码示例巩固知识点,旨在为读者揭开操作系统高效管理的神秘面纱。
|
2月前
|
存储 算法 调度
深入理解操作系统:进程调度的奥秘
在数字世界的心脏跳动着的是操作系统,它如同一个无形的指挥官,协调着每一个程序和进程。本文将揭开操作系统中进程调度的神秘面纱,带你领略时间片轮转、优先级调度等策略背后的智慧。从理论到实践,我们将一起探索如何通过代码示例来模拟简单的进程调度,从而更深刻地理解这一核心机制。准备好跟随我的步伐,一起走进操作系统的世界吧!
|
3月前
|
消息中间件 算法 调度
深入理解操作系统:进程管理与调度
操作系统是计算机系统的核心,负责管理和控制硬件资源、提供用户接口以及执行程序。其中,进程管理是操作系统的重要组成部分,它涉及到进程的创建、调度、同步和通信等方面。本文将深入探讨进程管理的基本概念、进程调度算法以及进程间的同步和通信机制。通过本文的学习,读者将能够更好地理解操作系统的工作原理,并掌握进程管理的基本技能。
71 11
|
3月前
|
算法 调度 UED
深入理解操作系统:进程管理与调度策略
操作系统作为计算机系统的核心,其进程管理和调度策略对于系统性能和用户体验至关重要。本文将通过直观的代码示例和浅显易懂的语言,带领读者了解操作系统如何有效管理进程以及常见的进程调度算法。我们将从进程的基本概念出发,逐步深入到进程状态、进程控制块(PCB)的作用,最后探讨不同的调度算法及其对系统性能的影响。无论您是初学者还是有一定基础的开发者,都能从中获得有价值的信息。
|
3月前
|
负载均衡 算法 调度
深入理解操作系统:进程管理与调度
在数字世界的心脏,操作系统扮演着至关重要的角色。它如同一位精明的指挥家,协调着硬件资源和软件需求之间的和谐乐章。本文将带你走进操作系统的核心,探索进程管理的艺术和调度策略的智慧。你将了解到进程是如何创建、执行和消亡的,以及操作系统如何巧妙地决定哪个进程应该在何时获得CPU的青睐。让我们一起揭开操作系统神秘的面纱,发现那些隐藏在日常计算背后的精妙机制。
|
3月前
|
调度 开发者
深入理解操作系统之进程调度
在计算机科学领域,操作系统是核心的一环,它管理着计算机硬件资源,并提供接口供上层软件运行。本文将通过深入浅出的方式,探讨操作系统中至关重要的一个概念——进程调度。我们将从基础理论出发,逐步展开讲解进程调度的原理和实现,并配以实际代码示例,旨在帮助读者更好地理解和掌握这一主题。文章不仅适合初学者建立基础,也适合有一定基础的开发者深化理解。
|
3月前
|
算法 调度 UED
深入理解操作系统:进程管理与调度策略
【10月更文挑战第40天】在数字世界中,操作系统是连接硬件与软件的桥梁,它管理着计算机资源和提供用户服务。本文将深入探讨操作系统中的进程管理与调度策略,揭示它们如何协调多任务运行,保证系统高效稳定运作。通过代码示例,我们将展示进程创建、执行以及调度算法的实际应用,帮助读者构建对操作系统核心机制的清晰认识。
|
3月前
|
算法 调度 UED
深入理解操作系统:进程管理与调度策略
【10月更文挑战第34天】本文旨在探讨操作系统中至关重要的一环——进程管理及其调度策略。我们将从基础概念入手,逐步揭示进程的生命周期、状态转换以及调度算法的核心原理。文章将通过浅显易懂的语言和具体实例,引导读者理解操作系统如何高效地管理和调度进程,保证系统资源的合理分配和利用。无论你是初学者还是有一定经验的开发者,这篇文章都能为你提供新的视角和深入的理解。
58 3
|
3月前
|
算法 调度 UED
深入浅出操作系统调度策略
【10月更文挑战第33天】在数字时代的心脏,操作系统扮演着至关重要的角色。本文将探讨操作系统的核心功能之一——进程调度策略的设计与影响。我们将从理论到实践,通过浅显易懂的语言和具体代码示例,揭示如何通过不同的调度算法来优化系统性能和用户体验。无论你是技术新手还是资深开发者,这篇文章都将为你提供新的视角和深入的理解。
|
3月前
|
算法 Linux 调度
深入理解操作系统之进程调度
【10月更文挑战第31天】在操作系统的心脏跳动中,进程调度扮演着关键角色。本文将深入浅出地探讨进程调度的机制和策略,通过比喻和实例让读者轻松理解这一复杂主题。我们将一起探索不同类型的调度算法,并了解它们如何影响系统性能和用户体验。无论你是初学者还是资深开发者,这篇文章都将为你打开一扇理解操作系统深层工作机制的大门。
57 0