计算机虚存

一、基本概念

虚拟存储器将主存和辅存的地址空间统一编址,用户可以自由编程,不必在乎实际的主存容量和程序在主存中实际存放位置。

用户编程允许涉及的地址称为虚地址或逻辑地址,虚地址对应的存储空间称为虚拟空间或程序空间。实际的主存单元地址称为实地址或物理地址,实地址对应的是主存空间或叫实地址空间。如下图:

在这里插入图片描述

由于实际上,所编程序和数据在操作系统管理下,先送入磁盘,再由操作系统将当前允许所需要的部分调入主存,供 CPU 使用,其余暂不运行的部分则留在磁盘中。

CPU 使用地址时,由辅助硬件找出虚地址和实地址之间的对应关系,并判断这个虚地址对应的存储单元内容在主存中是否已有;若有,则通过地址变换,CPU 可直接访问主存指示的实际单元;若没有,则把包含这个字的一页或一段调入主存后再由 CPU 访问;若主存满了,则采用替换算法置换主存的一页或一段。

二、虚存种类

虚拟存储器按照地址逻辑划分技术的不同,可以分为页式虚存、段式虚存和段页式虚存。

1、页式虚存

这类虚拟存储器,指的是以页为基本单位。

 

虚拟空间与主存空间划分为同样大小的页,主存中的页称为实页,虚存的称为虚页。

 

虚拟地址分为虚页号和页内地址。虚地址到物理地址的转换由页表实现;页表是一张存放在主存中的虚页号和实页号的对照表,记录虚页调入主存时被安排在主存中的位置,页表一般长期存放在主存中。

在这里插入图片描述

 

页表结构如上,由有效位、脏位、引用位和物理页或磁盘地址组成。

 

有效位也称装入位,表示页面是否装入主存中,1 表示已装入,此时地址位对应主存的物理页号;0 表示没有装入,此时地址位对应磁盘地址。

 

脏位也称修改位,表示页面是否被修改过;虚存机制采用写回法,因此需要脏位。

 

引用位也叫使用位,用于配合替换策略进行设置,例如是否实现 FIFO 或 LRU。

在这里插入图片描述

 

在虚存结构下,CPU 执行指令时,需先将虚地址转为主存物理地址。

 

每个进程都有页表基址寄存器,用于存放进程的页表首地址,根据虚地址高位部分的页号找到相应页表项,此时若装入位为 1,则取出物理页号和虚地址低位部分的页内地址拼接组成实际物理地址;若装入位为 0,则表示缺页,此时需要操作系统进行缺页处理。

 

页式虚存优点:页面长度固定,页表简单,调入方便。

 

缺点:程序往往不可能正好是页面的整数倍,最后一页的零头将无法利用而造成浪费,并且页不是逻辑上独立的实体,因此处理、保护和共享都比较麻烦。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值