四操作系统存储器管理

                                            第4章 存储器管理

存储部件的层次
**********************
* Cpu寄存器          *
* 高速缓存             *
* 主 存                   *
* 磁盘缓存             *
* 磁 盘                   *
* 可移动存储介质  *
**********************

1、程序的装入和链接
程序进内存的一般过程:
1)编译compiler
2)链接link
3)装入load
地址的概念
逻辑地址(相对地址,虚地址):用户的程序经过汇编或编译后形成目标代码,目标代码中的指令地址是相对地址。
物理地址(绝对地址,实地址):内存中存储单元的地址;物理地址可直接寻址被执行。

程序装入中的地址处理
1)绝对装入方式(absolute loading):
逻辑地址  ======   物理地址
逻辑地址——重定位——物理地址:
2)静态可重定位装入方式(relocatable loading mode)
3)动态运行时(重定位)装入方式(dynamic run-time loading) 

不同的程序链接装入方式(使用内存的时机)
静态链接:
装入运行前将多个目标模块及所需库函数链接成一个整体,以后不再拆开。
装入时链接:
装入内存时,边装入边链接的链接方式。
运行时链接:
对某些目标模块的链接,在执行中需要该目标模块时,才对它进行链接。

 

 

连续分配方式
(1)单一连续分配
系统区:仅提供给OS使用,通常放在内存低址部分
用户区:除系统区以外的全部内存空间,提供给用户使用。
(2)固定分区分配
把内存分为一些大小相等或不等的分区(partition),每个应用进程占用一个分区。操作系统占用其中一个分区。
(3)动态分区分配
分区的大小不固定:在装入程序时根据进程实际需要,动态分配内存空间,即——需要多少划分多少。
    分区分配算法
    1)首次适应算法FF
    2)循环首次适应算法
    3)最佳适应算法
    4)最差适应算法
    5)快速适应算法
(4)动态重定位分区分配
地址变换过程是在程序执行过程期间(相对地址与重定位寄存器中的地址相加),随着对每条指令的访问自动进行,称为动态重定位。
动态重定位分区分配算法与动态分区分配算法基本相同,差别在于增加了紧凑的功能。
(5)内存空间管理之对换
把内存中暂时不能运行、或暂时不用的程序和数据调到外存上,以腾出足够的内存;把已具备运行条件的进程和进程所需要的程序和数据,调入内存。

 

 

基本分页存储管理方式
记录每个作业各页映射到哪个物理块,形成的页面映射表,简称【页表】。
每个作业有自己的页表:页号到物理块号的地址映射
作业相对地址在分页下不同位置的数有一定的意义结构:
    页号+页内地址(即页内偏移)
根据系统页面大小找到不同意义二进制位的分界线。
从地址中分析出页号后,地址映射只需要把页号改为对应物理块号,偏移不变,即可找到内存中实际位置。

计算相关:
页面大小决定偏移量(页内地址)的位数 ;
作业大小-》页面数量
内存容量决定块数,块数决定编址位数,即页表项位数 。

地址变换机构


进程发出逻辑地址的访问请求,经过地址变换,到内存中找到对应的实际物理地址单元并取出数据,所需花费的总时间,称为内存的有效访问时间EAT
设访问一次内存时间为t,则基本分页机制下EAT=2t

引入快表后
快表的寄存器单元数量是有限的,不能装下一个进程的所有页表项。虽不能完全避免两次访问内存,但如果命中率a高还是能大幅度提高速度。
设一次查找访问快表时间为t' ,则
  EAT= a*t' + (1-a)(t'+t)    +    t
             = 2t +t' -t*a

两级页表
将页表分页,并离散地将页表的各个页面分别存放在不同的物理块中
为离散分配的页表再建立一张页表,称为“外层页表”,其每个表项记录了页表页面所在的物理块号。

 

 

 

基本分段存储管理方式
基本原理:程序通过分段(segmentation)划分为多个模块,每个段定义一组逻辑信息。
特点:
1)每段有自己的名字(一般用段号做名),都从0编址,可分别编写和编译。装入内存时,每段赋予各段一个段号。
2)每段占据一块连续的内存。(即有离散的分段,又有连续的内存使用)
3)各段大小不等。
【地址结构:段号 + 段内地址】
段表与地址变换机构

分页和分段的主要区别
1)需求:分页是出于系统管理的需要,是一种信息的物理划分单位,分段是出于用户应用的需要,是一种逻辑单位,通常包含一组意义相对完整的信息。
2)大小:页大小是系统固定的,而段大小则通常不固定。分段没有内碎片,但连续存放段产生外碎片,可以通过内存紧缩来消除。相对而言分页空间利用率高。
3)逻辑地址:
分页是一维的,各个模块在链接时必须组织成同一个地址空间;
分段是二维的,各个模块在链接时可以每个段组织成一个地址空间。
4)其他:通常段比页大,因而段表比页表短,可以缩短查找时间,提高访问速度。分段模式下,还可针对不同类型采取不同的保护;按段为单位来进行共享

优点:
易于实现共享
易于实现保护

段页式存储管理方式
基本原理:
将用户程序分成若干段,并为每个段赋予一个段名。
把每个段分成若干页
地址结构包括段号、段内页号和页内地址三部分

地址变换过程

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如约而至3786

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值