嵌入式系统试题与答案精心整理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.什么是操作系统?它应具备什么功能?
管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石.
1.)操作系统是计算机硬件的封装和扩充2).操作系统是计算机资源的管理者,包括处理器管理、存储器存储空间管理、外部输入输出(I/O)设备管理、文件管理、网络和通信管理、提供用户接口。
2嵌入式操作系统与普通操作系统区别
嵌入式操作系统具有通用操作系统的基本特点,但嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点
3什么是实时系统?对实时系统有什么要求?
如果一个系统能及时响应外部事件的请求,并能在规定的时间内完成对事件的处理,这种系统称为实时系统. 1.实时系统的计算必须产生正确的结果,称为逻辑或功能正确.2.实时系统的计算必须在预定的时间内完成.称为时间正确.
4可剥夺内核:当一个进程正在被处理器所运行时,其他就绪进程可以按照事先规定的规定的规则,强行剥夺正在运行进程的处理器使用权,而使自己获得处理器使用权并得以运行 5. .单调速率RM 算法(静态算法,根据进程执行周期的长短来决定进程的优先级别,T k prio 1=)、截止期限最早优先算法(进程截止期限越近,则该进程紧急程度越高)、可达截止期限最早优先算法(观察所有被激活的进程里是否有进程在该进程的截止期限内干不完的事情,如果有,那么这种进程就不运行了,而去运行那些能把工作做完的进程(D 为进程的截止期限;t1为系统当前时间 ,E 为设计时估算的时间;d 为进程的截止裕度
式中:prio 为进程的优先级别;k 为比例系数; T 为进程的周期
式中:C 为若干个进程的周期;P 为它们任务所需的时间
实时进程的可调度性:是指多个实时进程是否可经过适当的调度使它们都能正确地完成工
作。
截止期优先算法, RM 算法,
6一个应用程序为什么一定要使用空闲任务 在多任务系统运行时,系统经常会在某个时间内无用户任务运行而处于空闲状态,为了使CPU 在此时有事可作,提供空闲任务。
空闲任务是不能被软件删除的
7统计任务是必须使用的吗?简述它的功能
用户应用程序可根据实际需要来选择是否使用统计任务。
每秒计算一次CPU 在单位时间内被使用的时间,并把计算结果以百分比的形式存放在变量OSCPUsage 中,以便应用程序通过访问它来了解CPU 的利用率.
8什么是任务的优先权?UC/OS-II 是用什么来描述任务的优先权的。
处于就绪态的任务优先获取其他任务cpu 使用权的能力。
uC/OS-II 是按可剥夺型内核来设计的,为此,每一个任务都必须具有唯一的优先级别,用来表示该任务在抢夺处理器时所具有的优先权力,共有64个优先级别,用数字“0”-“63”表示,数字“0”所表示的优先级最高 9在UC/OS-II 中任务有哪5种状态?分别简述 5个状态的特征:睡眠状态:任务只是以代码的形式驻留在内存,还没有交给操作系统管理.就绪状态:任务配备了任务控制块且在任务就绪表中登记,具备了任务运行的充分条件.运行状态:处于就绪状态的任务获得了CPU 的使用权,任何时候只有一个任务处于运行.等待状态:正在运行的任务,把CPU 的使用权让给其他任务.中断服务状态:正在运行的任务一旦响应中断申请,就会中止运行而去执行中断服务程序.
10任务控制块记录了任务的那些信息
包括任务堆栈的各种指针及数目,任务优先级,任务的状态标志参数等。
11什么是空任务控制块链表?什么是任务控制块链表?
空任务块链表,其中所有任务控制块还没有分配给任务;任务控制块链表,其中所有任务块已经分配给任务
12数组OSTCBTbl[ ]有什么用途?数组OSTCBTbl[ ]用于存放任务控制链表中每个任务控制块的地址。
0)(1≥+-=E t D d )12(1-≤=∑
=n n i i
i n P C ρ11≤=∑=n i i i P C ρ
13正在运行任务的任务控制块指针存放在哪个指针变量中?正在运行任务的任务控制块指针存放在OSTCBCur
14变量OSRdyGrp有什么用?变量OSRdyGrp的每一位都对应OSRdyTbl[ ]的一个任务组,可快速查找就绪态任务所在的任务组。
15由任务就绪表OSRdyGrp和OSRdyTbl[ ]的内容通过查找OSUnMapTal[ ]表和公式y= OSUnMapTal[OSRdyGrp]; x= OSUnMapTal[OSRdyTbl[y]]; prio = (y<<3)+x; 找出具有最高优先级别的就绪任务。
(OSUnMapTal[ ]表和OSRdyTbl[ ]在文件OS_CORE.C中可找到)例:设OSRdyGrp的值为01101000B,即0x68,则查表y=OSUnMapTal[0x68]=3,它相应于OSRdyGrp第3位bit3,另设OSRdyTbl[3]=
11100100B,即0xE4,则查表
x=OSUnMapTal[0xE4]=2
最后:
Prio=(y<<3)+x=(3<<3)+2=26
即:
00000011<<3=00011000
00011000+0000010=00011010B=26
16UC/OS-II的中断响应过程: 系统接收到中断请求后,如果这是CPU处于中断允许状态,系统会中止正在运行的当前任务,而按照中断向量的指向转而去运行中断服务子程序;当中断服务子程序的运行结束后,系统会根据情况返回到被中止的任务,或转向更高优先级的任17全局变量OSIntNesting的作用:记录中断嵌套的层数。
18操作系统的时钟:操作系统中特定的周期性中断为系统提供时间依据。
19在UC/OS-II中,时钟节拍服务做了什么工作?时钟节拍服务做了:可以使人物延时若干个整数的时钟节拍以及当任务等待事件发生时提供等待超时依据。
20说明延时函数OSTimeDly()与OSTimeDlyHMSM()的区别:OSTimeDly():时钟节拍数;OSTimeDlyHMSM():按照时分秒的设置延时
21使用信号量可在应用程序中完成哪些工作?任务间通信完成共享资源的访问任务的同步执行
22什么叫优先级反转?这种现象什么情况下发生?有什么危害?在可剥夺型内核中,当任务以独占方式使用共享资源时,会出现低优先级任务先于高优先级任务而被运行的情况。
称优先级反转。
一个低优先级任务在获得信号量使用共享资源期间,被高优先级任务所打断而不能释放信号量,从而使正在等待该信号量的高优先级任务因得不到信号量而被迫处于等待状态。
在等待期间,就让占据该信号量的低优先级任务先运行
如果这种情况发生较多,则会极大地恶化优先级任务地运行环境。
23互斥型信号量是如何防止优先级反转的?在低优先级的任务要使用共享资源前将其优先级提升到高于可能使用该共享资源的任务优先级,使用完共享资源后在讲其优先级恢复到原值。
24能否使用全局变量来实现任务间的通信?它有什么缺点?
25 1.UC/OS-II为什么要定义信号量集?
在实际运用中,任务常常需要与多个事件同步,即要根据多个信号量组合作用得结果来决定任务得运行方式。
信号量集就是实现这种功能的数据结构。
26信号量集所管理的是什么信号?信号量集所管理的信号量都是二值信号。
它实质上是一种可以对多个输入的逻辑信号进行基本逻辑运算(“与”运算(AND),“或”运算(OR))的组合逻辑。
27使用信号量集可以在程序中完成哪些工作?信号量集用一个双向链表来组织等待任务,每一个等待任务都是该链表中的一个节点
28什么叫内存分区?什么叫内存块?内存分区与内存块之间有什么关系?内存分区与内存块:操作系统将大片连续的内存分区管理,每个分区内含有整数个大小相同的内存块
29在同一个内存分区中内存块是按什么方式组织起来的?每个分区又分成若干大小相等的内存块来进行管理
30什么叫内存控制块?它记录了一些什么信息?内存控制块是由uC/OS-II为每个内存分区定义的一个数据结构。
系统用它来记录和跟踪每一个内存分区的状态。