操作系统导论(3)

作者&投稿:贲券 (若有异议请与网页底部的电邮联系)
~

上篇文章介绍了OS虚拟化CPU的低层实现方法,这篇文章来介绍虚拟化CPU中的调度策略,即进程切换时到底应该换哪个进程独占CPU?

在设计调度策略之前,我们需要对进程的某些信息做出假设,这有助于简化问题,并且这些假设会在后面一步步消除,最后得到一个能在真实计算机中运行的调度算法。

上述假设看起来是不太现实的,但我们能因此开发出基本的调度策略,并在之上进行改进。

要设计一个优秀的调度策略,调度指标的选取很重要。有如下指标可供选取:

评估调度策略的优劣使用平均周转时间来评价。

顾名思义,先到达的进程可先得到CPU使用权。

如果假设1不满足的话,FIFO的平均周转时间就取决于进程的到来顺序以及其运行时间了。

举个例子:
有进程A、B、C。其中A运行100秒,B与C都运行10秒。如果A、B、C大致同时到达,但A的到达时间快了那么一点点,根据FIFO,OS先选择运行A,那么B与C就必须等待A运行直到完成。此时的平均周转时间

这显然让人沮丧。

上述问题被称为护航效应(convey effect)。一些耗时较少的资源消费者排在重量级的资源消费者之后。

FIFO让进程B、C的“满意度”大打折扣,如何改进FIFO,照顾到它们的情绪呢?

我们去掉假设1,如果先运行上述的B、C,那么平均周转时间为

在平均周转时间这一指标上,SJF比FIFO的效果好得多,并且在假设2满足的情况下,SJF即为最优算法。

如果假设2不满足呢?即进程的到达时间点不一致,此时如果使用SJF仍会存在护航问题,如何改进?我们去掉假设3,即认为进程在运行过程是可以切换的,向SJF添加抢占功能,即可转化为STCF调度策略。

每当新进程到达(就绪状态)时,OS会比较正在CPU运行的进程的剩余时间与新进程的剩余时间比较,选择剩余时间少的运行。就平均周转时间而言,STCF在当前假设下是最优的。

上述调度算法都是针对平均周转时间进行设计的。
如果只考虑响应时间,那么每个进程仅仅只能运行很短的一段时间,然后又切换到另一个进程,这样就保证了每个进程都能照顾到,提高了用户体验。进程运行的一个时间周期被称为时间片, 注意 ,时间片的长度必须是时钟中断周期的倍数,例如假设时钟中断是每10ms中断一次,则时间片可以10ms,20ms等等。

我的理解是时钟中断进行了一个强制性的控制权转让,从进程传给了OS,此时OS可以根据当前的影响因素,例如剩余时间片长度,进程优先级等来决定是否继续运行之前进程或是切换到另一个进程。因此时间片长度与时钟中断的关系是前者是后者的一个影响因素。

RR虽然在交互性上表现上佳,但是它也造成了一些额外的开销,因为频繁的进程切换会占用一定的时间。此时需要使用摊销(amortize)来降低进程切换成本。具体做法是权衡增加时间片的长度,这样系统进行进程切换的次数便减少了,用于进程切换的额外时间也降低了。

虽然RR大大减少了响应时间,但也造成周转时间的增加。更一般地说,一些公平的调度策略例如RR,在小规模时间内将CPU均匀分配到活动进程之间,它们在周转时间这类指标上表现不佳。周转时间与响应时间是一个矛盾的双方。

进程在运行时有可能会进行I/O操作,因此去掉假设4更符合实际情况。如果正在运行的进程A将执行I/O操作,那么OS会进行调度,在进程A执行I/O期间,将CPU分配给其他待执行进程,进程A进入阻塞状态。当I/O完成后,会产生一个外部中断,使OS重获CPU控制权,并且进程A转为就绪状态。OS再决定下个执行程序。

进程的执行时间我们是无法知道的,在实际情况中要求我们根据最近的运行历史来预测未来,从而解决不可预知的问题。

由上文可知设计一个好的调度策略要兼顾以下因素:

针对上述要点,OS专家提出了一个综合性调度算法——多优先级反馈队列算法(Multi-level Feedback Queue)。它由以下部分组成:

给进程分配优先级是一个问题,到底该怎么分配呢?系统中既有长工作又有短工作。MLFQ选择的方式是给初始化后的进程分配最高优先级,并根据进程的运行状况来动态调整优先级。

基本的MLFQ规则如下:

首先一个长工作A到达了系统,OS赋予它最高优先级,长工作在用完若干个时间片后,此时其优先级已经降到最底层的队列。

短工作B进来后,系统同样赋予其最高优先级,它的执行时间比A短,消耗的时间片少,因此它在移入底层队列之前已经执行完毕了。此后A继续运行。上述过程类似于SJF。OS并不知道进程的执行时间,但是通过上述操作使得周转时间得到了降低,同时保证了响应时间。

如果进程存在频繁的I/O操作,那么进程在时间片内通过中断主动放弃CPU,此时它的优先级不变,CPU转而执行其他进程,具体过程在后续I/O的控制方式中会详细阐述。这样就保证了交互性程序的响应时间很短。

但上述MLFQ的规则还存在一些问题:

针对上述问题,MLFQ又新增和改进了如下规则:

MLFQ存在很多参数,例如每层队列的时间片大小,提升所有进程优先级的间隔时间,优先级队列的数量。这些参数调整都没有固定的值,只能依赖于设计者的实践和调优经验。




27016课程
计算机信息管理(本科段)专业(专业代号:2082208)中的“02142数据结构导论”(4学分)课程调整为“03177数据结构与数据库”(5学分)。 园林(本科段)专业(专业代号:2090115)中的“07894园林植物遗传育种”(4学分)课程调整为“01437园林工程预算”(3学分)。 英语(本科段)专业(专业代号:2050201)、英语教育(本科段)专业(专...

我需要 系统化思维导论,这种热门书籍百度网盘资料有么?
本书是软件思想家温伯格 的非凡之作。温伯格作为美国计算机名人堂代表人物,先后著有30多部图书,内容涵盖整个软件开发周期。他的拥趸遍天下,他的书也被奉为必读经典。这是一本带你读懂思维 的旷世经典,简明的语言,简单的代数,清晰阐明了认识各种项目、产品和组织等系统的新方法。这是一本极易上手 ...

教育技术导论 应用系统方法包括哪些步骤,并做简单说明
甚至对理论进行改造、扩充、重构,以适应原有理论未能预见的新情况、新问题。因此,教学系统设计是理论性和创造性的结合,在实践中我们既要依据教学系统设计理论来进行教学设计,又不能把理论看作教条,而应该在实践中发展理论,创造性地运用、发展教学设计理论。3.教学系统设计过程的计划性与灵活性 教学...

为什么说操作系统既是计算机硬件和其他软件的接口,优势用户与计算机的...
编程接口由一系列的系统调用组成各种程序可以使用这些系统调用让操作系统为其服务,并通过操作系统来使用硬件和软件资源。所以其他程序是在操作系统提供的功能基础上运行的。百度百科:操作系统 链接:http:\/\/baike.baidu.com\/link?url=W8pJkx5PwOhaP6Q0gSLYJ1c2RqzMGUziDYTpJX2ql2-9KGjcoBm3cfxiInM4...

大学软件工程专业教材都有哪些?
ST软件工程免费下载 链接:https:\/\/pan.baidu.com\/s\/1zesJfTuWTpPplC7Yf4YusQ 提取码:7y95 ST是指境内上市公司被进行特别处理的股票,也是退市风险警示。ST股是指境内上市公司经营连续两年亏损,被进行退市风险警示的股票。

四川大学软件工程系大一要学习哪些课程?
软件工程专业课程大纲列表时间: 2012-05-23 19:51 信息安全产品开发实践Practice in Information Security Products Development分布式系统与互联网(双语)Distributed System and Internet软件工程专业课程大纲列表课程群课程属性课程号课程名专业与服务课程群必修311016040计算机系统导论Introduction to Computer ...

西南大学计算机导论大作业试述文件系统和数据库管理系统的区别_百度知 ...
操作系统是维持电脑运行的必备软件,由几个程序构成,它具有三大功能——管理电脑软硬件资源、使之能被有效地应用;组织协调电脑各个组成部分的运行,以增强系统的处理能力,提供各种实用的人机界面,为用户操作提供方便,操作系统软件包括进程管理、存储管理、文件管理和作业管理五部分。每种操作系统均有一个...

社会工作专业大学课程
本课程开设的主要内容:一是社会调查研究与方法的概念、类型、方法与历史发展、以及社会研究的原理;二是系统介绍社会学研究的设计、抽样、测量、资料的收集与处理;三是简单介绍统计分析方法在社会调查研究资料分析中的作用;四是介绍调查研究报告的类型、结构、撰写的步骤与方法。目的是使学生了解并掌握社会调查的基本方法...

论文写作与学术规范(3)
答辩委员会成员和通讯评阅专家对硕士、博士论文作鉴定、写评语,有一个内容是对论文结构表态。一篇合格的学位论文,要求结构严密、合理。肯定的评语是:本文结构合理、逻辑严谨、层次清晰。什么叫“结构合理”?结构合理就是指论文的“层次清晰”、“逻辑严密”。这就需要了解论文的一般结构。 学术论文的结构:导论、本论、...

论康德人是最高目的的目的论体系
因而这篇导论,实际上是康德对自己的批判哲学体系的概括总结。而这一总结的最后以“最高目的”之概念告终,可见康德批判哲学的指向了。 3 现在我们返观一下康德哲学的各个部分,即可明显看出“目的”是康德哲学的纲领性范畴,是其体系的归宿。 在理论哲学中,康德意在通过对“纯粹理性”能力的批判和分离,确认人的理论...

南木林县17059949257: 操作系统这门课一共有多少章节? -
弥鹏盖尔: 这门课一共有11个章节.包括:第一章操作系统概览,第二章进程描述和控制,第三章线程,第四章并发性:互斥和同步,第五章并发:死锁和饥饿,第六章内存管理,第七章虚拟内存,第八章单处理器调度,第九章多处理器和实时调度,第十章I/O管理和磁盘调度,第十一章文件管理,.

南木林县17059949257: 计算机操作系统根据其功能和使用环境可以分为哪几类? -
弥鹏盖尔: 计算机操作系统就目前而言一般的分类是桌面操作系统(WindowsXP、Windows7、MAC等),还有就是服务器操作系统(Windows 2003 Server、Windows 2008 Server,特殊一点的IBM AIX、HP HP-UNIX等).还有一些是专用的或大型机所专用的操作系统,这些操作系统一般都是定制的.

南木林县17059949257: 常见的操作系统有哪些? -
弥鹏盖尔: 几个常用的操作系统: 1、 DOS操作系统 DOS是英文Disk Operation System的简称,中文为磁盘操作系统,自1981年推出1.0版发展至今已升级到6.22版,DOS的界面用字符命令方式操作,只能运行单个任务. 2、 Windows 9x Windows 9x是...

南木林县17059949257: 操作系统是什么 -
弥鹏盖尔: 拿什么是操作系统呢?如果就操作系统这种宽泛的概念来说,几乎任何机器都有操作系统,就这个意义上来说,操作系统就是厂家为了方便用户使用机器所安排的一系列东西.包括硬件和软件.比如说电视机,操作系统就是遥控器及其操作遥...

南木林县17059949257: 操作系统这门课程好过吗? -
弥鹏盖尔: 操作系统这门课程好过吗? 读书方法:各人不一样;各专业不一样;同专业的各学科也不见得相同 专业:各地不一样,主要以市级自考办为准,省办的信息未必准,因为省里有的专业市里未必有.专业的选择不要问任何人,要问自己—— 你的...

南木林县17059949257: 计算机的嵌入式主要学习哪些专业课 -
弥鹏盖尔: 主要的学习课程是:C语言,汇编语言,数电,模电,LINUX操作系统,51单片机,DSP,ARM.

南木林县17059949257: 操作系统概论的习题
弥鹏盖尔: 输入井和输出井:这是在磁盘上开辟出来的两个存储区域.输入井模拟脱机输入时的磁盘,用于收容I/O设备输入的数据.输出井模拟脱机输出时的磁盘,用于收容用户程序的输出数据.不知道你是否满意.

南木林县17059949257: 操作系统依同时管理用户数的多少分为 -
弥鹏盖尔: 操作系统的五大管理功能:(1)作业管理:包括任务、界面管理、人机交互、图形界面、语音控制和虚拟现实等;(2)文件管理:又称为信息管理;(3)存储管理:实质是对存储“空间”的管理,主要指对主存的管理;(4)设备管理:...

南木林县17059949257: windows系统有什么组成 -
弥鹏盖尔: 系统由操作系统软件和应用软件组成 系统资源包括CPU、内存、输入输出设备以及存储在外存中的信息. 因此操作系统由 (1)对CPU的使用进行管理的进程调度程序 (2)对内存分配进行管理的内存管理程序 (3)对输入输出设备进行管理的设备驱动程序 (4)对外存中信息进行管理的文件系统 等四部分组成.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网