首页
社区
课程
招聘
未解决 [求助]数据对齐
发表于: 2020-3-15 21:22 2193

未解决 [求助]数据对齐

2020-3-15 21:22
2193
请问:什么是内存分页?什么是数据对齐?而且有什么好处?
看了许多资料似懂非懂,而且许多地方出现这两个概念

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 31
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
数据对齐有三种方式:
不对齐——从任意位置开始存储
优点:不浪费存储资源
缺点:除了访问一个字节之外,访问其它任何类型的数据,都可能花费两个存储周期的时间。读写控制比较复杂。

字长对齐——从一个存储字的起始位置对齐
优点:无论访问何种类型的数据,在一个周期内均可完成,读写控制简单。
缺点:浪费了宝贵的存储资源

边界对齐——从数据长度的整数倍位置对齐
数据存放的起始地址是数据长度(按照编址单位进行计算)的整数倍。
本方案是前两个方案的折衷,在一个周期内可以完成存储访问,空间浪费也不太严重


内存分页是将物理内存划分成大小相同的基本单位(一般为4KB),每个基本单位就是一个页面。系统在分配物理内存时,按照页面来分配,即每次最少分配一个页面。分页机制使每个进程所分配到的物理地址不需要连续,从而提高了物理内存的使用效率。
最后于 2020-3-15 22:21 被fancyray编辑 ,原因: 补充内容
2020-3-15 22:17
0
雪    币: 3400
活跃值: (850)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
fancyray 数据对齐有三种方式:不对齐——从任意位置开始存储优点:不浪费存储资源缺点:除了访问一个字节之外,访问其它任何类型的数据,都可能花费两个存储周期的时间。读写控制比较复杂。字长对齐——从一个存储字的起始位 ...
意思就是物理内存实际上是一页一页的,每页4KB,一个程序加载进内存至少占一页。那么在程序填充进物理内存之前要事先分好页吗?
2020-3-15 22:48
0
雪    币: 31
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
程序运行时不需要把所有的物理页都分配好,暂时不需要的物理页可以放在硬盘上,等需要的时候再调入内存。这是虚拟存储管理机制实现的。
2020-3-16 09:30
0
雪    币: 3400
活跃值: (850)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
fancyray 程序运行时不需要把所有的物理页都分配好,暂时不需要的物理页可以放在硬盘上,等需要的时候再调入内存。这是虚拟存储管理机制实现的。
那么程序在装载进物理内存页中时,系统就会维护一个页目录,进行虚拟地址到物理地址的映射?
2020-3-16 11:47
0
雪    币: 31
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
恺因 那么程序在装载进物理内存页中时,系统就会维护一个页目录,进行虚拟地址到物理地址的映射?
没错。如果想系统的学习相关的内容,推荐看一下《操作系统概念》郑扣根译,《操作系统——精髓与设计原理》,《计算机操作系统》汤小丹等著
2020-3-16 18:50
0
雪    币: 3400
活跃值: (850)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
fancyray 没错。如果想系统的学习相关的内容,推荐看一下《操作系统概念》郑扣根译,《操作系统——精髓与设计原理》,《计算机操作系统》汤小丹等著
谢谢了
2020-3-16 22:07
0
游客
登录 | 注册 方可回帖
返回
//