【操作系统】九、单处理器调度

文章详细阐述了处理器调度的三种类型:长程、中程和短程调度,以及它们各自的作用。接着,讨论了调度算法的重要指标,如周转时间、响应时间和吞吐量,并介绍了四种常见的调度策略:FCFS、SPN、SRT和HRRN,分别解释了它们的工作原理和应用场景。
摘要由CSDN通过智能技术生成

9.1处理器调度的类型

9.1.1长程调度

长程调度是用来决定加入待执行进程池,决定哪个程序可以进入系统中处理,因此它控制了系统的并发度。一旦允许进入,作业或用户程序就将成为进程,并添加到供短程调度程序使用的队列中,等待调度。

9.1.2中程调度

中程调度是交换功能的一部分,决定加入部分或全部位于内存中的进程集合。

9.1.3短程调度

短程调度决定处理器执行哪个可运行进程,执行的最为频繁。

导致当前进程阻塞或抢占当前运行进程的事件发生时,调用短程调度程序。这类事件包括:

时钟中断,I/O中断,操作系统调用,信号(如信号量)

9.1.4三者调度关系

 

9.2调度算法

9.2.1明确短程调度规则

9.2.1.1面向用户,与性能相关

周转时间:指一个进程从提交到完成之间的时间间隔,包括实际执行时间和等待资源(包括处理器资源)的时间。对批处理作业而言,这是一种很合适的测度。

响应时间:对一个交互进程来说,这指从提交一个请求到开始接受响应之间的时间间隔。通常情况下,进程在处理该请求的同时,会开始给用户产生一些输出。因此从用户的角度来看,相对于周转时间,这是一种更好的测度。该调度原则会试图实现较低的响应时间,并在可接受的响应时间范围内,使可交互的用户数量最大。

最后期限:在能指定进程完成的最后期限时,调度原则将降低其他目标,使得满足最后期限的作业数量的百分比最大。

9.2.1.2面向用户,其他

可预测性:无论系统的负载如何,一个给定作业运行的总时间量和总代价是相同的。用户不希望响应时间或周转时间的变化太大。这可能需要在系统作业负载大范围抖动时发出信号,或需要系统处理不稳定性。

9.2.1.3面向系统,与性能相关

吞吐量:调度策略应使得单位时间内完成的进程数量最大。这是对能执行多少作业的一种度量。它明显取决于一个进程的平均执行长度,也受调度策略的影响,因为调度策略会影响利用率。

处理器利用率:这是处理器处于忙状态的时间百分比。对昂贵的共享系统来说,这个规则很重要。在单用户系统和其他一些系统如实时系统中,该规则与其他规则相比不太重要。

9.2.1.4面向系统,其他

公平性:没有来自用户或其他系统的指导时,进程应被平等地对待,没有进程处于饥饿状态。

强制优先级:指定进程的优先级后,调度策略应优先选择高优先级的进程。

平衡资源:调度策略使系统中的所有资源都处于忙状态,优先调度较少使用紧缺资源的进程。该规则也适用于中程调度和长程调度。

9.2.3选择调度策略

明确三个参数:

w:目前为止在系统中停留的时间

e:目前为止花费的执行时间

s:进程所需的总服务时间,包括e。

各种调度策略的特点如下表:

 其中FCFS(First Come First Served)也就是先来先服务算法,

SPN(Shorest Process Next)短进程优先算法

SRT(Shorest Remaing Time)最短剩余时间算法

HRRN:最高相应比优先算法

在介绍这些算法之前,了解决策模式(decision mode)

决策模式说明选择函数开始执行的瞬间的处理方式,通常分为两类:

1.非抢占:在这种情况下,一旦进程处于运行状态,就会不断执行直到终止,进程要么因为等待I/O,要么因为请求某些操作系统服务而阻塞自己。

2.强制:当前正运行进程可能被操作系统中断,并转换为就绪态。一个新进程到达时,或中断发生后把一个阻塞态进程置为就绪态,或出现周期性的时间中断时,需要进行抢占策略。

下面给出一个例子来方便理解各个算法:

9.2.3.1FCFS(先来先服务) 

 

很好理解,就是谁先来给谁服务,后面来的依次排队即可。

9.2.3.2轮转

轮转是基于时钟的抢占策略。这种算法周期性的产生时钟中断,出现中断时,当前正运行的进程会放置到就绪队列中,然后基于FCFS策略选择下一个就绪作业运行,当时间片足够大时,就等同于FCFS策略。

 

9.2.3.3最短进程优先(SPN)

这也很好理解,就是选择就绪队列中占用CPU时间最小的进程优先服务,可以看到在B进程服务完后,先服务的E进程。

 

9.2.3.4最短剩余时间(SRT)

最短剩余时间是在SPN中增加了抢占机制的策略。

具体实现就是当一个新进程加入就绪队列时,与当前正运行的进程相比,它可能具有更短的剩余时间。因此,只要新进程就绪,调度程序就可抢占当前正在运行的进程。

如图中所示,当C进程加入就绪队列后,由于其剩余运行时间短于B,因此进程C抢占进程B运行,当进程C运行完时,就绪队列中有BDE进程,按照剩余时间来依次运行。

9.2.3.5最短响应时间比优先(HRRN)

考虑下面的比值:

调度规则如下:当前进程完成或被阻塞时,选择R值最大的就绪进程。

 

 

实验二 处理器系统进程调度 1.实验目的 加深对进程概念的理解,明确进程和程序的区别; 深入了解系统如何组织进程、创建进程; 进一步认识如何实现处理器调度。 2.实验预备知识 进程的概念; 进程的组织方式; 进程的创建; 进程的调度。 3.实验内容 编写程序完成处理机系统中的进程调度,要求采用时间片轮转调度算法。实验具体包括:首先确定进程控制块的内容,进程控制块的组成方式;然后完成进程创建原语和进程调度原语;最后编写主函数对所作工作进程测试。 4.提示与讲解 这个实验主要要考虑三个问题:如何组织进程、如何创建进程和如何实现处理器调度。 考虑如何组织进程,首先就要设定进程控制块的内容。进程控制块PCB记录各个进程执行时的情况。不同的操作系统,进程控制块记录的信息内容不一样。操作系统功能越强,软件也越庞大,进程控制块记录的内容也就越多。这里的实验只使用了必不可少的信息。一般操作系统中,无论进程控制块中信息量多少,信息都可以大致分为以下四类: ① 标识信息 每个进程都要有一个惟一的标识符,用来标识进程的存在和区别于其他进程。这个标识符是必不可少的,可以用符号或编号实现,它必须是操作系统分配的。在后面给出的参考程序中,采用编号方式,也就是为每个进程依次分配一个不相同的正整数。
处理器系统进程调度 1.实验目的 加深对进程概念的理解,明确进程和程序的区别; 深入了解系统如何组织进程、创建进程; 进一步认识如何实现处理器调度。 2.实验预备知识 进程的概念; 进程的组织方式; 进程的创建; 进程的调度。 3.实验内容 编写程序完成处理机系统中的进程调度,要求采用时间片轮转调度算法。实验具体包括:首先确定进程控制块的内容,进程控制块的组成方式;然后完成进程创建原语和进程调度原语;最后编写主函数对所作工作进程测试。 4.提示与讲解 这个实验主要要考虑三个问题:如何组织进程、如何创建进程和如何实现处理器调度。 考虑如何组织进程,首先就要设定进程控制块的内容。进程控制块PCB记录各个进程执行时的情况。不同的操作系统,进程控制块记录的信息内容不一样。操作系统功能越强,软件也越庞大,进程控制块记录的内容也就越多。这里的实验只使用了必不可少的信息。一般操作系统中,无论进程控制块中信息量多少,信息都可以大致分为以下四类: ① 标识信息 每个进程都要有一个惟一的标识符,用来标识进程的存在和区别于其他进程。这个标识符是必不可少的,可以用符号或编号实现,它必须是操作系统分配的。在后面给出的参考程序中,采用编号方式,也就是为每个进程依次分配一个不相同的正整数。 ② 说明信息 用于记录进程的基本情况,例如进程的状态、等待原因、进程程序存放位置、进程数据存放位置等等。实验中,因为进程没有数据和程序,仅使用进程控制块模拟进程,所以这部分内容仅包括进程状态。 ③ 现场信息 现场信息记录各个寄存器的内容。当进程由于某种原因让出处理器时,需要将现场信息记录在进程控制块中,当进行进程调度时,从选中进程的进程控制块中读取现场信息进行现场恢复。现场信息就是处理器的相关寄存器内容,包括通用寄存器、程序计数器和程序状态字寄存器等。在实验中,可选取几个寄存器作为代表。用大写的全局变量AX、BX、CX、DX模拟通用寄存器、大写的全局变量PC模拟程序计数器、大写的全局变量PSW模拟程序状态字寄存器。 ④ 管理信息 管理信息记录进程管理和调度的信息。例如进程优先数、进程队列指针等。实验中,仅包括队列指针。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

噶炜123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值