嵌入式操作系统.ppt

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

第2章嵌入式LINUX操作系统*处理器读取页面表时,使用虚拟内存页号作为页面表的位移,例如,虚拟内存页5是页面表的第6个元素。在将虚拟内存地址转换成物理内存地址时,处理器首先将虚拟内存地址分解为PFN和位移值。例如,在图2.3中,一个页面的大小是0x2000字节(十进制的8192),那么进程Y的一个虚拟内存地址0x2194将被分解成虚拟内存页号PFN为1和位移0x194。然后处理器使用PFN作为进程页面表的位移值来查找页面表的入口。如果该入口是有效入口,处理器则从中取出物理内存的页面号。如果入口是无效入口,处理器则产生一个页面错误给操作系统,并将控制权交给操作系统。假定此处是一个有效入口,则处理器取出物理页面号,并乘以物理页面的大小以便得到此物理页面在内存中的地址,最后加上位移值。再看上面的例子:进程Y的PFN为1,映射到物理内存页号为4,则此页从0x8000(4?0x2000)开始,再加上位移0x194,得到最终的物理地址为0x8194。第29页,共61页,星期日,2025年,2月5日第2章嵌入式LINUX操作系统*1.按需装入页面(DemandPaging)由于物理内存要比虚拟内存小很多,所以操作系统一定要十分有效地利用系统的物理内存。一种节约物理内存的方法是只将执行程序时正在使用的虚拟内存页面装入系统的物理页面中。当一个进程试图存取一个不在物理内存中的虚拟内存页面时,处理器将会产生一个页面错误给操作系统。如果发生页面错误的虚拟内存地址为无效的地址,说明处理器正在存取一个它不应该存取的地址。这时,有可能是应用程序出现了某一方面的错误,在这种情况下,操作系统将会中止进程的运行,以防止系统中的其他进程受到破坏。如果发生页面错误的虚拟内存地址为有效的地址,但此页面当前并不在物理内存中,则操作系统必须从硬盘中将正确的页面读到系统内存中。相对而言,由于读取硬盘要花费较长的时间,所以处理器必须等待,直到页面读取完毕。如果此时还有另外的进程等待运行,则操作系统将选择一个进程运行。从硬盘中读取的页面将被写入到一个空的物理内存页中,然后在进程的页面表中加入一个虚拟内存页面号入口,此时进程就可以重新运行了。Linux系统使用按需装入技术(DemandPaging)将可执行代码装入到进程的虚拟内存中。每当一个命令执行时,包括此命令的文件将被打开并映射到进程的虚拟内存中。此过程是通过修改描述进程内存映射的数据结构来实现的,通常被叫做内存映射(MemoryMapping)。但此时只有文件镜像的第一部分被装入系统的物理内存中,而镜像的其他部分还保留在硬盘中。当此镜像执行时,处理器将产生页面错误,Linux使用进程的内存映射表决定应该把镜像的哪一部分装入内存中执行。第30页,共61页,星期日,2025年,2月5日第2章嵌入式LINUX操作系统*2.交换(Swapping)当一个进程需要把一个虚拟内存页面装入物理内存而又没有空闲时,操作系统必须废弃物理内存中的一个页面,为将要装入的虚拟内存页腾出空间。如果将要扔掉的物理内存页一直没有被改写过,则操作系统将不保存此内存页,而只是简单地将它扔掉。当再次需要此内存页时,再从文件镜像中装入。但是,如果此页面已经被修改过,操作系统就需要把页面的内容保存起来。这些页面称为“脏页面”(dirtypage)。当它们从内存中移走时,将会被保存到一种叫做交换文件的特殊文件中。Linux系统使用一种叫做“最近最少使用”的技术(LeastRecentlyUsed,LRU)来决定把哪一个页面从物理内存中移出。3.共享虚拟内存(SharedVirtualMemory)由于使用了虚拟内存,因此使几个进程之间的内存共享变得很容易。每个内存的存取都要通过页面表,而且每个内存都有自己的单独的页面表。如果希望两个进程共享一个物理内存页,只需将它们页面表入口中的物理内存号设置为相同的物理页面号即可,而且共享的物理页不必存在共享它的进程的虚拟内存空间的同一个地方。4.访问控制(AccessControl)页面表中还包括了访问控制信息。当处理器使用页面表将进程的虚拟地址映射到物理地址的时候,可以方便地使用存取控制信息来检查进程是否存取了它不该存取的信息。访问控制信息放在PTE(PageTableEntry)中,而且与具体处理器相关。第31页,共61页,星期日,2025年,2月5日第2章嵌入式LINUX操作系统*5.高速缓存(Caches)为了获得最大的系统效用,操作系统一般使用高速缓存来提高系统性能。Linux系统使用了以下几种涉及高速缓存的内存管理方法。?BufferCache:缓冲区高速缓存,其中包含了由块设备使用的数据缓冲

文档评论(0)

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

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

1亿VIP精品文档

相关文档