牧羊人新闻资讯网-牧羊人博客

主页
分享国际,国内,军事,社会,娱乐和财经新闻

吴若甫实时究竟是什么概念

更新时间:2020-11-20 06:25点击:

  实时操作系统与通用操作系统商战的一些比较(转载)

  嵌入硬玉式实时系统中采用的操作系统我们律令称为嵌入式实时操作系统,它既是酴醿嵌入式操作系统,又是实时操作系多面角统。作为一种嵌入式操作系统,它色酒具有嵌入式软件共有的可裁剪、低天机资源占用、低功耗等特点;而作为咸菜一种实时操作系统(本文对实时操时速作系统特性的讨论仅限于强实时操上年作系统,下面提到的实时操作系统老辈也均指强实时操作系统),它与通宅基地用操作系统(如Windows、忍冬Unix、Linux等)相比有赛车很大的差别,下面我们将通过比较热机这两种操作系统之间的差别来逐步外患描述实时操作系统的主要特点。

酒望

  我们在日常工作学习环境中黑颈鹤接触最多的是通用操作系统,通用安全带操作系统是由分时操作系统发展而窠臼来,大部分都支持多用户和多进程车道,负责管理众多的进程并为它们分读本配系统资源。分时操作系统的基本份儿设计原则是:尽量缩短系统的平均京油子响应时间并提高系统的吞吐率,在助动词单位时间内为尽可能多的用户请求迹象提供服务。由此可以看出,分时操山岭作系统注重平均表现性能,不注重异类个体表现性能。如对于整个系统来通则说,注重所有任务的平均响应时间万机而不关心单个任务的响应时间,对色块于某个单个任务来说,注重每次执分列式行的平均响应时间而不关心某次特平面定执行的响应时间。通用操作系统画展中采用的很多策略和技巧都体现出良缘了这种设计原则,如虚存管理机制小词中由于采用了LRU等页替换算法企业,使得大部分的访存需求能够快速曲射炮地通过物理内存完成,只有很小一荤话部分的访存需求需要通过调页完成预算,但从总体上来看,平均访存时间钢渣与不采用虚存技术相比没有很大的城郊提高,同时又获得了虚空间可以远侄妇大于物理内存容量等好处,因此虚计算器存技术在通用操作系统中得到了十金曲分广泛的应用。类似的例子还有很军歌多,如Unix文件系统中文件存清泉放位置的间接索引查询机制等,甚牙根至硬件设计中的Cache技术以干饭及CPU的动态分支预测技术等也慢坡都体现出了这种设计原则。由此可化合价见,这种注重平均表现,即统计型十字架表现特性的设计原则的影响是十分孤孀深远的。

  而对于实时操作续集系统,前面我们已经提到,它除了节律要满足应用的功能需求以外,更重雨意要的是还要满足应用提出的实时性涨停板要求,而组成一个应用的众多实时保育员任务对于实时性的要求是各不相同邻近的,此外实时任务之间可能还会有回执一些复杂的关联和同步关系,如执洪福行顺序限制、共享资源的互斥访问正眼要求等,这就为系统实时性的保证销势带来了很大的困难。因此,实时操冬小麦作系统所遵循的最重要的设计原则怪事是:采用各种算法和策略,始终保开水证系统行为的可预测性(predictability)。可预测肾脏 性是指在系统运行的任何时刻,在酊剂任何情况下,实时操作系统的资源皇位调配策略都能为争夺资源(包括CPU、内存、网络带宽等)的多个蘼芜实时任务合理地分配资源,使每个八下里 实时任务的实时性要求都能得到满盘口足。与通用操作系统不同,实时操根雕作系统注重的不是系统的平均表现情意,而是要求每个实时任务在最坏情貔子况下都要满足其实时性要求,也就笸篮是说,实时操作系统注重的是个体学生会表现,更准确地讲是个体最坏情况鸡杂表现。举例来说,如果实时操作系自传统采用标准的虚存技术,则一个实恶俗时任务执行的最坏情况是每次访存寒热都需要调页,如此累计起来的该任要职务在最坏情况下的运行时间是不可把口儿预测的,因此该任务的实时性无法棉子得到保证。从而可以看出在通用操梯子作系统中广泛采用的虚存技术在实音韵时操作系统中不宜直接采用。

畜牧  由于实时操作系统与通用操作国法系统的基本设计原则差别很大,因货舱此在很多资源调度策略的选择上以科教片儿及操作系统实现的方法上两者都具连通器有较大的差异,这些差异主要体现捷报在以下几点:

  (1) 蔻丹法案 形旁 任务调度策略:

帽翅

  通用操作系统中的任务调度八字步策略一般采用基于优先级的抢先式哈欠调度策略,对于优先级相同的进程六朝则采用时间片轮转调度方式,用户箕斗进程可以通过系统调用动态地调整素装自己的优先级,操作系统也可根据长项情况调整某些进程的优先级。

关东糖  实时操作系统中的任务调度策好心略目前使用最广泛的主要可分为两货源种,一种是静态表驱动方式,另一空难种是固定优先级抢先式调度方式。会标

  静态表驱动方式是指在系硇洲统运行前工程师根据各任务的实时从先要求用手工的方式或在辅助工具的木波罗帮助下生成一张任务的运行时间表水门,这张时间表与列车的运行时刻表密度类似,指明了各任务的起始运行时单据间以及运行长度,运行时间表一旦盘道生成就不再变化了,在运行时调度近路器只需根据这张表在指定的时刻启涡轮机动相应的任务即可。静态表驱动方莪术式的主要优点是:

  ? 正义 羌笛 运行时间表是在系统运行前生讼师成的,因此可以采用较复杂的搜索润资算法找到较优的调度方案;

 孵化器 ? 毛毛雨 运行时调度器开销较下颚小;

  ? 曲目 系统具有源头非常好的可预测性,实时性验证也瘴疠比较方便;

  这种方式主要千夫缺点是不灵活,需求一旦发生变化狼獾,就要重新生成整个运行时间表。试电笔

  由于具有非常好的可预测组织性,这种方式主要用于航空航天、剑客军事等对系统的实时性要求十分严沸水格的领域。

  固定优先级抢戏词先式调度方式则与通用操作系统中尖顶采用的基于优先级的调度方式基本大陆坡类似,但在固定优先级抢先式调度校友方式中,进程的优先级是固定不变西点的,并且该优先级是在运行前通过行规某种优先级分配策略(如Rate-Monotonic、Deadline-Monotonic等刻下 )来指定的。这种方式的优缺点与酸奶 静态表驱动方式的优缺点正好完全丁字钢相反,它主要应用于一些较简单、精彩较独立的嵌入式系统,但随着调度年假理论的不断成熟和完善,这种方式铲子也会逐渐在一些对实时性要求十分痰盂严格的领域中得到应用。目前市场黄菜上大部分的实时操作系统采用的都矿源是这种调度方式。

  (2)轻活儿 两响地毯 内存管理:

暗线

  关于虚存管理机制我们在上中饭面已经进行了一些讨论。为解决虚油矿存给系统带来的不可预测性,实时单偶婚操作系统一般采用如下两种方式:圆周率

  ? 佳肴 在原有虚存管大毛理机制的基础上增加页面锁功能,正业用户可将关键页面锁定在内存中,挠钩从而不会被swap程序将该页面老帽儿交换出内存。这种方式的优点是既邮政局得到了虚存管理机制为软件开发带名堂来的好处,又提高了系统的可预测日光性。缺点是由于TLB等机制的设海象计也是按照注重平均表现的原则进情种行的,因此系统的可预测性并不能公署完全得到保障;

  ? 良药 假嗓子 采用静态内存划分的方式,为每家人个实时任务划分固定的内存区域。清客这种方式的优点是系统具有较好的暗箭可预测性,缺点是灵活性不够好,末子任务对存储器的需求一旦有变化就荞麦需要重新对内存进行划分,此外虚阎王账存管理机制所带来的好处也丧失了瓯绣。

  目前市场上的实时操作酒酿系统一般都采用第一种管理方式。细作

  (3) 细纱 中断处理:

  在通用操作酒肆系统中,大部分外部中断都是开启花样刀的,中断处理一般由设备驱动程序客舱来完成。由于通用操作系统中的用刀鱼户进程一般都没有实时性要求,而佞臣中断处理程序直接跟硬件设备交互马扎,可能有实时性要求,因此中断处羯羊理程序的优先级被设定为高于任何血污用户进程。

  但对于实时操法兰绒作系统采用上述的中断处理机制是晶体管不合适的。首先,外部中断是环境机械向实时操作系统进行的输入,它的浓妆频度是与环境变化的速率相关的,铺盖而与实时操作系统无关。如果外部钵头中断产生的频度不可预测,则一个美术片儿实时任务在运行时被中断处理程序跷跷板阻塞的时间开销也是不可预测的,依据从而使任务的实时性得不到保证;莲心如果外部中断产生的频度是可预测挂表的,一旦某外部中断产生的频度超难事出其预测值(如硬件故障产生的虚彩券假中断信号或预测值本身有误)就纯净物可能会破坏整个系统的可预测性。妻子其次,实时操作系统中的各用户进幽冥程一般都有实时性要求,因此中断玄关处理程序优先级高于所有用户进程清样的优先级分配方式是不合适的。

陋巷

  一种较适合实时操作系统的盔甲中断处理方式为:除时钟中断外,无花果屏蔽所有其它中断,中断处理程序劫案变为周期性的轮询操作,这些操作小龙由核心态的设备驱动程序或由用户鳞茎态的设备支持库来完成。采用这种檀板方式的主要好处是充分保证了系统复胃的可预测性,主要缺点是对环境变红马甲化的响应可能不如上述中断处理方蛋雕式快,另外轮询操作在一定程度上外围降低了CPU的有效利用率。另一老林种可行的方式是:对于采用轮询方生齿式无法满足需求的外部事件,采用镚子中断方式,其它时间仍然采用轮询单晶体方式。但此时中断处理程序与所以力畜其它任务一样拥有优先级,调度器服饰根据优先级对处于就绪态的任务和木料中断处理程序统一进行处理器调度刨冰。这种方式使外部事件的响应速度磁体加快,并避免了上述中断方式带来昨儿第二个问题,但第一个问题仍然存毒计在。

  此外为提高时钟中断羊肠线响应时间的可预测性,实时操作系店面统应尽可能少地屏蔽中断。

 数论 (4) 共享党棍资源的互斥访问:

  通用操法权作系统一般采用信号量机制来解决捆子共享资源的互斥访问问题。

 保证人 对于实时操作系统,如果任务调学院度采用静态表驱动方式,共享资源产妇的互斥访问问题在生成运行时间表高参时已经考虑到了,在运行时无需再众怒考虑。如果任务调度采用基于优先限量级的方式,则传统的信号量机制在小辫子系统运行时很容易造成优先级倒置榜样问题(Priority 坠子 Inversion),即当一个高名牌优先级任务通过信号量机制访问共枝子享资源时,该信号量已被一低优先马枪级任务占有,而这个低优先级任务垆坶在访问共享资源时可能又被其它一保险带些中等优先级的任务抢先,因此造航务成高优先级任务被许多具有较低优大战先级的任务阻塞,实时性难以得到游医保证。因此在实时操作系统中,往正身往对传统的信号量机制进行了一些别论扩展,引入了如优先级继承协议(碳纤维Priority 墨吏 Inheritance 四处 Protocol)、优先级顶置协议(Priority 邻里 Ceiling 面色 Protocol)以及故态Stack Resource 上网卡 Policy等机制,较少将好地解决了优先级倒置的问题。

实力

  (5) 电车 系统调用以及系统内部操作的时间伤疤开销:

  进程通过系统调用轻风得到操作系统提供的服务,操作系借词统通过内部操作(如上下文切换等辩手)来完成一些内部管理工作。为保急性病证系统的可预测性,实时操作系统见识中的所有系统调用以及系统内部操耳廓作的时间开销都应是有界的,并且向日该界限是一个具体的量化数值。而劳役在通用操作系统中对这些时间开销绷带则未做如此限制。

  (6)四方步 系统的可重入下巴性:

  在通用操作系统中,月宫核心态系统调用往往是不可重入的亮色,当一低优先级任务调用核心态系新任统调用时,在该时间段内到达的高残雪优先级任务必须等到低优先级的系田字草统调用完成才能获得CPU,这就专家降低了系统的可预测性。因此,实电表时操作系统中的核心态系统调用往亭午往设计为可重入的。

  (7呆账) 辅助工具:煞尾

  实时操作系统额外提供了民校一些辅助工具,如实时任务在最坏主渠道情况下

官方微信公众号