“式按优先级调度的算法”的基本思想?

 上传我的文档
 下载
 收藏
该文档贡献者很忙,什么也没留下。
 下载此文档
正在努力加载中...
最高优先数算法基本思想
下载积分:800
内容提示:最高优先数算法基本思想
文档格式:DOC|
浏览次数:35|
上传日期: 00:50:52|
文档星级:
该用户还上传了这些文档
最高优先数算法基本思想
官方公共微信6902人阅读
操作系统及嵌入式开发(33)
&&&&&&& 对于有一定操作系统基础的朋友看到&抢占式&调度一定不会陌生吧。&我参考了Linux内核、eCos以及Windows内核对于抢占式调度的处理,感觉虽然细节上有点差别,但都挺有意思。
&&&&&&& 这里,我想谈谈关于抢占式调度的一些看法。在很多操作系统书上基本上都这么谈基于优先级的抢占式调度:
(1) 每个任务赋予唯一的一个优先级(有些操作系统可以动态地改变任务的优先级);
(2) 假如有几个任务同时处于就绪状态,优先级最高的那个将被运行;
(3) 只要有一个优先级更高的任务就绪,它就可以中断当前优先级较低的任务的执行;
&&&&&&& 当时我在学习操作系统时就在想了,当一个优先级更高的任务到来时CPU如何才能知道,并且调用调度例程呢?后来随着学习的深入,知道了计算机中的中断事件。CPU可以捕获一个中断事件,只要事先对该事件的中断源进行过关联。那样的话就可以在中断事件结束后给CPU&发送信号&,表示该事件对应于激活一个任务,要求CPU做出任务调度。那么CPU在进行任务调度时就会检查当前任务的优先级和就绪队列中的任务优先级进行比较,选出优先级最大的开始运行。
&&&&&&& 以上过程说起来容易,但是做起来也是有些麻烦的。这里必须注意一些细节问题,比如说在哪些情况下应该禁止调度,哪些情况下需要关开中断等等。另外还有一个比较重要的问题就是中断处理例程如何&发送信号&&通知&CPU。这里有很多种方法。比如,在处理完中断服务例程之后,可以jump到或call线程调度例程。不过这样做有一个缺陷,也就是如果该中断优先级较高的话,那么中断处理时间就会变得非常长,而会显得系统反应一下子变慢,因此这个方式适合于低中断优先级的处理例程。Linux中有种做法是将调度例程的首地址压入用户栈空间,这样的话当中断处理例程返回后就会转入调度例程。这是个不错的手段。
&&&&&&& 而微软它有一个任务优先级将PREEMPTIVE_LEVEL,这个比PASSIVE_LEVEL的优先级要高一个档次。那么在我自己的系统当中我的处理方法与Linux的差不多,但是为了要保证调度例程的一定的优先级,因此不让它在常规模式下处理,而是放在优先级次第的14号中断(软件中断1)中进行(这里将针对本人目前研究的Blackfin DSP处理器构架)。也就是说,在一个外部中断事件结束后,使用raise 14命令,通过CPU触发核心中断14,由于外部事件的优先级均大于14,因此外部事件中断处理可以安然返回,而当它们一旦返回就会进入14号中断处理。
&&&&&&& 采用以上这种方法的话,如果中断14就处理任务调度,则没什么大问题,否则的话如果还有一些事情要做(根据参数选择不同的处理),那么也要安排好事件通知信号。比如一个高优先级的中断选择做其他的一些14号中断处理,而另外一些外部中断中断事件选择做另一些14号中断的处理,而还有的则想进行任务切换,那么这个时候14号中断就要利用一些队列等结构来存储这些事件消息。
&&&&&&& 在插入调用或跳入任务调度例程的地方称为一个查看点。对于一个基于优先级抢占式调度的操作系统会有较多的察看点,以上是对于中断处理中的察看点的讨论。
&&&&&&& 大家如果还有什么好的基于优先级调度的方法可以回帖,谢谢。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:286848次
积分:4450
积分:4450
排名:第4946名
原创:100篇
译文:22篇
评论:218条
(2)(7)(2)(1)(1)(1)(3)(8)(14)(7)(11)(4)(2)(1)(7)(4)(6)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(1)(2)(2)(1)(2)(3)(1)(1)(5)(15)您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
第3章教材习题解答.doc5页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
文档加载中...广告还剩秒
需要金币:150 &&
第3章教材习题解答
你可能关注的文档:
··········
··········
第3章 处理机调度
“练习与思考”解答
作业调度进程调度调度就是选出待分派的作业或进程。作业调度是根据一定的算法,从输入的一批作业中选出若干个作业,分配必要的资源,如内存、外设等,为它建立相应的用户作业进程和为其服务的系统进程(如输入、输出进程),最后把它们的程序和数据调入内存,等待进程调度程序对其执行调度,并在作业完成后作善后处理工作。进程调度是根据一定的算法将CPU分派给就绪队列中的一个进程。
单位时间内CPU完成作业的数量。周转时间从作业提交到作业完成的时间间隔带权周转时间周转时间实际运行时间中断是指CPU对系统发生的某个事件做出的一种反应,它使CPU暂停正在执行的程序,保留现场后自动执行相应的处理程序,处理该事件后,如被中断进程的优先级最高,则返回断点继续执行被“打断”的程序。基本原理和技术
处理机调度的主要目的是什么?
高级调度与低级调度的主要功能是什么?为什么要引入中级调度?
低级调度的主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。
为了使内存中同时存放的进程数目不至于太多,有时就需要把某些进程从内存中移到外存上,以减少多道程序的数目,为此设立了中级调度。
作业在其存在过程中分为哪四种状态?
在操作系统中,引起进程调度的主要因素有哪些?
作业调度与进程调度二者间如何协调工作?作业调度和进程调度是CPU主要的两级调度。作业调度是宏观调度,它所选择的作业只是具有获得处理机的资格,但尚未占有处理机,不能立即在其上实际运行。而进程调度是微观调度,它根据一定的算法,动态地把处理机实际地分配给所选择的进程,使之真正活动起来。
正在加载中,请稍后...抢占式的优先级调度,最全面的抢占式的优先级调度文章 - 电子工程世界网
抢占式的优先级调度
在电子工程世界为您找到如下关于“抢占式的优先级调度”的新闻
抢占式的优先级调度资料下载
打断,前后台相互配合来完成零件的加工任务。前后台程序运行关系图&前后台型结构模式的特点任务调度机制: 优先抢占调度和循环调度。前台程序的调度是优先抢占式的;前台和后台程序内部各子任务采用的是顺序调度。信息交换:缓冲区。前台和后台程序之间以及内部各子任务之间的。实时性差。在前台和后台程序内无优先级等级、 也无抢占机制。& 该结构仅适用于控制功能较简单的系统。早期的CNC系统大都...
嵌入式操作系统中的抢占式调度策略嵌入式操作系统中的抢占式调度策略
摘要绝大多数嵌入式操作系统采用抢占式的调度方式。本文主要讲述采用抢占式方式进行任务调度的嵌入式操作系统的调度策略和原理。
关键词 抢占式 多任务 中断
  通过逐行阅读顺序程序的源代码,不难说出程序会向处理器提出什么样的特定操作,并且也能说出这些操作的顺序。实际上,如果能够知道对一个顺序...
、QNX、LynxOS、VRTX,、WindowsCE等。这些为数众多的RTOS绝大多数都是多任务实时微内核的结构,采用的是基于优先级的可抢占式调度策略。系统为每一个任务分配一个优先权,调度程序保证当前运行的进程是优先权最高的进程。但是,有时候会出现一种比较奇怪的现象:由于多进程共享资源,具有最高优先权的进程被低优先级进程阻塞,反而使具有中优先级的进程先于高优先级的进程执行,导致系统的崩溃。这就是所谓...
抢占式的优先级调度,可以动态演示其过程!...
转换、任务队列)o 任务调度(调度算法的性能指标、可抢占调度、不可抢占调度、先来先服务、短作业优先算法、时间片轮转算法、优先级算法)o 实时系统及任务调度(RMS、EDF算法)o 任务间通信(共享内存、消息、管道、信号)o 同步与互斥(竞争条件、临界区、互斥、信号量、死锁) 3.2.3存储管理o Flat存储管理方式o 分区存储管理(固定分区、可变分区)o 地址重定位(逻辑地址、物理地址、地址映射...
这是一款由国内RT-Thread工作室开发的开源实时操作系统,目前针对STM32F103VB发布了最新的0.3.0 beta2版本,新增支持多串口驱动(中断读,DMA读写)。RT-Thread/STM32F103VB 0.3.0 beta2代码见附件中。RT-Thread与ucos相比较:任务管理及调度:RT-Thread 32/256可选优先级抢占式调度,线程数不限,相同优先级线程时间片轮转...
自主研发一个嵌入式操作系统内核SolCS,其内核主要包括任务管理、中断管理、内存管理、同步与通信管理、时间管理、I/O管理等功能模块。通过对其总体架构的分析与设计,在任务管理方面实现了基于优先级的抢占式任务调度和分时间轮转调度,同时采用信号量机制来实现对临界资源的互斥访问以及利用优先级继承协议来解决优先级逆转的问题,在涉及任务的中断管理方面也作了改进,以此来增强其实时能力,使其可以提高嵌入式应用...
os_cfg.c中被创建,客户用的动态线程通过调用SCI_CreateAppThread() 来创建。通过SCI_TerminateThread()和SCI_DeleteThread()将动态线程删除。
线程的优先级 线程的优先级范围从高到低是0-31 线程间的通信 通过Message Queue和Event机制来实现线程间的通信和同步。
线程的调度 线程调度策略是抢占式,基于优先级的调度方式。线程之间...
详细说明:超级好的vxworks入门实验课:一共9个pdf文件,每个都是精华,我是下载了9次才搞定,绝对超值,初学者很有必要看看。
1.学习使用Tornado 开发环境;测量程序的执行时间
2. 学习创建多个任务
3. 学习使用信号量实现共享资源的保护
4. 学习使用消息队列进行通信
5. 学习并验证时间片轮转调度
6. 学习并验证基于优先级的抢占式调度
7. 理解优先级...
超级好的vxworks入门实验课:一共9个pdf文件,每个都是精华,我是下载了9次才搞定,绝对超值,初学者很有必要看看。目录:1.学习使用Tornado 开发环境;测量程序的执行时间2. 学习创建多个任务3. 学习使用信号量实现共享资源的保护4. 学习使用消息队列进行通信5. 学习并验证时间片轮转调度6. 学习并验证基于优先级的抢占式调度7. 理解优先级倒转问题 学习使用优先级继承以解决优先级...
抢占式的优先级调度相关帖子
被执行的时间。鉴于FreeRTOS是一个多任务可抢占式系统,这个问题需要在多种情况下分析。Case 1 :
单任务,即系统里仅有timertask和idle task。整个系统最高优先级为4,Timer task的优先级为默认优先级2。在这种环境下,回调函数能精确的以1秒的时长超时执行回调函数。虽然此刻精度能满足要求,但是实际的系统一般会包含多个task。以下为测试的日志,显而易见,该定时器严格...
测量被执行的时间。鉴于FreeRTOS是一个多任务可抢占式系统,这个问题需要在多种情况下分析。Case 1 :
单任务,即系统里仅有timertask和idle task。整个系统最高优先级为4,Timer task的优先级为默认优先级2。在这种环境下,回调函数能精确的以1秒的时长超时执行回调函数。虽然此刻精度能满足要求,但是实际的系统一般会包含多个task。以下为测试的日志,显而易见,该定时器...
被执行的时间。鉴于FreeRTOS是一个多任务可抢占式系统,这个问题需要在多种情况下分析。Case 1 :
单任务,即系统里仅有timertask和idle task。整个系统最高优先级为4,Timer task的优先级为默认优先级2。在这种环境下,回调函数能精确的以1秒的时长超时执行回调函数。虽然此刻精度能满足要求,但是实际的系统一般会包含多个task。以下为测试的日志,显而易见,该定时器严格...
函数执行完成之后有没有涉及到任务的切换,如果没有切换任务的话,那就A函数先于B函数执行
RTX是抢占式的操作系统内核,支持round robin时间片轮转调度,如果task1的优先级大于task2的话,肯定是FunA先执行,否则在发送信号量之后会立即执行task2的。依你的意思task2的优先级是大于等于task1的,否则就算task1发送了信号量task2也是不会执行的,所以你可以吧task2的...
;&文档管理等。
MQX与linux相比,内核精简、实时性高、效率高,更适于医疗电子、工业控制等领域。与ucos相比,大小接近,但MQX维护团队更强大,提供了众多驱动。
& &TROCHILI是一个开源的、高度可移植的R丁OS,采用C语言开发,可移植性非常好,支持多任务、多优先级、抢占式调度。对硬件的要求极低,适用于存储器资源受限的嵌入式单片机系统,典型的配置下...
](3) CPU能支持最多4个超前的预加载指令,然而明确的加载/保存指令有较高的优先级;[/align][align=left](4) Cortex-A9 加载/保存单元支持预测的数据预加载,用于监视程序顺序的访问,在请求开始前开始加载下一个期望的行,使用cp15辅助控制寄存器(DP位),使能这个特性,在分配前可以不使用这个预取行,预加载指令有较高的优先级;[/align][align=left...
; & 1.Cortex-M系列内核不会关中断
& & 2.基于优先级的时间片轮转调度算法,共7个优先级(实时, 高, 高于正常, 正常, 低于正常, 低, 空闲)
& & 3.互斥量与信号量支持优先级抢占与优先级变更,(不支持优先级继承)
& & 4.互斥量支持嵌套与递归(递归函数使用互斥量)
实验一、任务创建与删除
本节我们主要介绍的是uC/OS-II及其任务创建与删除。1、uC/OS-II介绍
对于操作系统的学习,创建任务和删除任务是最为基础的工作,uC/OS-II以源代码的形式发布,是开源软件, 但并不意味着它是免费软件。可以将其用于教学和私下研究;但是如果将其用于商业用途,那么必须通过Micrium获得商用许可。uC/OS-II属于抢占式内核,最多可以支持64个...
。·& && & 任务/线程调度
支持以线程为基本调度单位的多任务系统。调度算法是基于优先级的全抢占式线程调度,支持256个线程优先级(亦可配置成32个线程优先级),0优先级代表 最高优先级,255优先级留给空闲线程使用;相同优先级上支持多个线程,这些相同优先级的线程采用可设置时间片长度的时间片轮转调度;调度器寻找下一个最 高优先级就绪线程的时间是恒定的(O...
& && & 个人操作系统V0.3(Personal Operating System,缩写为POS)是一种小型的多任务嵌
入式操作系统,用于ARM 公司Cortex-M0 内核的微控制器。该系统设计简单,使用方便,
在一个人的能力范围之内即可完成修改和移植,其主要特性如下:
(1)最多支持255 个任务
(2)支持抢占式调度...
抢占式的优先级调度视频
抢占式的优先级调度创意
你可能感兴趣的标签
热门资源推荐这个帖子您觉得价值大吗?那就给朋友分享一下吧!
查看: 742|回复: 9
注册时间最后登录阅读权限10积分384精华0帖子
考研新战友, 积分 384, 距离下一级还需 -334 积分
进程在时刻0以1,2,3,4,5的顺序创建,优先级为2,3,7,1,5 数字越大优先级越高,采用非抢占式优先级调度算法,为什么运行顺序不是1,2,3,4,5呢 虽然是优先级调度 但创建时间不同 而且是非抢占的啊?
注册时间最后登录阅读权限10积分978精华0帖子
考研新战友, 积分 978, 距离下一级还需 -928 积分
优先级调度算法,优先级在哪?1,2,3,4,5?
注册时间最后登录阅读权限70积分1031精华0帖子
考研金牌战友, 积分 1031, 距离下一级还需 1969 积分
不是 我只是没写出来 2,3,7,1,5 数字越大优先级越高
注册时间最后登录阅读权限10积分0精华0帖子
考研新战友, 积分 0, 距离下一级还需 50 积分
这个还要看进程的执行时间的,比如第一个进程结束后,在已经等待的几个进程里选择优先级最高的
注册时间最后登录阅读权限10积分948精华0帖子
考研新战友, 积分 948, 距离下一级还需 -898 积分
在0时刻执行1,然后按优先级大小执行,13524。拙见!
注册时间最后登录阅读权限10积分1166精华0帖子
考研新战友, 积分 1166, 距离下一级还需 -1116 积分
非抢占就是说,如果1开始执行了,那么哪怕进来比1优先级高的,也不会抢占1的cpu时间,也就是1的执行时间不中断。
1执行完毕之后就要看其他等待进程的优先级高低选择执行了。
注册时间最后登录阅读权限10积分1036精华0帖子
考研新战友, 积分 1036, 距离下一级还需 -986 积分
题目只是说在时刻0,意思是并行创建,只是任务队列顺序是12345。t0时刻一次性拿了5只苹果过来,大小不一,乱序排列,t1时刻你来做出响应,每次抓取最大的。每个时刻只能有一个源操作。要么创建,要么响应。
注册时间最后登录阅读权限10积分976精华0帖子
考研新战友, 积分 976, 距离下一级还需 -926 积分
非抢占方式指的是要先让已经调度的进程执行完成,然后根据优先级调度等待的进程。在0时刻同时产生5个进程自然按照优先级顺序执行。如果你的问题是,从0时刻开始,没过一段时间产生一个进程,那么第一个进程先执行,然后根据第一进程结束的时候,确定已经产生的进程,再根据优先级选择调度。
注册时间最后登录阅读权限10积分894精华0帖子
考研新战友, 积分 894, 距离下一级还需 -844 积分
注册时间最后登录阅读权限10积分986精华0帖子
考研新战友, 积分 986, 距离下一级还需 -936 积分
第一个到来的肯定先执行,但是执行完后需要看有几个已经在队列了,这时应按优先级顺序排列
站长推荐 /1
推广考研论坛将获得大量积分,快点点开看看吧。
Powered by

我要回帖

更多关于 按优先级调度的算法 的文章

 

随机推荐