Linux虚拟内存管理书,linux 虚拟内存管理

62e50291a81fc54b507f33cb80033297.gif

linux 虚拟内存管理

(3页)

12b42776df5efb9ac2ea037713d9b914.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

9.9 积分

Linux 虚拟内存管理:一般而言,计算机的内存容量是有限的,而某些进程运行所需的内存空间却有可能超过内存的总容量。这也就意味着存在这样的可能:运行某个进程,机器内存容纳不下该进程所有的代码,数据和堆栈,而是只能容纳其中的一部分。一个占用大量内存的进程在任意一段时间内需要用到的代码,数据等都是总数的一小部分,其余部分在相应时间段内对于维持进程的运行是不起作用的,于是,虚拟存储器技术应运而生。  关键词:内存容量 内存空间 虚拟内存 进程 虚拟存储器技术   :TP393:A :1007-9416(2011)05-0092-01    Linux能够使用文件系统中的一个常规文件或一个独立的分区作为交换空间。交换分区要快一些,但是很容易改变交换文件的大小。当你知道你需要多大的交换空间时,你应该使用交换分区,但是如果你不能确定的话,你可以首先使用一个交换文件,然后使用一阵子系统,你就可以感觉到要有多大的交换空间,此时,当你能够确信它的大小时就创建一个交换分区。   1、虚拟存储器的思想  一个进程的代码,数据,堆栈的总容量可能超过可用物理内存的容量,操作系统负责吧当前用到的那些部分保留在内存中,而把其他部分保存在磁盘上,当需要用到不再内存的某一个部分时,由操作系统把那部分调入内存,同时把已经在内存中的但是暂时用不到的部分清除出去。这些操作对用户来说都是透明的。  2、Linux支持虚拟内存(virtual memory)  虚拟内存是指使用磁盘当作RAM的扩展,这样可用的内存的大小就相应地增大了。内核会将暂时不用的内存块的内容写到硬盘上,这样一来,这块内存就可用于其它目了。当需要用到原始的内容时,它们被重新读入内存。这些操作对用户来说是完全透明的。当然,读写硬盘要比直接使用真实内存慢得多,所以程序就不会象一直在内存中运行的那样快。用作虚拟内存的硬盘部分被称为交换空间(sd_*()的函数所实现的功能是一样的。有关的宏定义如下:  /include/asm-i386/pgtable-21level.h  (1) #ifndef _I386_PGTABLE_2LEVLE_H  (2) #define _I386_PGTABLE_2LEVLE_H  (3) /*  (4) * traditional i386 t_area_struct结构,如果没有找到则说明进程访问了一个非法地址,系统将向进程发送出错信号。若地址是合法的,则接着检查缺页时的访问模式是否合法,若不合法系统将向进程发送存储访问出错的信息。通过上述两步检查之后,可以确定发生的却也情况是正常的,可以进入下一步处理。  /arch/i386/mm/fault.c  147 asmlinkage void do_page_fault (struct pt_regs *regs,unsigned long error_code)  148 {  149 struct task_struct *tsk;  155 int linkage指示编译器不要使用寄存器,而是使用堆栈来传递参数。Regs是struct pt_regs结构的指针,保存了在发生异常是的寄存器内容。Error_code是一个32位长整形数据,但是只有最低3位有效,在发生异常时,有CPU的控制部分根据系统当前上下文的情况,生成此3位数据,压入堆栈。

关 键 词:

linux虚拟内存管理

524d6daf746efaa52c3c71bbfe7ba172.gif

天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

关于本文

本文标题:linux 虚拟内存管理

链接地址:

https://www.wenku365.com/p-24179564.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值