(备战招聘)操作系统之基本内存管理方案

大家好,今天我们来介绍一下基本的内存管理方案,这部分中有很多的基础知识,如分页、
分段知识等等,是操作系统中很重要的部分。
首先根据进程是否作为整体进入内存中占用一片连续区域来进行方案的划分。
假如进程进入内存中占用一段连续的区域,主要有三种管理方案:单一连续区、固定分区、可变分区
假如进程进入内存的区域不是连续的,主要有三种管理方案:页式、段式、段页式
下面首先来介绍第一种情况
1、单一连续区(几乎不用)
一段时间内只有一个进程在内存中,简单但是效率低下
2、固定分区(几乎不用)
把内存空间分割为若干区域称为分区,每个分区大小可以相同可以不同,分区的大小是固定不变的,每个分区装一个且只能装一个进程
3、可变分区
根据进程的需要,把内存空闲空间分割出一个分区,分配给该进程,剩余部分成为新的空闲区。
但是可变分区在内存的分配与释放中会产生很多很小不易利用的分区,导致内存的利用率下降,所以一般需要使用压缩技术(在内存中移动程序,将所有小的空闲区合并成大的空闲区)
下面来介绍第二种情况
1、页式存储管理方案
用户进程地址空间被划分为大小相等(一般为4K或者4M)的部分,称为页(page)或者页面,从0开始编号
内存空间按同样大小划分为大小相等(一般为4K或者4M)的部分,称为页帧、页框(page frame)或者内存块,从0开始编号
以页为单位进行分配,并且按照进程需要的页数进行分配,一般逻辑上相邻的页物理上不一定相邻
页式存储管理所用的数据结构
页表:记录逻辑页号与页框号的对应关系(从逻辑地址到物理地址),每个进程拥有一个页表存放在内存中。
在这里插入图片描述
例如上图是一个32位逻辑地址,分为两部分,高的20位作为页号,低的12位作为页内地址(偏移)
在这里插入图片描述
上图所示为一个页式系统的流程,CPU在取到逻辑地址后,自动将逻辑地址划分为页号和页内地址,用页号查列表得到页框号,再与页内偏移地址拼接成为实际的物理地址
2、段式存储管理方案
用户进程的空间地址按照程序自身的逻辑关系划分为若干个程序段,每个程序段有一个段名
内存空间被动态的划分为若干个长度不相同的区域,称为物理段,每个物理段由起始地址和长度确定,每段在内存中占据连续空间,不同段之间可以不相邻
段式存储方案所用的数据结构
其结构类似于页式
逻辑地址被系统自动划分为段号和段内地址
在这里插入图片描述
段表
每项记录了短号、段首地址和段长度之间的关系
在这里插入图片描述
如上图所示为一个段存储方案执行的过程,CPU得到逻辑地址后自动将其分为段号和段内地址,然后用段号查询相应的段表,得到该段在内存中的起始地址,然后与段内便宜地址进行计算得到物理地址
3、段页式存储方案
综合段式、页式存储方案的优点
设计思想,先按段进行划分,每一段再按页面进行划分,也就是将内存仍按照页式存储管理方案划分,段是由页构成的,页其实是内存分配的基本单位
空闲区的管理和回收仍使用页式的办法
逻辑地址可以划分为
在这里插入图片描述
当CPU获取逻辑地址后,将逻辑地址分为段号和段内地址,然后将段内地址再次分为页号和页内地址。
段页式存储管理方案的数据结构
段表:记录每一段的页表开始地址和页表长度
页表:记录逻辑页号与页框号的对应关系,每一段有一张页表,一个进程可以有多个页表

内存存储管理方案的总结
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值