嵌入式操作系统期末重点总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式操作系统考试重点
题型:
填空12
名词解释12
简答30
应用编程46
1.嵌入式系统定义、基本概念、组成、特点、发展前景(嵌入式操作新系统不考)
嵌入式系统:是以应用为中心,以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
嵌入式系统的组成:由嵌入式硬件和软件组成。
嵌入式系统的特点:
1)是系统资源受限的系统;
2)有实时约束
3)要求较高可靠性和稳定性
4)大多要求低功耗
5)开发需要专用工具和特殊方法
发展前景:
主流技术将逐渐向嵌入式系统渗透
创新应用将决定厂商的命运
操作系统大显身手
2.嵌入式硬件系统基本组成、基本结构(冯、哈佛两者概念及区别)
嵌入式硬件是以嵌入式微处理器为核心,主要由嵌入式微处理器、总线、存储器、输入/输出接口和设备组成
冯、哈佛两者概念及区别:
冯诺依曼结构:是一种将程序指令存储器和数据存储器合并在一起的存储器结构
哈佛结构:是一种将程序指令存储和数据存储分开的存储器结构。
区别:哈佛结构使用两个独立的存储器模块,分别存储指令和数据,每个模块都不允许指令和数据并存;使用独立的两条总线,分别作为CPU与每个存储器之间的专用通信路径,而这两条总线之间毫无关联。
3.嵌入式软件特点(ppt)
1)规模小、开发难度大
2)快速启动、直接运行
3)实时性和可靠性要求高
4)程序一体化
5)两个平台,交叉开发
4.嵌入式OS体系架构概念、UOS概念、实时性(填空、解答、名词解释)
体系结构:是操作系统的基础,它定义了硬件与软件的界限、内核与操作系统
其它组件的组织关系、系统与应用的接口,是确保系统的性能、可靠性、灵活性、可移植性、可扩展性的关键。
uC/OS-II是一种专门为嵌入式设备设计的,基于优先级的可抢先式的硬实时EOS内核。
实时系统:指系统的计算正确性不仅取决于计算的逻辑正确性,还取决于产生结果的时间。如果未满足系统的时间约束,则认为系统失效。
。
5.硬实时、软实时概念
硬实时系统:对于事件的响应时间的截止期限是无论如何都必须得到满足。
软实时系统:违反截止期限并不会带来致命的错误
6.UOS任务概念、表现形式、分类
任务:是一个具有独立功能的无限循环的程序段的一次运行活动
分类:进程和线程
任务是EOS内核的基本单位
7.任务优先级及分类(所有东西。概念、分类)
任务优先级:表示任务对应工作内容在处理上的优先程度
任务的优先级分为:静态优先级和动态优先
级
静态优先级:任务的优先级被确定后,在系统的运行过程中将不再发生变化;
动态优先级:系统的运行过程中,任务的优先级是可以动态变化的。
*8.优先级位图算法(大题,编程)(会给出映射表,判定表,,要求写就绪表,怎样让任务进入退出就绪,,获取最高优先级等)
9.任务调度(不出大题,概念)
调度用来确定多任务环境下任务执行的顺序和在获得CPU资源后能够执行的时间长度。
10.抢占/不可抢占(概念)
抢占式调度:正在运行的任务可能被其他任务所打断。
非抢占式调度:一旦任务开始运行,该任务只有在运行完成而主动放弃CPU资源,或是因为等待其他资源被阻塞的情况下才会停止运行;
11.基于优先级的调度算法(概念)
基于优先级的可抢占式调度方式:
如果出现具有更高优先级的任务处于就绪状态时,当前任务将停止运行,把CPU的控制权交给具有更高优先级的任务,使更高优先级的任务得到执行。
时间片轮转调度算法:当有2个或多个就绪任务具有相同的优先级,且它们是就绪任务中优先级最高的任务时,任务调度程序按照这组任务就绪的先后次序调度第一个任务,让第一个任务运行一段时间,然后又调度第二个任务,让第二个任务又运行一段时间,依次类推,到该组的最后一个任务也得到运行一段时间后,接下来又让第一个任务运行。
12.优先级反转(概念、大题、实验报告)编程题——编写三个任务模拟优先级反转(参考实验报告)
优先级反转:高优先级任务需要等待低优先级任务释放资源,而低优先级任务又正在等待中等优先级任务的现象。。
13.优先级继承(基本思想,特点不考)、天花板协议(概念),优先级反转(编程)
基本思想:当一个任务阻塞了一个或多个高优先级任务时,该任务将不使用其原来的优先级,而使用被该任务所阻塞的所有任务的最高优先级作为其执行临界区的优先级。
优先级天花板协议:对于控制临界区的信号量,设置信号量的优先级天花板为可能申请该信号量的所有任务中具有最高优先级任务的优先级;如果任务成功获得信号量,任务的优先级将被抬升为信号量的优先级天花板;任务执行完临界区,释放信号量后,其优先级恢复到其最初的优先级;
如果任务不能获得所申请的信号量,,任务将被阻塞。
14.信号量,消息队列不考(夹在其他内容中考)
15.Linux 基本命令(PPT,以实验报告为准)
16.进程创建,fork(进程间通信-管道(看ppt那道题)+fork编程)
17.实验报告关于shell(编程大题、看截图那道题,PPT例子)
18.在linux中信号实现原理,
怎样实现(看截图图片)
信号:是比较的复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身。
信号实现:
如果想要进程捕获某个信号,然后作出相应的处理,就需要注册信号处理函数。同中断类似,内核也为每个进程准备了一个信号向量表,信号向量表中记录着每个信号所对应的处理机制,默认情况下是调用默认处理机制。当进制为某个信号注册了信号处理程序后,发生该信号时,内核就会调用注册的函数。
19.系统调用、用户编程接口API、系统命令、内核函数(相互关系、概念,必须清楚,异常不考)
系统调用并非直接和程序员或系统管理员打交道,它仅仅是一个通过软中断机制向内核提交请求,获取内核服务的接口;
程序员调用的多是用户编程接口--API,而管理员使用的则多是系统命令;用户编程接口其实是函数的定义。
20.sys_call_table 是什么,关系(与内核)
sys_call table是一张由指向实现各种系统调用的内核函数的函数指针组成的表
内核记录了系统调用表中的所有已注册过的系统调用的列表
这个表中未每一个有效的系统调用指定了唯一的系统的调用号。
21.系统调用如何传递参数、如何返回值
传递参数:
linux会有6个寄存器使用来传递这些参数:eax(存放系统调用号)、ebx、ecx、
edx、esi、edi来存放这些参数,具体的做法是在system _call()中使用SAVE_ALL宏把这些寄存器的值保存在内核态堆栈中。
返回:
当服务的例程结束后,system_call()从eax获得系统调用的返回值,并把这个返回值存放在曾保存用户态eax寄存器栈单元的那个位置上。然后跳转到ret_from_sys_call(),终止系统调用处理程序的执行。当进程恢复它在用户态的执行前,RESTRE_ALL宏会恢复用户进入内核前被保留到堆栈中的寄存器的值,其中eax返回时回代辉系统调用的返回码。(负数说明调用错误,0或正数说明正常完成)
22.获取文件大小、日期、文件复制这两个例子(看PPT代码)
23.管道的概念:
管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在与内存中。
数据的读出和写入:一个进程向管道中写的内容被管道另一端的进程读出。
写入的内容每次都添加在管道缓冲区的末尾,并且每次都是从缓冲区的头部读出数据,只能用于父子进程或者兄弟进程之间