虚拟存储器 与虚拟内存详解

本文介绍了虚拟存储器的概念,它允许程序不完全装入内存即可运行,通过请求调入和置换功能扩展内存逻辑容量。虚拟内存利用硬盘空间作为补充,通过页表实现逻辑地址到物理地址的映射,解决内存限制问题。即使在32位系统中,当物理内存超过4GB时,虚拟内存也会变得不可或缺。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在没有虚拟存储器之前

源程序在gcc –o 后生成的文件是可执行目标程序a.out,每条指令都有一个逻辑地址 32位。它存在硬盘上。

要执行时,只需找到该文件,将其装入内存。

装入的方式可以有多种,比如分页,分段等等。但是,必须将该程序完全装入内存。

 

分页:将一个进程的逻辑地址空间(32位)分成若干大小相等的页。

使用分页方式时有一个问题,必须清楚:

os是根据文件系统找到的a.out,跟a.out的逻辑地址没有一点关系

假如a.out是3个页大小,

就将这3个页分别装入内存,

装入内存的过程中将逻辑地址转换为物理地址。

 

如果内存为1G 每个程序的大小是100M,那么该os最多只能装10个程序。

 

虚拟存储器的定义:

具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储系统。

即,程序在运行之前,没必要全部装入内存,

仅把当前要运行的页装入即可,当程序运行时,如果需要其它页面,再进行页面调入或者置换。

这样 假如内存为1G,硬盘为200G,每个程序的大小为2G。

那么该os可以同时装100个程序进内存(甚至可以更多,此处是100,是因为硬盘大小的限制)。而此前的os一个程序也装不下。

也就是说,在

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值