收藏 分销(赏)

操作系统设计与应用实践期末试卷.doc

上传人:仙人****88 文档编号:9459361 上传时间:2025-03-27 格式:DOC 页数:7 大小:256KB 下载积分:10 金币
下载 相关 举报
操作系统设计与应用实践期末试卷.doc_第1页
第1页 / 共7页
操作系统设计与应用实践期末试卷.doc_第2页
第2页 / 共7页


点击查看更多>>
资源描述
一、选择题(本题满分14分,每个选择1分) 1、一般来说,嵌入式软件系统中的任务函数中,应设计一个( ),表示该功能是可以连续执行的。 A)条件语句 B) 循环语句 C) 普通函数 D) 无限循环 2、采用交叉开发方式,开发平台一般采用( )。运行平台基于( )。 A)单片机 B) 固定硬件 C)通用计算机 D) 实验仪 3、m在μC/OS-II操作系统中,大部分源码采用移植性很强的( )编写,和微处理器硬件相关部分采用( )编写。 A)C语言 B) JAVA C) VC++ D) 汇编语言 4、μC/OS-II的启动多任务环境的函数叫做OSStart()。用户在调用OSStart()之前,必须已经建立了一个或更多任务,OSStart()函数会调度( )的任务运行。 A)优先级最高 B) 优先级最低 C) 当前任务 D)随机任务 5、利用关闭任务调度函数OSSchedLock( )和打开任务调度函数OSSchekUnlock( ),可以实现( )间互斥访问数据。 A)函数 B) 中断处理子程序 C) 任务和中断处理子程序 D)任务 6、嵌入式操作系统管理的多任务的堆栈的空间( ),在( )中定义。 A)各自独立 B) 集中在一起 C) 应用代码 D) μC/OS-II内核 7、假定μC/OS-II设定的时钟节拍率是200Hz,时钟节拍计数器每秒钟递增( )。 A)100 B) 200 C) 300 D) 400 8、移植μC/OS-II到一个新的体系结构上,需要修改的文件不包括( )。 A)OS_CPU.H B)TASK.C C)OS_CPU_C.C D)OS_CPU_A.ASM 9、μC/OS-II对内存进行( )管理,可把管理的动态内存空间分成( )的分区,每个分区又分成了( )的内存块来进行管理。 A)一级 B)一个 C) 多个大小相等 D)两级 E)多个大小不等 二、判断题(本题满分10分,共含10道小题,每小题1分) 1、时限要求严格的系统称为硬实时系统。 2、μC/OS-Ⅱ是非抢占式实时多任务内核,优先级最高的任务一旦准备就绪,则拥有CPU的所有权开始投入运行。 3、当系统需要确保响应时间时,需要使用可剥夺型操作系统内核进行管理和编程。 4、并发任务所访问的资源必须独占使用的方式,称为互斥。 5、为确保临界段代码的互斥执行,通常,在进入临界段之前开中断,而临界段代码执行完以后要立即关中断。 6、全部μC/OS-II操作系统的系统函数的执行时间不可以确定。 7、μC/OS-II提供的禁止任务切换可以防止中断的干扰。 8、congfig.h文件的作用设置所有选项,用于配置和裁剪内核代码及其数据结构。 9、OS_CPU.H文件中的typedef unsigned char INT8U;表明INT8U的类型为unsigned char。 10、嵌入式操作系统μC/OS-II的多任务环境由函数OSStart( ) 启动。用户在调用该函数之前,必须已经建立了一个或更多任务。嵌入式应用程序中,该函数一般在主函数中调用。 三、图示题(本题满分17分,共含1道小题) 下图是一个嵌入式操作系统多任务管理下的就绪表,由其中变量OSRdyGrp和一维数组OSRdyTbl[8]均是8bit的无符号整型,根据下图回答以下问题。 图中包含几个就绪任务: 。 这些就绪任务的优先级各为: , 其中优先级最高的是 ,优先级最低的是 。 当前变量OSRdyGrp的值为 。 当前一维数组OSRdyTbl[8]的各个元素的值依次分别为: 、 、 、 、 、 、 、 。 OSRdyGrp 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 [0] [1] [2] [3] [4] [5] [6] [7] OSRdyTbl[8] X Y 四、数据结构及算法计算题(本题满分17分) 某事件的等待任务表的当前状态,如下图所示: pevent OSEventType OSEventCnt; OSEventPtr; OSEventTbl[8] OSEventGrp; 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 假如等待事件到来,需要运用查表法,在等待任务表中查找最高优先级的任务,并从该等待表中删除它。提示,查表法算法如下所示。 1、在等待任务表中查找最高优先级任务(优先级为prio)算法如下: y = OSUnMapTbl[pevent->OSEventGrp]; x = OSUnMapTbl[pevent->OSEventTbl[y]]; prio = (y << 3) + x;) 2、从等待任务表中删除一个任务(优先级为prio)的算法如下: if((pevent->OSEventTbl[prio>>3]&=~OSMapTbl[prio&0x07])== 0) { pevent->OSEventGrp &= ~OSMapTbl[prio >> 3]; } 请利用上述算法运算及其结果,并在空白处填写对应的各表达式的值,并解答相关问题,总结上述算法特性。其中,OSUnMapTbl[ ] 和OSMapTbl[ ]两表的值如下所示。 INT8U const OSMapTbl[ ]={ 1,2,4,8,16,32,64,128 }; [1] 在等待任务表中查找最高优先级任务的过程如下,请将左边表达式的值写在对应右边的空白处。 pevent->OSEventGrp y=OSUnMapTbl[pevent->OSEventGrp] pevent->OSEventTbl[y] x=OSUnMapTbl[pevent->OSEventTbl[y]] y << 3 prio = (y << 3) + x 当前最高优先级等待任务是: [2] 从等待任务表中删除该优先级任务的过程如下,请将左边表达式的值写在对应右边的空白处。 prio>>3 运算前,pevent->OSEventTbl[prio>>3] prio&0x07 OSMapTbl[prio&0x07] 运算后,pevent->OSEventTbl[prio>>3] 运算前,pevent->OSEventGrp 运算后,pevent->OSEventGrp 此时,该等待任务是否还在等待任务表中? 评价该算法有何特点 五、代码分析题(本题满分14分,共含3道小题,每空1分) 1、请以下列任务控制块类型定义的代码为例,回答以下问题,说明嵌入式操作系统µC/OS-II如何实现内核裁减。 typedef struct os_tcb { OS_STK *OSTCBStkPtr; #if OS_TASK_CREATE_EXT_EN Void *OSTCBExtPtr; OS_STK *OSTCBStkBottom; INT32U OSTCBStkSize; INT16U OSTCBOpt; INT16U OSTCBId; #endif … } OS_TCB; 不可以裁剪的代码部分是 。 可以裁剪的代码部分是 。 是否裁剪由哪个数据决定? 。 如需裁剪,该数据设为 。 如不需裁剪,该数据设为 。 2、以下程序代码段利用信号量机制实现互斥。 OS_EVENT *SemMu; SemMu =OSSemCreate (1); void Task1 (void *pdata) { INT8U err; for (;;){ OSSemPend(SemMu, 0, &err); 。。。。。。; OSMboxPost(SemMu); } } 请根据上述代码,回答以下问题: 信号量变量名为 。 信号量的初值为 。 需要互斥的代码段是 进入互斥代码段的实现方法为 。 退出互斥代码段的实现方法为 。 3、以下是嵌入式操作系统µC/OS-II创建内存分区代码段。 OS_MEM *Buf; INT8U CommTx[10][16]; void main (void) { INT8U err; … Buf = OSMemCreate(CommTx, 10, 16, &err); … OSStart(); } 根据代码段,回答以下问题: 指示内存分区的变量名为 。 分区的空间大小为 字节。 该分区的内存块的个数为 。 每个内存块的字节数为 。 六、程序设计题(本题满分28分,共含2道小题) 1、在一个能够持续运行的应用程序中,设计任务1(task1),每1秒运行一次,在屏幕的第一行处显示“1S”;设计任务2(task2),每2秒运行一次,在屏幕的第二行处显示“2S”;设计任务3(task3),每5秒运行一次,在屏幕的第三行处显示“5S”。 写出以上3个任务函数原型定义及其包含以上功能的代码段。(10分) 2、在一个能够持续运行的应用程序中,设计3个任务,其中:任务1(task1)每隔2秒接收信号量集中的第0、1、2、3位的信号全“1”;任务2(task2)每隔3秒接收信号量集中的第4、5、6、7位的信号全“1”;任务3(task3)每隔2秒向信号量集中信号发送信号全“1”。(18分) 要求如下: (1)写出3个任务的堆栈定义(3分) (2)创建3个任务的μC/OS-II内核调用语句(3分) (3)3个任务函数原型定义及其包含以上功能的代码段。(12分) 七、实验题 (一) 分析与设计题 (满分20分,共含2小题,每小题10分) 1、 对本课题组所开发的综合算法演示程序进行简要描述,包括课题组成员、各算法名称及各算法基本功能。 2、 你个人开发算法演示程序功能进行简要描述,包括算法中任务数量、任务名称、各任务简要功能描述及并发任务间的同步关系简要描述。 (二) 设计与实现题(本题满分48分,共含5小题) 选择你个人负责开发的一个算法,回答以下开发、设计实现问题。 1. 你设计的所有任务如何创建?要求写出调用μC/OS-II创建任务系统函数语句。(8分) 2. 你设计的信号量如何创建?要求写出调用μC/OS-II创建信号量系统函数语句。(8分) 3. 写出1、2、中每个任务的优先级和每个信号量的初值。(8分) 4. 简要说明至少两个任务函数的内部处理流程。其中重点应包括信号量申请、信号量释放、界面信息显示方法、时间延迟及无限循环的设计与实现。(16分) 5. 分别说明4、中两个任务每一次循环执行时,在界面上显示的动态变化的信息说明。(8分) (三) 界面设计与实现题(本题满分21分) 1. 画出你个人实现的算法演示程序运行界面的布局示意简图(7分), 2. 并按照静态信息(运行过程中内容不变)(2分) 3. 和动态信息(根据运行的推进不断发生变化的内容)(5分), 4. 对所显示的内容,分别进行编程实现方法的说明。请结合实现显示需要调用的函数及其参数进行说明(7分)。 (四) 技术综述题(本题满分11分) 简要综述你个人在本课程中使用的嵌入式操作系统μC/OS-II的基本功能,也可以按照你所使用的操作系统内核函数进行列举说明。 7
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服