计算机操作系统产生的先后顺序,任务调度优先级
优先级是指计算机操作系统给任务指定的优先等级。它决定任务在使用资源时的优先次序。②给设备指定的优先等级。它决定设备在提出中断请求时,得到处理机响应的先后次序。任务调度优先级主要是指任务被调度运行时的优先级,主要与任务本身的优先级和调度算法有关。特别在实时系统中,任务调度优先级反应了一个任务重要性与紧迫性。
中文名
任务调度优先级
外文名
task scheduling priority
学 科
计算机科学定 义
任务被调度运行时的优先级
有关术语
优先级、任务调度算法
领 域
操作系统
任务调度优先级任务调度
编辑
语音
任务调度是操作系统的重要组成部分,而对于实时操作系统,任务调度直接影响其实时性能。任务调度方式常规可分为:可打断调度(实时系统基本功能):关键防止优先级倒置;不可打断调度:先来先服务,不可中断。任务调度优先级即操作系统赋予任务的优先数,用于决定任务调度的先后顺序。任务调度优先级不仅与任务调度方式有关,还有与优先级的类型和调度算法有关。
任务调度优先级优先级的类型
编辑
语音
每个进程都有相应的优先级,优先级决定它何时运行和接收多少 CPU 时间。Windows的优先级共 32 级,是从 0 到 31 的数值,称为基本优先级别(Base Priority Level)。系统按照不同的优先级调度进程的运行,0-15 级是普通优先级,进程的优先级可以动态变化,高优先级进程优先运行,只有高优先级进程不运行时,才调度低优先级进程运行,优先级相同的进程按照时间片轮流运行。16-31 级是实时优先级,实时优先级与普通优先级的最大区别在于相同优先级进程的运行不按照时间片轮转,而是先运行的进程就先控制 CPU,如果它不主动放弃控制,同级或低优先级的进程就无法运行。Linux系统的优先级从0-140,0-99表示实时进程,100-140表示非实时进程,与Windows相反,Linux优先级值越小,意味着级别越高,任务优先被内核调度。
静态优先级
静态优先权是在创建进程时确定的,且在进程的整个运行期间保持不变。一般地,优先权是利用某一范围内的一个整数来表示的,例如,0~7 或 0~255 中的某一整数,又把该整数称为优先数,只是具体用法各异:有的系统用“0”表示最高优先权,当数值愈大时,其优先权愈低;而有的系统恰恰相反。确定进程优先权的依据有如下三个方面:
(1)进程类型。通常,系统进程(如接收进程、对换进程、磁盘 I/O 进程)的优先权高于一般用户进程的优先权。
(2)进程对资源的需求。如进程的估计执行时间及内存需要量的多少,对这些要求少的进程应赋予较高的优先权。
(3) 用户要求。这是由用户进程的紧迫程度及用户所付费用的多少来确定优先权的。静态优先权法简单易行,系统开销小,但不够精确,很可能出现优先权低的作业(进程)长期没有被调度的情况。因此,仅在要求不高的系统中才使用静态优先权。
动态优先级
动态优先权是指在创建进程时所赋予的优先权,是可以随进程的推进或随其等待时间的增加而改变的,以便获得更好的调度性能。例如,我们可以规定,在就绪队列中的进程,随其等待时间的增长,其优先权以速率 a 提高。若所有的进程都具有相同的优先权初值,则显然是最先进入就绪队列的进程将因其动态优先权变得最高而优先获得处理机,此即FCFS 算法。若所有的就绪进程具有各不相同的优先权初值,那么,对于优先权初值低的进程,在等待了足够的时间后,其优先权便可能升为最高,从而可以获得处理机。当采用抢占式优先权调度算法时,如果再规定当前进程的优先权以速率 b 下降,则可防止一个长作业长期地垄断处理机。[1]
任务调度优先级任务调度算法
编辑
语音
任务调度算法可分为:
事件驱动调度算法:根据事件的先后以及任务的优先级安排任务的执行。如先来先服务调度算法。
时钟驱动调度算法:一般用于周期任务。如基于时间片的轮转调度算法,多级反馈队列调度算法。
事件驱动调度:依赖外部硬件设备,通过产生中断方式为任务调度提供信号。分两种,集成事件驱动调度:中断的优先级与任务的优先级相对应,中断只有在其优先级高于正在执行的任务时才会被处理器响应。 非集成事件驱动调度:任务通过外部中断启动,中断优先级与相关任务优先级没有关系。
一种基于调度粒度的任务优先级计算方法
背景
近些年来,多核处理器快速发展的同时,也给任务调度带来了新的挑战,如何利用 高效的任务调度策略使多核处理器系统充分发挥其性能,已经是我们必须要解决的问题。 动态任务调度可以根据运行时情况动态地将任务分配到各个内核上,由于需要实时地收 集、存储并分析状态信息,动态调度的实施有一定的系统开销,但这种开销和付出通常是有 回报的。
比较经典的调度算法有Min-Min、Max-Min、MCT(Minimum Completion Time)、 MET(Minimum Execution Time)等算法。Min-Min算法实现简单,执行时间较快。算法的思想是比较所有待调度的任务,优先选取最早完成时间最小的一个任务进行调度。缺点是如果任务集中存在过多执行时间比较小的任务,那么时间比较大的任务将无法得到及时执行。Max-Min算法类似于Min-Min算法,不同的是Max-Min算法首先调度最早完成时间最大的任务。缺点是完成时间较小的任务等待时间过长,影响执行效率,也可能造成负载不均衡。
步骤
将任务分配到最合适的处理器内核上是任务调度的核心问题,而任务优先级计算是任务分配的关键,任务优先级表明任务被优先调度的程度,因此本发明方法在计算任务 优先级时引入调度粒度,用来决定调度过程分配的任务数量,进而决定调度频度。
(1)确定任务优先级
计算任务相对于一个确定内核的优先级Tipk,取所有内核上的最大值作为任务优 先级Tip:
m为内核数量,Tipk表示任务Ti相对于内核Pk的优先级;
(2)设定调度粒度
在计算任务1\相对于一个处理器内核P的任务优先级时,设定调度粒度,其中处 理器内核P的调度粒度定义为一次调度过程中为处理器内核P分配的任务数量,一次调度 过程是指一个处理器内核请求调度;调度算法为其分配任务的过程中,调度的任务数量等 于为每个处理器内核分配的任务数量之和,调度粒度为:
Ik=l*spkm-1
其中Ip表示处理器内核P的调度粒度,1表示粒度因子,spp表示处理器内核P的 处理速度;
(3)任务优先级计算细化
计算一个任务在所有处理器内核上的任务优先级Tip及任务等待时间和任务间通 信开销因素:
其中PW1代表任务Ti的等待时间,PC1P代表平均通信开销,Ip代表内核P的调度粒 度,Cip表示任务Ti的通信开销;t表示当前时间,Tlt表示任务就绪时间。
任务调度优先级总结
编辑
语音
本发明方法首先计算一个 任务在所有处理器内核上的任务优先级,然后取其在所有处理器内核上任务优先级的最大 值作为该任务的优先级,在任务调度时优先调度任务优先级大的任务。在计算任务相对于 一个确定处理器内核的任务优先级时,综合考虑任务等待时间、任务间通信开销和调度粒度因素,其中任务等待时间因素可避免存在就绪任务长时间不被调度的现象;同时计算任务间的平均通信开销,可以将通信开销大的任务分配到相应的处理器内核上,以节省更多 的任务间通信开销;同样调度粒度通过粒度因子和处理器内核的处理速度来调节大小,对 于一个实际的处理器系统,处理器内核速度是确定的已知量,其中粒度大小要根据系统模 型而定,它起到将处理器内核的计算速度转换为处理器内核的调度任务数量的作用,结合 三种因素计算任务优先级可充分发挥任务调度优势,提高处理器效率,从而降低调度频率, 减少调度消耗时间。[2]
参考资料
1.
汤小丹.计算机操作系统:西安电子科技大学出版社,2010
2.
一种基于调度粒度的任务优先级计算方法
.patents[引用日期2017-06-18]
计算机操作系统产生的先后顺序,任务调度优先级相关推荐
- 计算机操作系统寻址,计算机操作系统-寻址和字节顺序
基本上在所有的机器上,多字节对象都被存储为连续的字节序列,对象的地址为所使用字节中最小的地址.假设一个int 变量x的地址为0x100,那么(假设int 为32位表示)x的4个字节被存储在内存 0x1 ...
- 计算机操作系统原理复习笔记——考试版
计算机操作系统 文章目录 计算机操作系统 第一章 绪论 1.1 操作系统与计算机体系结构的关系 1.2 操作系统的形成与发展 1.3 操作系统的定义 1.4 操作系统的资源管理功能 1.5 操作系统的 ...
- 计算机操作系统(笔记)
计算机操作系统 可参考Jennica的文章:http://jennica.space/2017/03/21/os-principle/ 常用指令介绍 答:(1)授权指令chmod chmod [who ...
- 计算机操作系统课设总结,计算机操作系统课程设计
<计算机操作系统课程设计>由会员分享,可在线阅读,更多相关<计算机操作系统课程设计(36页珍藏版)>请在人人文库网上搜索. 1.操作系统课程设计实验报告姓 名: 李文孝 班 级 ...
- 面试「计算机操作系统」知识点大集合!
作者:CyC2018 链接:https://github.com/CyC2018/CS-Notes/blob/master/docs/notes/计算机操作系统.md 一.概述 基本特征 1. 并发 ...
- 计算机操作系统还能这样玩?这一篇计算机操作系统的总结为你保驾护航(零风险、高质量、万字长文、建议收藏)
操作系统目录 1.什么是操作系统 2.计算机操作系统的基本特征 2.1.并发 2.2.共享 2.3.虚拟 2.4.异步 3.操作系统的发展 4.OS的运行机制和体系结构 4.1.运行机制 4.1.1. ...
- 简单计算机面试题库及答案_460道Java后端面试高频题答案版【模块六:计算机操作系统】...
写在前面 1. 计算机操作系统和计算机网络是每个后端开发工程师必须掌握的知识.因为你写的代码最终都是要在操作系统里跑的,弄懂操作系统的原理对你编写高质量代码.调优.排故都有很大的帮助.在这里说一下我作 ...
- 计算机操作系统——死锁(产生的必要条件与处理死锁的四个关卡)
计算机操作系统--死锁 前言:死锁:指多个进程因竞争共享资源而造成的一种僵局,若无外力作用,这些进程都将永远不能再向前推进.如果死锁发生,会浪费大量的系统资源,甚至会导致系统崩溃. 关于死锁的结论: ...
- 计算机操作系统——处理机调度算法
计算机操作系统--处理机调度算法 一.处理机调度的层次和调度算法的目标 1.处理及调度的层次 高级调度:(周期较长,大约几分钟一次) 又称为长程调度或作业调度 调度对象:作业 功能:根据算法决定将外存 ...
- 计算机操作系统超全详解
操作系统详解 一 为什么要有操作系统 (两本书:现代操作系统.操作系统原理,学好python以后再去研究吧~~) 现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网 ...
最新文章
- 图像边缘检测之拉普拉斯(Laplacian)C++实现
- Pwn环境配置(一)——安装虚拟机
- java 前言中不允许有内容_解析xml字符串时报“前言中不允许有内容”错误。
- 计算机英语小短文单词易懂,求计算机英语短文译文。。。。急急急!悬赏10
- 淡季没事情做,你们是怎么上完8个钟的
- 网络工程师专用linux,软考网络工程师考点精讲之Linux系统
- IDEA导入jar包之后引用不了
- dell服务器硬件参数提升速度,DELL R620服务器配置
- python均线斜率_一根20日均线闯天下? ——量化回测“压箱底指标”
- innodb_io_capacity、innodb_io_capacity_max 的影响
- php获取微信uninoid_PHP微信小程序之获取并解密用户数据获取openId和unionId,,小程序登陆...
- Android读书笔记(一)
- nyoj1238 最少换乘 最短路
- 扬州旅游app(五)
- 关于眼镜保护的几点做法
- npm安装报错解决合集(一)
- MySQL必知必会pdf网盘下载+每章总结
- linux第二块sata硬盘叫什么意思,在Linux系统中,第二块SATA硬盘中的第2个逻辑分区应该表示为()...
- Vue 新手入门项目 在线翻译
- AVR单片机熔丝位设置