- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第2章 嵌入式LINUX操作系统 * 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结构都描述了系统中的一个物理页。 第2章 嵌入式LINUX操作系统 * 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链接起来。 第2章 嵌入式LINUX操作系统 * 第2章 嵌入式LINUX操作系统 * 文件系统管理 Linux在设计时就考虑到支持许多不同的物理设备,甚至就一种特定类型的设备而言,例如,硬盘驱动器,在不同的硬件厂商之间也会存在许多接口上的差异。除了Linux所支持的物理设备以外,Linux还支持大量的逻辑文件系统。正因为它能支持许多逻辑文件系统,所以Linux可以轻松地与其他操作系统进行互操作。Linux文件系统支持下列特性: ? 多个硬件设备——提供对许多不同的硬件设备的访问。 ? 多个逻辑文件系统——支持许多不同的逻辑文件系统。 ? 多个可执行格式——支持许多不同的可执行文件格式(例如a.out、ELF、java)。 ? 均一性——为所有的逻辑文件系统,以及所有的硬件设备提供一个通用接口。 ? 性能——提供对文件的高速访问。 ? 安全——不会丢失或毁坏数据。 ? 保密性——限制用户访问文件的许可权限和分配给用户的总的文件大小。 目前,Linux系统支持大约15个文件系统:EXT、EXT2、XIA、MINIX、UMSDOS、MSDOS、VFAT、PROC、SMB、NCP、ISO9660、SYSV、HPFS、AFFS和UFS。毫无疑问,Linux系统支持的文件系统还会增加。 一个文件系统中不仅包括含有数据的文件,而且还存储着文件系统的结构。文件系统中的信息必须是安全和保密的。 第2章 嵌入式LINUX操作系统 * Linux系统中的第一个文件系统是Minux,但它的文件名只能有14个字符,最大的文件长度是64MB。也正因此,1992年4月引进了第一个专门为Linux设计的文件系统——ext(extended file system),但ext的功能还是有限。最后在1993年又推出了一个新的文件系统——EXT2。 当Linux引进ext文件系统时有了一个重大的改进:真正的文件系统从操作系统和系统服务中分离出来,在它们之间使用了一个接口层——虚拟文件系统VFS(Virtual File system)。
文档评论(0)