计算机实时操作系统的改善措施

时间:2019-05-15 01:58:26下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《计算机实时操作系统的改善措施》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《计算机实时操作系统的改善措施》。

第一篇:计算机实时操作系统的改善措施

《计算机实时操作系统的改善措施》

摘要:

实时系统在工业、商业和军事等领域都有非常广泛的用途,并且已经有很多实际的应用。一般来说,实时系统通常是比较复杂的,因为它必须处理很多并发事件的输入数据流,这些事件的到来次序和几率通常是不可预测的,而且还要求系统必须在事先设定好的时限内做出相应的响应。因此,实时操作系统的实时性是第一要求,需要调度一切可利用的资源完成实时任务。这就要求我们设计好实时操作系统,了解实时操作系统的改善措施对我们非常重要。

关键字:实时操作系统;特点;实现技术;改善措施。

一、计算机实时操作系统的概念

实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行的操作系统。因而,提供及时响应和高可靠性是其主要特点。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。我们通常使用的操作系统在经过一定改变之后就可以变成实时操作系统。

二、实时操作系统的特点

1、高精度计时系统

计时精度是影响实时性的一个重要因素。在实时应用系统中,经常需要精确确定实时地操作某个设备或执行某个任务,或精确的计算一个时间函数。这些不仅依赖于一些硬件提供的时钟精度,也依赖于实时操作系统实现的高精度计时功能。

2、多级中断机制

一个实时应用系统通常需要处理多种外部信息或事件,但处理的紧迫程度有轻重缓急之分。有的必须立即作出反应,有的则可以延后处理。因此,需要建立多级中断嵌套处理机制,以确保对紧迫程度较高的实时事件进行及时响应和处理。

3、实时调度机制

实时操作系统不仅要及时响应实时事件中断,同时也要及时调度运行实时任务。但是,处理机调度并不能随心所欲的进行,因为涉及到两个进程之间的切换,只能在确保“安全切换”的时间点上进行,实时调度机制包括两个方面,一是在调度策略和算法上保证优先调度实时任务;二是建立更多“安全切换”时间点,保证及时调度实时任务。

三、实时性能主要实现技术

实时操作系统的实时性是第一要求,需要调度一切可利用的资源完成实时任务。根据响应时间在微秒、毫秒和秒级的不同,可分为强实时、准实时和弱实时三种。强实时系统必须是对即时的事件作出反应,绝对不能错过事件处理时限。例如测控领域就是要求强或接近强实时系统。在机顶盒、PDA、信息家电等应用领域,系统负荷较重的时候,允许发生错过时限的情况而且不会造成太大的危害,准和弱实时系统就可满足应用。一个强实时的操作系统通常使用以下技术:

1、占先式内核

当系统时间响应很重要时,要使用占先式内核。当前最高优先级的任务一旦就绪,总能立即得到CPU 的控制权,而CPU 的控制权是可知的。使用占先式内核使得任务级响应时间得以最优化。

2、调度策略分析

任务调度策略是直接影响实时性能的因素。强实时系统和准实时系统的实现区别主要在选择调度算法上。选择基于优先级调度的算法足以满足准实时系统的要求,而 且可以提供高速的响应和大的系统吞吐率。当两个或两个以上任务有同样优先级,通常用时间片轮转法进行调度。对硬实时系统而言,需要使用的算法就应该是调度 方式简单,反应速度快的实时调度算法了。尽管调度算法多种多样,但大多由单一比率调度算法(RMS)和最早期限优先算法(EDF)变化而来。前者主要用于 静态周期任务的调度,后者主要用于动态调度,在不同的系统状态下两种算法各有优劣。在商业产品中采用的实际策略常常是各种因素的折中。

3、任务优先级分配

每个任务都有其优先级。任务越重要,赋予的优先级应越高。应用程序执行过程中诸任务优先级不变,则称之为静态优先级。在静态优先级系统中,诸任务以及它们的时间约束在程序编译时是已知的。反之,应用程序执行过程中,任务的优先级是可变的,则称之为动态优先级。

4、时间的可确定性

强实时操作系统的函数调用与服务的执行时间应具有可确定性。系统服务的执行时间不依赖于应用程序任务的多少。系统完成某个确定任务的时间是可预测的。

四、实时操作系统中遇到的问题

1、优先级反转

这是实时系统中出现得最多的问题。优先级反转是指一个任务等待比它优先级低的任务释放资源而被阻塞,如果这时有中等优先级的就绪任务,阻塞会进一步恶化。它严重影响了实时任务的完成。

2、任务执行时间的抖动

各种实时内核都有将任务延时若干个时钟节拍的功能。优先级的不同、延时请求发生的时间、发出延时请求的任务自身的运行延迟,都会造成被延时任务执行时间不同程度的提前或滞后,称之为任务执行时间的抖动。

3、任务划分

程序在CPU 中是以任务的方式在运行,所以我们要将系统的处理框图转化为多任务流程图,对处理进行任务划分。任务划分存在这样一对矛盾:如果任务太多,必然增加系统任 务切换的开销;如果任务太少,系统的并行度就降低了,实时性就比较差。

五、实时操作系统改善措施

跟据上述讨论的实时操作系统中遇到的问题我们提出相应的改善措施,如下所示:

1、对于优先级反转的改善措施

为防止发生优先级反转,一些商业内核(如VxWorks)使用了优先级继承技术,当优先级反转发生时,优先级较低的任务被暂时地提高它的优先级,使得该任务能尽快执行,释放出优先级较高的任务所需要的资源。但它也不能完全避免优先级反转,只能称其减轻了优先级反转的程度,减轻了优先级反转对实时任务完成的影响。

优先权极限是另一种解决方案,系统把每一个临界资源与1个极限优先权相联系,这个极限优先权等于系统此时最高优先权加1。当这个任务退出临界区后,系统立即把它的优先权恢复正常,从而保证系统不会出现优先权反转的情况。采用这种方案的另一个有利之处,是仅仅通过改变某个临界资源的优先级就可以使多个任务共享这个临界资源。

2、对于任务时间抖动的改善措施 可能的解决方案有:

a.增加微处理器的时钟频和时钟节拍的频率; b.重新安排任务的优先级; c.避免使用浮点运算等。

强实时系统中,我们必须综合考虑,充分利用各种手段,尽量减少任务执行时间的抖动。

3、对于任务划分的改善措施

在任务划分时要遵循H.Gomma 原则: a. I/O原则:不同的外设执行不同任务;

b. 优先级原则:不同优先级处理不同的任务; c. 大量运算:归为一个任务; d. 功能耦合:归为一个任务; e. 偶然耦合:归为一个任务;

f. 频率组合:对于周期时间,不同任务处理不同的频率。

如果我们在具体分析一个系统的时候发生原则冲突的话,则要为每一个原则针对具体的系统设定“权重”,必要的时候可以通过计算“权重”来最终确定如何去划分任务。

第二篇:计算机控制系统实时性的改善措施

Hefei University

计算机控制技术

课程题目: 计算机控制系统实时性的改良措施

姓 名: 111 学 号: 11111

指导老师: 11111

摘要:实时系统是能够在确定的时间内执行计算或处理事务并对外部事件作出响应的计算机系统。对很多嵌入式系统来说,一个设计良好的实时操作系统(RTOS)可以让开发工程师掌握系统执行任何任务或响应任何关键事件的时间,满足系统实时性要求。为了理解RTOS如何通过系统调度策略实现实时性要求,本文介绍了抢占式调度、可抢占的内核、优先级继承和中断处理等概念。

Abstract: real-time system is able to the determination of the time or processing performs calculations and a response to external affairs events of the computer system.For many embedded systems for, a design good real-time operating system(RTOS)can let the development engineers grasp the system to carry out any task or response to any of the key events of the time, meet the system in real-time.In order to understand how RTOS through the system to realize real-time scheduling strategy, this paper introduces the pre-emptive scheduling, but the core of preemption, priority concepts such as inherit and interrupt handling.关键字:计算机、控制系统、实时性、措施

正文:

1.RT-Linux的系统结构

RT-Linux的基本思想就是使Linux运行在实时核心之下,见图1。RT—Linux是一个可加载的核心模块。一个小的RT-Linux实时内核同原来的Linux内核共同控制处理器。实时内核直接管理硬件中断,因此实时内核操纵着机器的响应时间,原来的Linux就无法影响实时任务了。在RT-Linux中设计了两类中断。软中断是正常的Linux中断,硬中断则是真正的实时中断,执行时几乎没有任何延迟。实现时,RT-Linux是通过在 Linux核心和中断处理器之间设计一个仿真软件来达到其目的的。

实时中断不经过中断仿真器,标准Linux的所有硬件中断首先被中断仿真器捕获,所以也根本无法影响实时进程的处理。当实时内核禁止中断时,仿真器中的一个标志位被置0。当有其它非实时中断产生时,仿真器检查那个标志位,如果为0,说明不允许中断,否则可以立即执~Linux中断处理程序。筒而言之,Linux不能中断自身,但是RT-Linux可以中断Linux,这也就达到了所谓的”RT—Linux的核心可抢占机制”。实时任务与普通进程之间的通信是通过封锁,释放队列来完成的。具体地说就是当有实时任务要完成时,实时操作系统运行实时内核下的任务;当没有实时任务时,实时内核调度 Linux运行。所以Linux是实时内核中优先级最低的一个任务。

目前为止,在RT-Linux中采用两种调度策略。一种是基于优先级的抢占式调度算法;另一种是lsmaelRipoll实现的 EDF(EarliestDeadlineFirst)算法。对于周期性任务可以采用单调率调度算法,即周期短的任务能够获得较高的优先级。调度策略将 Linux视为赋予最低优先级的实时任务。

Linux仅仅在实时系统没有其它任务时运行。Linux和实时任务之间的转换依据上述提及的软中断状态而定。RT-Linux通过这样一种设计方法,将标准的Linux核心改成一个可抢占的、具有低延迟中断处理的实时系统。

2.提高实时操作系统的实时性能和可靠性策略

对很多嵌入式系统来说,一个设计良好的实时操作系统(RTOS)可以让开发工程师掌握系统执行任何任务或响应任何关键事件的时间,满足系统实时性要求。为了理解RTOS如何通过系统调度策略实现实时性要求,本文介绍了抢占式调度、可抢占的内核、优先级继承和中断处理等概念。在设计工业控制系统或医疗设备时,大部分工程师和系统设计工程师会认为采用RTOS是必需的。然而,网际路由器、车载娱乐系统和多媒体设备等普通应用还需要采用RTOS吗?像Linux或Windows这样的通用操作系统是否就能胜任呢?通常,这些产品需要采用RTOS,但是这个问题常常直到设计阶段的后期才能意识到。RTOS对于很多嵌入式系统来说不但是有益的,而且也是必要的,认识到这一点很重要。例如,一个播放如MPEG格式电影的设备,如果依靠软件来实现其整个内容传输,可能会出现用户难以接受的高丢帧率。然而,通过使用RTOS,系统设计工程师能够准确地控制软件过程的执行顺序,从而保证按照给定的媒体速率进行播放。上述大部分情况适用于用户希望对输入做出立即响应的系统。通过RTOS,开发人员能够保证由用户的操作总能得到及时的响应,除非一个更重要的操作(如一项有助于保障用户安全的操作)必须首先执行。总之,一个好的RTOS支持开发人员控制系统执行任何任务或对任何重要事件做出反应的时间,并且能够以一种可以预测并且完全一致的形式满足任务执行的最终期限要求。但是,如果RTOS崩溃,这些最终期限就不能被满足。因此,RTOS必须提供高度的可靠性。特别是它必须提供在不需要重启的情况下,从软件故障中快速并智能恢复的机制。

3.抢占式调度

在像Linux这样的通用操作系统中,在对线程和进程的CPU占用上采用了“公平”调度策略。这样的策略能够提供良好的整体表现,但是不能保证高优先级、对时间要求严格的线程将优先于低优先级的线程执行。事实上,操作系统有时甚至会中断高优先级的线程来为低优先级线程提供CPU时间。其结果可能造成对时间要求严格的线程很容易地错过它们的最终期限,甚至在一个高速的高端处理器上运行时也会出现这种情况。而在RTOS中,线程按照其优先级顺序执行。如果一个高优先级的线程准备运行时,它将在一个短的、有限时间间隔内从任何可能正在运行的低优先级进程接管CPU。另外,高优先级的线程能够不被中断地运行,直到它已经完成了需要做的事情-当然是在不被更高优先级进程抢占的前提下。这种方法就是抢占式调度,保证了高优先级线程始终满足其最终期限,而不管有多少其它线程正在竞争CPU时间。通过合理地控制线程优先级,开发者能显著地提高很多对用户非常重要的应用响应速度。然而,控制优先级可能是一把双刃剑,当使用不当时它可能会潜在地导致低优先级的进程不能得到CPU时间。保证高优先级的进程和线程的同时确保不会使其它进程处于“饥饿”状态的关键是要对它们的执行进行限制,通过对执行进行调整或在响应加载的过程中进行控制,开发人员能够限制这些活动消耗的CPU时间比例,并支持低优先级进程获得对CPU的共享。优先级控制能够使很多应用受益,包括像前面提到的媒体播放器(MP3、WAV、MPEG2等格式)。媒体播放器需要实现正常播放所要求的速率(例如44kHz的音频、30fps的视频)。在这种限制之下,一个读线程和一个显示线程可以被设计成依靠一个可编程的定时器来唤醒,缓冲或显示一帧后进入睡眠状态,直到下一个定时触发。这提供了一种调整机制,支持高于正常用户活动而又低于关键系统功能的优先级设置。换句话说,如果没有更重要的任务准备运行,媒体播放将始终以给定的媒体速率执行。

4.最坏情形

抢占式调度仅在高优先级的线程在一个短的、有限时间段内抢占低优先级线程的情况下有效。否则,系统将不可能预测要花费多长时间来执行一个给定的操作。因此,任何销售进程模式的RTOS的供应商都必须提供针对下面两种时间间隔提供最坏情形:线程切换时间,即当两个线程处于同一进程的情况下,从执行一个线程的最后一条指令到执行下一个被调度线程的第一条指令所经过的时间;前后关系切换(context switch)时间,其定义同上,但仅针对两个线程处于不同进程的情况。可以将线程看作是最小的“执行单元”,而将进程看作是一个或多个线程的“容器”,进程定义了线程将要在其中执行的地址空间。显然,最坏情形的前后关系切换时间将比最坏情形的线程切换时间要慢,尽管在一个好的RTOS设计中差别可能是微不足道的。将所有的线程放在几个大的进程中将是错误的,因为线程提供的切换速度更快。虽然线程能实现并行处理优势因而适合于某些设计,但将一个应用分成多个内存保护的进程使得代码更容易调试,提供了更好的错误隔离和恢复能力,并允许系统进行新功能的动态升级。

5.可抢占的内核

在大部分通用操作系统中,操作系统的内核是不可抢占的。其结果是,一个高优先级的进程不可能抢占一个内核调用,而是必须等待整个调用完成,即使这个调用是由系统中的低优先级进程发起的。另外,当经常在内核调用中执行的驱动程序或其它系统服务代表一个客户线程执行的时候,所有的优先级信息常常会丢失,这导致了不可预测的延迟并阻止了关键活动的准时完成。而在RTOS中,内核操作是可抢占的。尽管仍然会存在一些时间窗口,在这些时间窗口中可能没有抢占,但是这些时间间隔应该是相当短暂的,通常在几百纳秒。另外,必须有一个关于抢占被推迟或中断被禁止的时间上限,这样开发者可以确定最坏情形下的等待时间。为了实现这个目标,操作系统内核必须尽可能简洁,只有具有较短执行路径的服务才被包含在内核中,任何需要大量工作(如进程加载)的操作必须被安排到外部进程或线程。这种方法有助于通过内核确保最长的不可抢占代码路径具有一个时间上限。

6.优先级继承

然而,为一个进程设定一个高优先级并不总能保证该进程能够抢占低优先级的进程。有时候,系统会出现一种称为优先级倒置(priority inversion)的状态,在这种状态下,低优先级的进程将在“无意中”阻止较高优先级进程占用CPU。优先级倒置可能会表现为几种形式,为了防止发生这种情况,RTOS必须提供一种称为优先级继承的功能。假定系统有三个进程:A(低优先级),B(中等优先级),Z(高优先级)。这里Z是一个为A和B提供服务的“服务器”进程。现在假定A已经请求Z来执行一个计算,而在这期间,突然B需要Z的服务。因为B拥有比A更高的优先级,一般会认为Z将立即挂起A的请求并将转向为B服务。但是实际情况并非如此,因为Z比B具有更高的优先级。其结果是,B不能阻止Z完成它当前的工作,即对A做出响应。从效果上看,低优先级的进程A占用了更高优先级进程B的CPU时间,这是引入优先级继承的原因。通过使用RTOS提供的优先级继承机制,系统可以在A发出请求的情况下,让Z继承A的低优先级。通过这种方式,B能够在任何时候抢占A的请求。如果一个应用程序分布于几个通过网络连接的处理器,那么RTOS也应该支持分布式优先级继承,这样可以按照优先级的顺序处理来自多个处理器的请求。如果没有优先级继承,一个多处理器系统可能会落入无限的优先级倒置和死锁中。7.中断处理

为了获得对外部事件的及时响应,最小化硬件中断发生到执行该中断的第一条代码的时间很重要。这个时间间隔称为中断延迟,为了保证中断延迟尽可能小,一个好的RTOS应该在几乎所有时间内都支持产生中断。正如在关于内核抢占部分提到的那样,一些重要的代码段的确需要暂时屏蔽中断。这种最大的屏蔽时间通常被定义为最大的中断延迟。在某些情况下,硬件中断处理器必须调度并运行一个更高优先级的线程(例如在一个驱动程序中)。在这样的情况下,中断处理器将返回并指示一个事件将被处理。这样的处理将引入了第二种形式的延迟-调度延迟,这个延时必须在设计中加以考虑。调度延迟是介于用户的中断处理器的最后一条指令和驱动程序线程第一条指令的执行之间的时间。在一个嵌入式系统中可能会同时出现多个硬件中断。例如,在一个病人监护系统中,当一个传感器记录了病人心跳的一次变化并且网卡接收到网络传来的数据的同时,护士按了触摸屏。很明显,一些中断(如心率的变化)应该立即得到处理,而其他的则可以延缓。通过提供对嵌套中断的支持,RTOS支持嵌入式系统优先处理更高优先级的中断。

8.如何提高可靠性

我们已经明白怎样使RTOS具有可以预测性,但是如何实现其可靠性呢?答案在很大程度上取决于RTOS的架构。例如在实时执行模式架构中,大部分或所有软件组件都在一个单一的内存地址空间中运行,包括操作系统内核、网络协议栈、设备驱动程序、应用程序等。虽然很有效率,但这种架构有两个明显的缺陷:1.在任何组件中的一个指针错误,不论这个错误多么细微,都可能破坏操作系统内核或任何其它组件,导致不可预测的行为和整个系统的崩溃;2.很难动态修复或替换任何有故障的组件。在大多数情况下,出现这些问题时系统复位是唯一的选择。一些RTOS,也像Linux一样,试图通过使用单内核架构来解决这个问题。在这种架构中,用户的应用程序在隔离的、受保护内存地址空间中运行。如果一个应用程序试图访问其地址空间之外的数据,内存管理单元(MMU)将通知操作系统,操作系统可能会采取保护措施,例如终止出错进程。然而,这样的操作系统需要将大多数或所有驱动程序、文件系统和其它系统服务绑定到内核中。因此,任何组件中的一个错误都可能带来灾难性的内核故障。第三种方法是采用微内核(mricokernel)架构来提供更精确的故障隔离,像QNX Neutrino这样的操作系统都基于微内核架构。

微内核有两个明确的特征:

1.在操作系统内核中只实现了一个包含了基本OS服务的小内核(如信号量、定时器、任务调度等)。包括驱动程序、文件系统、协议栈和用户应用程序在内的所有其它的组件在内核外部分离的、保护内存的进程中运行。有问题的系统服务不再作为孤立的故障点,而是在它破坏其它服务或操作系统内核之前被终止并重启。2.所有的组件能够通过消息传递进行通信,一个定义良好的通信机制保障了程序在保持彼此安全隔离的前提下进行数据交换。适当实现的消息传递也可以作为一个虚拟的“软件总线”,允许几乎任何的软件组件,甚至是一个设备驱动程序被动态地加入或替换,对于必须提供连续服务的系统而言这是一项关键要求。

和传统的操作系统架构相比,微内核支持嵌入式设备赢得明显更快的平均修复时间(MTTR)。例如,如果一个设备驱动程序失败将可能出现以下情况:操作系统可以终止该驱动程序,回收其正在使用的资源,并对其进行重新启动,这个过程通常这只需要几个毫秒时间。

尽管和传统的操作系统相比,基于消息传递的微内核RTOS通常提供了更好的容错性和动态升级能力,也有一些观点认为消息传递增加了开销。在实际应用中,如果实现正确,消息传递的性能可以接近底层硬件的内存带宽。例如,一个微内核RTOS可以采用多段式(multipart)消息和线程到线程的消息数据直接拷贝等各种技术,来确保系统性能可以达到传统的进程间通信(IPC)方法的水平。由一些组织如Dedicated Systems(网址:www.omimo.be)等进行的独立测试证实,和传统的RTOS相比,微内核RTOS在一系列的实时指标方面表现良好,在很多情况下甚至有更好的表现。

9.策略决策

RTOS有助于使一个复杂的应用程序具有可预测性和可靠性。当然,选择一个合适的RTOS本身就是一项复杂的任务,而RTOS的底层架构是选择的重要依据,此外还有一些其它因素,包括:

1.调度算法的灵活选择。RTOS应该支持调度算法的选择(先入先出(FIFO)、轮询(round robin)、零星调度等)并支持以线程为单位设定这些算法。这样,工程师就可以不必将一个算法用到系统中的所有线程。

2.图形用户界面(GUI)。RTOS使用的是原始的图形库还是能支持多层界面、多路显示、3D渲染以及其它高级的图形功能的真正的窗口系统?能很容易定制GUI的外观吗?GUI支持同时显示和输入多种语言(汉语、韩语、日语、英语、俄语等)吗?

3.远程诊断工具。因为对很多嵌入式系统而言,中断系统运行进行检测和维护是无法接受的。RTOS供应商应该提供诊断工具,这些工具能够在不中断系统服务的前提下分析系统的行为。要寻找能提供代码覆盖、应用测评、跟踪分析和内存分析工具的供应商。

4.开发平台。RTOS提供商提供的开发环境是基于像Eclipse那样的开放平台,允许工程师嵌入所喜爱的第三方工具来进行建模、版本控制吗?还是开发环境基于专利技术?

5.互联网功能。RTOS支持预集成最新的IPv4、IPv6、IPsec、SCTP和具有NAT功能的IP过滤等协议栈套件吗?它支持嵌入式网络浏览器吗?浏览器应该具有可扩展的封装模式,并能够在很小的屏幕上绘制网页。它也应该支持像HTML 4.01、XHTML 1.1、SSL 3.0和 WML 1.3这样的标准。

6.标准API。RTOS将你限定到专有的API之中了吗?还是它对于像POSIX这样的标准API提供了完全的支持,这使得将代码移植到其它操作系统,或者从其它操作系统移植代码变得更容易?另外,所用的RTOS提供完全一致性的API还是仅仅支持被定义接口的一个子集?例如,POSIX.1的最新版本包含了大约1,300个接口。

7.多处理技术。RTOS能支持对称多处理和分布式多处理技术来提高应用性能和容量吗?如果这样,是必须重新设计你的应用程序呢,还是RTOS能够将应用程序透明的分配到多个处理器上去呢?

8.源代码工具包。RTOS供应商提供了能使RTOS满足设计需求的具有详细文档的定制工具包吗?供应商提供了方便开发驱动定制硬件的驱动程序开发工具包吗?

9.对于很多公司而言,选择一款RTOS是一项战略性决策。RTOS供应商在对上述问题提供了清楚的回答后,你将选择出一个在现在和将来都适合你的RTOS。

第三篇:实时操作系统报告

实时操作系统课程实验报告

专业:通信1001 学号:3100601025 姓名:陈治州

完成时间:2013年6月11日

实验 简易电饭煲的模拟

一.实验目的:

掌握在基于嵌入式实时操作系统µC/OS-II的应用中,基于多任务的模式的编程方法。锻炼综合应用多任务机制,任务间的通信机制,内存管理等的能力。

二.实验要求:

1.按“S”开机,系统进入待机状态,时间区域显示当前北京时间,默认模式“煮饭”;2.按“C”选择模式,即在“煮饭”、“煮粥”和“煮面”模式中循环选择;

3.按“B”开始执行模式命令,“开始”状态选中,时间区域开始倒计时,倒计时完成后进入“保温”状态,同时该状态显示选中,时间区域显示保温时间;

4.按“Q”取消当前工作状态,系统进入待机状态,时间区域显示北京时间,模式为当前模式;

5.按“X”退出系统,时间区域不显示。

6.煮饭时长为30,煮粥时长为50,煮面时长为40.三.实验设计:

1.设计思路:

以老师所给的五个程序为基础,看懂每个实验之后,对borlandc的操作有了大概的认识,重点以第五个实验Task_EX为框架,利用其中界面显示与按键扫描以及做出相应的响应,对应实现此次实验所需要的功能。

本次实验分为界面显示、按键查询与响应、切换功能、时钟显示与倒计时模块,综合在一起实验所需功能。2.模块划分图:(1)界面显示:

Main()Taskstart()Taskstartdispinit()在TaskStartDispInit()函数中,使用PC_DispStr()函数画出界面。(2)按键查询与响应:

Main()Taskstart()在TaskStart()函数中,用if(PC_GetKey(&key)== TRUE)判断是否有按键输入。然后根据key的值,判断输入的按键是哪一个;在响应中用switch语句来执行对应按键的响应。(3)切换功能:

l计数“C”按键的次数M=l%3Switch(m)M=0,1,2对应于煮饭,煮粥,煮面,然后使用PC_DispStr()函数在选择的选项前画上“@”指示,同时,在其余两项钱画上“ ”以“擦出”之前画下的“@”,注意l自增。

四.主要代码:

#include “stdio.h” #include “includes.h” #include “time.h” #include “dos.h” #include “sys/types.h” #include “stdlib.h” #define TASK_STK_SIZE

512

#define N_TASKS

OS_STK

TaskStk[N_TASKS][TASK_STK_SIZE];

OS_STK

TaskStartStk[TASK_STK_SIZE];

INT8U

TaskData[N_TASKS];

void Task0(void *pdata);

void TaskStart(void *pdata);

static void TaskStartDispInit(void);

void main(void){

PC_DispClrScr(DISP_FGND_WHITE + DISP_BGND_BLACK);

OSInit();

PC_DOSSaveReturn();

PC_VectSet(uCOS, OSCtxSw);

OSTaskCreate(TaskStart,(void *)0, &TaskStartStk[TASK_STK_SIZE-1], 4);

OSStart();

} void TaskStart(void *pdata){ #if OS_CRITICAL_METHOD == 3

OS_CPU_SR cpu_sr;#endif

INT8U l,m;

INT16S key;

l=0;

pdata = pdata;

TaskStartDispInit();

OS_ENTER_CRITICAL();

PC_VectSet(0x08, OSTickISR);

PC_SetTickRate(OS_TICKS_PER_SEC);

OS_EXIT_CRITICAL();

OSStatInit();

for(;;){

if(PC_GetKey(&key)== TRUE)

{

switch(key)

{

case 0x1B:

PC_DOSReturn();

break;

case 0x43:

{ m=(l%3);

switch(m)

{ case 0: {

PC_DispStr(26,6, “@”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

PC_DispStr(40,6, “ ”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);PC_DispStr(55,6, “ ”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);} break;

case 1: { PC_DispStr(26,6, “ ”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

PC_DispStr(40,6, “@”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

PC_DispStr(55,6, “ ”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);} break;case 2: { PC_DispStr(26,6, “ ”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);

PC_DispStr(40,6, “ ”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);PC_DispStr(55,6, “@”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);}

break;}

l++;} break;

} } OSCtxSwCtr = 0;

OSTimeDlyHMSM(0, 0, 1, 0);

} } static void TaskStartDispInit(void){ PC_DispStr(0, 0, “

uC/OS-II, The Real-Time Kernel

”, DISP_FGND_WHITE + DISP_BGND_RED + DISP_BLINK);PC_DispStr(0, 1, “

”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);PC_DispStr(0, 2, “

”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);PC_DispStr(0, 3, “

dianfanbao shiyan

”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);PC_DispStr(0, 4, “

”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);PC_DispStr(0, 5, “

”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);PC_DispStr(0, 6, “

kai shi.zhu fan.zhu zhou.zhu mian.”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);PC_DispStr(0, 7, “

”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);PC_DispStr(0, 8, “

bao wen.”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);PC_DispStr(0, 9, “

”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);PC_DispStr(0, 10, “

”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);PC_DispStr(0, 11, “

”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);PC_DispStr(0, 12, “

”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);PC_DispStr(0, 13, “

”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);PC_DispStr(0, 14, “

”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);PC_DispStr(0, 15, “

”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);PC_DispStr(0, 16, “

”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);PC_DispStr(0, 17, “

”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);PC_DispStr(0, 18, “

”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY);PC_DispStr(0, 19, “ 'S':kai ji.”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY + DISP_BLINK);PC_DispStr(0, 20, “ 'C':mo shi qie huan.”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY + DISP_BLINK);PC_DispStr(0, 21, “ 'B':kai shi zhi xin.”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY + DISP_BLINK);PC_DispStr(0, 22, “ 'Q':qu xiao dang qian gong zuo zhuang tai.”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY + DISP_BLINK);PC_DispStr(0, 23, “ 'X':tui chu xi tong.”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY + DISP_BLINK);

PC_DispStr(0, 24, “

<-PRESS 'ESC' TO QUIT->

”, DISP_FGND_BLACK + DISP_BGND_LIGHT_GRAY + DISP_BLINK);}

五.运行界面:

(1)主界面:

(2)显示北京时间:

(3)模式切换:

(4)倒计时:

(5)保温执行时间:

六.总结:

本次实验主要以老师所给的实验事例为基础,并结合老师课堂讲的内容,理解编写程序。做实验本实验前,先执行了一下事例程序,以此了解borlandc的一些基本操作;然后就是看懂每个实验的框架和主要部分;接着,将事例程序中的部分思想运用到本次实验中,其中以显示界面的思想运用的最多;除此以外,在模式切换上花了最大的精力,最终的解决方法是以变量l作为一个计数值,并运用switch语句在选择的模式上画上“@”,同时还得注意在未选择的模式上画上空格来“擦除”之前画上的@;在查询按键上,同样运用switch语句......这次实验收获不少,不仅对之前学的C语言有了更进一步的巩固,而且还强化了ucos里面的多任务的一些认识;同时,以前对DOS界面很陌生,但本次实验使用的正是DOS界面,通过几天的经历,对DOS中的编译、“help”等各个方面有了更深入的认识,不再害怕使用DOS了。

对本课程有很大的兴趣,在以后的课余时间里我会不断学习这些知识。

第四篇:嵌入式Linux实时操作系统习题总结

第1章

1.嵌入式系统是指操作系统和功能软件集成于计算机硬件系统之中。嵌入式系统一般有3个主要的组成部分:硬件、实时操作系统以及应用软件。

2.嵌入式系统的三要素是嵌入、专用、计算机;即以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

3.目前国际较为知名的有:VxWorks、NeutrinoRTOS、Nucleus Plus、OS/

9、VRTX、LynuxOS,RTLinux、BlueCat RT等。

4.嵌入式系统一般由硬件层、中间层、软件层和功能层组成。其作用分别如下:

(1)硬件层 :由嵌入式微处理器、外围电路和外设组成。操作系统和应用程序都可以固化在ROM或者Flash中。为方便使用,有的模块在此基础上增加了LCD、键盘、USB接口,以及其他一些功能的扩展电路。

(2)中间层 :硬件层与软件层之间为中间层,其作用将系统软件与底层硬件部分隔离,使得系统的底层设备驱动程序与硬件无关;

(3)软件层 :主要是操作系统,有的还包括文件系统、图形用户接口和网络系统等。操作系统是一个标准的内核,将中断、I/O、定时器等资源都封装起来,以方便用户使用。(4)功能层 :由基于操作系统开发的应用程序组成,用来完成对被控对象的控制功能。5.非占先式调度法也称作合作型多任务(cooperative multitasking),各个任务彼此合作共享一个CPU。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。当系统响应时间很重要时,要使用占先式(preemptive)内核。最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就被剥夺了。6.在实时系统中,如果系统在指定的时间内未能实现某个确定的任务,会导致系统的全面失败,这样的系统被称硬实时系统。在弱实时系统中,超时却不会发生致命的错误。其实时性的要求比硬实时系统要差一些。

7.嵌入式系统的设计步骤及各部分的主要工作如下。(1)需求分析阶段,罗列出用户的需求;

(2)体系结构设计阶段,描述系统的功能如何实现;

(3)详细设计阶段,进行硬件系统与软件系统的分类划分,以决定哪些功能用硬件实现,哪些用软件实现;

(4)系统集成,把系统的软件、硬件和执行装置集成在一起,进行调试,发现并改进在设计过程中的错误;

(5)系统测试,对设计好的系统进行测试,看其是否满足给定的要求。8.Linux作为嵌入式操作系统的优势主要有以下几点:

(1)可应用于多种硬件平台。

(2)Linux的高度模块化使添加部件非常容易。

(3)Linux是一个和Unix相似、以内核为基础的、具有完全的内存访问控制,支持大量硬件的一种通用操作系统。

(4)Linux可以随意地配置,不需要任何的许可证或商家的合作关系。

(5)Linux带有Unix用户熟悉的完善的开发工具。其强大的语言编译器GCC,C++等也可以很容易得到,不但成熟完善,而且使用方便。9. Linux执行进程调度一般是在以下情况发生的:(1)正在执行的进程运行完毕;

(2)正在执行的进程调用阻塞原语将自己阻塞起来进入等待状态;(3)正在执行的进程调用了P原语操作,从而因资源不足而被阻塞;(4)执行中的进程提出I/O请求后被阻塞;(5)系统分配的时间片已经用完;

(6)就绪队列中的某个进程的优先级变得高于当前运行进程的优先级。

第4章

1、Linux 内核的编译菜单有好几个版本,运行:

(1)make config:进入命令行,可以一行一行的配置,但使用不十分方便。

(2)make menuconfig:大多数开发人员使用的Linux 内核编译菜单,使用方便。

(3)make xconfig:在2.4.X 以及以前版本中xconfig 菜单是基于TCL/TK 的图形库的。

2、在完成内核的裁减之后,内核的编译就只要执行以下几条命令: make clean

编译内核之前先把环境给清理干净。make dep

编译相关依赖文件 make zImage

创建内核镜像文件 make modules 创建内核模块。

make install

把相关文件拷贝到默认的目录。

3、此命令是装载压缩映像文件zImage到flash存储器中,地址是kernel分区,并采用xmodem传输协议。

4、此命令是设置网卡1的地址192.168.1.1,掩码为255.255.255.0,不写netmask参数则默认为255.255.255.0。

5、此命令将nfs服务的共享目录sharedir加载到/mnt/nfs。

6、此命令是装载根文件系统root.cramfs到flash存储器中,地址是根文件系统分区,并采用xmodem传输协议。

7、这个命令的操作同时进行了分区和格式化,0~128K存放vivi,128K~192K存放VIVI控制台指令,192K~1216K存放kernel,1216K~4288K存放root,其余部分存放应用程序。

第6章

1.使用虚拟地址寻址整个系统的主存和辅存的方式在现代操作系统中被称为虚拟内存。虚拟内存的管理方法使系统既可以运行体积比物理内存还要大的应用程序,也可以实现“按需调页”策略,既满足了程序的运行速度,又节约了物理内存空间。2.进程内存区域涉及到5种数据段,即:

①代码段:代码段是用来存放可执行文件的操作指令。

②数据段:数据段用来存放可执行文件中已初始化全局变量。③BSS段:BSS段包含了程序中未初始化的全局变量。④堆(heap):用于存放进程运行中被动态分配的内存段,它的大小并不固定,可动态扩张或缩减。

⑤栈:栈是用户存放程序临时创建的局部变量。3.在Linux系统中,内核在最高级执行,也称为“系统态”,在这一级任何操作都可以执行。而应用程序则执行在最低级,即所谓的“用户态”。在这一级处理器禁止对硬件的直接访问和对内存的未授权访问。模块是在所谓的“内核空间”中运行的,而应用程序则是在“用户空间”中运行的。它们分别引用不同的内存映射,也就是程序代码使用不同的“地址空间”。4.共享内存区域是被多个进程共享的一部分物理内存。如果多个进程都把该内存区域映射到自己的虚拟地址空间,则这些进程就都可以直接访问该共享内存区域,从而可以通过该区域进行通信。共享内存是进程间共享数据的一种最快的方法,一个进程向共享内存区域写入了数据,共享这个内存区域的所有进程就可以立刻看到其中的内容。5.内存管理利用虚拟文件系统支持交换,交换进程(swapd)定期由调度程序调度,这也是内存管理依赖于进程调度的唯一原因。当一个进程存取的内存映射被换出时,内存管理向文件系统发出请求,同时,挂起当前正在运行的进程。

第9章

1.参考答案:

Mutex互斥量,用于操作某个临界资源时对该资源上锁,以实现互斥地对独占资源的使用。Semophore信号灯,信号灯内有一计数器,可以用于对多个同类资源的分配。

Condition条件变量,条件变量用于等待信号。当一个线程需要等待某个信号时,就可到条件变量上等待,当信号具备时,系统会唤醒该线程继续运行。2.参考答案:

本地:共享内存+信号量,适合于大量数据传输。Linux支持系统V和POSIX的共享内存和信号量。(5分)

远程:Socket+应用协议。适合于跨网络的(大量)数据传输。Linux支持BSD的socket。应用层协议需要自行设计。(5分)

3.答案要点:程序是编译后形成的可执行代码,是静止的。进程是程序的一次执行,是活动的。线程是进程的可执行单元,同一进程的不同线程共享进程的资源和地址空间。4.两种实现方法,一种是继承Thread,另外一种是实现接口Runnable。

同步的实现方法有两种,分别是synchronized, wait与notify。用synchronized可以对一段代码、一个对象及一个方法进行加锁。用wait与notify可以使对象处于等待及唤醒方式导致同步,因为每个对象都直接或间接的继承了Object类。

5、什么是BootLoader?主要有几种工作模式及主要功能是什么? 答:

Bootloader就是操作系统内核运行的一段小程序,完成进行初始化系统硬件设置的任务,(2分)

分为启动加载模式和下载模式。(1启动加载模式

启动加载(Boot laoding)模式是指 Bootloader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。(2分)(2)下载模式

在下载模式下,目标机上的 Bootloader 将先通过串口连接或网络连接等通信手段从宿主机下载文件。(2分)

6、简述Bootloader有何作用?

答案要点:(1)首先,bootloader是在特定硬件平台运行的程序,严重依赖于硬件平台,需要移植;(2)是系统上电之后,第一个运行的程序,系统在上电或复位时通常都从地址 0x0 处开始执行,而在这个地址处安排的通常就是系统的 Boot Loader 程序;(3)bootloader程序的设计目标是启动嵌入式操作系统,嵌入式操作系统的启动需要一定的条件,这些条件由bootloader来满足;(4)Bootloader一般具有对存储器和网络接口操作的功能;如擦除、读写Flash,通过USB、串口下载文件等

第五篇:嵌入式实时操作系统 项目开发总结报告

项目开发总结报告

分 类:软件项目计划 使用者:E-fanciers

Version: 1.0

项 目 承 担 队伍:烟台大学

计算机学院 E-fanciers小组撰 写 人(签名): 许超 于歌

完 成 日 期: 2009-7-16 本文档使用小组: E-fanciers小组

评审负责人(签名): 孝瑞

评 审 日 期: 2009-7-19

目 录

一、引言.............................................3

1.1编写目的.......................................3 1.2项目背景.......................................3 1.3定义...........................................3 1.4参考资料:.....................................3

二、开发结果........................错误!未定义书签。

2.1产品..........................错误!未定义书签。2.2主要功能......................错误!未定义书签。2.3所用工时.......................................4 2.3所用机时.......................................4 2.3进度...........................................4

三、评价............................................4

3.1生产率评价.....................................4 3.2技术方案评价...................................4 3.3产品质量评价...................................4

四、经验与教训.......................................4

一.引言

1.编写目的(阐明编写总结报告的目的,指明读者对象。)

详细陈述项目开发过程,对项目开发做最后的总结完善,说明项目开发过程中遇到的难题及解决方案。

2.项目背景(说明项目的来源、委托单位、开发单位及主管部门。)

随着微电子技术、计算机技术和网络通信技术的发展,嵌入式系统已广泛应用在各个领域,包括消费电子、汽车电子、网络通信、工业设备、航空航天和国防军事等。随着嵌入式技术的发展,工业领域也一改过去传统的单片机应用模式,逐渐将一些新嵌入式技术引入到系统中。特别是作为软件基础的嵌入式操作系统已广泛为业界所接受,借以提高系统的开发效率和运行效率。是否采用嵌入式操作系统,已成为工业设备品质优劣的标志之一。

当今的嵌入式操作系统领域呈现百家争鸣的状态。据最近的调查数据显示,嵌入式操作系统有数十种之多的。这种多样性存在是必然的,是由嵌入式系统的定制性所决定的,是针对各个领域和行业的不同需求的应对。也就是说,各个嵌入式操作系统都有自己的应用领域,针对不同的应用没有绝对的优劣之分,不会出现一种操作系统垄断的局面。自主开发嵌入式操作系统绝对不是多余的,也是是对这种多样性的自然顺应,应该可拥有自己的用武之地。有些国内嵌入式厂商将希望寄托在Linux之上,以为它可以帮助解决所面临的版税和安全等问题。但事实并非完全如此,至少在嵌入式系统领域。首先,Linux还是泊来货,国人并未掌握其核心技术和进程,也并未解决对外依赖的问题。其次,Linux是为桌面系统而设计的,并不能很好地满足嵌入式系统高效性和灵活性的要求;再次,Linux的一统也违背了嵌入式系统应用灵活定制的本质特性。

3.定义(列出报告中用到的专门术语定义和缩写词的原意。)

int taskInit(void);

/*创建一个任务, 返回: 返回任务编号tid, >0: 成功, 其他: 失败.*/ /*name: 任务名称, entryPtr : 任务函数入口, stack_size: 任务栈大小, priority: 任务优先级*/ int taskCreate(char *name, void *entryPtr, int stack_size, int priority);/*启动一个任务, 让taskCreat创建的任务参加调度*/ int taskStart(unsigned char tid);/*tid: 任务编号, 由taskCreate返回*/ int taskPriorityGet(unsigned char tid);int taskPrioritySet(unsigned char tid, int newPriority);/*获取和设置任务优先级, 用于动态调整*/ int taskSuspend(unsigned char tid);/*将任务挂起, 该任务退出调度*/ int taskDelete(unsigned char tid);/*将任务删除 该任务退出调度且回收任务分配的资源*/ int semCreate(void);/*互斥信号量创建, 返回信号量标识sid, <0: 失败*/ int semTake(int sid);int semGive(int sid);/*互斥信号量获取和释放*/ int taskSleep(int ticks);/*任务睡眠(非忙等), 由任务自己调用, 主动阻塞一段时间.时间单位为tick, 即10ms*/ 4.参考资料(列出这些资料的作者、标题、编号、发表日期、出版单位或资料来源,可包括:(1)项目开发计划;(2)需求规格说明书;(3)概要设计说明书;(4)详细设计说明书;(5)用户操作手册;(6)测试计划;(7)测试分析报告(8)本报告引用的其他资料、采用的开发标准或开发规范。)(1)软件项目计划(2)需求规格说明(3)软件编写向导

(4)国家软件开发文档标准模板

二.开发结果

1.产品(可包括:(1)列出各部分的程序名称、源程序行数(包括注释行)或目标程序字节数及程序总计数量、存储形式;产品文档名称等。)

2.主要功能及性能 基本功能

1.基于参考硬件平台,建立硬件抽象层,完成基本硬件初始化,建立时钟中断; 2.在硬件抽象层基础上,建立多任务操作系统环境; 3.任务调度采用同级时间片轮询机制;

4.实现任务间基本通讯机制:互斥信号量(共享内存); 5.实现基本的时钟管理机制:任务睡眠阻塞;

6.实现一个RS232串口驱动。基于串口驱动实现一个命令行Shell(用一个独立的任务实现),可在超级终端显示信息和执行命令。

扩展功能

7.任务区分优先级,在同级轮询调度基础上添加优先级调度机制; 8.不同优先级任务之间实现抢占调度;

9.在抢占调度的基础上实现优先级逆转保护,避免逻辑死锁问题; 10.将代码移植到另一个硬件平台上运行,验证代码移植性。3.所用工时(按人员的不同层次分别计时。)

编码成员工时:60小时/周,共约400小时;

编写文档成员:共约60小时。

4.所用机时

5小时/天,共约300小时的机时。

5.进度(给出计划进度与实际进度的对比。)

根据敏捷开发方法的指导,每天查漏补缺,实际进度基本和计划进度一致。三.评价

1.生产率评价(如平均每人每周源程序行数、文档的字数等。)

源程序:200行/周

文档:1500字/周

2.技术方案评价

严格遵循开发流程,运用科学开发方法。

3.产品质量评价

按照大赛要求完成了应有功能的基础上有所添加自己小组的特色,譬如,设置相应的出错处理机制,为加强该系统的安全性与稳定性也做了相应的措施,总体来说,我们小组开发的嵌入式实时操作系统功能良好,稳定性强。

四.经验与教训

经过近两个月的对嵌入式实时操作系统的开发,经验学到了不少,当然也得到了很多教训,因为小组的不注意,导致2138开发板没法继续工作,有的时候会很耽误时间,有的时候进度报告拖后一点才写,也因此导致过进度不明了,不过,大多数时候,我们小组成员都认真对待大赛,努力想把自己小组的作品做的更完美,最后终于成功交付任务,完成大赛。

下载计算机实时操作系统的改善措施word格式文档
下载计算机实时操作系统的改善措施.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    计算机操作系统总结

    虚拟存储器应用研究 虚拟存储器是具有请求调入功能和置换功能,能仅把作业的一部分装入内存便可运行作业的存储器系统,它能从逻辑上对内存容量进行扩充的一种虚拟的存储器系统......

    计算机操作系统复习资料

    计算机操作系统 1 操作系统与计算机系统各层次的关系是什么? 答:一是操作系统对各层的管理和控制 二是各层对操作系统的影响和制约(答案在4页 可以自己在添加一些) 2 什么是多道......

    计算机操作系统教案

    计算机操作系统教案 学院名称:河北政法职业学院 系部名称: 计算机系 课程名称: 计算机操作系统 任课教师: 张敏丽 授课题目:操作系统绪论一 授课序号:1 授课班级:司法信息2003级......

    uc-OS实时操作系统的应用和学习心得

    uc/OS实时操作系统的应用和学习心得 这是小弟我最近的研究成果,跟大家交流一下。 目前正在研究嵌入式实时软件系统设计方法,有兴趣的高手交流一下。这里给大家简单剖析一下uCO......

    《计算机操作系统》简答题总结

    《计算机操作系统》简答题总结 1、简述操作系统的定义。 操作系统是计算机系统的一种系统软件,它统一管理计算机系统的资源和控制程序的执行。 2、在多道程序设计技术的系统......

    计算机操作系统课程设计教学大纲

    《计算机操作系统》课程设计教学大纲 课程编号:08120070 课程名称:计算机操作系统/Computer Operating System 课程总学时/学分:56/3.5 (其中理论46学时,实验10学时 课程设计时间......

    计算机操作系统教案1

    计算机操作系统教案 执 教:******* 课 时:一课时教学对象:高一 教学对象:高中一年级学生 教学目的:1、了解操作系统的概念、功能、分类及发展情况 2、了解Windows操作系统的特点......

    计算机操作系统教案(定稿)

    计算机操作系统教案 执 教:***** 课 时:一课时教学对象:高一 一、 教材分析 《操作系统》是河北教育出版社出版的高一年级《信息技术》第一章第四节第一部分内容。本部分内......