uclinux简介内容摘要:
字节大小的段便称为一个页面( page)。 Embedded operating system 标准 Linux的虚拟存储器技术 虚拟存储器由存储器管理机制及一个大容量的快速硬盘存储器支持。 它的实现 ( 1)基于局部性原理: 当一个程序在运行之前,没有必要全部装入内存,而是仅将那些当前要运行的那些部分页面或段装入内存运行( copyonwrite), 其余暂时留在硬盘上。 ( 2)通过缺页中断将运行时所需的代码和数据加载到内存中: 程序运行时如果它所要访问的页(段)已存在,则程序继续运行,如果发现不存在的页(段),操作系统将产生一个页错误( page fault),这个错误导致操作系统把需要运行的部分加载到内存中。 Embedded operating system 标准 Linux的虚拟存储器技术 ( 3)使用交换技术在必要时把不需要的内存页(段)交换到磁盘上。 利用上述的方式管理存储器,便可把一个进程所需要用到的存储器以 化整为零 的方式,视需求分批载入,而核心程序则凭借属于每个页面的页码来完成寻址各个存储器区段的工作。 Embedded operating system 标准 Linux的虚拟存储器技术 地址转换技术 标准 Linux是 针对有内存管理单元的处理器 设计的。 在这种处理器上,虚拟地址被送到内存管理单元( MMU),把虚拟地址映射为物理地址。 每个任务具有不同的虚拟 物理地址转换映射 ,可以支持不同任务之间的保护。 每个任务中都定义有一个地址转换表,用于将其虚拟地址空间映射到物理内存的一个部分 Embedded operating system 计算机的存储管理单元( MMU)一般有一组 寄存器 来标识当前运行的进程的转换表。 在当前进程将 CPU放弃给另一个进程时(一次上下文切换),内核通过指向新进程地址转换表的指针加载这些寄存器。 MMU寄存器是有特权的,只能在内核态才能访问。 这就保证了一个进程只能访问自己用户空间内的地址,而不会访问和修改其它进程的空间。 Embedded operating system 标准 Linux的虚拟存储器技术 当可执行文件被加载时,加载器根据缺省的 ld文件,把 程序加载 到虚拟内存的一个空间,因此实际上很多程序的虚拟地址空间是相同的,但是由于转换函数不同,所以实际所处的内存区域也不同。 Embedded operating system 标准 Linux的虚拟存储器技术 实现虚存系统的代价 ( 1)地址转换表和其他内存管理相关的 数据结构 ,占用系统中的内存。 ( 2)地址转换增加了每一条指令的 执行时间 ,而对于有额外内存操作的指令会更严重。 ( 3)当进程访问不在内存的页面时,系统发生 缺页失效。 系统处理失效极耗时间。 Embedded。uclinux简介
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。