处理器(CPU)调度问题



由于处理机是最重要的计算机资源,提高处理机的利用率及改善系统性能(吞吐量、响应时间),在很大程度上取决于处理机调度性能的好坏,因而,处理机调度便成为操作系统设计的中心问题之一。

一、处理机调度的层次

1、高级调度:又称为作业调度或长程调度,其主要功能是根据某种算法,把外存上处于后备队列中的那些作业调入内存,也就是说,它的调度对象是作业。

①作业是一个比程序更为广泛的概念,它不仅包含了通常的程序和数据,而且还应配有一份作业说明书,系统根据该说明书来对程序的运行进行控制。在批处理系统中,是以作业为基本单位从外存调入内存的。

②作业调度:其主要功能是根据作业控制块中的信息,审查系统能否满足用户作业的资源需求,以及按照一定的算法,从外存的后备队列中选取某些作业调入内存,并为它们创建进程、分配必要地资源。然后再将新创建的进程插入就绪队列中,准备执行。因此,有时也把作业调度称为接纳调度。每次作业调度时都必须做出以下两个决定:决定接纳多少个作业、决定接纳哪些作业。然而在分时系统中,为了做到及时响应,用户通过键盘输入的命令或数据等都是被直接送入内存的,因而无需再配置上述的作业调度机制,但也需要有某些限制性措施来限制进入系统的用户数。

2、低级调度:又称为进程调度或短程调度,其主要功能是用于决定就绪队列中的哪个进程应获得处理机,然后再由分派程序执行把处理机分配给该进程的具体操作。主要完成以下几个任务:保存处理机的现场信息、按某种算法选取进程、把处理器分配给进程。

①进程调度中的三个基本机制:排队器、分配器和上下文切换机制。

②进程调度方式:非抢占方式、抢占方式

1)非抢占方式:一旦把处理机分配给某进程,不管它要运行多长时间,都一直让它运行下去,决不会因为时钟中断等原因而抢占正在运行程序的处理机,也不允许其它进程抢占已经分配给它的处理机。直至该进程完成,自愿释放处理机,或发生某事件而被阻塞时,才把处理机分配给其它进程。

在采用非抢占调度方式时,可能引起进程调度的因素可归结为如下几个:

正在执行的进程执行完毕,或因发生某事件而不能再继续执行;

执行中的进程因提出I/O请求而暂停执行;

在进程通信或同步过程中执行了某种原语操作,如p操作(wait操作)、Block操作、Wakeup原语等。

2)抢占方式:允许调度程序根据某种原则去暂停某个正在执行的进程,将已分配给该进程的处理机重新分配给另一进程。它是基于以下原则的:优先权原则、短作业(进程)优先原则、时间片原则。

3、中级调度:又称中程调度。主要目的是为了提高内存利用率和系统吞吐量。为此,应使那些暂时不能运行的进程不再占用宝贵的内存资源,而将它们调至外存上去等待,把此时的进程状态称为就绪驻外存状态或挂起状态。当这些进程重又具备运行条件且内存又稍有空闲时,由中级调度来决定把外存上的那些又具备运行条件的就绪进程重新调入内存,并修改其状态为就绪状态,挂在就绪队列上等待进程调度。

二、选择调度方式和调度算法的一些准则

1、面向用户的准则

①周转时间短:所谓周转时间,是指从作业被提交给系统开始,到作业完成为止的这段时间间隔。它包括四部分:作业在外存后备队列上等待调度的时间,进程在就绪队列上等待进程调度的时间,进程在CPU上执行的时间以及进程等待I/O操作完成的时间。

平均周转时间T=1/n(T1+T2+...+Tn);

带权周转时间为作业的周转时间T与系统为它提供服务的时间Ts之比,即W=T/Ts;

平均带权周转时间W=1/n(T1/Ts+T2/Ts+...+Tn/Ts);

②响应时间快:所谓响应时间,是从用户通过键盘提交一个请求开始,直至系统首次产生响应为止的时间,或者说,直到屏幕上显示出结果为止的一段时间间隔。它包括三部分时间:从键盘输入的请求信息传送到处理机的时间,处理机对请求信息进行处理的时间,以及将所形成的响应信息回送到终端显示器的时间。

③截止时间的保证:所谓截止时间,是指某任务必须开始执行的最迟时间或必须完成的最迟时间。

④优先权原则

2、面向系统的准则

①系统吞吐量高:吞吐量是指单位时间内系统所完成的作业数,因而它与批处理作业的平均长度具有密切关系。

②处理机利用率好

③各类资源的平衡利用

三、调度算法

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

2、短作业(进程)优先调度算法(SJ(P)F)

3、高优先权优先调度算法

1)调度算法类型

①非抢占式优先权算法

②抢占式优先权算法

2)优先权类型

①静态优先权:是在创建进程时确定的,且在进程的整个运行期间保持不变。

②动态优先权:在创建进程时所赋予的优先权,是可以随进程的推进或随其等待时间的增加而改变的,以便获得更好的调度性能。

4、时间片轮转法:一个可取的大小是,时间片略大于一次典型的交互所需要的时间。这样可使大多数进程在一个时间片内完成。

5、多级反馈队列调度算法,其按一下过程实施:

①设置多个就绪队列,并为各个队列赋予不同的优先级,第一个队列的优先级最高,一次类推。

②当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原排队等待调度,如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾,依次类推。

③仅当第1~(i-1)队列均空时,才会调度第i队列中的进程运行。如果处理机在第i队列中为某进程服务时又有新进程进入优先权较高的队列,则此时新进程将抢占正在运行进程的处理机,即由调度程序把正在运行的进程放回到第i队列的末尾,把处理机分配给新到的高优先权的进程。

四、实时调度

1、在实时系统中,系统处理能力必须要强。假定系统中有m个周期性的硬实时任务,它们的处理时间可表示为Ci,周期时间表示为Pi,则在单处理机情况下,必须满足下面的限制条件:C1/P1+C2/P2+...+Cm/Pm<=1系统才是可调度的。例如系统中有6个硬实时任务,它们的周期时间都是50ms,而每次的处理时间为10ms,则不难算出,此时系统是不可调度的。

2、实时调度算法的分类

1)非抢占式调度算法

①非抢占式轮转调度算法

②非抢占式优先调度算法

2)抢占式调度算法

①基于时钟中断的抢占式优先权调度算法

②立即抢占的优先权调度算法

3)最早截止时间优先即EDF算法

4)最低松弛度优先即LLF算法

时间: 2024-10-21 21:04:08

处理器(CPU)调度问题的相关文章

计算机组成.就是它在运算.处理器CPU

处理器是要好好复习了,毕竟考试重点 主要的内容感觉还是在指令方面,包括指令的格式.指令集的设计.指令流水线.指令级并行. 东西慢慢整理吧,如果一边在网上搜索的估计会找到很多资料,但是耗费的时间太多了 国内的教材虽然有一定的局限性,但是tm的要考试啊 我觉得需要考试的人不止我一个,,,,,, 处理器的组成与功能 先给一张处理器的概念图,未必很严谨,而且各种处理器的实现方式也不尽相同,但基本的原理其实都在图里可以体现 组成 大规模集成电路技术的发展,使得芯片的密集程度越来越高,处理器内部的各个结构甚

处理器CPU概念及CPU多线程

1 socket, core, thread (1)socket就是主板上插cpu的槽的数目,也即管理员说的"路" 芯片厂商会把一个或多个Core封装在一个chip上,称作Socket(插槽).假设一个插槽有两个Core,主板上插2个插槽,就是4核系统. (2)core就是我们平时说的"核",即双核,4核等.单核(single-core)和多核(multi-core)也称作uniprocessor和multiprocessor (3)thread就是每个core的硬

CPU纯软件全虚拟化技术

我们在前面的文章中提到了虚拟化技术的大致分类情况,即分为全虚拟化.半虚拟化和硬件辅助虚拟化技术3大类别.而我们虚拟化技术最主要的虚拟主体就是我们的硬件CPU.内存和IO,那么我们的CPU在全虚拟化模式下如何工作?在半虚拟化下如何工作?在硬件辅助虚拟化模式下如何工作?或着说细分下来,我们又可以分为CPU的全虚拟化技术.半虚拟化技术和硬件辅助虚拟化技术,内存的全虚拟化技术.半虚拟化技术和硬件辅助虚拟化技术以及IO设备的全虚拟化技术.半虚拟化技术和硬件辅助虚拟化技术.本次我们就来说说CPU的全虚拟化技

计算机常识——CPU、服务器

CPU:计算机中控制数据操控的电路 (central processing unit )另称为中央处理器.处理器 CPU的构成: 1) 算术/逻辑单元 它包含在数据上执行运算的电路 2) 控制单元 它包含协调机器活动的电路 3)寄存器单元 它包含称为寄存器的数据存储单元(与主存单元相似),用作CPU内部的信息临时存储:包含通用寄存器及专用寄存器两种 举例展示CPU的用作: 两个数据的加法: 1)从主存储器中取出一个要加的值放入寄存器中(涉及控制单元.寄存器单元) 2)从主存储器中取出另一个要加的

ARM、Intel、MIPS处理器啥区别?看完全懂了【转】

转自:http://news.mydrivers.com/1/472/472317.htm 安卓支持三类处理器(CPU):ARM.Intel和MIPS.ARM无疑被使用得最为广泛.Intel因为普及于台式机和服务器而被人们所熟知,然而对移动行业影响力相对较小.MIPS在32位和64位嵌入式领域中历史悠久,获得了不少的成功,可目前Android的采用率在三者中最低. 总之,ARM现在是赢家而Intel是ARM的最强对手.那么ARM处理器和Intel处理器到底有何区别?为什么ARM如此受欢迎?你的智

[py]你真的了解多核处理器吗? 了解多线程

你真的了解多核处理器吗? 1.双核≠双性能 多核不一定会使你的手机或电脑速度更快,但它将提高你的PC的整体性能,这是一个有所不同的细微的技术特色.多核处理器的性能提升并不是简单CPU核心的倍数,因为受到两(多)个核之间共享资源的拖累.比如双核性能只是单核的1.4-1.8倍,实际情况取决于具体的应用. 一个核拼命干活,拼命转啊转啊,其他核在看,最后温度不断上升然后蓝屏了.... 上图是个笑话,不过你可以用任务管理器可以看到并不是每个核的负载时均匀分配的. 这是为什么一个核转啊转啊,最后蓝屏的原因.

Linux环境下Java应用性能分析定位-CPU使用篇

1     CPU热点分析定位背景 CPU资源还是很昂贵的,为了深刻感受到这种昂贵,间下图当前CPU的资源售价: 所以对于程序猿们来说,需要让程序合理高效的使用CPU资源.利用有限的CPU资源来解决完成我们面对的实际问题,这就是为什么我们要尽可能优化程序. 不篇从微观层面展开介绍说明,不做宏观层面的介绍(譬如数据中心级容量监控,管理调度(OpenStack,Kubernates等)以及迁移(手动,自动,冷迁,热迁)). 本篇将以倒推式方法组织目录结构.出现了问题怎么办,以及为什么要这样做,以及后

MT6753芯片资料MT6753处理器资料

为超级中端市场而设的 64 位强劲处理效能,支持 LTE联发科技 MT6753 64 位八核心 WorldMode 4G LTE 平台是以 ARM? Cortex?-A53 64 位处理器及 ARM Mali?-T720 打造,专门针对超级中端市场而研发,提供卓越的移动使用体验,并为消费者带来更多价格适中的智能手机选择. MT6753 支持整合式 WorldMode 4G LTE 及 CDMA2000 3G,让您在全球每个角落也可享受高速移动网络连接,而双频 802.11n Wi-Fi 及蓝牙

KVM虚拟化技术(二)KVM介绍

KVM:Kernel Virtual Machine KVM是基于虚拟化扩展的x86硬件,是Linux完全原生的全虚拟化解决方案.部分半虚拟化支持,主要是通过半虚拟网络驱动程序的形式用于Linux和Windows客户机系统的. KVM被设计为是一个内核模块,支持广泛的客户机操作系统:在KVM架构中,虚拟机实现为常规的Linux进程.这使KVM能够享受Linux内核的所有功能. KVM模块是KVM虚拟机的核心部分.其主要功能是初始化CPU硬件,打开虚拟化模式,然后将虚拟机客户机运行在虚拟机模式下,

001day--计算机基础知识

一.硬件介绍: 由一条总线把CPU.内存和I/O设备串联起来并与其他设备进行通信.CPU负责运算,内存用于储存临时变量,硬盘用于储存数据. 1.1处理器CPU 从内存中读取指令--解码为二进制语言--执行指令,重复执行前面三个步骤直到程序结束. 寄存器--CPU的一部分,用于缓存一些比较重要待解决的指令. 第一类.通用寄存器:用来保存变量和临时结果. 第二类.程序计数器:它保存了将要取出的下一条指令的内存地址.在指令取出后,程序计算器就被更新以便执行后期的指令. 第三类.堆栈指针寄存器:它指向内