操作系统与通用操作系统的一些比较

上传人:橙** 文档编号:333351851 上传时间:2022-09-02 格式:PDF 页数:3 大小:36.81KB
返回 下载 相关 举报
操作系统与通用操作系统的一些比较_第1页
第1页 / 共3页
操作系统与通用操作系统的一些比较_第2页
第2页 / 共3页
操作系统与通用操作系统的一些比较_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《操作系统与通用操作系统的一些比较》由会员分享,可在线阅读,更多相关《操作系统与通用操作系统的一些比较(3页珍藏版)》请在金锄头文库上搜索。

1、实时操作系统与通用操作系统的一些比较疯狂代码 http:/CrazyC 嵌入式实时系统中采用操作系统我们称为嵌入式实时操作系统它既是嵌入式操作系统又是实时操作系统作为种嵌入式操作系统它具有嵌入式软件共有可裁剪、低资源占用、低功耗等特点;而作为种实时操作系统(本文对实时操作系统特性讨论仅限于强实时操作系统下面提到实时操作系统也均指强实时操作系统)它与通用操作系统(如 Windows、Unix、Linux 等)相比有很大差别下面我们将通过比较这两种操作系统之间差别来逐步描述实时操作系统主要特点我们在日常工作学习环境中接触最多是通用操作系统通用操作系统是由分时操作系统发展而来大部分都支持多用户和多进

2、程负责管理众多进程并为它们分配系统资源分时操作系统基本设计原则是:尽量缩短系统平均响应时间并提高系统吞吐率在单位时间内为尽可能多用户请求提供服务由此可以看出分时操作系统注重平均表现性能不注重个体表现性能如对于整个系统来说注重所有任务平均响应时间而不关心单个任务响应时间对于某个单个任务来说注重每次执行平均响应时间而不关心某次特定执行响应时间通用操作系统中采用很多策略和技巧都体现出了这种设计原则如虚存管理机制中由于采用了LRU 等页替换算法使得大部分访存需求能够快速地通过物理内存完成只有很小部分访存需求需要通过调页完成但从总体上来看平均访存时间与不采用虚存技术相比没有很大提高同时又获得了虚空间可以

3、远大于物理内存容量等好处因此虚存技术在通用操作系统中得到了十分广泛应用类似例子还有很多如Unix文件系统中文件存放位置间接索引查询机制等甚至硬件设计中 Cache 技术以及 CPU 动态分支预测技术等也都体现出了这种设计原则由此可见这种注重平均表现即统计型表现特性设计原则影响是十分深远而对于实时操作系统前面我们已经提到它除了要满足应用功能需求以外更重要是还要满足应用提出实时性要求而组成个应用众多实时任务对于实时性要求是各不相同此外实时任务之间可能还会有些复杂关联和同步关系如执行顺序限制、共享资源互斥访问要求等这就为系统实时性保证带来了很大困难因此实时操作系统所遵循最重要设计原则是:采用各种算法

4、和策略始终保证系统行为可预测性(predictability)可预测性是指在系统运行任何时刻在任何情况下实时操作系统资源调配策略都能为争夺资源(包括CPU、内存、网络带宽等)多个实时任务合理地分配资源使每个实时任务实时性要求都能得到满足与通用操作系统不同实时操作系统注重不是系统平均表现而是要求每个实时任务在最坏情况下都要满足其实时性要求也就是说实时操作系统注重是个体表现更准确地讲是个体最坏情况表现举例来说如果实时操作系统采用标准虚存技术则个实时任务执行最坏情况是每次访存都需要调页如此累计起来该任务在最坏情况下运行时间是不可预测因此该任务实时性无法得到保证从而可以看出在通用操作系统中广泛采用虚存

5、技术在实时操作系统中不宜直接采用由于实时操作系统与通用操作系统基本设计原则差别很大因此在很多资源调度策略选择上以及操作系统实现方法上两者都具有较大差异这些差异主要体现在以下几点:(1);任务调度策略:通用操作系统中任务调度策略般采用基于优先级抢先式调度策略对于优先级相同进程则采用时间片轮转调度方式用户进程可以通过系统动态地调整自己优先级操作系统也可根据情况调整某些进程优先级实时操作系统中任务调度策略目前使用最广泛主要可分为两种种是静态表驱动方式另种是固定优先级抢先式调度方式静态表驱动方式是指在系统运行前工程师根据各任务实时要求用手工方式或在辅助工具帮助下生成张任务运行时间表这张时间表与列车运行

6、时刻表类似指明了各任务起始运行时间以及运行长度运行时间表旦生成就不再变化了在运行时调度器只需根据这张表在指定时刻启动相应任务即可静态表驱动方式主要优点是:?;运行时间表是在系统运行前生成因此可以采用较复杂搜索算法找到较优调度方案;?;运行时调度器开销较小;?;系统具有非常好可预测性实时性验证也比较方便;这种方式主要缺点是不灵活需求旦发生变化就要重新生成整个运行时间表由于名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 3 页 -具有非常好可预测性这种方式主要用于航空航天、军事等对系统实时性要求十分严格领域固定优先级抢先式调度方式则与通用操作系统中采用基于优先级调度方式基本类似但在固

7、定优先级抢先式调度方式中进程优先级是固定不变并且该优先级是在运行前通过某种优先级分配策略(如Rate-Monotonic、Deadline-Monotonic 等)来指定这种方式优缺点与静态表驱动方式优缺点正好完全相反它主要应用于些较简单、较独立嵌入式系统但随着调度理论不断成熟和完善这种方式也会逐渐在些对实时性要求十分严格领域中得到应用目前市场上大部分实时操作系统采用都是这种调度方式(2);内存管理:关于虚存管理机制我们在上面已经进行了些讨论为解决虚存给系统带来不可预测性实时操作系统般采用如下两种方式:?;在原有虚存管理机制基础上增加页面锁功能用户可将关键页面锁定在内存中从而不会被swap 将

8、该页面交换出内存这种方式优点是既得到了虚存管理机制为软件开发带来好处又提高了系统可预测性缺点是由于TLB 等机制设计也是按照注重平均表现原则进行因此系统可预测性并不能完全得到保障;?;采用静态内存划分方式为每个实时任务划分固定内存区域这种方式优点是系统具有较好可预测性缺点是灵活性不够好任务对存储器需求旦有变化就需要重新对内存进行划分此外虚存管理机制所带来好处也丧失了目前市场上实时操作系统般都采用第种管理方式(3);中断处理:在通用操作系统中大部分外部中断都是开启中断处理般由设备驱动来完成由于通用操作系统中用户进程般都没有实时性要求而中断处理直接跟硬件设备交互可能有实时性要求因此中断处理优先级被

9、设定为高于任何用户进程但对于实时操作系统采用上述中断处理机制是不合适首先外部中断是环境向实时操作系统进行输入它频度是与环境变化速率相关而与实时操作系统无关如果外部中断产生频度不可预测则个实时任务在运行时被中断处理阻塞时间开销也是不可预测从而使任务实时性得不到保证;如果外部中断产生频度是可预测旦某外部中断产生频度超出其预测值(如硬件故障产生虚假中断信号或预测值本身有误)就可能会破坏整个系统可预测性其次实时操作系统中各用户进程般都有实时性要求因此中断处理优先级高于所有用户进程优先级分配方式是不合适种较适合实时操作系统中断处理方式为:除时钟中断外屏蔽所有其它中断中断处理变为周期性轮询操作这些操作由核

10、心态设备驱动或由用户态设备支持库来完成采用这种方式主要好处是充分保证了系统可预测性主要缺点是对环境变化响应可能不如上述中断处理方式快另外轮询操作在定程度上降低了CPU 有效利用率另种可行方式是:对于采用轮询方式无法满足需求外部事件采用中断方式其它时间仍然采用轮询方式但此时中断处理与所以其它任务样拥有优先级调度器根据优先级对处于就绪态任务和中断处理统进行处理器调度这种方式使外部事件响应速度加快并避免了上述中断方式带来第二个问题但第个问题仍然存在此外为提高时钟中断响应时间可预测性实时操作系统应尽可能少地屏蔽中断(4);共享资源互斥访问:通用操作系统般采用信号量机制来解决共享资源互斥访问问题对于实时

11、操作系统如果任务调度采用静态表驱动方式共享资源互斥访问问题在生成运行时间表时已经考虑到了在运行时无需再考虑如果任务调度采用基于优先级方式则传统信号量机制在系统运行时很容易造成优先级倒置问题(Priority Inversion)即当个高优先级任务通过信号量机制访问共享资源时该信号量已被低优先级任务占有而这个低优先级任务在访问共享资源时可能又被其它些中等优先级任务抢先因此造成高优先级任务被许多具有较低优先级任务阻塞实时性难以得到保证因此在实时操作系统中往往对传统信号量机制进行了些扩展引入了如优先级继承协议(Priority Inheritance Protocol)、优先级顶置协议(Priori

12、ty CeilingProtocol)以及Stack Resource Policy等机制较好地解决了优先级倒置问题(5);系统以及系统内部操作时间开销:进程通过系统得到操作系统提供服务操作系统通过内部操作(如上下文切换等)来完成些内部管理工作为保证系统可预测性实时操作系统中所有系统以及系统内部操作时间开销都应是有界并且该界限是个具体量化数值而在通用操作系统中对这些时间开销则未做如此限制(6);系统可重入性:在通用操作系统中核心态系统名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 3 页 -往往是不可重入当低优先级任务核心态系统时在该时间段内到达高优先级任务必须等到低优先级系统完

13、成才能获得CPU 这就降低了系统可预测性因此实时操作系统中核心态系统往往设计为可重入(7);辅助工具:实时操作系统额外提供了些辅助工具如实时任务在最坏情况下执行时间估算工具、系统实时性验证工具等可帮助工程师进行系统实时性验证工作;此外实时操作系统对系统硬件设计也提出了些要求其中些要求为:(1);DMADMA 是种数据交换协议主要作用是在无需CPU 参与情况下将数据在内存与其它外部设备间进行交换DMA 最常用种实现方式被称为周期窃取(Cycle Stealing)方式即首先通过总线仲裁协议与CPU 竞争总线控制权在获得控制权后再根据用户预设操作指令进行数据交换由于这种周期窃取方式会给用户任务带来

14、不可预测额外阻塞开销所以实时操作系统往往要求系统设计时不采用DMA 或采取些可预测性更好 DMA 实现方式如 Time-slice method等(2);CacheCache主要作用是采用容量相对较小快速存储部件来弥补高性能CPU 与相对来说性能较低存储器之间性能差异由于它可以使系统平均表现性能得到大幅提高因此在硬件设计中得到了极为广泛应用但实时操作系统注重不是平均表现性能而是个体最坏情况表现因此在对系统进行实时性验证时必须考虑实时任务运行最坏情况即每次访存都没有命中Cache 情况下运行时间所以在利用辅助工具估算实时任务在最坏情况下执行时间时应将系统中所有 Cache 功能暂时关闭在系统实际运行时再将Cache 功能激活除此以外另种较极端做法则是在硬件设计中完全不采用 Cache 技术 2008-12-11 22:58:43 疯狂代码 http:/CrazyC 3 页,共 3 页 -

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 初中教育

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号