计算机操作系统(十八):内存(二)
来源王道考研系列视频:
https://www.bilibili.com/video/BV1YE411D7nH
内存空间的分配与回收(二)
非连续分配
为用户分配一些分散的内存空间
基本分页存储管理
将内存分为一个个相等的小分区,再按照分区大小把进程拆分为一个个小部分。每个分区就是一个页框,或者称为页帧,有一个编号,从0开始。
如何实现地址的转换?
-
算出逻辑地址对应的页号
页号 = 逻辑地址/页面长度(取整数的部分)
-
知道页号对应的页面在内存中的起始位置
用某种数据结构记录进程各个页面的起始位置。
-
算出逻辑地址在页面内的偏移量
页内偏移量 = 逻辑地址%页面长度(取余数部分)
-
物理地址=页面始地址+页内偏移量
如果每个页面大小为2^Kb,用二进制数表示逻辑地址,则末尾k位表示页面偏移量1,其余部分就是页号。
逻辑地址结构
前一部分为页号,后一部分为偏移量W。
如果有k位表示页面偏移量,则说明在系统中一个页面的大小是2^k内存单元。
如果有M位表示符号,则说明在系统中,一个进程最多允许有2^M个页面。