欢迎来到天天文库
浏览记录
ID:34142301
大小:405.45 KB
页数:22页
时间:2019-03-03
《嵌入式操作系统复习大纲》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1、嵌入式操作系统概述(1)内核内核是指操作系统中的一个组件,它包含了OS的主要功能,即OS的各种特性及其相互之间的依赖关系,这些功能主要包括:A、任务管理:对系统中运行的软件进行描述和管理,并完成处理器资源分配和调度。B、存储管理:提高内存的利用率,方便用户使用,提供足够的存储空间。C、设备管理:方便设备的使用,提高CPU和I/O设备的利用率。D、文件管理:解决文件资源存储、共享、保密和保护等问题。注:不同嵌入式操作系统的内核设计各不相同,取决于系统设计和实际需求。(2)嵌入式操作系统分类A、按系统类型:商业系统、专用系统、开源系统。B、按响应时间
2、:硬实时系统、软实时系统。C、按软件结构:单体结构(uCOS)、分层结构(MS-DOS)、微内核结构(Vxworks)。2、任务管理(1)嵌入式操作系统的任务管理可以分为A、单道程序技术:操作系统中,任何时候只能有一个程序在运行。B、多道程序技术:操作系统中,允许多个程序同时存在并运行。(2)进程进程,简单的说,是一个正在运行的程序。进程与程序既有联系又有区别,主要表现为下面结构方面:A、程序由数据和代码两部分内容组成,它是一个静态的概念。而进程是正在执行的程序,它也由两部分组成:程序和该程序的运行上下文。它是一个动态的概念。B、程序和进程之间并不是
3、一一对应的。一个进程在运行的时候可以启动一个或多个程序。反之,同一个程序也可能由多进程同时执行。C、程序可以作为一种软件资源长期保存,以文件的形式存放在光盘或硬盘上,而进程则是一次执行的过程,它是暂时的,是动态的产生和终止。一个进程至少应包括三个方面:相应的程序、CPU上下文、一组系统资源。进程有三个特性:A、动态性:进程是正在运行的程序,而程序的运行状态是不断变化的。B、独立性:进程是系统资源的使用单位,每个进行有自己的运行上下文和内部状态。C、并发性:宏观来看,系统中同时有多个进程存在,它们相互独立地运行。注:对于并发的理解。在单CPU的情况下,
4、所谓的并发性指的是宏观上的并发运行,而微观上还是顺序进行,各个进程轮流去使用CPU资源。在单核CPU中,真正的、物理上的PC寄存器只有一个,进程在轮流执行的时候,物理PC的取值也在不断变化。而逻辑PC其实就是一个内存变量。每个进程都有一个逻辑PC,当一个进程要运行的时候,就把它的逻辑PC装载到物理PC中去;反之,当一个进程暂不运行的时候,就把物理PC中的值保存在它的逻辑PC当中。(3)线程线程就是进程当中的一条执行流程。进程其实包含两个部分:资源平台和执行流程(线程)。在一个进程当中,或者说在一个资源平台上,可以同时存在多个线程;可以用线程作为CPU
5、的基本调度单位,使得各个线程之间可以并发执行;对于同一个进程当中的各个线程来说,他们可以共享该进程的大部分资源。每个线程都有自己独立的CPU运行上下文和栈,这是不能共享的。(4)任务在嵌入式系统中,任务其实就是线程,它是能够独立运行的一个实体。原因有二:A、任务具有独立的优先级和栈空间,CPU上下文一般存放在栈空间中。B、任务之间可以很方便地、直接地使用共享的内存单元,而不需要经过系统内核。在多道程序的嵌入式系统中,同时存在着多个任务,这些任务之间的结构一般为层状结构,存在着父子关系。当嵌入式内核刚刚启动的时候,只有一个任务存在,然后由该任务派生出所
6、有其他任务。(5)任务的创建与中止任务的创建主要发生在以下三种情形:A、系统初始化。B、任务运行的过程中。C、用户提出请求。从技术的角度来说,实际上新任务只有一种创建的方法,也就是在一个已经存在的任务中,通过调用相应的系统函数来创建一个新的任务。任务的创建只要有两种可能的实现模型:fork/exec和spawn。两种模型的差别主要在于内存的分配方式。A、fork/exec模型下,首先调用fork函数为新任务创建一份与父任务完全相同的内存空间,然后再调用exec函数装入新任务的代码,并用它来覆盖原有的属于父任务的内容。嵌入式Linux操作系统是基于fo
7、rk/exec模型的。B、spawn模式下,在创建新任务的时候,直接为它分配一个全新的地址空间,然后将新任务的代码装入并运行。uCOS操作系统是基于spawn模型的。任务的中止可能有多种原因,主要有下面三种情况:A、正常退出。B、错误推出。C、被其他任务踢出。在有些嵌入式系统中,尤其是一些控制系统中,它的某些任务被设计为“死循环”的模式,一直循环下去,不会中止。(6)任务的状态任务有三种基本状态:A、运行状态:任务占有CPU,并在CPU上运行。B、就绪状态:任务已经具备运行的条件,在等待CPU空闲。C、阻塞状态:任务因为正在等待某种事件的发生而暂时不
8、能运行。对于就绪状态和阻塞状态,它们的相同之处在于,任务都是处于暂停状态,没有运行。不同之处在于,暂停的原因
此文档下载收益归作者所有