存储器的结构
存储器的功能是保存数据,它的发展方向是高速、大容量、小体积,而存储器的结构有“寄存器-主存-外存”、“寄存器-缓存-主存-外存”两种结构。存储组织的功能是在存储技术和CPU寻址技术许可的范围内组织合理的存储结构,使得各层次的存储器都处于均衡的繁忙状态。
虚拟地址
对程序员而言,数据的存放地址是由符号决定的,将源程序的地址空间称之为符号名称地址空间。它从0号大院开始编址并且顺序的分配所有的符号名所对应的地址单元,所以它不是主存的真实地址,这个地址就被称为虚拟地址。
地址空间
将程序中由符号名称组成的空间称之为名空间,源程序经过汇编或者编译之后再经过链接编译程序加工形成程序的配置模块,它以0为基础顺序进行编址。相对地址也叫做逻辑地址,将程序中由相对地址组成的控件称之为逻辑地址空间。
存储空间
逻辑地址空间是逻辑地址的集合,物理地址空间是物理地址的集合。
存储管理方案
存储管理主要目的是解决多个用户使用内存的问题,而存储管理方案有分区存储管理、分页存储管理、分段存储管理、段页式存储管理以及虚拟存储管理,下边我们就来介绍下这些存储管理方案。
分区存储管理
这是早期的存储管理方案,它的基本思想是将内存的用户划分为若干区域,每个区域分配给一个用户作业使用,并限定它们只能在自己的区域中运行,这种主存分配方案就是分区存储管理方案,按照划分方式不同,有固定划分、可变分区以及可重定位分区,下边我们就来介绍下这些内容。
固定划分
它是一种静态分区方式,在系统生成时就已经将内存划分为若干个分区,每个分区的大小不等。操作系统通过内存分配情况表管理内存,这种方式突出的问题就是已分配区中存在未用空间,原因是程序或作业的大小不可能刚好等于分区的大小,造成了空间的浪费。
可变分区
这是一种动态的分区方式,存储空间的划分是在作业装入时进行,所以分区的个数是可变的,分区的大小刚好等于作业的大小。可变分区的分配需要两种管理表格,其中已分配的表记录已分配分区的情况,未分配表记录未分配分区的情况。
可重定位分区
这是一种解决碎片问题的简单而且行之有效的办法,它的基本思想是移动所有已分配好的分区,称之为连续分区。
分页存储管理
分区管理方案是共享内存的可行方案,但是这个方案的问题在于用户程序必须装入连续的地址空间中,如果没有满足用户要求的连续空间,需要进行分区靠拢操作,正因为如此才引入分页存储管理方案。那么这个分页的原理是什么呢?
分页实现的原理就是将进程的地址空间划分为若干大小相等的区域,这个区域称之为页;相应的将内存空间划分为和页相同大小的若干物理块,称之为块或者页框。在为进程分配内存时,将进程中若干页分别转入多个不相邻的块中。
分段存储管理 这种管理方式中作业的地址空间划分为若干段,每个段是一组完整的逻辑信息,在这个管理系统中,为每个段分配一个连续的分区,而进程中的各个端可以离散的分配到内存的不同分区中。在系统中为每个进程建立一张段映射表,简称段表。每个段在表中占有一个表项,在其中记录了该段在内存中的起始地址和段的长度。
段页式存储管理 分页和分段存储管理方式各有优缺。因为分页的过程是由操作系统完成的,对用户是透明的,所以用户不必关系分页的过程,它的缺点是不容易实现共享。段是信息的逻辑单位,它的优点是抑郁实现段的共享,即允许若干个进程共享一个或者多个段,而且对段的保护也十分简单。这种系统即具有分页系统可以有效的提高主存利用率的优点,又具有分段系统很好的满足用户需要的长处,显然是一种比较有效的存储管理方式。
段页式系统的基本原理是先将整个主存划分为大小相等的存储块,将用户程序按程序的逻辑关系分为若干段,并为每个段赋予一个段名,再将每个段划分为若干页,以页框为单位离散分配。
虚拟存储管理 虚拟存储器是为了扩大主存容量而采取的一种设计方法,其容量是由计算机的地址结构决定的。虚拟存储是具有请求调入功能和置换功能,可以把作业的一部分装入主存便可运行作业的存储器系统,能从逻辑上对主存容量进行扩充的一种虚拟的存储器系统。其逻辑容量由主存和外存容量之和以及CPU可寻址的范围来决定,它的运行速度接近于主存速度,成本也下降。