嵌入式实时操作系统ucosii课后答案任哲版_第1页
嵌入式实时操作系统ucosii课后答案任哲版_第2页
嵌入式实时操作系统ucosii课后答案任哲版_第3页
嵌入式实时操作系统ucosii课后答案任哲版_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

1、第一章1.什么是操作系统?它应具备什么功能?操作系统是控制其他程序运行,管理系统资源并为用户提供操作界面的系统软件的集合。功能:1.计算机硬件的封装和扩充;2.计算机资源的管理,包括处理器管理、存储器存储空间管理、外部输入输出(i/o)设备管理、文件管理、网络和通信管理、提供用户接口。2.简述嵌入式操作系统与普通操作系统的区别。嵌入到对象体系中,为实现对象体系智能化控制的计算机系统,简称嵌入式系统。嵌入式系统应具有的特点是:高可靠性;在恶劣的环境或突然断电的情况下,系统仍然能够正常工作;许多嵌入式应用要求实时性,这就要求嵌入式操作系统具有实时处理能力;嵌入式系统和具体应用有机地结合在一起,它的

2、升级换代也是具体产品同步进行;嵌入式系统中的软件代码要求高质量、高可靠性,一般都固化在只读存储器中或闪存中,也就是说软件要求固态化存储,而不是存储在磁盘等载体中。 3.什么是实时系统?对实时系统有什么要求?如果一个系统能及时响应外部事件的请求,并能在规定的时间内完成对事件的处理,这种系统称为实时系统。对实时系统的两个基本要求:1.实时系统的计算必须产生正确的结果,称为逻辑或功能正确。2.实时系统的计算必须在预定的时间内完成,称为时间正确。4.什么是可剥夺内核?当一个进程正在被处理器所运行时,其他就绪进程可以按照事先规定的规定的规则,强行剥夺正在运行进程的处理器使用权,而使自己获得处理器使用权并

3、得以运行。5.计算:rm等三种算法;实时进程的可调度性。一个事件发生周期为t200ms,一般需要运行50ms才完毕。试按rm算法确定该进程的优先级别prio。答:如果取k=1,根据t=200ms=0.2s,则结果:prio=5。假如有三个同时发生的周期型进程:进程1,进程2,进程3,周期分别为p1=70ms,p2=80ms,p3=30ms,它们完成任务的时间分别为:c1=20ms,c2=15ms,c3=10ms。试判断该进程是否为可调度的。答:不满足公式(rm算法)要求,所以三个进程是不可调度的。满足公式(截止期优先算法或最小裕度算法)要求,所以三个进程是可调度的。第二章1.一个应用程序为什么

4、一定要使用空闲任务?在多任务系统运行时,系统经常会在某个时间内无用户任务运行而处于空闲状态,为了使cpu在此时有事可作,uc/osii提供了空闲任务ostaskidle。空闲任务是不能被软件删除的。2.统计任务是必须使用的吗?简述它的功能。每秒计算一次cpu在单位时间内被使用的时间,并把计算结果以百分比的形式存放在变量oscpusage中,以便应用程序通过访问它来了解cpu的利用率。用户应用程序可根据实际需要来选择是否使用统计任务。3.什么是任务的优先权?uc/os-ii是用什么来描述任务的优先权的。uc/os-ii是按可剥夺型内核来设计的,为此,每一个任务都必须具有唯一的优先级别,用来表示该

5、任务在抢夺处理器时所具有的优先权力,共有64个优先级别,用数字“0”“63”表示,数字“0”所表示的优先级最高,通常将空闲任务和统计任务设为最低优先级别。对于任务数较少的应用,为节省内存,可通过os_cfg.h中的os_lowest_prio赋值来确定系统的最大(=64)用户数。4.在uc/os-ii中任务有哪5种状态?分别简述5个状态的特征。睡眠状态:任务只是以代码的形式驻留在内存,还没有交给操作系统管理。就绪状态:任务配备了任务控制块且在任务就绪表中登记,具备了任务运行的充分条件。运行状态:处于就绪状态的任务获得了cpu的使用权,任何时候只有一个任务处于运行。等待状态:正在运行的任务,把c

6、pu的使用权让给其他任务。中断服务状态:正在运行的任务一旦响应中断申请,就会中止运行而去执行中断服务程序。5.任务控制块记录了任务的那些信息?*ostcbstkptr指向任务堆栈栈顶的指针;*ostcbextptr指向任务控制快扩展的指针;*ostcbstkbottom指向任务堆栈栈底的指针;ostcbstksize任务堆栈的长度;ostcbopt创建任务时的选择项;ostcbid任务 id;*ostcbnext指向后一个任务控制快的指针;*ostcbprev指向后一个任务控制快的指针;*ostcbeventptr指向事件控制快的指针;*ostcbmsg传递给任务消息的指针;ostcbdelr

7、eq请求删除任务时用到的标志;ostcbstat任务的当前状态标志;ostcbdly任务等待的时限(节拍数);ostcbprio任务的优先级别(0 = highest, 63 = lowest);ostcbx用于快速访问就绪表的数据;ostcby用于快速访问就绪表的数据;ostcbbitx用于快速访问就绪表的数据;ostcbbity用于快速访问就绪表的数据;6.什么是空任务控制块链表?什么是任务控制块链表?空任务块链表,其中所有任务控制块还没有分配给任务。空任务块链表是在应用程序调用函数osinit()对uc/os-ii系统初始化时建立的。链表的元素一共有os_max_tasks+os_n_s

8、ys_tasks个元素。任务控制块链表,其中所有任务块已经分配给任务。任务控制块链表在应用程序调用函数ostaskcreate()创建任务时建立的。7.数组ostcbtbl有什么用途?专门用来以任务的优先级别为顺序在各个数组元素里存放指向各个任务控制块的指针,这样系统在访问一个任务的任务控制块时,就不必遍历任务控制块链表,从而加快对任务控制块的访问速度。8.正在运行任务的任务控制块指针存放在哪个指针变量中?ostcbcur。9.变量osrdygrp有什么用?uc/os-ii定义了一个类型为int8u的变量osrdygrp,使该变量的每一位都对应osrdytbl 的一个任务组.如果某任务组中有任

9、务就绪,则在变量osrdygrp里把该任务组所对应的位置为1,否则置为0 ,从而快速对任务就绪表osrdytbl 查找。10.计算:由任务就绪表osrdygrp和osrdytbl的内容通过查找osunmaptal表和公式y = osunmaptalosrdygrp; x = osunmaptalosrdytbly;prio = (y3) + x;找出具有最高优先级别的就绪任务。设osrdygrp的值为01101000b,即0x68,则查表y=osunmaptal0x68=3,它相应于osrdygrp第3位bit3,另设osrdytbl3=11100100b,即0xe4,则查表x=osunmap

10、tal0xe4=2最后:prio=(y3)+x=(33)+2=26即:000000113=0001100000011000+0000010=00011010b=26第三章1.简述uc/os-ii的中断响应过程。中断响应过程:系统接收到中断请求后,如果这是cpu处于中断允许状态,系统会中止正在运行的当前任务,而按照中断向量的指向转而去运行中断服务子程序;当中断服务子程序的运行结束后,系统会根据情况返回到被中止的任务,或转向更高优先级的任务。2.全局变量osintnesting的作用是什么?全局变量osintnesting记录中断嵌套的层数。3.什么叫作操作系统的时钟?任何操作系统都要提供一个周期

11、性的信号源,以供系统处理诸如延时,超时等与时间有关的事件,这个周期性的信号源叫做时钟。4.在uc/os-ii中,时钟节拍服务做了什么工作?uc/os-ii需要提供周期性信号源,用于实现时间时间延时和确认超市。节拍率应为10-100次/秒,或者说10-100hz。时钟节拍率越高,系统的额外符合就越重。5.说明延时函数ostimedly()与ostimedlyhmsm()的区别。所有用户任务必须在任务中合适的位置调用函数ostimedly(),或通过调用函数ostimedlyhmsm()调用ostimedly()。ostimedly()的参数ticks为以时钟节拍数为单位的延时时间的,而ostim

12、edlyhmsm()的参数分别是时,分,秒。第四章1.使用信号量可在应用程序中完成哪些工作?1.创建信号量;2.请求信号量;3.发送(释放)信号量;4.删除信号量;5.查询信号量的状态。2.什么叫优先级反转?这种现象什么情况下发生?有什么危害?在可剥夺型内核中,当任务以独占方式使用共享资源时,会出现低优先级任务先于高优先级任务而被运行的情况,优为先级反转。产生优先级反转现象的原因:这是因为一个低优先级任务在获得信号量使用共享资源期间,被高优先级任务所打断而不能释放信号量,从而使正在等待该信号量的高优先级任务因得不到信号量而被迫处于等待状态。在等待期间,就让占据该信号量的低优先级任务先运行。后果

13、:如果这种情况发生较多,则会极大地恶化优先级任务地运行环境。3.互斥型信号量是如何防止优先级反转的?任务可以用互斥型信号量实现对共享资源的独占式处理,为了降解优先级反转,内核可以将低优先级提升到高于那个高优先级的任务,直到低优先级的任务用完占用的共享资源。4.能否使用全局变量来实现任务间的通信?它有什么缺点?全局变量只能传递信息,但不能同步任务。因此只能用于两种情况:1.不需要行为同步,想用时就用这个全局变量。2.同步要求不实时,可以让另一个任务定期去查询该全局变量是否被“生产”。第五章1.uc/os-ii为什么要定义信号量集?在实际运用中,任务常常需要与多个事件同步,即要根据多个信号量组合作

14、用得结果来决定任务得运行方式。信号量集(事件标志组) 就是实现这种功能的数据结构。2.信号量集所管理的是什么信号?信号量集所管理的信号量都是二值信号。它实质上是一种可以对多个输入的逻辑信号进行基本逻辑运算(“与”运算(and),“或”运算(or))的组合逻辑。3.使用信号量集可以在程序中完成哪些工作?1.创建信号量集;2.请求信号量集;3.向信号量集发信号;4.查询信号量集的状态;5.删除信号量集。第六章1.什么叫内存分区?什么叫内存块?内存分区与内存块之间有什么关系?uc/os-ii能够解决内存碎片问题及执行时间固定,对内存进行两级管理。将大片连续内存分成若干个分区,每个分区又分成若干大小相等的内存块来进行管理。操作系统以分区为单位管理动态内存,任务以内存块为单位来获得与释放动态内存。内存分区及内存块的使用情况由内存控制块来记录,内存控制块是由uc/os-ii为每个内存分区定

温馨提示

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

评论

0/150

提交评论