三、存储管理

本文深入探讨了计算机系统中的内存管理技术,包括交换技术、虚拟存储、地址映射、内存分配技术、链接方式、存储技术及非连续存储技术等内容。特别介绍了分页存储、分段存储和段页式存储的基本原理及其优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一些概念

1. 交换技术

将进程全部或一部分暂时移出到外存,挂起或虚拟存储。

2. 虚拟存储

只装入一部分到内存,留一部分在外存,外存虚拟作为内存使用。操作系统负责内外存切换:进程运行时需要的数据或代码从外存调入内存,内存中暂时不用的交换到外存

虚拟存储依赖交换技术。

3. 映射地址

逻辑地址

物理地址

4. 进程的地址空间

----高地址------

堆栈

数据

程序

进程控制块

----低地址------

5.地址映射

(1)静态映射

程序装入时一次性完成地址变换,线性增加偏移,程序运行时不再改变。不适合多道程序,因为必须是连续的空间,不支持碎片。

(2)动态映射

一边执行一边转换,由专门硬件地址管理部件实现

6. 内存划分与分配技术

(1)静态划分

一旦划分完毕,分区大小、数目不再改变

固定分区、分页

固定分区:等长、不等长。缺点是浪费空间,内零头

分页:大小相同的小固定分区,称为页框/帧。需要位示图或者空闲页框表等进行管理,进程支持不连续存储


(2)动态划分

7.链接

(1)静态链接

(2)动态链接

装入时动态链接:相比静态链接,只链接有引用到的。但不一定会执行到,比如分支内。

运行时动态链接:实际执行时才链接

8. 存储技术

(1)简单存储

相对虚拟存储而言,执行之前,操作系统必须将要执行的程序全部装入内存

(2)虚拟存储

允许内存只装入程序运行必须的部分,当执行部分不在内存时,则通过中断,将外存的程序调入内存

9. 非连续存储技术

(1)分页存储

将物理内存划分为大小相同的页框,将进程划分成大小相同的页面,页面=页框

逻辑地址被分为页号+页内偏移量

页表:系统为每个进程建立一张页面映射表,用于记载各页面到物理页框的映射信息

空闲页框表:空闲的物理页框,用于分配空间

地址变换:根据逻辑地址计算页号和页内偏移量,用页号检索页表得到物理地址

多级页表:以二级页表为例,假设逻辑地址空间为32位,即4GB,页面=页框=4KB,每个页表项占内存4字节。

    4GB的逻辑空间,需要4MB的页表项(1M条记录*4字节),4MB是放不下一个页面的,所以需要二级页表来寻址一级页表。二级页表刚好4KB够放。

    假设逻辑地址为0000 0000  0000 0000 0001 | 0000 0000 0001     

一级页表中页号为0000 0000  0000 0000 0001

页内偏移量为0000 0000 0001

因此找到一级页表中页号为0000 0000  0000 0000 0001的页表项查出对应的页框地址,即可得到该逻辑地址对应的物理地址。

由于每个页表项占4字节,所以一级页表地址应为0000 0000  0000 0000 0001xx,对一级页表再用二级页表寻址

0000 0000  00 | 00 0000 0001xx

                                    二级页表中页号为0000 0000  00

       页内偏移量为00 0000 0001xx

得到一级页表项的地址

(只要是一个页面存放不下的东西,都会被离散地存放在各个页面,需要有页表进行管理映射)

快表:分页系统,每次处理机读取指令至少需要访问两次物理内存,为此创建高速缓冲存储器快表,快表可认为是快速访问的硬件。

评价:消除了外零头,只有内零头;页面存储,用户看到的是一维空间,无法将子程序模块或者函数独立,无法单独调试;不易于共享存储和动态链接。简单说就是不利于模块化

  (2)分段存储

基于模块化程序设计,子任务单独成段,单独编译、链接、执行。

组成:段号+段内偏移量

看起来跟分页差不多,但是分页是由系统自己划分的,用户看到的是一维空间;分段是由用户自己划分的

动态划分,系统将内存划分为尺寸不等的分区,当一个进程装入内存,系统为该进程每个段都划分一个分区,各个段之间不必要连续。

不需要多级,因为是不等长分区

(3)段页式

基本思想:采用分段方法组织用户程序,采用分页方法分配和管理内存。即程序可以模块化,系统根据模块,装入页框

对于用户,看到的是二维的段号+段内偏移量

对于系统,是三维的地址:逻辑地址由3部分组成,段号+段内页号+页内偏移量








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值