嵌入式系统设计大学教程5 嵌入式操作系统.ppt

嵌入式系统设计大学教程5 嵌入式操作系统.ppt

  1. 1、本文档共106页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.5 常用嵌入式操作系统 嵌入式操作系统与通用操作系统的主要的差别在于时间属性要求高,即在规定的进程期限内完成对某事件的处理。 嵌入式操作系统的基本设计原则是:尽量地缩短系统平均响应时间并提高系统的吞吐率,在单位时间内为尽可能多的用户请求提供服务。 5.5.1 嵌入式Linux 1. Linux的内存管理机制 Linux内存管理程序通过映射机制把用户程序的逻辑地址映射到物理地址。 为了支持虚拟存储器的管理,Linux系统采用分页(paging)的方式来载入进程。 所谓分页即是把实际的存储器分割为相同大小的段。 5.5 常用嵌入式操作系统 一个抽象的虚拟内存模型 5.5.1 嵌入式Linux 1. Linux的内存管理机制 (1)地址转换与进程分区表 逻辑地址仅存在于进程虚拟地址空间,计算机硬件只认识物理地址。因此在程序执行过程中需要完成一个逻辑地址向物理地址转换的过程。 5.5 常用嵌入式操作系统 分页地址转换机制 逻辑地址向物理地址的一般转换过程 首先,系统取出进程要访问的逻辑地址所包含的信息,即分页编码和页内偏移; 然后根据前者,在进程分页表中查出对应的物理内存中的页帧编码,而由于页帧和虚拟分页大小完全相同,页内偏移原封不动地下传; 最后根据所取得的页帧编码和下传来的页内偏移就得到该逻辑地址在物理内存中的物理地址。 通常这一过程是由硬件(如MMU)来实现的,当然也可由软件实现。 5.5 常用嵌入式操作系统 Linux三级分页地址转换机制 虚拟地址转换为物理地址的步骤 在第一级,根据预设页目录基址和虚拟地址中的第一级索引(页目录索引)得到一个分页表条目的地址,这个条目包含中间页目录基址(第二级)和相关控制信息; 在第二级,根据第一级得到的基址和虚拟地址中相应级的索引(中间页目录索引)得到一个包含页表基址和相关控制信息的分页表条目的地址; 而在第三级,根据第二级得到的基址和虚拟地址中相应级的索引(分页编号)得到一个包含物理内存页帧编号和相关控制信息的分页表条目的地址; 在最后,根据第三级得到的物理地址页帧的基址结合虚拟地址中给出的页内地址偏移得到实际的物理地址,从而最终完成虚拟地址到物理地址的转换过程。 5.5 常用嵌入式操作系统 5.5.1 嵌入式Linux 1. Linux的内存管理机制 (2)分页加载请求 当进程的某个分页被加载到物理内存时,其分页表中就会增加一项,用于实现在该分页内的所有虚拟地址到对应的物理地址的转换过程。 当某个虚拟地址在该进程所有装载入的分页所包括的范围以外的时候,该虚拟地址就没有对应的物理地址存在。 5.5 常用嵌入式操作系统 5.5.1 嵌入式Linux 1. Linux的内存管理机制 (3)分页替换 在Linux中,分页替换操作也称为页交换(Page Swapping)。在执行这个操作之前,首先需要判断该替换的分页。在Linux中采用LRU分页替换算法,根据该算法选择准备被替换的分页,而后判断该分页在载入内存之后是否有改动。 5.5 常用嵌入式操作系统 5.5.1 嵌入式Linux 1. Linux的内存管理机制 (4)共享虚拟内存 虚拟内存机制可以让共享内存变得很容易。所有的内存访问都是通过分页表,而每个进程都有其独立的分页表。如果2个进程需要共享一个物理内存页帧,则这个页帧编号只需要同时出现在这2个进程分页表条目中就行了。 5.5 常用嵌入式操作系统 5.5.1 嵌入式Linux 2. Linux的进程与中断管理机制 (1)Linux进程状态 Linux进程状态有5种,分别为运行态、可唤醒阻塞态、不可唤醒阻塞态、僵死状态和停滞状态。 5.5 常用嵌入式操作系统 Linux进程状态 进程状态 英文对照 状 态 描 述 运行态 Running 进程正在或准备运行。进程被标示为运行态,可能会被放到可运行进程队列中。之所以出现这种情况,是因为在Linux中标示和入列并非原子操作,可以认为进程处于随时可以运行的(准备)就绪状态 可唤醒阻塞态 Interruptible 进程处于等待队列中,待资源有效时被激活,也可由其他进程通过发送信号或者由定时器中断唤醒后进入就绪队列 不可唤醒阻塞态 Uninterruptible 进程处于等待队列中,待资源有效时被激活,不可由其他信号或定时器中断唤醒 僵死状态 Zombie 进程已经结束运行且释放大部分资源,但尚未释放进程控制块 停滞状态 Stopped 进程运行停止,通常是由进程接收到一个信号所致。当某个进程处于调试状态时也可能被暂停运行 Linux状态转移图 1.进程间通信 嵌入式系统中进程间通信主要采用两种形式:共享

文档评论(0)

132****9295 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档