嵌入式操作系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 这个算法首先找它请求大小的内存页块 ,它跟踪 • •
free_area数据结构中的list单元队列中的空闲页的 free_area数据结构中的list单元队列中的空闲页的 链表 如果找到的页块大于请求的页块,则该块将被分 开成为合适大小的块 因为所有的块都是2 因为所有的块都是2的幂次的页数组成,所以这个 分割的过程比较简单,你只需要将它平分就可以 了。空闲的块则放到适当的队列,而分配的页块 则返回给调用者。
– 运行于linux内核空间的进程(核心态)不能被 运行于linux内核空间的进程(核心态)不能被 抢先 – 在linux中,中断有时候会出于保护临界区操作 linux中,中断有时候会出于保护临界区操作 的目的而被屏蔽 – 通用linux的时间滴答长度为10ms(硬件时钟频 通用linux的时间滴答长度为10ms(硬件时钟频 率100HZ),但是这对于时间精度要求很高 100HZ),但是这对于时间精度要求很高 (微秒级)的实时进程来说是不够的

Linux 2.6内核实时性分析 2.6内核实时性分析
• 2.6中内核自身是可抢占的,它允许自身在执 2.6中内核自身是可抢占的,
行任务时被打断 • 2.6版本的Linux内核使用了由 Ingo Molnar 2.6版本的Linux内核使用了由 开发的新的调度器算法,称为O(1)算法 开发的新的调度器算法,称为O(1)算法
DPM框架 DPM框架
存储管理
• 多程序模型
– 这是没有硬件地址转换的内存管理模型。即使 没有硬件地址转换功能支持,多个程序也可以 共享相同的物理地址
• 具有地址转换硬件的内存管理模型
– 应用程序使用的是虚拟地址,CPU实际执行程 应用程序使用的是虚拟地址,CPU实际执行程 序所示用的是物理地址,从虚拟地址到物理地 址的转换需要操作系统和MMU硬件的参与 址的转换需要操作系统和MMU硬件的参与
DPM简介 DPM简介
• DPM-Dynamic Power Management DPM- • 在面向Linux的DPM架构中,内核中的DPM 在面向Linux的DPM架构中,内核中的DPM
子系统负责维持整个系统的电源状态 • 并把DPM系统的不同电源管理模块联系在 并把DPM系统的不同电源管理模块联系在 一起。 • 可以把DPM看成是为驱动程序、中间件和 可以把DPM看成是为驱动程序、中间件和 应用程序提供服务的元素
实时调度分类
• 各种实时操作系统的实时调度算法从调度策略上
可以分为如下三种类别:基于优先级的调度算法 (Priority-driven scheduling-PD)、基于CPU使用 Priorityscheduling-PD)、基于CPU使用 比例的共享式的调度算法(Share比例的共享式的调度算法(Share-driven scheduling-SD)、以及基于时间的进程调度算法 scheduling-SD)、以及基于时间的进程调度算法 (Time-driven scheduling-TD) Timescheduling-TD) 从调度方式上来讲可以分为:可抢占、不可抢占; 从时间片来分:固定时间片、可变时间片
高速缓冲(Cache)简介 高速缓冲(Cache)
• Buffer Cache • Page Cache • Swap Cache • Hardware Cache
虚拟存储功能
• 巨大的寻址空间 • 内存映射 • 公平的物理内存分配 • 共享虚拟内存
主存与辅存层次信息传送
• 页式虚拟存储器 • 段式虚拟存储器 • 段页式虚拟存储器
RTLinux硬实时操作系统简介 RTLinux硬实时操作系统简介
• RTLinux是一硬实时操作系统 RTLinux是一硬实时操作系统 • 实现了一个微内核的小的实时操作系统,而将普 • • •
通Linux系统作为一个该操作系统中的一个低优先 Linux系统作为一个该操作系统中的一个低优先 级的任务来运行 普通Linux系统中的任务可以通过FIFO和实时任务 普通Linux系统中的任务可以通过FIFO和实时任务 进行通信 通过软件来模拟硬件的中断控制器 RT-Linux通过将系统的实时时钟设置为单次触发 RT-Linux通过将系统的实时时钟设置为单次触发 状态,可以提供十几个微秒级的调度粒度
嵌入式系统的文件系统管理
• 嵌入式系统的物理存储
– Flash存储器由于其安全性高,存储密度大,体 Flash存储器由于其安全性高,存储密度大,体 积小,价格相对便宜,是嵌入式领域中最受欢 迎的一类存储器
• 嵌入式系统中使用Flash存储器,通常有两 嵌入式系统中使用Flash存储器,通常有两
种使用方式
µCLinux存储管理 µCLinux存储管理
• 其设计针对没有MMU的处理器,不能使用处理器 其设计针对没有MMU的处理器,不能使用处理器 • • • •
的虚拟内存管理技术 µCLinux仍采用存储器的分页管理,系统在启动时 µCLinux仍采用存储器的分页管理,系统在启动时 把实际存储器进行分页 没有MMU 没有MMU管理,所以实际上µCLinux采用实存储 MMU管理,所以实际上µCLinux µCLinux采用实存储 器管理策略(real 器管理策略(real memeory management) µCLinux系统对于内存的访问是直接 µCLinux系统对于内存的访问是直接 一个进程在执行前,系统必须为进程分配足够的 连续地址空间,然后全部载入主存储器的连续空 间中

嵌入式Linux启动过程分析 嵌入式Linux启动过程分析
• 在内核运行之前需要系统引导程序(Bootloader)完 在内核运行之前需要系统引导程序(Bootloader)完 •
成加载内核和一些辅助性的工作,然后跳转到内 核代码的起始地址并执行。 整个arm linux内核的启动可分为三个阶段:第一 整个arm linux内核的启动可分为三个阶段:第一 阶段主要是进行cpu和体系结构的检查、cpu本身 阶段主要是进行cpu和体系结构的检查、cpu本身 的初始化以及页表的建立等;第二阶段主要是对 系统中的一些基础设施进行初始化;最后则是更 高层次的初始化
– 只进行只读访问 – 在系统运行的时候既需要进行读操作,也需要 进行写操作。
存储设备的管理方式
• 直接访问Flash 直接访问Flash
– 自己编写Flash的驱动程序(即基本操作函数) 自己编写Flash的驱动程序(即基本操作函数)
• Flash Disk
– 有些Flash存储设备上附带了控制电路,并且提 有些Flash存储设备上附带了控制电路,并且提 供了IDE的接口。这些设备通常都是模拟了PC 供了IDE的接口。这些设备通常都是模拟了PC 中的IDE之类设备的接口 中的IDE之类设备的接口
嵌入式操作系统
陈天洲、陈文智
实时性简介 实时性简介
• 对于什么是实时系统,POSIX 1003.b作了 对于什么是实时系统,POSIX 1003.b作了
这样的定义:指系统能够在限定的响应时 间内提供所需水平的服务 • 实时系统根据其对于实时性要求的不同, 可以分为软实时和硬实时两种类型 • 一个计算机系统为了提供对于实时性的支 持,它的操作系统必须对于CPU和其他资源 持,它的操作系统必须对于CPU和其他资源 进行有效的调度和管理,即实时调度
内存的分配与回收
• 最近被执行过的地址转换结果会被保留在
MMU的转换后备缓存(TLB)中 MMU的转换后备缓存(TLB)中 • 页分配使用2的幂数大小的块 页分配使用2 • Linux使用Buddy算法有效地分配和回收页 Linux使用Buddy算法有效地分配和回收页 块
Buddy算法 Buddy算法
地址映射机制
• 地址映射机制,主要完成主存、辅存和虚存 地址映射机制,
之间的关联 • Linux采用一系列的数据结构和一个硬件缓 Linux采用一系列的数据结构和一个硬件缓 存(TLB)来实现地址映射机制 (TLB)来实现地址映射机制 • Linux内核的映射机制被设计成三层,在页 Linux内核的映射机制被设计成三层,在页 面目录和页表之间增设了一层“中间目录” 面目录和页表之间增设了一层“中间目录”
• 专用于Flash的文件系统 专用于Flash的文件系统
– JFFS等文件系统,目前已经非常成熟,并有了 JFFS等文件系统,目前已经非常成熟,并有了 成功的应用
嵌入式文件系统的类型
• RAMDISK
– 在RAMDISK文件系统中,当系统启动的时候,会把外存中的映像 RAMDISK文件系统中,当系统启动的时候,会把外存中的映像 文件加压缩到内存中,形成RAMDISK环境,便可以开始运行程序 文件加压缩到内存中,形成RAMDISK环境,便可以开始运行程序 了。这种文件系统最大的问题就是,运行的程序的代码在内存和 外存都占据了空间
Linux存储管理 Linux存储管理
• Linux使用了上述第二种存储管理模型。 Linux使用了上述第二种存储管理模型。 • 应用程序在标准Linux中的加载使用了“按 应用程序在标准Linux中的加载使用了“
需”分页的策略 • Linux 的内存管理采取的是分页机制 • Linux虚拟内存的实现,需要几种不同的机 Linux虚拟内存的实现,需要几种不同的机 制来实现:地址映射机制、内存的分配与 回收、请求页机制、交换机制、内存共享 机制。
•ห้องสมุดไป่ตู้
实时性改造
• 对操作系统实时性的扩展可以从两方面进
行:向外扩展和向上扩展 • 向外扩展是从范围上扩展,让实时系统支 持的范围更广,支持的设备更多 • 向上扩展是扩充操作系统内核,从功能上 扩充系统的实时处理
Linux的实时性 Linux的实时性
• 一般的通用linux已经具备一定的实时性 一般的通用linux已经具备一定的实时性 • 但无法满足硬实时的要求
嵌入式Linux的启动优化 嵌入式Linux的启动优化
• 系统任务裁减
– 裁减不适合本系统的部分任务
• 系统任务并行
– 明确任务依赖关系 – 任务并行启动(make -j 工具的使用) 任务并行启动(make
电源管理综述
• 现在Linux中,最主要的电源管理方案主要 现在Linux中,最主要的电源管理方案主要
有三种:APM、ACPI、 有三种:APM、ACPI、DPM • 传统的APM(Advanced Power Management) 传统的APM(Advanced 是一种基于bios的电源管理标准 是一种基于bios的电源管理标准 • ACPI(Advanced Configuration and Power Interface),它主要是将电源管理的主要执 Interface),它主要是将电源管理的主要执 行者由bios转换成为操作系统,这样可以提 行者由bios转换成为操作系统,这样可以提 供更大的灵活性以及可扩展性
嵌入式Linux的实时性改造 嵌入式Linux的实时性改造
• 可以引入一个双内核结构 • 对Linux内核代码作一些修改Linux本身的任务以 Linux内核代码作一些修改Linux本身的任务以
及Linux内核本身作为一个优先级最低的任务,而 Linux内核本身作为一个优先级最低的任务,而 实时任务作为优先级最高的任务以Linux的内核模 实时任务作为优先级最高的任务以Linux的内核模 块(Loadable Kernel Module,LKM)的形式存在的 Module,LKM)的形式存在的 资源核方法:这种方法是为解决传统实时操作系 统中固定优先级抢占式调度策略的局限性而产生 的
RTLinux内核结构 RTLinux内核结构
Linux进程
实时任务 Linux内核
RTLinux内核
硬件环境
启动优化基本技术
• 一、固化各种不可扩展硬件的设置,尽量标准化 •
可扩展设备的接口,节约设备检测时间。 二、Lazy Loading,也即不加载当前非必需的模 二、Lazy Loading,也即不加载当前非必需的模 块,这些模块可以在启动后待机时间内加载,或 者在具体用到之后再加载,把启动时间打散,从 而缩短对用户来说至关重要的反应时间 (Responding Time)。 Time)。 三、任务并行化,很多系统在启动任务时,是顺 序执行,按部就班。为了减少启动时间,我们可 以考虑任务的并行化,以减少启动时间的消耗。
相关文档
最新文档