《操作系统》第二章 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 7迁移Anolis OS 7
龙蜥操作系统Anolis OS的体验。Anolis OS 7生态上和依赖管理上保持跟CentOS 7.x兼容,一键式迁移脚本centos2anolis.py。本文为您介绍如何通过AOMS迁移工具实现CentOS 7.x到Anolis OS 7的迁移。
相关文章
|
2天前
|
算法 调度 Python
探索操作系统的内核——一个简单的进程调度示例
【9月更文挑战第17天】在这篇文章中,我们将深入探讨操作系统的核心组件之一——进程调度。通过一个简化版的代码示例,我们将了解进程调度的基本概念、目的和实现方式。无论你是初学者还是有一定基础的学习者,这篇文章都将帮助你更好地理解操作系统中进程调度的原理和实践。
|
5天前
|
算法 调度 Python
深入理解操作系统:进程管理与调度
【9月更文挑战第14天】操作系统是计算机系统的核心,负责管理和控制计算机硬件资源,并提供用户和应用程序所需的服务。本文将介绍操作系统中进程管理与调度的基本概念、原理和实现方法,并通过代码示例进行说明。通过阅读本文,读者可以深入了解操作系统的工作原理和机制,提高对计算机系统的理解和掌握能力。
|
9天前
|
算法 调度 Python
深入浅出操作系统之进程调度
【9月更文挑战第10天】本文以浅显易懂的语言,深入浅出地介绍了操作系统中的进程调度机制。通过对比不同调度算法的特点和适用场景,帮助读者理解进程调度在操作系统中的重要性。同时,结合代码示例,展示了进程调度的实现过程,使读者能够更直观地感受进程调度的魅力。
|
6天前
|
算法 调度 UED
深入理解操作系统:进程管理与调度策略
【9月更文挑战第13天】操作系统是计算机科学的核心领域之一,它负责管理和控制计算机的硬件资源,提供软件运行的环境。在众多操作系统的功能中,进程管理是其核心组成部分,涉及到进程的创建、执行、同步和通信等方面。本文将探讨进程管理的基本概念,并深入分析不同的进程调度算法,以及它们如何影响系统性能和用户体验。通过理论阐述与实际应用的结合,我们旨在为读者提供对操作系统进程调度机制的全面理解,同时辅以代码示例,增强内容的实用性和互动性。
16 4
|
7天前
|
算法 调度 云计算
深入理解操作系统的进程调度
【9月更文挑战第12天】本文旨在探索操作系统中一个关键组件——进程调度器,其设计哲学和实现方式直接影响系统性能与用户体验。我们将从基础概念出发,逐步剖析进程调度的目标、策略以及面临的挑战,并以实际代码示例具体演示如何实现一个简单的进程调度算法。通过本文,读者将获得对操作系统进程调度机制的深刻理解和实际应用能力。
15 4
|
9天前
|
算法 调度 UED
深入理解操作系统之进程调度算法
【9月更文挑战第9天】在操作系统的心脏跳动中,进程调度扮演着关键角色,就如同指挥家控制交响乐的节奏。本文将通过浅显易懂的语言和生动的比喻,带领读者走进进程调度的世界,探索不同调度算法背后的哲学与实践,以及它们如何影响系统的性能和用户体验。从最简单的先来先服务到复杂的多级队列和反馈循环,我们将一同见证操作系统如何在众多任务中做出选择,确保系统的高效与公平。
|
2天前
|
算法 调度 UED
深入理解操作系统中的进程调度
【9月更文挑战第17天】在操作系统的心脏深处,进程调度机制如同一位精心编排交响乐的指挥,确保系统的和谐与效率。本文将揭开进程调度的神秘面纱,从理论到实践,深入浅出地探讨其背后的原理与实现。无论你是初学者还是有经验的开发者,这篇文章都将为你提供新的视角和深刻的见解,让你对操作系统有更全面的理解。让我们一起走进这场技术与智慧的盛宴,探索进程调度的秘密吧!
|
3天前
|
算法 Linux 调度
探索现代操作系统的心脏:调度算法的演变与挑战
本文旨在深入探讨现代操作系统中至关重要的组成部分——进程调度算法。通过回顾其发展历程,分析当前主流技术,并展望未来趋势,揭示调度算法如何影响系统性能和用户体验。不同于常规摘要,本文将注重于技术的深度解析和背后的设计哲学,为专业开发者提供全面的视角。
13 0
|
3天前
|
人工智能 算法 物联网
探究操作系统的心脏:调度算法的进化与影响
本文深入探讨了操作系统中核心组件—调度算法的发展历程,重点分析了先来先服务、短作业优先、时间片轮转、优先级调度及多级反馈队列等经典调度算法。通过对比各算法的性能特点,如公平性、响应速度和系统吞吐量,阐述了它们在不同应用场景下的适用性和局限性。同时,文章展望了未来调度算法可能的改进方向,包括人工智能驱动的自学习调度策略、云计算环境下的分布式调度优化,以及物联网设备资源限制下的轻量级调度方案。此外,还强调了实时系统对高可靠性和严格时序保证的需求,以及在多核处理器普及背景下,线程级并行化对调度机制提出的新挑战。本文旨在为操作系统设计者、性能优化工程师及计算机科学领域的研究者和学生提供一个全面而深入的
10 0
|
19天前
|
算法 调度 Python
深入理解操作系统的进程调度
【8月更文挑战第31天】本文通过浅显易懂的语言,介绍了操作系统中进程调度的基本概念和常见算法。文章以通俗易懂的方式阐述了进程调度的重要性,并通过代码示例展示了先进先出(FIFO)调度算法的具体实现。读者可以通过本文加深对操作系统核心机制的理解,并激发对更深层次技术探索的兴趣。

热门文章

最新文章