第3章3132处理机调度与常见算法

处理机调度:多道程序环境下,动态的把处理机分配给就绪队列中的一个进程使之执行。

提高处理机的利用率、改善系统性能,很大程度上取决于处理机调度的性能。

处理机调度便成为OS设计的中心问题之一。分配的任务由处理机调度程序完成。

作业进入系统驻留在外存的后备队列上,再至调入内存运行完毕,可能要经历下述三级调度。

1、高级调度(HighScheduling)

又称作业调度或长程调度(Long-TermScheduling),接纳调度(AdmissionScheduling)

主要在早期批处理阶段,处理在外存上的作业。

决定外存后备队列中的哪些作业调入内存;

为它们创建进程、分配必要的资源;

将新创建的进程排在就绪队列上,准备执行。

*管理的方面比较多。

作业调度决定的细节

在每次执行作业调度时,都须作出两个决定:

接纳多少作业——取决于多道程序度。应根据系统的规模和运行速度等情况综合考虑。

接纳哪些作业——取决于采用的调度算法。如先来先服务,短作业优先等(后面详细介绍)

系统运行并不一定存在高级调度

批处理系统:作业进入系统后先驻留外存,故需要有作业调度。

分时系统:为及时响应,作业由终端直接送入内存,故不需作业调度。

实时系统中,通常也不需作业调度。

2、低级调度(LowLevelScheduling)

也称为进程调度、微观调度或短程调度(Short-TermScheduling)

决定内存就绪队列中的哪个进程获得处理机,进行分配工作。是最基本的一种调度,在三种基本OS中都有。

进程调度方式

1)非抢占方式(Non-preemptiveMode)

一旦处理机分配给某进程,该进程一直执行。决不允许其他进程抢占已分配运行进程的处理机。

2)抢占方式(PreemptiveMode)

允许调度程序根据某种原则,暂停某个正在执行的进程,将处理机重新分配给另一进程。

调度程序的任务职能:调度和分派。

(1)记录系统中所有进程的有关情况

(2)确定分配处理机的原则

(3)分配处理机给进程

(4)从进程收回处理机

3、中级调度(Intermediate-LevelScheduling)

又称交换调度或中程调度(Medium-TermScheduling)

引入目的:提高内存利用率和系统吞吐量。根据条件将一些进程调出或再调入内存。

三种调度的频率和复杂度

中级调度:运行频率基本上介于上述两种调度之间。

4、调度队列模型

不论高级、中级或者低级调度,都涉及到进程队列,由此形成了三类调度队列模型。从这三种方式中体验调度的过程。

1)仅有进程调度的调度队列模型

常见情况:

分时系统。

通常仅设置进程调度,用户键入的命令和数据,都直接送入内存。

调度对象:

处于就绪状态的进程。

组织形式:

栈、树或一个无序链表

进程调度过程如下图:

①完成工作,释放处理机进入完成状态

②未完成,将该任务再放入就绪队列末尾

③因某事件而被阻塞,被OS放入阻塞队列

2)具有高级和低级调度的调度队列模型

批处理系统中,还需要作业调度

3)同时具有三级调度的调度队列模型

引入中级调度后,进程的状态变化:

就绪状态:分为内存就绪和外存就绪。

阻塞状态:分为内存阻塞和外存阻塞。

中级调度使进程在上述状态间变化,并使数据在内外存间互换。

5.选择调度方式和调度算法的若干准则

什么算法是好算法?

不同的情况和对象需求不同,适用的方式和算法也不同。

1)面向用户的准则

CPU执行用时Ts

优先权准则:三大基本OS在调度算法的选择时都可遵循。可以使关键任务达到更好的指标。

2)面向系统的准则

系统吞吐量高:批处理系统的重要指标。

处理机利用率好(主要针对大中型主机)

各类资源的平衡利用(主要针对大中型主机)

不同系统需求各有侧重

批处理系统

系统吞吐量高

处理机利用率好

分时系统

均衡

实时系统

可预测性

二.常用调度算法

调度的实质就是一种资源分配。不同的系统和系统目标,通常采用不同的调度算法——适合自己的才是最好的。

如批处理系统为照顾为数众多的短作业,应采用短作业优先的调度算法;

目前存在的多种调度算法中,有的算法适用于作业调度,有的算法适用于进程调度;但有些算法作业调度和进程调度都可以采用。

1、先来先服务调度算法FCFS(FirstComeFirstService)

一种最简单的调度算法,按先后顺序进行调度。既可用于作业调度,也可用于进程调度。

按照作业提交,或进程变为就绪状态的先后次序分派CPU;

新作业只有当当前作业或进程执行完或阻塞才获得CPU运行

被唤醒的作业或进程不立即恢复执行,通常等到当前作业或进程出让CPU。(所以,默认即是非抢占方式)

关于应用:有利于CPU繁忙型的作业,而不利于I/O繁忙的作业(进程)。

从程序规模上看,一般I/O繁忙型作业CPU进行处理的用时相对比较短,CPU繁忙型的作业相对较长。而FCFS不利于短作业,I/O繁忙型作业一旦排队靠后就会处于劣势。

另一方面,I/O繁忙型作业需频繁的请求I/O,即使排队靠前,但由于I/O请求阻塞,重新排队可能就会排到队尾(这一情况在其他算法下也是普遍的,但不同的算法,排队情况不同,相对的在照顾公平性上也会有所不同)。

目前大多数事务处理都属于I/O繁忙型作业。

2.短作业(进程)优先调度算法SJF/SPF(ShortestJobFirst)OR(ShortestProcessFirst)

优点:

方式:

分抢占和非抢占两种方式,上例为简单的非抢占式。

SJF/SPF的不足:

1.对短作业有利,但同时造成了对长作业的不利。

2.由于作业(进程)的长短含主观因素,不一定能真正做到短作业优先。

3.未考虑作业的紧迫程度,因而不能保证紧迫性作业(进程)的及时处理。

3.高优先权优先调度算法HPFHighestPriorityFirst

照顾紧迫性作业,使其获得优先处理而引入调度算法。常用于批处理系统中的作业调度算法,以及多种操作系统中的进程调度算法

1)分两种方式:

非抢占式优先权算法

抢占式优先权算法关键点:新作业产生时

2)优先权的类型

静态优先权:创建进程时确定,整个运行期间保持不变。一般利用某一范围的一个整数来表示,又称为优先数。

关于进程优先权的确定?依据如下:

①进程类型:一般来,系统进程高于用户进程。

③用户要求:由用户进程的紧迫程度及用户所付费用的多少来确定优先权的。

3)高响应比优先调度算法HRRNHighestResponseRaitoNext

短作业优先算法是一种比较好的算法(相当于根据作业长度设定的静态优先权算法),适用于短作业较多的批处理系统中,其主要不足是长作业的运行得不到保证。

*对不同作业都有照顾*

①同时到达的作业优先权相同。

什么时候计算各进程的响应比优先权?

需要进行调度选择的时候比较各自优先权

作业完成时

新作业产生时(抢占、非抢占)

进程阻塞时

①将系统中所有的就绪进程按照FCFS原则,排成一个队列。

④调度程序据此暂停当前进程的执行,将其送到就绪队列的末尾,并通过上下文切换执行当前就绪的队首进程。

能够及时响应,但没有考虑作业长短等问题。

过长会怎样?——FCFS

过短会怎样?——频繁切换

做题时给出统一的假设:

若设新进程就绪比较快,就统一按BA的顺序排入就绪队列。

若设旧进程该为就绪比较快,则统一按AB排序

(2)多级反馈队列算法FB(Multiple-levelFeedBackQueue)

①设置多个就绪队列,各队列有不同的优先级,优先级从第一个队列依次降低。

③当一个新进程进入内存,引发的调度过程

a.准备调度:先将它放入第一个队列的末尾,按FCFS原则排队等待调度。

注意:

仅当优先权高的队列(如第一队列)空闲时,调度程序才调度第二队列中的进程运行;仅当第1~(i-1)队列均空时,才会调度第i队列中的进程运行。

高优先级抢占问题:

第i队列中为某进程正占有CPU,又有新进程进入优先权较高的队列(第1~i-1队中);

被抢占的进程放回原就绪队列末尾;

*多级反馈队列调度算法的性能*

多级反馈队列调度算法具有较好的性能,能较好的满足各种类型用户的需要。

长批处理作业用户。将依次在1~n级队列中轮转执行,不必担心作业长期得不到处理。

基于公平原则的更多算法

①保证调度算法

处理机分配的公平性:

针对用户考虑,如根据a(4个进程),b(2个进程)用户所拥有进程数目,决定一个比率

a1,a2,b1,a3,a4,b2……

优先级倒置问题的讨论

有人罩着就是好^_^

p1,p2,p3优先级从高到低

p3(运行)先占有一互斥信号mutex

p2(运行)可以抢p3(就绪)

p1来申请mutex,即使优先级高,但信号量拿不到只能阻塞,又回到p2

p2来了,p3

三.实时调度

什么是实时系统?

实时系统的任务往往带有某种程度的紧迫性,因而实时系统的调度有某些特殊要求。

为此引入适合的实时调度算法

为保证系统正常工作,调度应具备下列条件

1.实现实时调度的基本条件

1)提供必要的信息

为了实现实时调度,系统应向调度程序提供有关任务的下述信息:

资源要求。任务执行时所需的一组资源。

优先级。根据任务性质赋予不同优先级。

2)系统处理能力足够强

处理能力不足可能会出现某些实时任务不能得到及时处理,导致难以预料的后果。

如:

提高系统处理能力的方法

增强单机系统的处理能力

采用多处理机系统

此情况下需满足

∑(Ci/Pi)≤N,N为处理机数

3)采用抢占式调度机制

硬实时任务:广泛采用抢占机制。

4)具有快速切换机制

①对外部中断的快速响应能力。

利用快速硬件中断机构,可在紧迫的外部事件请求中及时响应。

②快速的任务分派能力。

使系统中的运行功能单位适当的小,提高切换速度。类如线程的思想

2.实时调度算法的分类

硬实时调度算法静态调度算法

软实时调度算法;动态调度算法。

按调度方式多处理机环境下

非抢占调度算法集中式调度

抢占调度算法;分布式调度

1)非抢占调度算法

该算法较简单,用于一些小型实时系统或要求不太严格的实时系统中,又可分为:

①非抢占式轮转调度算法。常用于工业生产的群控系统中,要求不太严格。

2)抢占式调度算法

①基于时钟:某高优先级任务到达后并不立即抢占,而等下一个时钟中断时抢占。

②立即抢占:一旦出现外部中断,只要当前任务未处于临界区,就立即抢占处理机。

3.常用的几种实时调度算法

目前有许多实时调度算法,在常用的算法中简单介绍两种实时调度算法:

系统保持一个实时任务就绪队列

调度程序总是选择就绪队列中的第一个任务,分配处理机使之投入运行。

新任务产生时,是否等当前程序执行完:

抢占式/非抢占式

可能会使作业错过,但可适用于软实时系统

2)最低松弛度优先LLF(LeastLaxityFirst)

根据任务紧急(或松弛)的程度,来确定任务的优先级。任务的紧急程度越高(松弛度值越小),优先级就越高。

进程切换发生的时机

进程执行完

进程I/O阻塞

新进程出现时可能的抢占

某进程松弛度为0时发生抢占

有的时刻,其他并发的实时任务下一周期未到来,会出现只有一个任务的情况。

多处理机系统中的调度

提高计算机系统性能的途径:

提高计算机元器件速度

改进计算机系统体系结构

20世纪70年代出现多处理器系统MPS(MultiProcessorSystem)。90年代中后期,功能较强的主机或服务器都采用了MPS。

1.多处理器系统的类型

不同角度分类

1)紧密耦合MPS和松弛耦合MPS

紧密耦合(TightlyCoupted)

高速总线或高速交叉开关来实现多个处理器之间的互连。

共享主存储器系统和I/O设备。系统中所有进程和资源由OS统一控制管理。

松散耦合(LooselyCoupted)

通过通道或通信线路来实现多台计算机之间互连。

每台计算机都有自己的存储器和I/O设备,可以独立工作。

2)对称MPS和非对称MPS

对称多处理系统SMPS(SymmetricMultiProcessorSystem)平等型:在系统中所包含的各处理器单元在功能上和结构上都相同。当前的绝大多数MPS属于此类。

非对称多处理器系统。主从型:系统中有多种类型的处理单元,它们的功能和结构各不相同,其中只有一个主处理器,其余为从处理器。

2.进程分配方式

在多处理器系统中,进程的调度与系统结构有关。

同构性系统中,所有处理器都相同,可将进程分配到任一处理器上运行;

非对称MPS,对任一进程而言,都只能将其分配到某一适合于其运行的处理机上去执行。下面分别介绍对称MPS和非对称MPS中的进程分配方式。

1)对称MPS中的进程分配方式

①静态分配(StaticAssignment)方式:

进程从开始至完成被固定分配到一个处理器上。

优点是进程调度开销小,缺点是各处理器可能出现忙闲不均。

②动态分配(DynamicAssignment)方式:

系统中仅设置一个公共的就绪队列,分配进程总是给空闲处理器。某一进程的执行可能曾在不同的处理器上。

优点是消除忙闲不均现象。但松散耦合系统增大调度开销。

2)非对称MPS中的进程分配方式

OS的核心部分驻留在一台主机上,而从机上只是用户程序,进程调度只由主机执行。主机中保持有一个就绪队列。

每当从机空闲时向主机发一索求进程信号,然后等待主机分配进程。

优点是系统处理比较简单,缺点是处理靠一台主机导致不可靠。(克服缺点的方法是利用多台而非一台管理系统)

3.进程(线程)调度方式

MPS已广为流行多年,存在着多种调度方式,许多都是以线程作为基本调度单位的,比较有代表的如下:

1)自调度(Self-Scheduling)方式

自调度机制,最简单的一种调度方式。

系统中设置一个公共的进程或线程就绪队列,所有的处理器空闲时,都可自己到该队列中取得一进程(线程)来运行。

调度算法:可采用FCFS、FPF和抢占式最高优先权优先调度算法等。经实验证明FCFS算法在多处理器环境下简单开销小,目前成为较好的调度算法。

自调度方式的特点

1)易将单机环境下的调度机制移植到MPS中;

2)不会发生处理器忙闲不均的现象,有利于提高处理器的利用率。

缺点:

1)瓶颈问题。多处理器互斥访问唯一就绪队列。

2)低效性。高速缓存的使用效率很低。

2)成组调度(GangScheduling)方式

为解决自调度方式中线程频繁切换的问题

相互合作的进程或线程能并行执行,可有效的减少阻塞,减少切换使系统性能得到改善;

每次调度都可以解决一组线程的处理器分配问题,故可显著减少调度频率,减少了调度开销。

3)专用处理器(DedicatedProcessorAssignment)方式

1989年Tucker提出该方式。在一个应用程序的执行期间,专为该应用程序分配一组处理器,每一个线程一个处理器。

这种方式很浪费。但仍有利用市场,适用于并发程度相当高的多处理机环境:

对系统的性能和效率来讲,单个处理器的利用率已不太重要。

“专用”完全避免了切换,从而大大加速了程序运行。

同时加工的应用程序,线程总和不应超过系统处理机的数目。

THE END
1.智能报警系统:实时预警和快速响应文章浏览阅读2.7k次,点赞20次,收藏25次。1.背景介绍智能报警系统是一种基于大数据、人工智能和计算机科学技术的系统,它的主要目的是实时预警和快速响应。在现代社会,智能报警系统已经广泛应用于各个领域,例如安全监控、交通管理、气候变化监测、金融风险预警等。智能报https://blog.csdn.net/universsky2015/article/details/135809157
2.实时调度在日常生活中,许多关键系统都需要实时响应外部事件,以确保操作的安全性和有效性。例如,自动驾驶汽车需要在几毫秒内对路况变化做出反应,医疗设备必须在瞬间响应患者的变化,工业机器人需要在固定时间内完成任务…https://zhuanlan.zhihu.com/p/718696766
3.实时操作系统(RTOS)在嵌入式开发中的作用与优势实战嵌入式系统已经成为我们日常生活中的不可或缺的一部分,从智能手机到汽车控制系统,从家用电器到医疗设备,嵌入式系统无处不在。这些系统通常需要满足严格的时间限制,以便实时响应事件和传感器输入。为了满足这些要求,嵌入式开发者经常依赖于实时操作系统(RTOS),这些系统提供了一种有效的方式来管理系统资源和处理多任务。 https://cloud.tencent.com/developer/article/2368841
4.按响应时间划分,通常可将实时系统分为三类:(1)普通实时系统,响应时间一般问答题 按响应时间划分,通常可将实时系统分为三类:(1)普通实时系统,响应时间一般在秒级;(2)响应时间在毫秒级和( )级的强 实时系统;(3)响应时间在数十秒级的( )实时系统。 参考答案:微秒;弱 延伸阅读http://www.ppkao.com/shiti/4e66a553ef244cceab802cf74d99bb39/
5.客服系统的实时性与响应性:迅速回应用户的每一个问题客服系统的实时性与响应性,是提升用户体验,增强用户信任感和忠诚度的关键。在未来,这将成为企业在激烈的市场竞争中获得竞争优势的重要手段。https://www.live800.com/news/knowledge/1700620810.html
6.实时操作系统实时操作系统(RTOS)是指具有实时性能的操作系统。不可预测的外部事件或数据产生后,能在可预测的时间内被接受,并以足够快的速度进行处理,处理结果能在规定时间内控制生产过程或快速响应处理系统,并能调度一切可用资源完成实时任务。与一般的操作系统相比,实时操作系统更加“实时”,即当一个任务需要执行时,实时操作系统https://www.qwbaike.cn/doc-view-9860.html
7.揭秘实时系统多线程,科技洞察下的未来科技趋势(2024年12月18日摘要:在2024年12月18日,我们将深入探讨实时系统多线程技术。这篇文章将揭示实时系统多线程的奥秘,并带来对当日科技发展的洞察。实时系统多线程技术能够提高系统效率和响应速度,是当代科技领域的重要发展方向之一。通过本文,读者将更好地了解这一技术的原理和应用,以及它在未来科技发展中的前景。 http://www.fjgsy.com/post/15841.html
8.应急响应系统功能有哪些中间件智能化应急响应系统作为一套综合性的解决方案,旨在迅速、有效地应对各类突发事件,保障社会安全和人民生命财产安全。这一系统涵盖了众多功能模块,共同构建了一个强大的应急处理机制。 首先,应急响应系统具备实时监测与预警功能。系统通过部署在各处的传感器和监控设备,能够实时收集并分析环境数据,一旦检测到异常情况,便会立即启动https://www.163.com/dy/article/IURDTLHJ0538SSBM.html
9.嵌入式系统基础知识(4)应用软件:由基于实时系统开发的应用程序组成。 3、实时系统 (1)定义:能在指定或确定的时间内完成系统功能和对外部或内部、同步或异步时间做出响应的系统。 (2)区别:通用系统一般追求的是系统的平均响应时间和用户的使用方便;而实时系统主要考虑的是在最坏情况下的系统行为。 https://www.yjbys.com/edu/qianrushi/223032.html
10.serverless中随机调度算法随时调度什么意思非抢占式优先调度算法。要求相对严格,根据任务的优先级安排等待位置。可用于有一定要求的实时控制系统中。(精心设置可获得百ms级的响应时间) 较严格的实时系统中(t约为数十ms),选择采用抢占式优先权调度算法。根据抢占发生时间可分为: 基于时钟:某高优先级任务到达后并不立即抢占,而等下一个时钟中断时抢占。 https://blog.51cto.com/u_16213674/11074825
11.迪普科技XDR终端检测与响应系统终端安全管理系统DPtech XDR终端检测与响应系统是集恶意代码防护、桌面管理、终端威胁检测与响应(EDR)于一体的全新一代终端安全管理系统,系统建立统一管理的终端安全整体防护体系,有组织有计划地监测和分析终端安全状态,统一配置终端安全策略,提供终端的安全保障能力,确保终端系统正常、高效的运行,提供彻底解决终端安全威胁的全生命周期的管理https://www.yun88.com/product/2875.html
12.LEC3230产品作为网络报文记录及分析装置的应用3) 实时系统,响应迅速 LEC-3230基于LINUX系统开发,完全满足工业现场控制的要求。 4) 接口丰富,扩展容易 LEC-3230具有多个串口、多块以太网卡,支持光口扩展,支持IEC103、104,IEC61850等现场通信协议,还可以根据需要灵活增加。 5) 高精度对时模块 LEC-3230支持电B码和光B码两种方式,精度可达us级,满足现场对时要求https://www.hdzx.cn/CaseStd_586.html
13.危机管理与应对中的智能应急响应系统应用考核试卷.docx危机管理与应对中的智能应急响应系统应用考核试卷考生姓名:答题日期:得分:判卷人: 本次考核旨在评估考生在危机管理与应对中运用智能应急响应系统的能力,包括系统操作、数据分析、决策支持等方面的知识和技能。 一、单项选择题(本题共30小题,每小题0.5分,共15分,在每小题给出的四个选项中,只有一项是符合题目要求https://www.renrendoc.com/paper/372402347.html
14.五大国产实时操作系统RTOStxwtech五大国产实时操作系统RTOS: 1. 道系统(Delta OS):主要应用于军工装备领域,具有微秒级的响应时间和基于优先级抢占的实时任务调度策略。它已经在多兵种的装备上得到了广泛应用,并成为了东土科技防务业务的重要组成部分。 2. 翼辉(Sylix OS):一个功能全面、稳定可靠的https://www.cnblogs.com/txwtech/p/18344413
15.多形态MVC式Web架构:完成实时响应系统架构 具有集中式数据库的博客 Web 应用将用 dWMVC 范式予以设计和开发。总的来说,应用组件间的通讯将用 AngularJS、SSE、InSoR 和 CDC 来实现。这些技术将使系统能够响应任何对集中式数据库中记录的修改(通过这个 Web 应用或未来的集成模块),并实时传递这种变化给最终用户,概览图如图 2。 https://www.infoq.cn/articles/mvc-real-time-reactive-fulfillment
16.什么是实时操作系统(RTOS)实时操作系统(RTOS)是一种专为实时应用程序设计的操作系统。实时应用程序需要在特定时间内做出预测的响应,因此 RTOS 专注于提供对时间约束的强调,以确保系统能够满足实时性能要求。 1.实时性能: 硬实时和软实时:RTOS 可以根据实时性能的要求分为硬实时和软实时。硬实时系统对任务的响应时间有极严格的要求,任何未能在https://www.elecfans.com/d/2320627.html
17.什么是实时系统一个实时系统是指计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,将会发生系统出错。所谓“实时”,是表示“及时”,而实时系统是指系统能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致的运行。实时系统(https://zhidao.baidu.com/question/1550382464140894267.html
18.实时系统概述和示例据IDC 估计,2025 年之前,创建的数据将达到 79.41ZB,其中近 30%2的数据将需要进行实时处理(由实时系统提供支持)。 实时系统是什么? 所谓“实时系统”指的是硬件和软件组件具有以下特点的信息处理系统:可执行实时应用功能,并且能够在可预测的特定时限内响应事件。常见的几种实时系统包括空中交通管制系统、过程控制系统https://www.intel.cn/content/www/cn/zh/robotics/real-time-systems.html
19.长亭科技洞悉现网资产脆弱性,支持检测分析主机资产的漏洞、配置错误、弱口令等问题 指纹识别+POC验证交叉漏洞验证,自动关联官方补丁,提升漏洞修复效率 2000+合规基线检查项,主动触发合规基线检测任务,满足监管合规需求 有效感知入侵威胁,实时响应安全事件 多引擎交叉验证,针对性检测入侵威胁,形成检测、响应、处置的安全闭环https://www.chaitin.cn/zh/cloudwalker
20.实时操作系统实时操作系统(RTOS)是一个操作系统(OS)旨在用作实时应用程序,因为它涉及在通常无缓冲延迟的过程数据。处理时间要求(包括任何OS延迟)以十分之一秒或更短的时间增量来衡量。实时系统是具有明确定义的固定时间约束的时限系统。处理必须在定义的约束内完成,否则系统将失https://vibaike.com/113126/
21.操作系统原理习题及答案(机工孟庆昌第2版).doc分时系统的特点是:同时性:若干用户可同时上机使用计算机系统;交互性:用户能方便地与系统进行人—机对话;独立性:系统中各用户可以彼此独立地操作,互不干扰或破坏;及时性:用户能在很短时间内得到系统的响应。实时系统的特点是:对时间的严格限制和对可靠性的严格要求。 5.操作系统的基本特征是什么?答:操作系统的基本https://m.book118.com/html/2022/0918/6135021130004240.shtm