2019-03-24 16:36:49 li3781695 阅读数 331
  • 2020考研专业课《计算机操作系统原理》精讲视频课程

    计算机操作系统是计算机专业必修的专业基础课程,是考研的必考科目。它的特点是概念多、较抽象和涉及面广,所以无论是大学学习还是考研,很多同学都把它当做一块硬骨头,其实只要我们掌握正确的学习方法,操作系统课程还是非常容易理解和掌握的,终在考研时取得到高分。

    67282 人正在学习 去看看 任铄

实时操作系统是保证在一定时间限制内完成特定功能的操作系统。
实时操作系统有硬实时和软实时之分:
硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的,适用于对实时性要求特别高的场合,如工业过程控制、汽车安全控制系统、武器控制系统;
软实时按照任务的优先级来响应事件,尽可能快地完成操作即可,并没有任务完成限时。适用于按照统计学来说任务都会在限定时间内完成,但是如果没有完成也没有特别严重后果的系统。例如,可以为确保生产线上的机器人能获取某个物体而设计一个操作系统。在“硬”实时操作系统中,如果不能在允许时间内完成使物体可达的计算,操作系统将因错误结束。在“软”实时操作系统中,生产线仍然能继续工作,但产品的输出会因产品不能在允许时间内到达而减慢,这使机器人有短暂的不生产现象。
大体上,实时操作系统(RTOS)要求:
1.多任务
2.处理能被区分优先次序的进程线
3.一个中断水平的充份数量
分时操作系统是使一台计算机采用时间片轮转的方式同时为几个、几十个甚至几百个用户服务的一种操作系统。不存在响应时间确定性。

实时系统使用的任务调度的方式为抢占方式。允许调度程序根据某种原则,去停止某个正在执行的进程,将已分配给该进程的处理机,重新分配给另一进程。抢占的原则有:
1.时间片原则。 各进程按时间片运行,当一个时间片用完后,便停止该进程的执行而重新进行调度。
2.优先权原则。 当一个进程到来时,如果其优先级比正在执行的进程的优先级高,便停止正在执行的进程,将处理机分配给优先级高的进程,使之执行。
实时系统中一般采用基于优先级的抢占式调度和轮转调度的进程调度和中程调度相结合的调度策略。因此既可具有较大的灵活性,又能获得极小的调度延迟。

时间片轮转调度: 为了实现轮转调度,系统把所有就绪进程按先入先出的原则排成一个队列。新来的进程加到就绪队列末尾。每当执行进程调度时,进程调度程序总是选出就绪队列的队首进程,让它在CPU上运行一个时间片的时间。时间片是一个小的时间单位,通常为10~100ms数量级。当进程用完分给它的时间片后,系统的计时器发出时钟中断,调度程序便停止该进程的运行,把它放入就绪队列的末尾;然后,把CPU分给就绪队列的队首进程,同样也让它运行一个时间片,如此往复。

Windows的线程调度算法: Windows采用基于优先级的抢占式调度算法,在一个具有较低优先级别的线程正在运行时,如果有一个较高的优先级别的线程进入就绪等待队列,或一个具有较高优先级别的线程等待时间结束时,就可以抢占处理器优先执行。在同优先级线程中采用时间片轮转执行。Windows还拥有时间配额概念,当一个线程进入运行状态时,它获得一个可以运行的时间配额,一个线程用完了自己的时间配额时,如果没有其他相同优先级的线程,Windows将重新给该线程分配一个新的时间配额使其继续运行。对于线程饥饿文件,Windows系统线程"平衡集管理器"每秒钟扫描一次就绪队列,发现是否存在等待时间超过300个时钟中断间隔的线程平衡集管理器将这些线程的优先级提升到15,并分配它一个长度值为正常值4倍的时间配额,被提升的线程用完它的时间配额后立即衰减到它原先的基本优先级。
从上述特性可知,windows本质上还是一个非实时系统,只不过拥有部分实时系统的特性。

线程的状态有如下几种:
已初始化 (Initialized):线程创建过程中的内部状态,此时线程不参与调度。
就绪 (Ready):线程已经准备好运行,等待被调度。
运行中 (Running):线程正在某一处理器上运行。
待命 (Standby):线程被选为某一处理器上下一个将要被执行的线程。
已终止 (Terminated):线程已终止,正在进行资源回收。
等待中 (Waiting):线程正在等待某个条件满足,比如事件对象被触发。
转移 (Transition):线程已经准备好运行但内核栈不在内存中。
延迟就绪 (DeferredReady):线程尚未被确定在哪个处理器上运行,此状态对于单处理器系统没有意义。
门等待 (GateWait):线程正在等待一个门对象。

2009-06-09 09:49:00 ocean181 阅读数 815
  • 2020考研专业课《计算机操作系统原理》精讲视频课程

    计算机操作系统是计算机专业必修的专业基础课程,是考研的必考科目。它的特点是概念多、较抽象和涉及面广,所以无论是大学学习还是考研,很多同学都把它当做一块硬骨头,其实只要我们掌握正确的学习方法,操作系统课程还是非常容易理解和掌握的,终在考研时取得到高分。

    67282 人正在学习 去看看 任铄

1、引言

    TRON(The Real-time Operating system Nucleus)是一种在国内的知名度非常低的嵌入式实时操作系统,但是却占据了全球微处理器操作系统市场大约60%的份额,这远远超过了Windows 的普及程度。它已经安装到了全球30亿到40亿台电子产品当中,涉及从数码相机、通信设备、媒体播放器到汽车电子等广泛领域。主要用户包括NTT DoCoMo、Toyota、CannonRicohPanasonicSony、NEC、ToshibaHitachiFujitsu等国际 著名企业,且已在其各自的领域使用了20年。本文简单地介绍TRON的发展、结构及其典型应用等,希望能有助于推动其在国内的研究和应用。

    2、TRON与T-Engine简介

    TRON是由日本东京大学Ken Sakamura教授于1984年提出的计算机操作系统规范,目的是构建一种理想的计算机结构,实现新的计算体系——泛在计算环境(Ubiquitous Computing Environment)。所谓“泛在计算环境”是指将微型计算机嵌入到日常生活中的所有机器、设备、工具中,通过网络相互通信,协调运行,以实现高度计 算机化的社会环境。为了使计算机嵌入到包括移动通信器等在内的各种机器中,需要这种计算机结构必须小型化并有很好的实时性能。为此,1984年Ken Sakamura教授提倡启动了“TRON项目”。在这20年间,先后推出了ITRON(嵌入式系统实时多任务操作系统规范)、JTRON(Java与 ITRON的混合操作系统规范)、BTRON(计算机及手机等终端的操作系统规范体系)、CTRON(以通信控制及信息处理为目的的操作系统接口规范)及 TRON HMI(面向各种电子设备的人机界面标准)等规范。

    TRON项目为了向世界推广,一直采用自由开源、弱标准化的方针,也曾经出现过多种版本的开发环境及操作系统式样。随着嵌入式系统的高功能、网络化、高度 HMI化,软件开发和调试都变得非常复杂。TRON相关软件的可移植性、可重用性出现了问题。加之嵌入软件开发技术人员严重不足,缺乏可以兼容的软件中间件。

    为了实现更为有效的实时操作系统的嵌入式计算结构,TRON项目启动了T-Engine项目。T-Engine是为了在短时间内高效开发实时嵌入式系统而 设计的,由标准化硬件结构(T-Engine)与标准开源实时操作系统核心(T-Kernel)组成的嵌入式系统的开放式标准平台。

    在T-Engine开发过程中,搭载的CPU为可变的,而规定了其他硬件结构规范、操作系统核心界面规范、对象数据格式规范等要素,使TRON在标准化的 基础结构上,具备充分的外围资源及开发环境。这个开放式标准平台结构的最大目标是将CPU从基础结构中独立出来,使在T-Kernel上开发的中间件可不 依存于CPU结构而移植。

    通过使用丰富的中间件,可以做到大幅度缩短应用系统开发时间及降低成本;通过使用高质量的硬件和软件,可方便地进行调试;在小批量生产时可照原样开发平台;系统既稳定、尺寸又小,很容易使其直接成为产品,可在很短时间内投向市场。

    为将T-Engine这种体系结构向世界推广,使之成为一种国际标准,2002年成立了T-Engine论坛,目前已经在全世界拥有478家会员公司(截 至2006年8月2日)。就连微软也不敢小视,在2003年的年底,微软也加入了TRON阵营,使Windows CE兼容TRON系统。由此,在计算技术向前迈出了一大步。

    3、T-Engine基础架构

    3.1 T-Engine 硬件结构规范

ic72新闻中心

    图1 T-Engine基础架构示意图

    按照应用和尺寸来划分,如图1所示,T-Engine硬件平台可分为以下4大类。

    (1) 标准T-Engine

    这种开发硬件平台面向于具有高级用户接口的设备,例如有液晶屏和触摸屏的便携式信息设备。其具有如USB、串口等通用接口,还具有75mm×120mm的紧凑尺寸,不做修改即可直接应用于多种产品。

    (2) μT-Engine (micro T-Engine)

    这种微型开发硬件平台面向于专门的设备控制,具有60mm×85mm的尺寸,没有液晶屏和触摸屏等用户接口。常用于开发移动信息设备、家用电气及计量测绘机器等。

    (3) nT-Engine (nano T-Engine)

    这种毫微型平台用于驱动并控制照明器具、开关、锁、阀门等小型设备,将这些节点组成实时网络,构成泛在计算环境。

    (4) pT-Engine(pico T-Engine)

    这种微微型平台是一种低功耗的超小型网络节点,可以组装到泛在计算环境的所有物品中来构建一个传感器网络。

    3.2 T-Engine软件结构规范 

    T-Engine的软件环境主要包括T-monitor、T-Kernel、设备驱动、T-Kernel标准扩展、中间件和应用软件这几个部分。如图1所示。

    (1) T-monitor

    作为启动实时操作系统核心及支援调试的软件。

    (2) T-Kernel

    T-kernel是在标准T-Engine、μT-Engine上运行的开放式实时操作系统核心软件。它有别于其他开源软件的地方在于它是单一源代码软 件,具有强标准化特点,这保证了其作为各种中间件发布的平台。T-kernel的使用许可(T-License)还规定,T-kernel源代码的改变和 发布必须经过许可,用其开发的新产品的软件不要求必须公开,这有别于GPL(General Public License)。使用T-kernel源代码是不收版权费的,这样就可以同时满足产品低成本和保密的需要。

    (3) 设备驱动

    在T-Engine上搭载的设备驱动,规定了标准的API规范,用来针对各种硬件以实现软件的硬件无关性。另外,为了便于开发新设备以及专用设备的驱动软件,还将公开设备驱动的参考代码。

    (4) T-kernel标准扩展

    T-kernel标准扩展是提供更高级的标准功能的自身扩展部分,使得T-kernel可以使用诸如内存管理、多任务管理、进程通信与同步、文件系统等多种高级功能。

    (5) 中间件

    在T-Kernel上运行的各种中间件,实现代码的包括各种网络用的协议堆栈、文件系统、日语处理、假名汉字变换、eTRON相关的安全软件、GUI、语 音处理、Java运行环境等。为了推动更多中间件的发布和保证它们的使用兼容性,T-Dist项目广泛地公开和发布中间件的信息,并通过eTRON给出相 应软件列表。这样就可大大地降低产品开发难度,减少产品开发周期。

    (6) 开发环境系统

    开发环境并没有标准化,但为了确保软件的兼容性,源代码及二进制目标代码以GNU C编译器中的标准为参考。

    4、TRON的应用和展望

    T-Engine的设计目标就是随时随地的计算,组网的目的也是为了计算。它的这种泛在计算环境特性十分适合应用于智能家居。为了获得舒适便利的居住环 境,在住所安装各种nT-Engine设备和pT-Engine传感器,它们通过有线或无线的方式相互通信,构成大规模的分布式处理系统。光线弱的时候, 光线传感器将通知灯光控制器开启照明;当气温不在设定的舒适范围时,温度传感器将通知空调控制器开启空调,同时还可以对空气湿度、空气质量等进行监控;当 发生火灾时,烟感等传感器会通知发出报警信号,报告着火位置,并做出相应的处理,如开启喷水消防管等。佩戴有电子标签的人在室内活动可被完全监视,房门可 自动开启或禁入,钟爱的音乐会自动响起,还可以通过声音等方式直接控制各种家用设备。当人们离开家时,同样可以通过通信网络掌控家中的一切。

    在工业上,TRON也有着广泛的应用。基于TRON的泛在代码标签(Ubiquitous code tags),可作为RFID或超微型传感器安装在各种各样的物体中。由于体积的限制,泛在代码标签存储信息有限,大量的信息被存储在网络数据库中;通过各 种泛在通信器(Ubiquitous Communicator)读取代码标签的身份信息;然后通过有线或无线网络查询分布式关系数据库,获取更详尽的信息;通过地址协议、网关或高速缓存保证 了查询的高效性。除了如条形码这种被动式的信息读取外,泛在代码标签还可实现主动式的信息交互,在数据安全性和可操作性方面优势明显。这样也就实现了实时 的泛在身份(Ubiquitous ID)系统。这种泛在身份技术已经应用在食品追踪系统中,利用它可以获取食品在生产、加工、运输、销售和消费全过程的详细信息,不仅可用来提高物流效率, 还可有效地加强食品安全管理。TRON的架构特点及实时的优点使之成为连接虚拟信息世界和真实世界的桥梁。

    5、结束语

    TRON项目在Ken Sakamura教授领导下正在快速地推广,日本、中国、韩国、新加坡、澳大利亚等国的很多企业和机构已经开展了T-Engine方面的研究和应用。在国 内,东软公司等企业已经在TRON基础上开发汽车电子软件;中科院也一直在使用基于TRON的嵌入式系统平台开发图像压缩技术;北京大学开设了使用T- Engine开发板的嵌入式系统研发课程。随着TRON在国内逐渐扩大影响,将会有更多企业和机构加入到TRON项目中来,市场上将会出现更多的TRON 项目产品,对TRON的研究和应用也会逐渐升温。

2005-06-24 13:41:00 wangyh76 阅读数 3022
  • 2020考研专业课《计算机操作系统原理》精讲视频课程

    计算机操作系统是计算机专业必修的专业基础课程,是考研的必考科目。它的特点是概念多、较抽象和涉及面广,所以无论是大学学习还是考研,很多同学都把它当做一块硬骨头,其实只要我们掌握正确的学习方法,操作系统课程还是非常容易理解和掌握的,终在考研时取得到高分。

    67282 人正在学习 去看看 任铄

RTOS新特征适应高档汽车应用


■ 李梅



改善对分布式系统和多核系统的支持,RTOS可以满足高档汽车应用的需求。

我们的街道和高速公路正在变成嵌入式网络流动的线路图,这些由许多嵌入式系统组成的网络装在车轮上,随处流动。现代汽车完全可以说是一个计算平台,它有超过50个嵌入式处理器,计算机软件代码超过百万行。由于汽车制造商的注意力已经集中在“在任何可能的地方使用非定制的软件”,所以汽车公司内部的汽车规格的软件开发部门未来的工作重点是将其实践经验和独特的创造力用于汽车软件的需求制定和标准化方面。

嵌入式系统的许多基本问题都可以通过实时操作系统(RTOS)来解决。一个很好的例子就是欧洲汽车工业OSEK/VDX 组织已经为汽车分布的嵌入式控制单元定义一个标准的架构。OSEK/VDX 要求RTOS能够很好地满足汽车嵌入式控制单元在动力系统、底盘与悬梁、车身电子等方面的需求。OSEK/VDX正在成为当前国际汽车工业界占据主导地位的汽车电子开放式系统及其接口的软件规范体系

显然,OSEK/VDX还不能满足未来汽车应用在高性能传导系统、信息娱乐、安全与生命等方面的需求。很多人认为实时操作系统(RTOS)相当于软件中的赛车,要求小、快、高度协调。除此之外,一个好的RTOS能使应用系统始终满足时限的要求,能对任何时间要求苛刻的事件做出响应,在正确的时间做一个正确的动作。

为高端汽车应用的可供选择的大量RTOS正在日益完善,以适应这些需求。

RTOS内核

大多数的RTOS内核均支持任务调度的基于优先权抢先占有机制。在RTOS中,过程按优先级执行。时限紧迫的过程投入运行时,可以立即从低优先级的过程接管CPU。高优先级过程在结束前,能一直继续运行,除非它被一个更高优先级的过程所抢占。这种“抢占” 调度方式可以使对于时间要求严格的过程满足时限的要求。

一些RTOS也提供一些已经实践检验的任务调度选择,如最终任务调度或者分区调度等。它也提供存储器分配调度,以管理大容量RAM存储空间,就像设备I/O管理程序管理和组织大量的不同的设备驱动程序一样。例如,一个设备I/O管理程序对于管理一系列通信设备驱动程序如汽车远程通信系统中经常出现的驱动程序等是非常有效的。驱动程序可以包括:控制区域网 CAN (Controller Area Network)、局部互联协议LIN (Local Interconnect Network)、IEEE1094、高速容错网络协议FlexRay和用于汽车多媒体和导航的媒体定向系统传输MOST (Media-Oriented Systems Transport)等。

为了提高系统的可靠性,RTOS一方面要对存储器进行保护;另一方面是在分布式系统环境下,可以将应用的任务分派到多个CPU,即使一个CPU失效,也不会停止应用程序的工作。

分布式应用有它自己要解决的问题,例如,对大多数的RTOS,一般需增加为应用服务的专用的网络程序,使接在网络上的CPU能相互“对话”,进行服务。此外对于大多数RTOS,驱动程序、协议和应用程序是与内核紧密相连的,要把它们从一个核搬移到另一个核,需要建立一个适合各个CPU的新内核的映像,并仔细地对它进行测试。

微核RTOS从两方面来解决这个问题:首先,使应用程序、协议和驱动程序全都与操作系统脱离,从而使它们从一个CPU 搬移到另一个CPU时,可以不需要对内核重新配置;其次,在微核操作系统中应用程序间通信的典型情况是通过传递消息进行的,如果实现得好,可不需要专用的网络程序。例如,当应用A发送一个消息到应用B时,它不用去了解应用B是使用同一个CPU板,还是由网络连接的另一个CPU。结果任何CPU上的一个过程可以对任何其他机器上的任何资源进行显式的存取,这个网络就像单个计算机那样工作。

设备I/O监控程序提供一个标准的通道,让应用软件任务可以操作各种驱动程序。未来RTOS内核解决的主要问题应该是内部任务的通信与同步。

间接与直接的消息传递机制

大多数的RTOS为内部任务的通信提供了多种形式的异步消息传递机制。异步消息传递机制是对数据传输从一个任务到另一个任务的一种简单和松散连接方式。一个任务给另一个任务传递一个消息时,并不用等到接受任务发回任何的确认信息。

不同的RTOS实施异步通信机制的方式各不相同。不过最简单的概念型的方法被称为直接异步通信机制,就是一个任务直接对另一个任务发送消息,如图1所示。


图1 内部任务通信的直接消息传递机制

这是一种直截了当和最佳的软件设计模型。而在另一方面,采用间接异步消息传递机制,应用软件会受到任务发送和接受消息的消息队列的影响,如图2所示,这是一个吃力不讨好的软件设计模型。


图2 内部任务通信的间接消息传递机制

对于一些高复杂性应用,如汽车信息娱乐(Infotainment)系统和安全系统,通过采用内部任务直接消息传递机制可以很好地控制软件的复杂性。基于同样的原因,直接消息传递机制在多核、分布式多核处理器和容错汽车系统设计中也是首选的通信机制。

对分布式和多核系统的支持

通过一个可选的附加的被称为Link Handlers的RTOS部件,就可以支持分布式和多核系统。


图3 Link Handlers提供的通过处理器边界的消息传递方式

Link Handlers为运行在不同的处理器之间的应用提供一个异步消息传递方式,它是在传统的通信网络环境下一流的和普遍的选择。Link Handlers通过使用一样的异步直接消息传递模型,并将其扩展到了分布式和多核多处理器系统来完成这一工作。目前大多数的RTOS内核在同一处理器中的任务到任务的通信就采用了异步直接消息传递模型。它保证在系统里各种不同的处理器是完全对等的。

Link Handlers并不需要应用软件理解分布式系统的结构。实际上,一个任务的通信助手所在的位置对应用软件是透明的:仅当消息在一个任务传向另一个任务时应用代码才会连接。Link Handlers为消息通过处理器边界提供逻辑通道,而消息通过处理器的方式对应用软件是透明的。

当使用Link Handlers时,连接各种处理器的物理通道可选的范围很广,如网络、串行或总线连接,以及共享存储结构。这些连接基于Handlers的透明通信模型,使得在一个分布式汽车系统里采用异构处理器包括数字信号处理(DSP)成为可能。

高安全性和高可用性支持

除了完成消息传递以外,Link Handlers也必须与运行在其他处理器上的“监视”任务协同工作,而这些处理器的出席对一些应用是至关重要的。当一些关键任务失败或者变得难以实现时,在任何处理器上运行的其他的任务会很快得到出现问题的通报。这些支持“监视眼”机制的RTOS对设计高安全、高可用性和基于冗余的容错系统大有好处。RTOS的Link Handlers在容错系统探测和报告上有一定的开销,因此卸载很多与此相关的应用代码也很必要。

下一代的RTOS也应该提供快速的应用软件现场在线更新工具,不需要应用系统停止工作,以重新上载、修订或者卸载软件。这一功能通常被成为热交换。监视眼和热插拔一起成为RTOS基层架构的主要内容,支持高安全性和高可用性系统的设计。

内存保护

内存保护是面向安全的RTOS的另一个重要因素。 RTOS应该好好利用存储器管理单元,这是一个大多数现代微处理器中都有的构成部件。以传统的“平铺”(flat)体系结构为例,大多数“成品的”或“自建的”RTOS仍在使用这种体系结构。它把所有的模块放在同一个地址空间中,作为操作系统的内核,没有任何存储器的保护。结果任何模块,不管它是多么无关紧要,也能通过内核对存储器进行重写,有可能导致整个系统的崩溃。

有少数的RTOS针对这个问题,使应用程序运行在分离的有存储器保护的地址空间。RTOS与处理器硬件的MMU(内存管理单元)一起保护处理器内存免受非授权的存取访问。如果一个应用程序试图侵害存储器,MMU就会捕获这个错误,从而把这个问题隔离开来。但不幸的是,这些操作系统仍和驱动程序、协议、文件系统绑在一起,并且其他系统可对此内核服务,从而使得这些模块中的任何一个都能导致内核发生致命的错误。

不过,一些RTOS 的微核体系结构则向前迈了一步,可使任何系统级的软件部件在其各自的MMU所保护的地址空间运行。用这种方法,出错的驱动程序和协议则不再成为单独起作用的失效点,而是可以在它们引起其他服务失效前,就使其停止或重新启动,而不必重新开机引导。

产生的结果是完全独立的软件拥有自己独立的内存空间地址。内存管理设备在其造成诸如数据写进了距离自己很远的地址一类的危害前,可以中途阻止迷失方向的存取访问。

这些工具在汽车运行中将可以监视应用软件的安全和运行情况。

汽车电子是本报长期关注的一个热点领域,我们欢迎有关汽车电子的技术、产品等方面的稿件,相关事宜请发邮件到liu_xuexi@ccw.com.cn

2019-05-24 08:33:10 fuhanghang 阅读数 13941
  • 2020考研专业课《计算机操作系统原理》精讲视频课程

    计算机操作系统是计算机专业必修的专业基础课程,是考研的必考科目。它的特点是概念多、较抽象和涉及面广,所以无论是大学学习还是考研,很多同学都把它当做一块硬骨头,其实只要我们掌握正确的学习方法,操作系统课程还是非常容易理解和掌握的,终在考研时取得到高分。

    67282 人正在学习 去看看 任铄

华为鸿蒙系统(HongmengOS或HomonOS),是华为开发的自有操作系统。

华为OS将打通手机、电脑、平板、电视、汽车、智能穿戴,(将这些设备)统一成一个操作系统。且该系统是面向下一代技术而设计的,能兼容全部安卓应用的所有Web应用。若安卓应用重新编译,在华为OS操作系统上,运行性能提升超过60%。

2012年,华为开始规划自有操作系统“鸿蒙”。 

2019年5月17日,由某教授领导的华为操作系统团队开发了自主产权操作系统——鸿蒙。 

华为的「鸿蒙」系统基于Linux开发,但总的来说,它将增加更多的华为特性和功能。华为的「鸿蒙」系统一直处于研发中,此次事件加速了其研发进程,这个系统将打通手机、电脑、平板、穿戴设备、汽车、电视等全领域,重要的是这个系统会兼容Android和Web全部应用,之前的方舟编译器也是此系统的伏笔。

2009-08-28 11:28:00 farsight2009 阅读数 1374
  • 2020考研专业课《计算机操作系统原理》精讲视频课程

    计算机操作系统是计算机专业必修的专业基础课程,是考研的必考科目。它的特点是概念多、较抽象和涉及面广,所以无论是大学学习还是考研,很多同学都把它当做一块硬骨头,其实只要我们掌握正确的学习方法,操作系统课程还是非常容易理解和掌握的,终在考研时取得到高分。

    67282 人正在学习 去看看 任铄

 

作者:朱建民, 华清远见嵌入式学院讲师。

对于一个好的操作系统,需要兼顾功能强大,用户易用性,可靠性,实时性,可维护性, 很多时候最后的设计是这些要求达成的一个平衡,今天我们讨论如何提高操作系统的实时性

    实时分为软实时与硬实时, 软实时要求平均响应时间要小于某一个值,硬实时要求最坏响应时间要小于某一个值,很多应用场景任务的实时要求非常高,比如汽车防抱死系统,差10毫秒就是人命关天,时间就是生命。 电信中主管网络损坏,我们需要在50毫秒之内倒换到备份网络之中,否则可能有成千上万个通话中断, 损失重大, 至于航天系统,实时的重要性要求不言而喻。其他的系统,如手机,太慢了用户感觉肯定不爽,我不希望按接电话键2秒钟都没反应,那样对方可能挂机了。我在华清远见从事讲师工作期间,参加培训的学员经常会聊到系统实时性的话题。

    如何提高操作系统的实时性呢。

    1. 缩短中断响应时间。几乎所有的实时事件都是通过中断上报的,当中断来临时,我们必须停止当前的一切任务,响应中断,我们把中断分成两部分:上半部分与下半部分,或者快中断部分与慢中断部分。上半部分屏蔽其他中断,处理那些紧急任务,如清除某些寄存器,保存中断现场,给相应进程发送消息等, 其他不太紧急的部分放在下半部分,此时所有中断打开,不影响其他任务的完成。

2.  缩短进程上下文切换时间。当CPU在执行某个任务时,实时任务到来,需要马上执行实时任务,我们不能等到当前任务时间片用完才去执行实时任务,那样黄花菜都凉了,必须在中断来临之时马上能过切换过去,保存当前进程的上下文如寄存器,内存,文件,信号等上下文,恢复实时任务的上下文。保存恢复上下文越快越好,这就要求两个进程的上下文共享的资源越少越好,如每个任务的内存是独立的,甚至寄存器也是独立的,这样互不干扰,切换最快了。

3.  缩短实时进程调度时间。一般进程都是按照优先级调度的,实时进程的优先级当然要比非实时的高, 不同实时进程按紧急度不同优先级也不同,实时进程调度算法最好与非实时部分有所区别,算法复杂度最好是O(1).

4.  缩短进程资源分配等待时间。对于一个多进程操作系统,很多资源是大家共享的,如果实时进程需要某个资源,发现那个资源被别的低优先级进程占用,非要等人家执行完才行,而此低优先级进程级别实在太低,其它的进程趁机抢占了CPU, 导致这个低优先级进程迟迟得不到执行,连累苦了我们的实时进程。这样就造成了优先级的反转, 解决优先级反转也有很多办法:主要有优先级继承与优先级极限两种, 原理都相同:此时迅速提高占有资源的低优先级进程的优先级,使其优先级至少与等待资源的实时进程相同。

5.  以空间换时间,减少资源的延迟分配。减少虚资源的分配, 要给就给实的,甚至可以预分配资源。通常进程创建时得到的内存都是虚的,适用malloc得到的资源也是虚拟内存,真正的内存只有当你读些到这个页时才分配,先产生缺页中断,在缺页中断里调用物理页面分配函数,不过这需要一定的时间,硬实时任务是等不及的,所以开始不能跟他玩虚的,狠狠心,开始就把它需要的物理资源备好,所以如果需要寄存器就不要拿Cache敷衍,
如果需要Cache就不要拿内存敷衍,如果需要内存就不要拿硬盘空间敷衍, 传统的以时间换空间的方法在这儿行不通的。在价格能够承受的情况下,尽量分配多级存贮系统的高速部分。

6. 尽量使操作系统简单,甚至定制,为了实时性,我们不得不牺牲他的其他功能,也减少用户易用性,如去掉图形界面部分,去掉虚拟内存管理,甚至去掉多进程,专注于一个任务效率当然最高, 理论证明,如果有多个实时任务,要保证他们都不会 miss deadline, 流出来的缓冲时间至少要达到30%, 这里还没考虑到上下文切换时间,实际需要的缓冲时间更多。

当前实时操作系统有DOS, Windows mobile, Windows CE, VxWorks, 各种实时Linux,  Qnux等。 我国我们的通用操作系统要考虑到实时性,必须在其设计的时候考虑到可裁减性,可配置性,这样到实时场合下,可以很方便的抛弃一切不必要的负担,全身的投入到实时任务之中。而这不是一个简单的要求。

没有更多推荐了,返回首页