《操作系统》—页式存储管理

说到页式存储管理,我想应该先说用户的程序,因为页式存储管理就是为用户的程序或者是说进程服务的,一个程序编制好了以后它肯定占用空间,也就是说它肯定有大小,程序既然有大小就能将它划分,在这里,就将程序的逻辑空间划分成若干页,称为逻辑页面也叫页。

一、页的划分

页的大小是根据什么划分的那?这就追溯到内存的划分了。页的大小是根据内存中的块大小来划分的。什么是内存中的块那?下面解释一下块。页式存储空间将内存划分为等长的若干区域,每一个区域的大小一般取2的整数幂,每个区域就是一个块,块号从0开始编号,称为块号。分块的大小由什么确定的那?是有地址结构确定了主存储器的分块大小,这里不做解释。

现在程序中的页与内存中的块就对应上了,地址结构确定块,块确定页,而页是有页号和页内地址组成的,如下图。

假定地址总长度为15位,其中页号占5位,业内地址占10位。这样,逻辑地址可以有32页(2的五次方=32),可以编号为0—31,每一页有1024个字节(2的十次方=1024),编号为0—1023。从地址结构来看,逻辑地址是连续的,在编制程序时无需考虑如何分页,因为当使用一组顺序地址时,如果地址时0—1023,这显然时第0页,若果是1024—2047,这用的是第1页,也就是页号为1。

二、实现原理

作业执行时,根据地址中的页号找到主存块号,在确定当前指令应该访问的主存绝对地址。

1、页表:系统为每一个进程建立一个页表,用于记录页与块之间的对应关系,地址空间有多少页,页表就有多少行,且按照逻辑页中的顺序排列。

2、地址映射过程

3、地址转换

页式存储管理也是采用动态重定位的方式装入作业的,作业执行时有硬件的地址转换机构来完成从逻辑地址到绝对地址对额转换工作。在作业的执行过程中,处理器每执行一条指令,都让地址转换机构按照逻辑地址中的页号查页表,得到页号对应的块号,也就是主存的块号,将找到的块号转换成绝对地址,然后再加程序的页内地址,这就读到了这个程序的在内存中的绝对地址了。

三、小结

页式存储管理的优点是将作业的连续逻辑地址空间划分成页,可以分配到内存中不连续的块中,也就是分配到内存的不连续的主存区域中,并且能使作业正确的执行,这样进一步的提高了主存空间的利用率。缺点是当处理器处理一个作业时,必须访问两次主存,第一次是访问页表从而找到页号所对应的块号,然后换算出作业的绝对地址,第二次是处理器再按照换算出程序在主存中的绝地地址再进行运算操作。

时间: 2024-10-15 15:20:30

《操作系统》—页式存储管理的相关文章

段页式存储管理思想

分页:解决内存利用效率问题. 分段:解决进程安全.访问控制.数据一致性问题. http://blog.csdn.net/bupt_tinyfisher/article/details/8939689 1.基本思想: 分页系统能有效地提高内存的利用率,而分段系统能反映程序的逻辑结构,便于段的共享与保护,将分页与分段两种存储方式结合起来,就形成了段页式存储管理方式. 在段页式存储管理系统中,作业的地址空间首先被分成若干个逻辑分段,每段都有自己的段号,然后再将每段分成若干个大小相等的页.对于主存空间也

操作系统-页式虚拟存储器管理系统设计

(大三下学期开学)操作系统课程设计 题外话: 介个系统的算法啊其实很简单很好理解,就是当时自己实践的时候整了好久,各种调bug各种惆怅啊! 但是此乃100%原创哇!真是老老实实光啃操作系统书自己设计出来的,啥参考都没有 写完的时候真是太有成就感了(流泪) 还为此特别手写了算法研究了好久,刚刚翻出笔记本发现自己为了研究地址变换画了个小漫画!(见最下页) 当时的计划:2/27实现的目标:能够根据作业大小为作业分配空间,建立页表.2/28实现的目标:完成两种算法的设计与调试3/1实现的目标:完善展示界

操作系统内存管理——分区、页式、段式管理

计算存储的层次结构: 当前技术没有能够提供这样的存储器,因此大部分的计算机都有一个存储器层次结构,即少量的非常快速.昂贵.易变的高速缓存(cache):若干兆字节的中等速度.中等价格.易变的主存储器(RAM):数百兆或数千兆的低速.廉价.不易变的磁盘.这些资源的合理使用与否直接关系着系统的效率. 1. 内存管理方法 内存管理主要包括虚地址.地址变换.内存分配和回收.内存扩充.内存共享和保护等功能. 2. 连续分配存储管理方式 连续分配是指为一个用户程序分配连续的内存空间.连续分配有单一连续存储管

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

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

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

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

操作系统笔记(十)内存管理之分页,分段和段页式

基本内存管理: 进程占用空间必须连续,导致外部碎片以及附加的compaction 整个进程的swap in 和 swap out十分耗时. 解决:分页 ->内存空间不必连续,无外部碎片,有内部碎片.可以部分swap in 和 out. 分页式内存管理 重定位 物理内存:帧 <==> 逻辑内存:页 页表管理页和帧的映射关系,每条记录称作PTE.即输入page number,输出frame number. 逻辑地址:page number和page offset. 物理地址:frame nu

分页式存储管理方式AND请求分页式存储管理

先说下什么是页(页面):就是将用户的程序的的地址空间分成固定大小的区域,称为”页“,或者”页面“ 之后将这些页离散的放进内存中,这样解决了内存的碎片问题 记得老师上课说了下这两个概念不能混,现在区分下: 在第4章存储器管理,学习了分页式存储管理方式(是为了解决内存的碎片问题) 在第5章虚拟存储器,学习了请求分页式管理方式(除了解决碎片问题外,又“扩充”了内存的大小(虚拟)) 在这里为了使得固定数目的内存来运行较多的进程,增加了调页功能和页面置换功能. (在这可以看书或者笔记上的例题更好理解) 请

linux内核--段页式管理内存的方法

一.概念 物理地址(physical address) 用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应. --这个概念应该是这几个概念中最好理解的一个,但是值得一提的是,虽然可以直接把物理地址理解成插在机器上那根内存本身,把内存看成一 个从0字节一直到最大空量逐字节的编号的大数组,然后把这个数组叫做物理地址,但是事实上,这只是一个硬件提供给软件的抽像,内存的寻址 方式并不是这样.所以,说它是"与地址总线相对应",是更贴切一些,不过抛开对物理内存寻址方式的考虑,直接把物理

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

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