《(完整版)答案.pdf》由会员分享,可在线阅读,更多相关《(完整版)答案.pdf(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第一章1.什么是操作系统?它应具备什么功能?操作系统是控制其他程序运行,管理系统资源并为用户提供操作界面的系统软件的集合。功能:1.计算机硬件的封装和扩充;2.计算机资源的管理,包括处理器管理、存储器存储空间管理、外部输入输出(I/O)设备管理、文件管理、网络和通信管理、提供用户接口。2.简述嵌入式操作系统与普通操作系统的区别。嵌入到对象体系中,为实现对象体系智能化控制的计算机系统,简称嵌入式系统。嵌入式系统应具有的特点是:高可靠性;在恶劣的环境或突然断电的情况下,系统仍然能够正常工作;许多嵌入式应用要求实时性,这就要求嵌入式操作系统具有实时处理能力;嵌入式系统和具体应用有机地结合在一起,它的
2、升级换代也是具体产品同步进行;嵌入式系统中的软件代码要求高质量、高可靠性,一般都固化在只读存储器中或闪存中,也就是说软件要求固态化存储,而不是存储在磁盘等载体中。3.什么是实时系统?对实时系统有什么要求?如果一个系统能及时响应外部事件的请求,并能在规定的时间内完成对事件的处理,这种系统称为实时系统。对实时系统的两个基本要求:1.实时系统的计算必须产生正确的结果,称为逻辑或功能正确。2.实时系统的计算必须在预定的时间内完成,称为时间正确。4.什么是可剥夺内核?5.计算:RM 等三种算法;实时进程的可调度性。一个事件发生周期为 T200ms,一般需要运行 50ms 才完毕。试按 RM 算法确定该进
3、程的优先级别 prio。答:如果取 k=1,根据 T=200ms=0.2S,则当一个进程正在被处理器所运行时,其他就绪进程可以按照事先规定的规定的规则,强行剥夺正在运行进程的处理器使用权,而使自己获得处理器使用权并得以运行。1priokT结果:prio=5。假如有三个同时发生的周期型进程:进程 1,进程 2,进程 3,周期分别为 P1=70ms,P2=80ms,P3=30ms,它们完成任务的时间分别为:C1=20ms,C2=15ms,C3=10ms。试判断该进程是否为可调度的。答:不满足公式201510 0.807708030n(n2 1)3(32 1)0.777Ci n(n2 1)i1Pin
4、(RM 算法)要求,所以三个进程是不可调度的。满足公式Ci1i1Pin(截止期优先算法或最小裕度算法)要求,所以三个进程是可调度的。第二章1.一个应用程序为什么一定要使用空闲任务?在多任务系统运行时,系统经常会在某个时间内无用户任务运行而处于空闲状态,为了使CPU 在此时有事可作,uC/OSII 提供了空闲任务 OSTaskIdle。空闲任务是不能被软件删除的。2.统计任务是必须使用的吗?简述它的功能。每秒计算一次 CPU 在单位时间内被使用的时间,并把计算结果以百分比的形式存放在变量 OSCPUsage中,以便应用程序通过访问它来了解 CPU 的利用率。用户应用程序可根据实际需要来选择是否使
5、用统计任务。3.什么是任务的优先权?UC/OS-II 是用什么来描述任务的优先权的。uC/OS-II 是按可剥夺型内核来设计的,为此,每一个任务都必须具有唯一的优先级别,用来表示该任务在抢夺处理器时所具有的优先权力,共有 64 个优先级别,用数字“0”“63”表示,数字“0”所表示的优先级最高,通常将空闲任务和统计任务设为最低优先级别。对于任务数较少的应用,为节省内存,可通过 OS_CFG.H 中的 OS_LOWEST_PRIO 赋值来确定系统的最大(=64)用户数。4.在 uC/OS-II 中任务有哪 5 种状态?分别简述 5 个状态的特征。睡眠状态:任务只是以代码的形式驻留在内存,还没有交
6、给操作系统管理。就绪状态:任务配备了任务控制块且在任务就绪表中登记,具备了任务运行的充分条件。运行状态:处于就绪状态的任务获得了 CPU 的使用权,任何时候只有一个任务处于运行。等待状态:正在运行的任务,把 CPU 的使用权让给其他任务。中断服务状态:正在运行的任务一旦响应中断申请,就会中止运行而去执行中断服务程序。5.任务控制块记录了任务的那些信息?*OSTCBStkPtr*OSTCBExtPtrOSTCBStkSizeOSTCBOptOSTCBId指向任务堆栈栈顶的指针;指向任务控制快扩展的指针;任务堆栈的长度;任务 ID;*OSTCBStkBottom 指向任务堆栈栈底的指针;创建任务时
7、的选择项;指向后一个任务控制快的指针;指向后一个任务控制快的指针;传递给任务消息的指针;请求删除任务时用到的标志;任务的当前状态标志;任务等待的时限(节拍数);任务的优先级别(0=highest,63=lowest);*OSTCBNext*OSTCBPrev*OSTCBMsgOSTCBDelReqOSTCBStatOSTCBDlyOSTCBPrio*OSTCBEventPtr指向事件控制快的指针;OSTCBXOSTCBY用于快速访问就绪表的数据;用于快速访问就绪表的数据;用于快速访问就绪表的数据;用于快速访问就绪表的数据;OSTCBBitXOSTCBBitY6.什么是空任务控制块链表?什么是任
8、务控制块链表?空任务块链表,其中所有任务控制块还没有分配给任务。空任务块链表是在应用程序调用函数 OSInit()对 UC/OS-II 系统初始化时建立的。链表的元素一共有 OS_MAX_TASKS+OS_N_SYS_TASKS 个元素。任务 控制 块链 表,其中 所有 任务 块已 经分 配给 任务。任 务控 制块 链表 在应 用程 序调 用函数OSTaskCreate()创建任务时建立的。7.数组 OSTCBTbl有什么用途?8.正在运行任务的任务控制块指针存放在哪个指针变量中?9.变量 OSRdyGrp 有什么用?uC/OS-II 定义了一个类型为 INT8U 的变量 OSRdyGrp,使
9、该变量的每一位都对应 OSRdyTbl 的一个任务组.如果某任务组中有任务就绪,则在变量 OSRdyGrp 里把该任务组所对应的位置为 1,否则置为 0,从而快速对任务就绪表 OSRdyTbl 查找。10.计算:由任务就绪表 OSRdyGrp 和 OSRdyTbl的内容通过查找 OSUnMapTal表和公式y=OSUnMapTalOSRdyGrp;x=OSUnMapTalOSRdyTbly;prio=(y3)+x;找出具有最高优先级别的就绪任务。设 OSRdyGrp 的值为 01101000B,即 0 x68,则查表 y=OSUnMapTal0 x68=3,它相应于 OSRdyGrp 第 3
10、位 bit3,另设 OSRdyTbl3=11100100B,即 0 xE4,则查表 x=OSUnMapTal0 xE4=2最后:Prio=(y3)+x=(33)+2=26即:000000113=0001100000011000+0000010=00011010B=26第三章1.简述 UC/OS-II 的中断响应过程。中断响应过程:系统接收到中断请求后,如果这是CPU 处于中断允许状态,系统会中止正在运行的当前任务,而按照中断向量的指向转而去运行中断服务子程序;当中断服务子程序的运行结束后,系统会根据情况返回到被中止的任务,或转向更高优先级的任务。2.全局变量 OSIntNesting 的作用是
11、什么?全局变量 OSIntNesting 记录中断嵌套的层数。OSTCBCur。专门用来以任务的优先级别为顺序在各个数组元素里存放指向各个任务控制块的指针,这样系统在访问一个任务的任务控制块时,就不必遍历任务控制块链表,从而加快对任务控制块的访问速度。3.什么叫作操作系统的时钟?4.在 UC/OS-II 中,时钟节拍服务做了什么工作?5.说明延时函数 OSTimeDly()与 OSTimeDlyHMSM()的区别。所有用户任务必须在任务中合适的位置调用函数 OSTimeDly(),或通过调用函数 OSTimeDlyHMSM()调用 OSTimeDly()。OSTimeDly()的参数 tick
12、s 为以时钟节拍数为单位的延时时间的,而 OSTimeDlyHMSM()的参数分别是时,分,秒。第四章1.使用信号量可在应用程序中完成哪些工作?1.创建信号量;2.请求信号量;3.发送(释放)信号量;4.删除信号量;5.查询信号量的状态。2.什么叫优先级反转?这种现象什么情况下发生?有什么危害?在可剥夺型内核中,当任务以独占方式使用共享资源时,会出现低优先级任务先于高优先级任务而被运行的情况,优为先级反转。产生优先级反转现象的原因:这是因为一个低优先级任务在获得信号量使用共享资源期间,被高优先级任务所打断而不能释放信号量,从而使正在等待该信号量的高优先级任务因得不到信号量而被迫处于等待状态。在
13、等待期间,就让占据该信号量的低优先级任务先运行。后果:如果这种情况发生较多,则会极大地恶化优先级任务地运行环境。3.互斥型信号量是如何防止优先级反转的?4.能否使用全局变量来实现任务间的通信?它有什么缺点?全局变量只能传递信息,但不能同步任务。因此只能用于两种情况:1.不需要行为同步,想用时就用这个全局变量。2.同步要求不实时,可以让另一个任务定期去查询该全局变量是否被“生产”。第五章1.uC/OS-II 为什么要定义信号量集?在实际运用中,任务常常需要与多个事件同步,即要根据多个信号量组合作用得结果来决定任务得运行方式。信号量集(事件标志组)就是实现这种功能的数据结构。任务可以用互斥型信号量
14、实现对共享资源的独占式处理,为了降解优先级反转,内核可以将低优先级提升到高于那个高优先级的任务,直到低优先级的任务用完占用的共享资源。uC/OS-II 需要提供周期性信号源,用于实现时间时间延时和确认超市。节拍率应为 10-100 次/秒,或者说 10-100Hz。时钟节拍率越高,系统的额外符合就越重。任何操作系统都要提供一个周期性的信号源,以供系统处理诸如延时,超时等与时间有关的事件,这个周期性的信号源叫做时钟。2.信号量集所管理的是什么信号?信号量集所管理的信号量都是二值信号。它实质上是一种可以对多个输入的逻辑信号进行基本逻辑运算(“与”运算(AND),“或”运算(OR))的组合逻辑。3.
15、使用信号量集可以在程序中完成哪些工作?1.创建信号量集;2.请求信号量集;3.向信号量集发信号;4.查询信号量集的状态;5.删除信号量集。第六章1.什么叫内存分区?什么叫内存块?内存分区与内存块之间有什么关系?uC/OS-II 能够解决内存碎片问题及执行时间固定,对内存进行两级管理。将大片连续内存分成若干个分区,每个分区又分成若干大小相等的内存块来进行管理。操作系统以分区为单位管理动态内存,任务以内存块为单位来获得与释放动态内存。内存分区及内存块的使用情况由内存控制块来记录,内存控制块是由 uC/OS-II 为每个内存分区定义的一个数据结构,系统用它来记录和跟踪每一个内存分区的状态。2.在同一个内存分区中内存块是按什么方式组织起来的?同一分区中内存块的字节数必须相等。每个分区与该分区内存块的数据类型必须相同。应用程序用数组定义内存分区与内存块。INT16U IntMemBufIJ分区内有 I 个存储块,每个存储块长度为 J。3.什么叫内存控制块?它记录了一些什么信息?内存控制块是由 uC/OS-II 为每个内存分区定义的一个数据结构,系统用它来记录和跟踪每一个内存分区的状态。上机编程:复习:第二章例 2-6,例 2-7。第四章例 4-8,第五章例 5-1。复习课堂上做过的两道练习题。