1.什么是操作系统?它应具备什么功能?
管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石.
1.)操作系统是计算机硬件的封装和扩充2).操作系统是计算机资源的管理者,包括处理器管理、存储器
存储空间管理、外部输入输出(I/O)设备管理、文件管理、网络和通信管理、提供用户接口。 2嵌入式操作系统与普通操作系统区别
嵌入式操作系统具有通用操作系统的基本特点,但嵌入式操作系统在系统实时高效性、硬件的相关依赖性、
软件固态化以及应用的专用性等方面具有较为突出的特点 3什么是实时系统?对实时系统有什么要求?
如果一个系统能及时响应外部事件的请求,并能在规定的时间内完成对事件的处理,这种系统称为实时系统.
1.实时系统的计算必须产生正确的结果,称为逻辑或功能正确.2.实时系统的计算必须在预定的时间内完成.称为时间正确. 4可剥夺内核:当一个进程正在被处理器所运行时,其他就绪进程可以按照事先规定的规定的规则,强行剥夺
正在运行进程的处理器使用权,而使自己获得处理器使用权并得以运行 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什么是空任务控制块链表?什么是任务控制块链表?
空任务块链表,其中所有任务控制块还没有分配给任务;任务控制块链表,其中所有任务块已经分配给任务 16UC/OS-II的中断响应过程: 系统接收到中断请求后,如果这是CPU处于中断允许状态,系统会中止正在
运行的当前任务,而按照中断向量的指向转而去运行中断服务子程序;当中断服务子程序的运行结束后,系统会根据情况返回到被中止的任务,或转向更高优先级的任 17全局变量OSIntNesting的作用: 记录中断嵌套的层数。
18操作系统的时钟:操作系统中特定的周期性中断为系统提供时间依据。
19在UC/OS-II中,时钟节拍服务做了什么工作?时钟节拍服务做了:可以使人物延时若干个整数的时钟节
拍以及当任务等待事件发生时提供等待超时依据。
20说明延时函数OSTimeDly()与OSTimeDlyHMSM()的区别: OSTimeDly():时钟节拍数;OSTimeDlyHMSM():
按照时 分 秒的设置延时
21使用信号量可在应用程序中完成哪些工作?任务间通信 完成共享资源的访问 任务的同步执行
22什么叫优先级反转?这种现象什么情况下发生?有什么危害?在可剥夺型内核中,当任务以独占方式使
用共享资源时,会出现低优先级任务先于高优先级任务而被运行的情况。称优先级反转。
一个低优先级任务在获得信号量使用共享资源期间,被高优先级任务所打断而不能释放信号量,从而使
正在等待该信号量的高优先级任务因得不到信号量而被迫处于等待状态。在等待期间,就让占据该信号量的低优先级任务先运行
如果这种情况发生较多,则会极大地恶化优先级任务地运行环境。
23互斥型信号量是如何防止优先级反转的?在低优先级的任务要使用共享资源前 将其优先级提升到高于
可能使用该共享资源的任务优先级,使用完共享资源后在讲其优先级恢复到原值。 25 1.UC/OS-II为什么要定义信号量集?
在实际运用中,任务常常需要与多个事件同步,即要根据多个信号量组合作用得结果来决定任务得运行方
式。信号量集就是实现这种功能的数据结构。
26信号量集所管理的是什么信号?信号量集所管理的信号量都是二值信号。它实质上是一种可以对多个输
入的逻辑信号进行基本逻辑运算(“与”运算(AND),“或”运算(OR))的组合逻辑。
27使用信号量集可以在程序中完成哪些工作?信号量集 用一个双向链表来组织等待任务,每一个等待任
务都是该链表中的一个节点
28什么叫内存分区?什么叫内存块?内存分区与内存块之间有什么关系?内存分区与内存块:操作系统将
大片连续的内存分区管理,每个分区内含有整数个大小相同的内存块
29在同一个内存分区中内存块是按什么方式组织起来的?每个分区又分成若干大小相等的内存块来进行管
理
30什么叫内存控制块?它记录了一些什么信息?内存控制块是由uC/OS-II为每个内存分区定义的一个数
据结构。系统用它来记录和跟踪每一个内存分区的状态。
嵌入式系统 是以应用为中心,以计算机技术为基础,且软硬件可裁减,适应应用系统对功能、可靠性、成
本、体积、功耗有严格要求的专用计算机系统。它一般由以下几部分组成: 嵌入式微处理器 外围硬件设备 嵌入式操作系统 特定的应用程序
特点:",应用的特定性和广泛性 ",技术、知识、资金的密集性 ",高效性 ",较长的生命周期 ",高可靠性 ",
软硬一体,软件为主 ",无自举开发能力 μC/OS-Ⅱ简介
特点之一是:结构小巧。包含全部功能的核心部分代码只占用8.3K字节,同时由于μC/OS-Ⅱ是可裁剪的,
所以用户系统中实际的代码最少可达2.7K字节。
特点之二:是一个真正的实时操作系统。实时操作系统一般定义为“一个能够在指定的或者确定的时间内,
完成系统功能和对外部或内部、同步或异步事件做出响应的系统”。
特点之三是:μC/OS-Ⅱ实际上是一个实时操作系统内核,只包含了任务调度、任务管理、时间管理、内存
管理和任务间的通信与同步等基本功能。 12、简述μC/OS-II的主要特点。
可移植性:μC/OS-II的源代码绝大部分是使用移植性很强的ANSI C写的,将与微处理器硬件相关的汇编
语言使用量压缩到最低的限度,以使μC/OS-II便于移植到其它微处理器上。 可剪裁:μC/OS-II使用条件编译实现可剪裁。
占先式:μC/OS-II是占先式实时内核,总是运行就绪条件下优先级最高的任务。
多任务:μC/OS-II可以管理64个任务,其中8个作为系统保留,所以实际用户可使用的为56个任务。 可确定性:μC/OS-II的函数调用与系统服务的执行时间是可知的。 任务栈:μC/OS-II的每个任务都有自己单独的栈。 中断管理:μC/OS-II允许中断嵌套层数可达255层。 13、简述μC/OS-II实时内核中任务调度器的原理。
μC/OS-II根据组变量、表变量得到优先级最高的任务,通用公式是: OSUnMapTbl[OSRdyGrp]>>3+ OSUnMapTbl[OSRdyTbl[OSRdyGrp]]。 这里OSRdyGrp为组变量,OSRdyTbl为表变量。
14、说明函数OSTimeTick()、OSTimeDly()的主要任务。
OSTimeTick()的主要任务就是定期将时间延时项OSTCBDly减1,直至为0。 任务延时函数OSTimeDly(),可置任务控制块OSTCBDly的值为所需要的,一旦对某个任务调用了OSTimeDly()
函数,则该任务将被挂起,直到OSTCBDly被减为0。 15、简述解决互斥的3种办法,它们各有何优缺点。 常用的解决互斥的3种办法包括:
关闭中断法,进程在进入临界区后立即关中断,在离开时开中断,这样就可以简单的实现任务互斥。优点:
这是实现互斥最简单的办法。缺点:把禁止中断的权利交给用户进程很危险,若一个进程禁止中断后不再打开中断,整个系统会因此而中止。
锁变量法,对临界资源设置一个锁变量,初值为0。缺点:是忙等待的解决方案,会浪费大量的CPU时间。 信号量法,设置一个初值为1的信号量便能很好的解决互斥问题。这种方法是迄今最完全的解决方案。 16、信号量是如何实现同步的?
信号量能很好的解决同步问题,为此,必须进行如下设置(这样的安排是保证进程同步的关键): 设置一个初值为0 的信号量;
在进程A的同步点X处安排关于信号量的P操作; 在进程B的Y处安排关于信号量的V操作。
中断:任务在运行过程中,应内部或外部异步事件的请求中止当前任务,而去处理异步事件所要求的任务
的过程叫做中断。
中断服务程序:应中断请求而运行的程序叫中断服务子程序(ISR)。 中断向量:中断服务子程序的入口地址叫中断向量。 CPU响应中断的条件: ? 至少有一个中断源向CPU发出中断信号 ? 系统允许中断,且对此中断信号未予屏蔽
任务间的同步依赖于任务间的通信。在uC/OS-II中,使用信号量、邮箱和消息队列这些被称作事件的中间
环节来实现任务间的通信。
使用信号量的目的:为共享资源设立一个表示该共享资源被占用情况的标志。
在实际应用中,任务常常需要于多个事件同步,即根据多个信号量组合作用的结果来决定任务的运行方式。 信号量集所能管理的信号量一般都是二值信号。
请求信号量集的任务得以继续运行的条件与所请求的信号量之间有两种逻辑关系:AND和OR。 uc/os-ii的任务有5种状态
睡眠态(DORMANT): 任务以代码形式驻留在程序空间,还没有交给uc/os管理,即还没有配备任务控制块,
还没有被创建。
就绪态(READY): 系统为任务配备了任务控制块,且在任务就绪表中就行了就绪登记。 运行态(RUNNING): 正在使用CPU的状态称运行态。
等待态(WAITING):等待一段时间或某事件发生再运行的状态。
中断服务态(ISR):正在运行的任务被中断时就进入了中断服务态(ISR)。
任务控制块 (Task Control Blocks, OS_TCBs)是 ucos-ii用来存储任务堆栈指针、当前状态、优先级及
任务链表指针等属性的一个数据结构。
创建任务时,必须创建任务控制块,通过控制块初始化函数OSTCBInit()完成,其做三件事: 从空任务控制块链表获取一个任务控制块; 用任务的属性对任务控制块各个成员进行赋值; 把这个任务控制块链入到任务控制块链表。
1、任务的存储结构主要由哪三部分组成?答:任务程序代码,任务堆栈,任务控制块。
uc/os-ii预定义了两个为应用程序服务的系统任务:空闲任务和统计任务,其中空闲任务是每个程序必须
使用的,而统计任务是应用程序可根据实际情况需要选择使用。 任务删除函数:OSTaskDel() #if OS_task_del_en
INT8U OSTaskDel(INT8U prio);
时钟:任务操作系统都要提供一个周期性的信号源,以供系统提供处理诸如任务的等待,延时等与时间有
关的事件,这个周期性的信号源叫时钟。最小的的时钟单位就是两次中断之间间隔的时间,这个最小时钟单位叫着时钟节拍(time tick)
事件控制块:为了把描述的事件的数据结构统一起来,uc/os-ii把事件等待任务表和与事件相关的其他信
息组合起来定义了一个叫着事件控制块的ECB的数据结构。 什么是任务切换?任务切换时主要完成哪些工作?
答:中止正在运行的任务,转而去运行另外的一个任务的工作。也就是暂停现行任务,去完成另一个任务。 6. 与共享资源打交道时,使之满足互斥条件最一般的方法包括哪些?
答:包括:关中断、使用测试并置位指令、禁止做任务切换、利用信号量等。 7. 描述利用μC/OS_Ⅱ 宏调用关中断和开中断处理共享数据的示意性代码程序。 答: OS_ENTER_CRITICAL();/*在这里处理共享数据*/OS_EXIT_CRITICAL(); 8. 信号量的典型应用包括哪些?
答:信号量(Semaphores) 是一种约定机制,在多任务内核中的典型应用包括: (1) 控制共享资源的使用权(满足互斥条件); (2) 标志某事件的发生 (3) 使两个任务的行为同步
9.对信号量只能实施哪三种操作?
答:一般地说,对信号量只能实施三种操作: (1) 初始化(INITIALIZE),也可称作建立(CREATE); (2) 等信号(WAIT)也可称作挂起(PEND); (3) 给信号(SIGNAL)或发信号(POST)。
(4) OS_ENTER_CRITICAL() 和 OS_EXIT_CRITICAL()的含义及作用?
答:OS_ENTER_CRITICAL() :关中断;OS_EXIT_CRITICAL():开中断。关中断和开中断是为了保护临