当前位置:首页 » 存储配置 » 页面式存储管理特点

页面式存储管理特点

发布时间: 2024-06-30 15:43:39

‘壹’ 操作系统-04-操作系统的存储管理和设备管理

早期的计算机由于结构较为简单,存储容量小,并不需要过多的的存储管理。

随着计算机和程序越来越复杂,使得存储管理成为必要。

单一连续分配是最简单的内存分配方式

只能在单用户、单进程的操作系统中使用

固定分区分配是支持多道程序的最简单存储分配方式

内存空间被划分为若干固定大小的区域

每个分区只提供给一个程序使用,互不干扰

根据进程实际需要,动态分配内存空间

不需要新建空闲链表节点

只需要把空闲区的容量增大为包括回收区的容量即可

将回收区和空闲区合并

新的空闲区使用原来回收区的地址

将两个空闲区和中间的回收区合并

新的空闲区使用空闲区1的地址

为回收区创建新的空闲节点

将该节点插入到相应的空闲区链表中

上面的部分主要是从物理的角度讲解内存管理,这部分主要是讲解操作系统是怎么管理进程的内存空间。

字块 是相对于物理设备的定义, 页面 是相对逻辑空间的定义。

页式存储管理主要是将进程逻辑空间等分成若干大小的页面,相应的把物理内存空间分成与页面大小的物理块,以页面为单位把进程空间装进物理内存中分散的物理块。

页面大小应该适中,过大难以分配,过小内存碎片过多,通常是512B~8K。

页表 记录进程逻辑空间于物理空间的映射

在页式存储管理, 页地址 = 页号 + 页内偏移

现代计算机系统中,可以支持非常大的逻辑 地址空间(2 32~2 64),这样,页表就 变得非常大,要占用非常大的内存空间,如, 具有32位逻辑地址空间的分页系统,规定页 面大小为4KB,则在每个进程页表中的页表 项可达1M(2^20)个,如果每个页表项占用 1Byte,故每个进程仅仅页表就要占用1MB 的内存空间。

为了解决这个问题,引入了多级页表。

多级页表有一个根页表,每一个字块指向了内存中的一片空间,这块空间存储的是二级页表。以此类推,最后一级页表指向的字块才是进程实际使用的内存。通过这种分级机制,大大减少了进程中页表数占用的空间。

段式存储管理将进程逻辑空间划分成若干段(非等分),段的长度由连续逻辑的长度决定。

例如一个程序有主函数MAIN、子程序段X、子函数Y等,这个时候会根据每一个函数的逻辑长度来分配逻辑空间。

页表由 页号 和 基址 组成,但在段式存储管理中由于每一段的长度是不固定的,段表由 段号 、 基址 以及 段长 组成。

在段式存储管理, 段地址 = 段号 + 段内偏移

分页可以有效提高内存利用率(虽然说存在页内碎片)

分段可以更好满足用户需求

两者结合,形成段页式存储管理

先将逻辑空间按段式管理分成若干段,再把段内空间按页式管理等分成若干页。

在段页式存储管理中, 段页地址 = 段号 + 段内页号 + 页内地址

有些进程实际需要的内存很大,超过物理内存的容量。
由于操作系统的多道程序设计,使得每个进程可用物理内存更加稀缺。
不可能无限增加物理内存,物理内存总有不够的时候,于是便有了虚拟内存的概念。

虚拟内存是操作系统内存管理的关键技术,使得多道程序运行和大程序运行成为现实,她通过将进程所使用的内存进行划分,将部分暂时不使用的内存放置在辅存。

根据局部性原理,程序运行时,无需全部装入内存,装载部分即可。如果访问页不在内存,则发出缺页中断,发起页面置换。

从用户层面看,程序拥有很大的空间,即是虚拟内存。

虚拟内存实际是对物理内存的补充,速度接近于内存,成本接近于辅存。

置换算法一般有先进先出算法(FIFO)、最不经常使用算法(LFU)、最近最少使用算法(LRU)。

从计算机组成原理篇章中,我们可以知道,CPU的高速缓存没有数据时,需要从主存中加载数据。此时若主存中也没有数据,则需要从辅存中载入页面数据。

内存替换策略发生在Cache-主存层次、主存-辅存层次。Cache-主存层次的替换策略主要是为了解决 速度问题 ,

主存-辅存层次则。主要是为了解决 容量问题 。

顺序文件是指按顺序存放在存储介质中的文件,例如磁带的存储特性使得磁带文件只能存储顺序文件。

顺序文件是所有逻辑文件当中存储效率最高的。

可变长文件不适合使用顺序文件格式存储,索引文件是为了解决可变长文件存储而发明的一种文件格式,索引文件需要配合索引表完成存储的操作。

目录的层级结构是树状的,成为目录树。

目录树中任何文件或目录都只有唯一路径。

对CPU而言,凡是对CPU进行数据输入的都是输入设备,凡是CPU进行数据输出的都是输出设备。

缓冲区主要是解决CPU与IO设备的速率不匹配的问题,减少CPU处理IO请求的频率,提高CPU与IO设备之间的并行性。

专用缓冲区只适用于特定的IO进程,当这样的IO进程比较多时,对内存的消耗也很大,所以操作系统划出可供多个进程使用的公共缓冲区,称之为缓冲池。

SPOOLing技术是关于慢速字符设备如何与计算机主机交换信息的一种技术,利用高速共享设备将低速的独享设备模拟为高速的共享设备,逻辑上,系统为每一个用户都分配了一台独立的高速独享设备,是一种虚拟设备技术。

SPOOLing技术把同步调用低速设备改为异步调用。在输入、输出之间增加了排队转储环节(输入井、输出井),SPOOLing负责输入(出)井与低速设备之间的调度,逻辑上,进程直接与高速设备交互,减少了进程的等待时间。

‘贰’ 内存管理页式管理和段式管理、段页式管理的区别

一 页式管理
1 页式管理的基本原理将各进程的虚拟空间划分成若干个长度相等的页(page),页式管理把内存空间按页的大小划分成片或者页面(page frame),然后把页式虚拟地址与内存地址建立一一对应页表,并用相应的硬件地址变换机构,来解决离散地址变换问题。页式管理采用请求调页或预调页技术实现了内外存存储器的统一管理。

它分为
1 静态页式管理。静态分页管理的第一步是为要求内存的作业或进程分配足够的页面。系统通过存储页面表、请求表以及页表来完成内存的分配工作。静态页式管理解决了分区管理时的碎片问题。但是,由于静态页式管理要求进程或作业在执行前全部装入内存,如果可用页面数小于用户要求时,该作业或进程只好等待。而且作业和进程的大小仍受内存可用页面数的限制。

2 动态页式管理。动态页式管理是在静态页式管理的基础上发展起来的。它分为请求页式管理和预调入页式管理。

优点: 没有外碎片,每个内碎片不超过页大小。一个程序不必连续存放。便于改变程序占用空间的大小(主要指随着程序运行而动态生成的数据增多,要求地址空间相应增长,通常由系统调用完成而不是操作系统自动完成)。

缺点:程序全部装入内存。
要求有相应的硬件支持。例如地址变换机构,缺页中断的产生和选择淘汰页面等都要求有相应的硬件支持。这增加了机器成本。增加了系统开销,例如缺页中断处理机,请求调页的算法如选择不当,有可能产生抖动现象。 虽然消除了碎片,但每个作业或进程的最后一页内总有一部分空间得不到利用果页面较大,则这一部分的损失仍然较大。

二 段式管理的基本思想
把程序按内容或过程(函数)关系分成段,每段有自己的名字。一个用户作业或进程所包含的段对应一个二维线形虚拟空间,也就是一个二维虚拟存储器。段式管理程序以段为单位分配内存,然后通过地址影射机构把段式虚拟地址转换为实际内存物理地址。
程序通过分段(segmentation)划分为多个模块,如代码段、数据段、共享段。其优点是: 可以分别编写和编译。 可以针对不同类型的段采取不同的保护。 可以按段为单位来进行共享,包括通过动态链接进行代码共享。

三 段页式管理的实现原理

1 虚地址的构成
一个进程中所包含的具有独立逻辑功能的程序或数据仍被划分为段,并有各自的段号s。这反映相继承了段式管理的特征。其次,对于段s中的程序或数据,则按照一定的大小将其划分为不同的页。和页式系统一样,最后不足一页的部分仍占一页。这反映了段页式管理中的页式特征。从而,段页式管理时的进程的虚拟地址空间中的虚拟地址由三部分组成:即段号s,页号P和页内相对地址d。虚拟空间的最小单位是页而不是段,从而内存可用区也就被划分成为着干个大小相等的页面,且每段所拥有的程序和数据在内存中可以分开存放。分段的大小也不再受内存可用区的限制。
2 段表和页表
为了实现段页式管理,系统必须为每个作业或进程建立一张段表以管理内存分配与释放、缺段处理、存储保护相地址变换等。另外,由于一个段又被划分成了若干页,每个段又必须建立一张页表以把段中的虚页变换成内存中的实际页面。显然,与页式管理时相同,页表中也要有相应的实现缺页中断处理和页面保护等功能的表项。另外,由于在段页式管理中,页表不再是属于进程而是属于某个段,因此,段表中应有专项指出该段所对应页表的页表始址和页表长度。
3 动态地址变换过程
在一般使用段页式存储管理方式的计算机系统中,都在内存中辟出一块固定的区域存放进程的段表和页表。因此,在段页式管理系统中,要对内存中指令或数据进行一次存取的话,至少需要访问三次以上的内存:

第一次是由段表地址寄存器得段表始址后访问段表,由此取出对应段的页表在内存中的地址。

第二次则是访问页表得到所要访问的物理地址。

第三次才能访问真正需要访问的物理单元。

显然,这将使CPU的执行指令速度大大降低。为了提高地址转换速度,设置快速联想寄存器就显得比段式管理或页式管理时更加需要。在快速联想寄存器中,存放当前最常用的段号s、页号p和对应的内存页面与其它控制用栏目。当要访问内存空间某一单元时,可在通过段表、页表进行内存地址查找的同时,根据快速联想寄存器查找其段号和页号。如果所要访问的段或页在快速联想寄存器中,则系统不再访问内存中的段表、页表而直接把快速联想寄存器中的值与页内相对地址d拼接起来得到内存地址。

总之,因为段页式管理是段式管理的页式管理方案结合而成的,所以具有它们二者的优点。但反过来说,由于管理软件的增加,复杂性和开销也就随之增加了。另外,需要的硬件以及占用的内存也有所增加。更重要的是,如果不采用联想寄存器的方式提高CPU的访内速度,将会使得执行速度大大下降。

‘叁’ 操作系统页式存储管理的问题

逻辑页面表示这是一个虚拟的储存空间,一个逻辑页面对应一个物理内存的页框,这个页框才是真正的物理存储所在。

‘肆’ 页式存储管理和段式存储管理的区别

段式与页式存储管理的比较如下表所示。

段式
页式

分段由用户设计划分,每段对应一个相应的的程序模块,有完整的逻辑意义。
分页用户看不见,由操作系统为内存管理划分。

段面是信息的逻辑单位
页面是信息的物理单位

便于段的共享,执行时按需动态链接装入。
页一般不能共享

段长不等,可动态增长,有利于新数据增长。
页面大小相同,位置不能动态增长。

二维地址空间:段名、段中地址;段号、段内单元号
一维地址空间

管理形式上象页式,但概念不同
往往需要多次缺页中断才能把所需信息完整地调入内存

实现页(段)的共享是指某些作业的逻辑页号(段号)对应同一物理页号(内存中该段的起始地址)。页(段)的保护往往需要对共享的页面(段)加上某种访问权限的限制,如不能修改等;或设置地址越界检查,对于页内地址(段内地址)大于页长(段长)的存取,产生保护中断。

‘伍’ 简述段式存储管理技术和页式存储管理技术的不同之处

存储管理的基本原理

内存管理方法

内存管理主要包括内存分配和回收、地址变换、内存扩充、内存共享和保护等功能。

下面主要介绍连续分配存储管理、覆盖与交换技术以及页式与段式存储管理等基本概念和原理。

1.连续分配存储管理方式

连续分配是指为一个用户程序分配连续的内存空间。连续分配有单一连续存储管理和分区式储管理两种方式。

(1)单一连续存储管理

在这种管理方式 中,内存被分为两个区域:系统区和用户区。应用程序装入到用户区,可使用用户区全部空间。其特点是,最简单,适用于单用户、单任务的操作系统。CP/M和 DOS 2.0以下就是采用此种方式。这种方式的最

热点内容
r11忘记密码怎么办 发布:2024-07-02 21:13:25 浏览:3
大一教务网初始密码是什么 发布:2024-07-02 21:12:44 浏览:552
剧本脚本怎么写 发布:2024-07-02 21:09:06 浏览:91
加密保认证 发布:2024-07-02 21:05:12 浏览:501
win7文件加密后打不开 发布:2024-07-02 20:54:44 浏览:84
pyc文件由谁编译 发布:2024-07-02 20:53:47 浏览:950
编程偏门 发布:2024-07-02 20:40:28 浏览:600
android时间段选择 发布:2024-07-02 20:38:54 浏览:25
jqajax上传文件 发布:2024-07-02 20:36:18 浏览:406
优智云家安全密码如何更换 发布:2024-07-02 20:36:18 浏览:325