操作系统Chapter3分析.ppt

  1. 1、本文档共129页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
因此前台进程优先级高于后台进程 * 短作业优先对长作业不公,且需要预先知道执行时间(往往不可能) 多极反馈队列不需要预先知道作业长短。 * 被中断的进程:1)被延迟了一段时间2)获得了本级的更多时间片 * 时间片变为2,4,8。执行时间为6,12,20又如何? * 短作业在执行中自然获得高优先级,常作业经过执行的反馈信息后被降级。 * 提问,进程调度切换的时机,然后最终引导dao系统调用返回 * 在lxr.linux.no找到schedule函数 1)每个处理器有自己的队列、 preempt_disable(); cpu = smp_processor_id(); rq = cpu_rq(cpu); 2)put_prev_task(rq, prev); next = pick_next_task(rq);指出有多种调度类,这个指针将指向不同的函数 3)关键动作context_switch(rq, prev, next); 然后再进入到context_switch()里面去 1)mm = next-mm; 2) switch_to(prev, next, prev); 最后看linux/arch/x86/include/asm/system.h 的switch_to() 里面的关于现场的恢复问题 3.0.4中goodness不再用于进程优先级计算 Update_process_times()仍用于统计进程的执行时间 * 汽车ABS系统,必须完成 数据传送,必须开始,也隐含必须完成时间 有时是两者皆有之 * 就绪时间:周期性任务——可预知、非周期性任务——用中断通知 截止时间根据就绪时间推算,但是要提前知道一些推算的信息 处理时间——预先知道 优先级:紧急程度 系统必须提供这些信息,然后根据上述信息,进行紧急程度排序,确定调度的进程 * 非抢占使得紧急进程的启动时间不定,无法保证实时性 小型实时系统,如可以预知开始截止时间,可以不抢占,通过仔细调度保证开始截止时间 VxWork Linux+RT层 * 分类准则很多: 硬/软 抢占/非抢占 静态/动态 集中/分布式 * 非抢占 工业生产群控系统,生产线流水节拍内完成,工作固定明确有周期性 * 这些非抢占任务,都是执行较短时间后就会将自己阻塞起来的 * 后来两种是属于抢占式调度 * 回顾,比较四种时间延迟 * 在基本要求和常见分类后,讨论常见的实时调度算法 1)最早截止时间EDF(非抢占周期、抢占非周期) 2)最低松弛度LLF 关键是其优先权的计算方法 EDF1)将就绪进程形成队列 2)根据开始截止时间而定优先权 * * 前面是以完成截止时间作为优先权等级 这里将紧急程度在做一点变形,就是剩余的时间多少 * 这是截止时间 * 第一点,t2时刻有没有A2的任务? * 前两种用于实时调度 优先级(1~99) 后一种用于普通的进程调度 类似于前后台概念 优先权/优先级 分成静态部分和动态部分 * 六、死锁的检测 死锁定理 系统或任务处于死锁状态的充分必要条件是: 当且仅当系统或任务的资源分配图是不可完全简化的 * P1 P2 七、死锁的解除 剥夺资源 撤消进程 全部撤消法 最小代价撤消法 * 在PⅢ 1.2GHz上执行RTLinux操作系统,结果为7-9us。执行Linux,其中断响应时间为490us-18ms。在单任务情况下,执行RTLinux,中断响应时间为4-7us,执行Linux,其中断响应时间为4-9us。 Linux在实时应用中的不足 ???? ??? 现有的Linux是一个通用的操作系统,虽然它采用了许多技术来提高系统的运行和反应速度,但它本质上不是一个实时操作系统,应用于嵌入式环境中还存在诸多的不足。具体表现如下: ? ??? 1、关中断问题 ??? 在系统调用中,为了保护临界区资源,Linux处于内核临界区时,中断会被系统屏蔽,这就意味着如果当前进程正处于临界区,即使它的优先级较低,也会延迟高优先级的中断请求。在实时应用中,这是一个十分严重的问题。 ??? 2、进程调度问题 ??? Linux采用标准的UNIX技术使得内核是不可抢占的。采用基于固定时间片的可变优先级调度,不论进程的优先级多么低,Linux总会在某个时候分给该 进程一个时间片运行,即使同时有可以运行的高优先级进程,它也必须等待低优先级进程的时间片用完,这对一些要求高优先级进程立即抢占CPU的实时应用是不 能满足要求的。 ??? 3、时钟问题 ??? Linux为了提高系统的平均吞吐率,将时钟中断的最小间隔设置为10ms,这对于一个周期性的实时任务,间隔要求小于10ms时,就不能满足实时任务的 需要。如果要把时钟 的间隔改小以满足周期性的实时

文档评论(0)

风凰传奇 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档