嵌入式实时操作系统μCOSII原理及应用习题答案.docx_第1页
嵌入式实时操作系统μCOSII原理及应用习题答案.docx_第2页
嵌入式实时操作系统μCOSII原理及应用习题答案.docx_第3页
嵌入式实时操作系统μCOSII原理及应用习题答案.docx_第4页
嵌入式实时操作系统μCOSII原理及应用习题答案.docx_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第一章1.什么是计算机的操作系统?它应具备什么功能?操作系统:操作系统是控制其他程序运行,管理系统资源并为用户提供操作界面的系统软件的集合。功能:计算机资源的管理,包括处理器管理、存储器存储空间管理、外部输入输出(I/O)设备管理、文件管理、网络和通信管理、提供用户接口。2.简述嵌入式系统与普通操作系统的区别。嵌入到对象体系中,为实现对象体系智能化控制的计算机系统,简称嵌入式系统。嵌入式系统应具有的特点是:高可靠性;在恶劣的环境或突然断电的情况下,系统仍然能够正常工作;许多嵌入式应用要求实时性,这就要求嵌入式操作系统具有实时处理能力;嵌入式系统和具体应用有机地结合在一起,它的升级换代也是具体产品同步进行;嵌入式系统中的软件代码要求高质量、高可靠性,一般都固化在只读存储器中或闪存中,也就是说软件要求固态化存储,而不是存储在磁盘等载体中。4.什么是实时系统?如果一个系统能及时响应外部事件的请求,并能在规定的时间内完成对事件的处理,这种系统称为实时系统。第二章1.什么是可剥夺型内核?可剥夺型内核采用与不可剥夺型不同的调度策略,最高优先级的任务一旦就绪,就能获得CPU的控制权而得以运行,不管当前运行的任务处于何种状态。可剥夺型内核采用的抢占式的调度策略,总是让优先级最高的任务运行,直到其阻塞或任务完成,响应时间因此优化。2.一个应用程序为什么一定要使用空闲任务?在多任务系统运行时,系统经常会在某个时间内无用户任务运行而处于空闲状态,为了使CPU在此时有事可作,uC/OSII提供了空闲任务OSTaskIdle。空闲任务是不能被软件删除的。3.统计任务是必须使用的吗?用户应用程序可根据实际需要来选择是否使用统计任务。其功能是每秒计算一次CPU在单位时间内被使用的时间,并把计算结果以百分比的形式存放在变量OSCPUsage中,以便应用程序通过访问它来了解CPU的利用率。4. 什么是任务的优先权?UC/OS-II是用什么来描述任务的优先权的。uC/OS-II是按可剥夺型内核来设计的,为此,每一个任务都必须具有唯一的优先级别,用来表示该任务在抢夺处理器时所具有的优先权力,共有64个优先级别,用数字“0”“63”表示,数字“0”所表示的优先级最高,通常将空闲任务和统计任务设为最低优先级别。对于任务数较少的应用,为节省内存,可通过OS_CFG.H中的OS_LOWEST_PRIO赋值来确定系统的最大(=64)用户数。5.在uC/OS-II中任务有哪5种状态?睡眠状态:任务只是以代码的形式驻留在内存,还没有交给操作系统管理。就绪状态:任务配备了任务控制块且在任务就绪表中登记,具备了任务运行的充分条件。运行状态:处于就绪状态的任务获得了CPU的使用权,任何时候只有一个任务处于运行。等待状态:正在运行的任务,把CPU的使用权让给其他任务。中断服务状态:正在运行的任务一旦响应中断申请,就会中止运行而去执行中断服务程序。6. 任务控制块记录了任务的那些信息?*OSTCBStkPtr指向任务堆栈栈顶的指针;*OSTCBExtPtr指向任务控制块扩展的指针;*OSTCBStkBottom指向任务堆栈栈底的指针;OSTCBStkSize任务堆栈的长度;OSTCBOpt创建任务时的选择项;OSTCBId任务 ID;*OSTCBNext指向后一个任务控制块的指针;*OSTCBPrev指向前一个任务控制块的指针;*OSTCBEventPtr指向事件控制块的指针;*OSTCBMsg传递给任务消息的指针;OSTCBDelReq请求删除任务时用到的标志;OSTCBStat任务的当前状态标志;OSTCBDly 任务等待的时限(节拍数);OSTCBPrio任务的优先级别(0 = highest, 63 = lowest);7.什么是空任务控制块链表?什么是任务控制块链表?空任务块链表,其中所有任务控制块还没有分配给任务。空任务块链表是在应用程序调用函数OSInit()对UC/OS-II系统初始化时建立的。链表的元素一共有OS_MAX_TASKS+OS_N_SYS_TASKS个元素。任务控制块链表,其中所有任务块已经分配给任务。任务控制块链表在应用程序调用函数OSTaskCreate()创建任务时建立的。8. 数组OSTCBTbl有什么用途?专门用来以任务的优先级别为顺序在各个数组元素里存放指向各个任务控制块的指针,这样系统在访问一个任务的任务控制块时,就不必遍历任务控制块链表,从而加快对任务控制块的访问速度。9. 正在运行任务的任务控制块指针存放在哪个指针变量中?OSTCBCur10. 变量OSRdyGrp有什么用?该变量的每一位都对应OSRdyTbl 的一个任务组,如果某任务组中有任务就绪,则在变量OSRdyGrp里把该任务组所对应的位置为1,否则置为0 ,从而快速对任务就绪表OSRdyTbl 查找。11.简述在任务就绪表中查找具有最高优先级别的就绪任务的过程。由任务就绪表OSRdyGrp和OSRdyTbl的内容通过查找OSUnMapTal表和公式y = OSUnMapTalOSRdyGrp;x = OSUnMapTalOSRdyTbly;prio = (y3) + x;找出具有最高优先级别的就绪任务。第三章1. 简述UC/OS-II的中断响应过程。系统接收到中断请求后,如果这时CPU处于中断允许状态,系统会中止正在运行的当前任务,而按照中断向量的指向转而去运行中断服务子程序;当中断服务子程序的运行结束后,系统会根据情况返回到被中止的任务,或转向更高优先级的任务。2.全局变量OSIntNesting的作用是什么?全局变量OSIntNesting记录中断嵌套的层数。3.uc/osII的中断服务程序何时返回被中断的任务?何时不返回被中断的任务?当中断嵌套层数计数器为0,调度器未被锁定并且从任务就绪表中查到的最高优先级的任务又不是被中断的任务的条件下会进行任务切换,即不返回被中断的任务,否则返回被中断的任务。4. uc/osII的时钟是如何实现的?在时钟节拍服务中做了什么工作?uc/osII的时钟通常是一个由硬件计数器定时产生周期性中断信号来实现的。在每个节拍服务里要遍历系统中全部任务的任务控制块,把其中记录任务延时时间的成员OSTCBDly减1,并使延时时间到的任务进入就绪状态。5.如何在中断服务程序中激活一个任务?在uc/osII中通常由一个任务来完成异步事件的处理工作,而在中断服务程序中只是通过向任务发送消息的方法去激活这个任务。6. 说明延时函数OSTimeDly()与OSTimeDlyHMSM()的区别。所有用户任务必须在任务中合适的位置调用函数OSTimeDly(),或通过调用函数OSTimeDlyHMSM()调用OSTimeDly()。OSTimeDly()的参数ticks为以时钟节拍数为单位的延时时间的,而OSTimeDlyHMSM()的参数分别是时,分,秒。第四章1.叙述信号量的工作过程。每当有任务申请信号量时,如果信号量计数器OSEventCnt的值大于0,则把OSEventCnt减1,并使任务继续运行;如果OSEventCnt的值为0,则会将任务列入任务等待表OSEventTbl,而使任务处于等待状态。如果有正在使用信号量的任务释放了该信号量,则会在等待任务表中找出优先级别最高的等待任务,并在使他就绪后调用调度器引发一次调度;如果任务等待表中已经没有等待任务,则信号量计数器只会简单的加1.2. 使用信号量可在应用程序中完成哪些工作?任务间通信,完成共享资源的访问和任务的同步执行。3.什么叫优先级反转?这种现象会在什么情况下发生?有什么危害?在可剥夺型内核中,当任务以独占方式使用共享资源时,会出现低优先级任务先于高优先级任务而被运行的情况,优为先级反转。产生优先级反转现象的原因:这是因为一个低优先级任务在获得信号量使用共享资源期间,被高优先级任务所打断而不能释放信号量,从而使正在等待该信号量的高优先级任务因得不到信号量而被迫处于等待状态。在等待期间,就让占据该信号量的低优先级任务先运行。后果:如果这种情况发生较多,则会极大地恶化优先级任务地运行环境。4. 互斥型信号量是如何防止优先级反转的?使获得信号量任务的优先级别在使用共享资源期间暂时提升到所有任务最高优先级的高一个级别上,以使该任务不被其他任务所打断,从而能尽快地使用完共享资源并释放信号量;然后在释放完信号量之后再恢复该任务原来的优先级别。5.什么叫消息邮箱?消息邮箱是能在任务之间传递消息指针的数据结构。在任务与任务之间通信时,建立一个数据缓冲区用来存放要传递的数据,同时将该数据缓冲区的指针赋给事件控制块成员OSEventPtr,并且事件控制块的成员OSEventType为常数OS_EVENT_TYPE_MBOX,则该事件控制块就叫做消息邮箱。6. 能否使用全局变量来实现任务间的通信?如果可以,它有什么缺点?全局变量只能传递信息,但不能同步任务。因此只能用于两种情况:1.不需要行为同步,想用时就用这个全局变量。2.同步要求不实时,可以让另一个任务定期去查询该全局变量是否被“生产”。7.使用消息邮箱实现任务之间的通信有什么好处?其一,是使消息的传递速度大大增加。其二,如果只传递一条消息的话,操作更为简单。其三,消息邮箱可以适应不同数据的需要8.什么是消息队列?消息队列是能在任务之间传递一组消息指针的数据结构。9.想一想,在应用程序中消息队列都可以做一些什么工作?第五章1.叙述信号量集的工作过程。在uc/osII中请求信号量集的任务得以继续运行的条件与所请求的信号量之间存在两种逻辑关系:与关系和或关系。在与关系下,只有当任务所请求的信号量都有效时,任务才能继续运行;在或关系下,只要在任务所请求的信号量中有信号有效,任务就会继续进行。2. 使用信号量集可以在应用程序中完成哪些工作?1.创建信号量集;2.请求信号量集;3.向信号量集发信号;4.查询信号量集的状态;5.删除信号量集。第六章1.什么叫内存分区?什么叫内存块?内存分区与内存块之间有什么关系?uC/OS-II能够解决内存碎片问题及执行时间固定,对内存进行两级管理。将大片连续内存分成若干个分区,每个分区又分成若干大小相等的内存块来进行管理。操作系统以分区为单位管理动态内存,任务以内存块为单位来获得与释放动态内存。内存分区及内存块的使用情况由内存控制块来记录,内存控制块是由uC/OS-II为每个内存分区定义的一个数据结构,系统用它来记录和跟踪每一个内存分区的状态。2.在同一个内存分区中内存块是按什么方式组织起来的?同一分区中内存块的字节数必须相等。每个分区与该分区内存块的数据类型必须相同。应用程序用数组定义内存分区与内存块。INT16U IntMemBufIJ分区内有I个存储块,每个存储块长度为J。3.什么叫内存控制块?它记录了一些什么信息?内存控制块是由uC/OS-II为每个内存分区定义的一个数据结构,系统用它来记录和跟踪每一个内存分区的状态。鱼知水恩,乃幸福之源也。鱼离不开水,人离不开亲人和朋友,当你处于逆境和灾难时,帮助你一臂之力,渡过难关的人,都是你的亲人和朋友。吃水不忘挖井人,度过苦难,不能忘记援助过你的人。知恩图报,善莫大焉。一个人要想获得幸福,必须懂得感恩。生活需要一颗感恩的心来创造, 一颗感恩的心需要生活来滋养。一饭之恩,当永世不忘。顺境里给你帮助的人,不能全部称作朋友,但是能够在你逆境时依然愿意援助你,走出困境的人,一定是你要用一生去感谢和珍惜的人。唐代李商隐的晚晴里有这样一句诗:天意怜幽草,人间重晚晴。久遭雨潦之苦的幽草,忽遇晚晴,得以沾沐余辉而平添生意。当一个人闯过难关的时候,一定要记住那些支撑你,陪你一起走过厄运的朋友和亲人,这个世界谁也不亏欠谁,帮你是情分,不帮你是本分。如古人所说:淡看世事去如烟,铭记恩情存如血。学会感恩父母养育之恩,学会感恩朋友的帮助之情,生活里做一个有情有义的人。你要知道,父母,永远是你最亲近的人,是最爱你的人,不管他们的方法怎么错误?可是爱你的心,都是一样的。千万不要因为自己一时的私心,而忘记感恩。我们常常希望别人都对自己有情有义,可是想得到别人你真情,首先你必须先付出真情。你帮助别人,不要记在心里,别人帮助你,你要懂得感恩和感动,而不是当做理所当然。你要知道别人帮你是情分,不帮你是本分。侍父母,要孝顺,对朋友,要真诚。不管你生活的精彩或者混沌,孝顺父母,颐养天年。一父养十子,十子养一父。在这个美好的时代,中华很多的美德都在逐渐消失,做子孝为天,但是总有一些人,自己活在天堂,硬生生的把父母扔进地狱。鱼知水恩,乃幸福之源也。鱼离不开水,人离不开亲人和朋友,当你处于逆境和灾难时,帮助你一臂之力,渡过难关的人,都是你的亲人和朋友。吃水不忘挖井人,度过苦难,不能忘记援助过你的人。知恩图报,善莫大焉。一个人要想获得幸福,必须懂得感恩。生活需要一颗感恩的心来创造, 一颗感恩的心需要生活来滋养。一饭之恩,当永世不忘。顺境里给你帮助的人,不能全部称作朋友,但是能够在你逆境时依然愿意援助你,走出困境的人,一定是你要用一生去感谢和珍惜的人。唐代李商隐的晚晴里有这样一句诗:天意怜幽草,人间重晚晴。久遭雨潦之苦的幽草,忽遇晚晴,得以沾沐余辉而平添生意。当一个人闯过难关的时候,一定要记住那些支撑你,陪你一起走过厄运的朋友和亲人,这个世界谁也不亏欠谁,帮你是情分,不帮你是本分。如古人所说:淡看世事去如烟,铭记恩情存如血。学会感恩父母养育之恩,学会感恩朋友

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论