因为处理器是最重要的计算机资源,提高利用率并提高系统性能的处理器(吞吐量、响应时间)。于处理机调度性能的好坏,因而,处理机调度便成为操作系统设计的中心问题之中的一个。

一、处理机调度的层次

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算法

版权声明:本文博客原创文章,博客,未经同意,不得转载。

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

  1. 笔记本电脑处理器(CPU)性能排行榜

    笔记本电脑处理器(CPU)性能排行榜 本排行榜随新款处理器(CPU)的发布而随时更新.更新日期:2012年7月15日   排名 型号 二级+三级缓存 前端总线(MHz) 功率(瓦) 主频(MHz) 核 ...

  2. 读取树莓派4B处理器(CPU)的实时温度

    读取树莓派4B处理器(CPU)的实时温度 树莓派发布4B后,性能提升了不少,但是温度也是高的不行,所以最好配置一个小风扇和散热片还是比较好的 俩种办法都可以实现 1.Shell命令读取 打开终端 cd ...

  3. 处理器CPU天梯图,显卡天梯图(性能排名图)

    自己网上找的几个图,仅供参考,买电脑可以看看了~

  4. 编程之美 1.1 让cpu占用率曲线听你指挥(多核处理器)

    [目录] 不考虑其他进程,cpu画正弦曲线 获取总体cpu利用率 获取多核处理器单个cpu利用率 考虑其他进程,cpu画正弦曲线 下面的程序针对多核处理器,可以设置让任何一个cpu显示相应的曲线(本文 ...

  5. 让cpu占用率曲线听你指挥(多核处理器)

    编程之美 1.1 让cpu占用率曲线听你指挥(多核处理器) [版权声明]转载请注明出处 http://www.cnblogs.com/TenosDoIt/p/3242910.html  [目录] 不考 ...

  6. CPU纯软件全虚拟化技术

    我们在前面的文章中提到了虚拟化技术的大致分类情况,即分为全虚拟化.半虚拟化和硬件辅助虚拟化3大类.而我们虚拟化技术最主要的虚拟主体就是我们的硬件CPU.内存和IO,那么我们的CPU在全虚拟化模式下如何 ...

  7. [OS] CPU调度

    调度准则 为了比较CPU调度算法,分析员提供了许多准则,用于比较的特征对确定最佳算法有很大影响.这些准则包括: ·CPU使用率:需要使CPU尽可能忙. ·吞吐量:一个时间单元内完成进程的数量. ·周转 ...

  8. ARM、Intel、MIPS处理器啥区别?看完全懂了

    安卓支持三类处理器(CPU):ARM.Intel和MIPS.ARM无疑被使用得最为广泛.Intel因为普及于台式机和服务器而被人们所熟知,然而对移动行业影响力相对较小.MIPS在32位和64位嵌入式领 ...

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

    转自:http://news.mydrivers.com/1/472/472317.htm 安卓支持三类处理器(CPU):ARM.Intel和MIPS.ARM无疑被使用得最为广泛.Intel因为普及于 ...

  10. Delphi 10.3版本获取windows系统版本和CPU信息

    procedure TForm1.Button1Click(Sender: TObject); var mm:TRegistry; cpu:string; begin mm:=TRegistry.Cr ...

随机推荐

  1. SQL中IN,NOT IN,EXISTS,NOT EXISTS的用法和差别

    SQL中IN,NOT IN,EXISTS,NOT EXISTS的用法和差别: IN:确定给定的值是否与子查询或列表中的值相匹配. IN 关键字使您得以选择与列表中的任意一个值匹配的行. 当要获得居住在 ...

  2. [Java][Android][Process] 分享 Process 运行命令行封装类型

    我在以前的文章中提到,使用Java不会有一个问题,创建运行命令来创建太多进程后创建进程行语句. [Android] ProcessBuilder与Runtime.getRuntime().exec分别 ...

  3. 90社交网络的行为报告后:不拒绝陌生人,TFBOYS作为一个喜爱

    依据腾讯QQ与易观合作的<2014中国90后青年调查报告>,盘点了90后使用社交网络的行为习惯. 相比于70.80后.90后更愿意在社交媒体上公布自己照片.状态,且更愿意在即时通讯中加陌生 ...

  4. c#-RTF文本编辑器

    1".RTF"什么? 多信息文本格式 (RTF) 是一种方便于不同的设备.系统查看的文本和图形文档格式. RTF 使用美国国内标准协会 (ANSI). PC-8. Macintos ...

  5. .NET应用架构设计—再次了解分层架构(现代企业应用分层架构核心设计元素)

    阅读文件夹: 1.背景介绍 2.简要回想下传统三层架构 3.企业级应用分层架构(现代分层架构的基本演变过程) 3.1.服务层中应用契约式设计来解决动态条件不匹配错误(通过契约式设计模式来将问题在线下暴 ...

  6. python字典构造函数dict(mapping)解析

    Python字典的构造函数有三个,dict().dict(**args).dict(mapping),当中第一个.第二个构造函数比較好理解也比較easy使用, 而dict(mapping)这个构造函数 ...

  7. 解决IE下Ajax请求无效

    在做web开发是,大多时候都会使用FireFox作为调试的浏览器.上面携带的FireBug用来调试JavaScript实在是太方便了,绝大多数的问题都能够通过它跟踪调试出来.但是,当项目发布时,不能仅 ...

  8. linux编curlDLL库so

    转载请注明出处:帘卷西风的专栏(http://blog.csdn.net/ljxfblog) curl库是一个非常强大的http开源库.c++里面可以非常方便的和httpserver交互. 近期项目開 ...

  9. CodeForces 441 A. Valera and Antique Items

    纯粹练JAVA.... A. Valera and Antique Items time limit per test 1 second memory limit per test 256 megab ...

  10. ssis package 在调试状态中设置断点,程序 不进入断点 的解决方案

    原文:ssis package 在调试状态中设置断点,程序 不进入断点 的解决方案 针对 SSIS intergation 项目 > 属性 > Debug >Run64bITRunt ...