博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
离散分配方式——基本页式存储管理方式
阅读量:4181 次
发布时间:2019-05-26

本文共 786 字,大约阅读时间需要 2 分钟。

在前面的博客中提到了连续分配方式。 本文主要是描述离散分配方式中的基本分页式存储管理。

为什么引入?

在连续分配方式中,内存分配之后会产生大量的“碎片”,虽然在可重定位分区分配方式中引入了“紧凑”的思想,但是会花费很多开销。 如果可以将一个进程离散的装入到许多不同的分区中,就没有那些麻烦了,于是离散分配方式的思想就产生了。

如果离散分配方式的基本单位是页,就称为分页存储管理方式;还有一种基本单位是段,称为分段式存储管理方式,这里先不介绍。

1.页面与页表

1) 页面和物理块

  分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片,称为页面或,把内存空间分成与页面相同大小的若干个存储块,称为(物理)或页框(frame),也同样为它们加以编号。在为进程分配存储空间的时候,以块为单位将进程中的若干页放入可不相邻接的物理块中。由于进程的最后一页经常装不满一块而形成了不可利用的碎片,称之为页内碎片

2) 页面大小

  在分页系统中的页面其大小应适中,且页面的大小应该是2的幂,通常为512B-8KB。每个页面的大小是固定的,由系统决定。

2. 地址结构

它含有两部分:前一部分为页号 P,后一部分为位移量 W(或称为页内地址)。  地址空间最多允许有1M页。

逻辑地址到页号和页内偏移量的转换:

页号=[ 逻辑地址 / 页面大小 ]

页内偏移量=[ 逻辑地址 MOD 页面大小 ]

3.页表

页表的作用是实现从页号到物理块号的地址映射。

页表中的每一个页表项包含两个字段,一个是页号,另一个是块号。

4.地址变换机构

 

逻辑地址到物理地址映射过程:

首先用页表长度和页号大小进行比较,如果页号大于或等于页表长度,则出现地址越界错误;

若没有出现越界错误,则先用页表始止页号和页表项长度的乘积相加,可以得到该页表项在页表中的位置然后在从页表项中读取到物理块号。

转载地址:http://owhai.baihongyu.com/

你可能感兴趣的文章
librtmp协议分析---RTMP_SendPacket函数
查看>>
视频学习笔记:Android ffmpeg解码多路h264视频并显示
查看>>
关于对H264码流的TS的封装的相关代码实现
查看>>
PortAudio+webrtc+lame实现采集降噪增益mp3
查看>>
视频压缩编码和音频压缩编码的基本原理
查看>>
利用FFmpeg玩转Android视频录制与压缩(二)
查看>>
利用FFmpeg玩转Android视频录制与压缩(三)
查看>>
windows10 编译x264出现 undefined reference to `_beginthreadex'解决
查看>>
使用vs2013或vs2015 编译ffmpeg
查看>>
win10 msys2 vs2015 ffmpeg3.3.3 编译 带x264 aac
查看>>
视频存储格式YUV420 NV12 NV21 i420 YV12
查看>>
流媒体加密
查看>>
msys2 安装笔记
查看>>
H264码流中SPS PPS详解
查看>>
AAC音频格式简析
查看>>
Ubuntu 12.04 联想G470 显卡驱动安装,AMD Radeon HD 6300M Series 驱动安装
查看>>
ffmpeg集成libx264编码错误,提示“Input picture width(xxx) is greater than stride(0)” 问题解决
查看>>
ffmpeg sws_scale函数详解
查看>>
C++单例模式
查看>>
vs2017使用libfdk-aac 链接提示没有“COMDAT 0xF”错误解决
查看>>