嵌入式LNUX操作系统.ppt

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式LNUX操作系统

第2章 嵌入式Linux操作系统 第2章 嵌入式Linux操作系统 2.1 Linux及其应用 2.2 Linux内核 2.3 典型嵌入式Linux系统 2.1 Linux及其应用 Linux与UNIX和GNU Linux的特点 Linux的发展及应用 2.2 Linux内核 Linux的内核特征 进程管理 内存管理 设备管理 2.3 典型嵌入式Linux系统 RTLinux MontaVista Linux RTAI 2.交换(Swapping) 当一个进程需要把一个虚拟内存页面装入物理内存而又没有空闲时,操作系统必须废弃物理内存中的一个页面,为将要装入的虚拟内存页腾出空间。 如果将要扔掉的物理内存页一直没有被改写过,则操作系统将不保存此内存页,而只是简单地将它扔掉。当再次需要此内存页时,再从文件镜像中装入。但是,如果此页面已经被修改过,操作系统就需要把页面的内容保存起来。这些页面称为“脏页面”(dirty page)。当它们从内存中移走时,将会被保存到一种叫做交换文件的特殊文件中。 Linux系统使用一种叫做“最近最少使用”的技术(Least Recently Used,LRU)来决定把哪一个页面从物理内存中移出。 3.共享虚拟内存(Shared Virtual Memory) 由于使用了虚拟内存,因此使几个进程之间的内存共享变得很容易。每个内存的存取都要通过页面表,而且每个内存都有自己的单独的页面表。如果希望两个进程共享一个物理内存页,只需将它们页面表入口中的物理内存号设置为相同的物理页面号即可,而且共享的物理页不必存在共享它的进程的虚拟内存空间的同一个地方。 4.访问控制(Access Control) 页面表中还包括了访问控制信息。当处理器使用页面表将进程的虚拟地址映射到物理地址的时候,可以方便地使用存取控制信息来检查进程是否存取了它不该存取的信息。访问控制信息放在PTE(Page Table Entry)中,而且与具体处理器相关。 5.高速缓存(Caches) 为了获得最大的系统效用,操作系统一般使用高速缓存来提高系统性能。Linux系统使用了以下几种涉及高速缓存的内存管理方法。 ? Buffer Cache:缓冲区高速缓存,其中包含了由块设备使用的数据缓冲区。 ? Page Cache:页面高速缓存,用来加速磁盘中文件镜像和数据的存取。 ? Swap Cache:交换文件,其中只保存那些被修改过的页面。 ? Hardware Cache:硬件高速缓存,通常是在处理器中,它保存着页面表的入口。 高速缓存的副作用在于Linux必须花大量时间和空间来维护这些高速缓存区,如果这些高速缓存区崩溃,系统也会崩溃。 6.页的分配和回收(Page Allocation and Deallocation) 系统在运行时会经常需要物理内存页。例如,当一个文件镜像从磁盘调入内存时,操作系统需要为它分配物理内存页。当程序执行完毕时,操作系统需要释放内存页。物理页的另一个用途是存储内核所需要的数据结构,例如,页面表。页面的分配和撤销机制,以及所涉及的数据结构对内存管理来说是至关重要的。 系统中所有的物理内存页都包括在mem_map数据结构中,而mem_map是由mem_map_t结构组成的链表。mem_map_t在系统启动时初始化,每个mem_map_t结构都描述了系统中的一个物理页。 7.内存映射(Memory Mapping) 当执行一个文件镜像时,可执行镜像的内容必须装到进程的虚拟地址空间。可执行镜像链接的共享库也是一样要装入虚拟内存空间。可执行文件并不是真正地装入物理内存空间,而只是简单地链接到进程的虚拟内存。然后,随着应用程序运行时的需要,可执行镜像才逐渐地装入到物理内存中。这种将一个文件的镜像和一个进程的虚拟内存地址空间连接起来的方法叫做内存映射。 数据结构mm_struct代表每个进程的虚拟内存空间。它包含了正在执行的镜像的信息和一些指向vm_area_struct结构的指针,如图2.4所示。每个vm_area_struct结构都描述了进程的虚拟内存的起始和结束位置、进程的存取权限,以及与内存有关的一系列的操作。这些操作是Linux系统在处理虚拟内存时将要用到的。 当一个可执行镜像映射到一个进程的虚拟内存地址时,操作系统将创建一系列的数据结构vm_area_struct,每一个vm_area_struct代表可执行镜像的一部分。Linux系统支持多种标准虚拟内存操作,创建vm_area_struct时,相应的虚拟内存操作就会与vm_area_struct链接起来。 文件系统管理 Linux在设计时就考虑到支持许多不同的物理设备,甚至就一种特定类型的设备而言,例如,硬盘驱动器,在不同

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档