您好,欢迎访问三七文档
Copyright©LoganVon,Allrightsreserved.《嵌入式操作系统》总结第一章嵌入式系统与嵌入式操作系统1.什么是系统?一般来说,系统就是按照一些固定的程序和规则,完成某些任务的组织或工作方式。2.什么是嵌入式系统?嵌入式系统是一个具有嵌入式软件和计算机硬件,并受嵌入式软件和计算机硬件的运行控制,完成特定功能的系统。通常嵌入式计算机系统简称为嵌入式系统。3.嵌入式系统的解释?P24.什么是硬实时系统,什么是软实时系统?硬实时系统是时限要求严格的系统,而软实时系统的时限要求不严格。5.嵌入式软件系统的构成?这些软件功能通常以并发运行的进程、任务或线程的形式运行在系统中,控制系统的多项功能。6.什么是实时操作系统?负责管理运行于硬件系统之上的应用软件,按照系统任务优先级控制系统资源的分配和使用,负责调用任务调度处理器运行并发系统和应用任务,并负责完成任务运行和任务间的上下文切换。7.嵌入式计算机系统与通用计算机系统的比较?嵌入式操作系统是通用操作系统的一个应用特例,嵌入式系统面向特定应用;嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除软硬件冗余,嵌入式系统中的软件一般都固化在存储器芯片或单片机中。特征嵌入式系统通用计算机系统外观独特,面向应用,各不相同具有台式机、笔记本等标准外观组成面向应用的嵌入式微处理器总线和外部接口多集成在处理器内部软件与硬件紧密集成在一起通用处理器、标准总线和外设软件和硬件相对独立安装卸载运行方式基于固定硬件,自动运行,不可修改用户可以任意选择运行或修改生成后再运行开发平台采用交叉开发方式开发平台一般采用通用计算机开发平台是通用计算机二次开发性一般不能再做编程开发应用程序可重新编制应用程序固定应用软件与操作系统整合一体在系统中运行多种多样,与操作系统相互独立8.嵌入式系统的特征?○1实时性。○2系统功能的实时中断和调度。○3时限要求。○4事件响应。9.嵌入式操作系统EOS特性?Copyright©LoganVon,Allrightsreserved.嵌入式操作系统除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件功能等外,还有以下特性:○1可装卸性。○2强实时性。○3强稳定性,弱交互性。○4固化代码。○5更好的硬件适应性,也就是良好的移植性10.嵌入式开发为什么需要操作系统的支持?P2011.μC/OS-II的性能特点?○1公开源代码○2可移植性○3可固化○4可裁剪○5抢占式○6多任务○7可确定性○8任务栈○9系统服务○10中断管理○11稳定性与可靠性第二章嵌入式开发概述1.嵌入是开发过程的特点?嵌入式开发过程有这样的特点,常常需要宿主机和目标机(宿主机和目标机的芯片类型不同)的支持,宿主机属于嵌入式软件的开发平台,宿主机用于嵌入式软件的设计、实现、调试和运行等;目标及属于最终系统的运行平台,目标机作为可执行程序的最终运行平台,目标机是嵌入式系统的硬件部分,运行程序属于嵌入式系统的软件部分。2.为什么采用宿主机和目标机支持嵌入式系统的开发?其原因在于宿主机适用于开发嵌入式系统的计算机,一般为PC或者工作站,具备丰富的软硬件资源,为嵌入式软件的开发提供方便易行的全过程支持。目标机即所开发的嵌入式系统,是嵌入式软件的运行环境,其硬件软件是为特定应用定制的,一般有处理器、装入嵌入式系的ROM映像的ROM内存芯片、堆栈、中间变量、缓冲区、外设和接口组成。显然这样的硬件系统不具备丰富的开发软件。3.什么是交叉编译技术?交叉编译的含义是,把在宿主机上编写的高级语言程序,编译成可以运行在目标机上的代码,即在宿主机上能够编译生成另一种CPU(嵌入式微处理器)上的二进制程序。4.嵌入式实时内核的作用?○1有效管理响应时间○2管理并发线程的CPU时间○3管理并发线程间内存的使用○4确立标准5.仿真开发?Copyright©LoganVon,Allrightsreserved.软件仿真开发(Simulator)的基本思路是,在宿主机机器上安装一种软件仿真器,即仿真程序,利用该仿真程序的运行,在宿主机上创建一个虚拟的目标机环境,再将应用系统下载到这个虚拟目标机上运行、调试。6.软件仿真开发环境的特点?○1嵌入式软件开发人员只需要了解所使用的编程语言、编译器及其使用方法、操作系统系统API接口及系统函数,就可以实施并完成嵌入式软件的程序设计,生成虚拟机环境下可运行的可执行程序。○2可以在宿主机环境下查看到运行的结果,进行运行结果的分析,并反复进行软件的调试,最终生成一个认可的可执行软件。待时机具备时安装到目标机上运行。7.任务分解和任务分解的设计阶段和编码的主要工作?任务分解是如何将一个实时应用业务逻辑,按照任务的管理和控制接口,划分为若干独立的任务,并发运行,实现应用功能。简单地分为设计阶段、编码阶段。设计阶段的主要工作包括:根据应用程序功能需求,将应用程序功能划分为若干并发任务。首先将需要并发执行的子功能确立为任务,任务优先级按响应的迫切程度确定。确定每个任务处理流程,确保完成任务功能。确定任务功能实现是否与其它任务的执行有关联。编码阶段的主要工作包括完成每个任务的程序设计。将任务流程使用C语言编写为独立的函数。根据应用需求,不同的任务也可共用同一个函数的代码段。由于实时任务有确定优先级,为确保低优先级任务有机会运行。每个任务函数中需包括睡眠、挂起、等待指定时间等一些自主放弃CPU的语句,调用内核函数实现。第三章嵌入式实时操作系统基本概念及设计方法1.为了支持嵌入式软件开发,实时操作系统设计达到目标有哪些?○1资源易于共享○2应用程序容易执行○3适用于优先级调度的上下文切换机制○4系统性能最大化○5提供任务管理、内存管理、设备管理、I/O管理等系统函数○6提供设备、文件、虚拟设备、I/O等管理和组织函数○7提供方便的网络协议、联网接口和函数○8提供适用不同配置的应用程序平台○9提供适用不同网络应用程序的内部互联操作○10提供一个集成各种设备及应用、面向标准开放系统的通用接口○11操作系统目标是完善的、修正的、跨平台的、内部互联的,并且提供一个通用的接口,满足系统对进程的有序访问和控制等管理工作2.实时系统中临界段的实现方法是什么?为保证临界代码互斥执行,实现系统在进入临阶段前关中断,在执行完临界代码后立即开中断。开关中断这一过程不能出现错误,如果不能正常打开终端,系统就会崩溃。因为不能响应中断的系统无法正常运行。3.什么是任务?一个任务也称为一个线程,是一个简单的程序或者是一个具有完整逻辑含义的程序段,该程序可以任务CPU完全只属于自己。Copyright©LoganVon,Allrightsreserved.4.任务的5种状态及其转换关系?P575.实时内核的任务调度成的调度策略一般是什么?调度的算法策略有多种,说书实时内核采用优先级调度法进行任务调度。每个任务根据其重要程度的不同,被赋予一定的优先级。基于优先级的调度法的调度原则是,CPU总是让处在就绪态优先级最高的任务先运行。6.什么是不可剥夺内核,什么是可剥夺内核?二者什么区别?不可剥夺内核要求每个任务资助放弃CPU的使用权,其他任务不能剥夺使用权。可剥夺内核中的每个任务最高优先级的任务一旦就绪,总能立即得到CPU的控制权。当一个运行着的任务是一个比他优先级高的任务进入就绪态,当前任务的CPU使用权就剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU控制权。两者的区别是可剥夺内核任务级响应时间可控,最高优先级得到CPU控制权是可知的。当系统响应时间很重要时,要使用可剥夺型内核。且一般不允许使用不可重入函数。而不可剥夺内核可以使用不可重入代码,不需要信号量保护数据。7.什么是优先级反转?其解决方式是什么?在3个任务中,优先级最高的任务,由于优先级最低的任务占有其运行所需的资源而等待,而优先级低的任务的运行权又被居于优先级剧中的人物抢夺,造成最高优先级任务和居中优先级任务之间,出现优先级反转,即高优先级任务等待低优先级任务运行的现象。解决方法是,可以先暂时提升最低优先级任务的优先级到高于最高优先级的高一级。这样使得最低优先级所占用的最高优先级所需的资源先释放,然后就避免了优先级反转的情况。8.为什么试试内核没有死锁?嵌入式实时内核大多允许用户在申请资源时定义等待超时,这样一来,当等待时间超过了某已确定值,信号量没有等到,申请信号量函数就会以超时错误返回,这样任务仍可运行,避免了死锁的发生。关于实时内核优缺点、实时系统总结见P86和P87第四章嵌入式实时操作系统μC/OS-II内核结构与运行流程1.嵌入式实时操作系统μC/OS-II任务代码定义的基本结构是什么?一个任务通常是一个无限循环,使用C语言程序设计容易实现无限循环。任务代码从形式上看与其他C函数定义相同,但任务代码一般不会返回,所以其范围类型一般为void,在无限循环体内,任务流程的设计有几个逻辑部分组成:(1)该任务的功能性代码(2)通过盗用μC/OS-II的某种系统服务实现该任务消息传递、状态改变、执行时间的延迟等设置,这些设置常用于控制该任务与其他任务的关联关系。2.如何实现代码的可裁剪性?在C语言中提供了条件编译。通过设置编译条件可以达到裁剪代码的效果,节省了程序运行占用的资源。3.μC/OS-II内核实现的4层架构为?○1应用代码层:面向用户应用功能的程序设计代码,一般是基于内核进行的应用程序设计源代码。○2处理器无关代码层&与应用代码相关代码层:与处理器无关的内核功能代码,供应用代码层的源程序调用,以及面向应用代码的配置文件,对应用代码的参数等进行设置,也与处理器无关。○3与处理器相关代码层:内核功能只涉及三个文件与处理器相关,将移植的工作量降到最低。当嵌入式软件需要移植到另一个硬件平台时,需要按照目标机的机器指Copyright©LoganVon,Allrightsreserved.令修改该层文件中的功能实现。○4硬件层:嵌入式系统的硬件构成,包括系统时钟。这是嵌入式软件运行的平台。4.什么是任务控制块?任务控制块是μC/OS-II内核控制的一个最小运行单元,记录任务运行过程中一切情况及其数据,记录任务运行期间的所有状态信息和描述信息的数据结构。5.就绪的条件是什么?○1等待条件到来○2成为优先级最高的任务○3进入运行台,出队列6.什么是就绪表?处于就绪态的任务将就绪态标志置于就绪表中,就绪表中有OSRdyGrp和OSRdyTbl[]两个变量。在OSRdyGrp中,任务按优先级分组,8个任务一组。其实OSRdyGrp为一个INT8U类型的变量,公有8位,每一位表示一个优先级的分组。OSRdyGrp中的每一位表示8组任务的每组中是否有进入就绪态的任务。任务进入就绪态后,就绪表OSRdyTbl[]中的相应元素的相应位置置1。就绪表OSRdyTbl[]数组的大小取决于OS_LOWEST_PRIO的值,OS_LOWEST_PRIO的值定义参见文件OS_CFG.H其实OSRdyTbl数组中的每一个元素都是一个8位的变量,如果把每个元素的每一位当作一个单元的话,那么其所在位每行从右往左数即为其优先数。如下图1所示:图1就绪表对于就绪表的相关操作要用到如下的数据:OSMapTbl[]={1,2,4,8,16,32,64,128};OSUnMapTbl[]={0,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,/*0x00to0x0F*/4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,/*0x10to0x1F*/5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,/*0x20to0x2F*/4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,/*0x30to0x3F*/6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,/*0x40to0x4F*/4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,/*0x50to0x5F*/5,0,1,0,2,0,1,
本文标题:嵌入式操作系统总结
链接地址:https://www.777doc.com/doc-6003724 .html