操作系统(八)—虚拟存储管理

虚拟存储管理

在前面总结了集中存储管理的刚上,要求作业的逻辑地址空间连续的存放主存储器

的某个区域中。当主存储器中没有足够大的区域是,则作业是无法装入的,或必须移动

某些作业后才能装入。是否有可能吧作业的连续逻辑地址空间分散到几个不连续的主存

区域,且仍能使作业正确执行呢? 若可行的话,则可充分利用主存空间有可减少移动所

花费的开销。不仅如此,还可采用虚拟存储管理技术,实现在较小的主存空间里运行较

大的作业。

虚拟存储管理:实现较小主存空间运行较大的作业。

一、页式存储管理:把主存储器分成大学相当的许多区,每一个区称块,编制逻辑分成

页,页与块等大小。

分页式存储器的逻辑地址由两部分组成:

例如:地址总长15,其中页号5,页内地址10——得出逻辑地址32

就是2的5次方得32,其中编号是从0—31;每页2的十次方为1024,编号从0—1023.

注意:1、 逻辑地址是连续的,编程序时无需考虑如何分页。

2、分左右主存块可以不连续,可按页分散主存空间中。

1、页管理条件:

1)怎样知道哪些块用或未用

2)左右分散后如何正确执行

分配前提:首先空闲块能否满足左右要求。

2、相关的计算:

1)、块号=字号*字长  +  位号

2)、柱面号=块号/32

3)、磁头号=块号先Mod32  / 4

4)、扇区号= 块号先Mod32 在Mod 4

3、页表和 地址转换(动态重定位):

在主存中空闲块能满足作业要求是,存储管理就找出这些空闲块分配给作业,同时

为作业建立一张页表,指出逻辑地址中的页号与主存中的块号的对应关系。

页表:首先空闲块能满足作业要求同时,为作业建一张表,指出逻址页号与主存中块号

对应关系。

页表长度:有作业所占页的多少而定。比如:四页——A页表长度四个登记项。

4、页式存储管理

1)、动态重定位方式装入作业,要硬件地址转换机构,逻址——绝址。

地址=块号*块长+页内地址

2)、页表放主存储器中,访问两次主存,一是读出页表,二是按计算出绝址进行读写。——延长指令执行周期,降低执行速度。

3)、引入高速缓冲存储器

快表:存放在高速缓冲存储器中的页表叫块表。

块表容量小,填满后要新登记,所以要淘汰旧的:“先进先出”发。

比如:主存储器200 ,高速缓冲存储器40(运行90%),如果没有高速缓冲存储器:

200+200=400

有了高速缓冲存储器的话:(200+40)*90%+(200+200)*10%=256

4)、整个系统只一个高速缓冲存储器,只占用处理器者才能使用它。

快表是动态的,左右占处理器时快表在高速缓冲存储器中,否则快表在进程块中。

5、页表共享保护:页表共享可节省主存空间,所以共享又必须解决信息保护问题,

——在页表中增“标志”。比如“只可执行”、“只可读”、“只可写”表等。

二、虚拟存储器

什么是虚拟存储器呢?

程序有些事互斥的,即把作业都装入主存中,作业的执行实际上没有同时执行这些

信息,有些在整个过程中甚至没有用到。所以我们能不能不把作业都同时准个人主存储

器中,而是将其中的一部分先装入主存中,另一部分先放入磁盘上,作业执行时要用到

不在存储器中信息时,在把他们调入主存储器中。

从这我们引出,当主存空间小于作业需求是,作业也能执行,用户编制程序是可以

不必考虑主存储器的实际容量,可以用户逻辑地址空间大于主存储器的绝对地址空间,

这对于用户来说,好久计算机系统具有一个容量很大的主存储器,这称为虚拟存储器。

特点

1、不把作业全同时装入主存,先装一部分,另一部分放磁盘,作业执行中用到不在主存

中的再将其装入主存。

2、主存空间小于作业需求量,作业也能执行,主存空间充分利用,不必考虑主存器实际

大小。

3、虚拟存储器容量有计算机的地址结构和辅助存储器容量决定。

4、实质上是为扩大主存容量而采用的一种管理技巧。

允许用户逻辑 > 主存储器绝址空间。

对用户来说好像有一个容量很大的主存储器,这叫虚拟存储器。

程序互斥:程序一次运行中,执行了这部分程序,就不会去执行那部分程序。

三、页式 虚拟存储管理

1、页式管理如何改成虚拟存储器:将作业全信息作为副本存放磁盘上。

支持哪些页已经在主存器,指出每一页副本在磁盘上的位置。若“1” 装,有硬件地

址转换机构差页表为“1”转绝址,如“0”发出“缺页中断”(该页不在主存器中,查

有无空闲块)

2、页面调度:欲调入一页是,主存器没有空闲块是,先调出已在主存器中某页,在调

入当前页,同时对页表做相应修改的方法叫页面调度。

调度法分类

1)先进先出FIFO:淘汰呆最久那一页。(对于常用的不利)

2)最近最久未用Least Recently Used(LRU) 距离当前最长时间内没有用过的调出。

(1)增加一个“引用位”标志,必须对每一页时时刻刻记录,更新;实现困难、开销大。

(2)页号队列法:规定队首最久未用页,队尾最近页,所以发生中断时队首页面调出,比FIFO中断次数少,好。

3)最近不常用:(最近一段时间使用最少的。)

3、抖动(颠簸):选用一不适调度法,刚被调出要立即用又被调入,调入不久有被调

出,频繁的调度,使大部分时间在来回的调度上的现象叫抖动。

4、多级页表:程序执行时有局部性的。

一级页表::第一级的页面组表,成为一级页表。

二级页表:组内页面表,吧页表存 辅助存储器中。

注:一个主存块正好放一张表。

5、程序执行的过程:程序执行时一级页表——到主器地址转换,按逻辑地址查一级页

表——根据“标志位”至二级页表是否在主存中(在房屋2次),若没(访问4次)——

可按页号2查二级页表,表项若无,应先装入主存中。

二级页表不想把页表一次装入主存器,它是分散存放,用高速缓冲存储器加快地址转

换。

注:页表级别越多,灵活性越大,但是管理起来越复杂。

小结:

首先了解什么是页式存储,再了解什么是虚拟存储,之后再结合起来页式虚拟存储

器,并且分别掌握他们对应的管理方式,调度方式和相应的计算就容易上手了。

这在我们的现实生活中用处极大,比如自己的内存不够大,就可以建立虚拟内存,使

得计算机用起来顺手、方便。赶紧试一试,让自己的计算机运行起来更高效、更方便。

时间: 2024-08-05 08:34:16

操作系统(八)—虚拟存储管理的相关文章

《操作系统》实验之虚拟存储管理

实验内容: <一> 第一部分:模拟请求分页虚拟存储管理技术中的硬件地址变换和缺页中断的过程 提示: 1.             请求分页虚拟存储管理技术是把作业地址空间的全部信息存放在磁盘上,当作业被选中运行时,先把作业的开始几页装入主存并启动运行.为此,在为作业建立页表时,应说明哪些页已在内存,哪些页不在内存. 页表的格式如下: 页号 标志 主存块号 外存地址 其中,”标志”表示对应页是否已装入主存 0:表示对应页已装入主存 1:表示对应页未装入主存 “主存块号”表示该页对应的主存块的块号

操作系统原理4——存储管理

本章考核知识点: 1.重定位 2.固定分区存储管理 3.可变分区存储管理 4.页式存储管理 5.段式存储管理 6.虚拟存储器 自学要求 : 明确存储管理的职能是对主存储器中的用户区域进行管理: 理解在不同的管理方式下如何实现存储保护.地址转换.以及主存空间的分配和回收: 比较各种管理方式的特点: 掌握虚拟存储器的实现原理和方法. 重点是: 各种管理方式的特点: 可变分区方式的主存分配算法以及移动技术: 分页式虚拟存储管理的实现以及页面调度算法: 分段式虚拟存储管理的实现. 操作系统的存储管理如同

20天自制操作系统(八)

移动鼠标并显示鼠标坐标 struct MOUSE_DEC { unsigned char buf[3], phase; int x, y, btn; }; enable_mouse(&mdec); for (;;) { io_cli(); //无数据则等待 if (fifo8_status(&keyfifo) + fifo8_status(&mousefifo) == 0) { io_stihlt(); } else { if (fifo8_status(&keyfifo)

操作系统基本分段存储管理方式

操作系统基本分段存储管理方式 引入分段存储管理方式的目的:满足程序员在编程和使用上多方面的要求.这种存储管理方式已经成为当今所有存储管理方式的基础. 1.分段存储管理方式的引入 主要满足用户和程序员以下需求: 1).方便编程 用户把自己的作业按照逻辑管理划分为若干段,每个段都是从0开始编址,并有自己的名字和长度.因此,希望要访问的逻辑地址是由段名(段号)和段内偏移量(段内地址)决定的. LOAD1,[A] | <D>;//将分段A中D单元内的值读入寄存器1 STORE1,[B] | <C

操作系统基本分页存储管理方式

操作系统基本分页存储管理方式 连续分配内存方式会形成许多"碎片",通过紧凑的方式将碎片拼接成一块大的空间,但是拼接过程系统开销太大.如果允许将一个进程直接分散地装入到许多不相邻的分区中,那么就不需要再进行"紧凑".基于这一思想而产生了离散分配方式.如果离散分配的基本单位是页,则称为分页存储管理方式:如果离散分配的基本单位是段,则称为分段存储管理方式. 在分页管理方式中,如果不具备页面对换功能(将处于阻塞状态且优先级低的进程对换到外存),则称为基本的分页存储管理方式,

操作系统(6)_虚拟存储管理_李善平ppt

image含各种段.

《现代操作系统》笔记——存储管理1

转载请注明: TheViper http://www.cnblogs.com/TheViper 一种存储器抽象:地址空间 把物理地址暴露给进程会带来下面几个严重问题: 1.如果用户程序可以寻址内存的每个字节,它们就可以很容易的破坏操作系统. 2.使用这种模型,想要同时(如果只有一个cpu就轮流执行)运行多个程序是很困难的. 地址空间 地址空间是一个进程可用于寻址内存的一套地址集合.每个进程都有一个自己的地址空间,并且这个地址空间独立于其他进程的地址空间(除了在一些特殊情况下进程需要共享它们的地址

《现代操作系统》笔记——存储管理2

转载请注明: TheViper http://www.cnblogs.com/TheViper 加快分页过程 在任何分页式系统中,都需要考虑两个问题: 1.虚拟地址到物理地址的映射必须非常快 2.如果虚拟地址空间很大,页表也会很大 对大而快速的页映射的需求成为了构建计算机的重要约束,最简单的设计是使用由一组“快速硬件寄存器”组成的单一页表,每个页表项对应一个虚页,虚页号作为索引.这个方法的优势是简单并且在映射过程中不需要访问内存.缺点是在页表很大时,代价高,每一次上下文切换都必须装载整个页表.

虚拟存储管理

程序局部性原理:基于大量的程序运行特征的观察发现在一段时间内,一个程序的执行往往是呈现高度的局部性. 表现在以下两个方面: 时间局部性:若一条指令被执行,那么不就的将来它很有可能再被执行. 空间局部性:若内存单元被使用,则在一定时间内它及其相邻单元很可能被再次使用. 虚拟存储技术: 由程序局部性原理可以发现,程序装入内存的时候,没必要一下子全部装入,所以作业提交给系统时,首先进入辅存,运行时,只将其有关部分信息装入内存,大部分仍然在外存中,当运行过程中需要用到不在内存的信息时,再把它们调入,由外