博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
操作系统的内存对齐机制学习笔记
阅读量:6672 次
发布时间:2019-06-25

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

 

 

 

 

 

 

 数据对齐并不是操作系统内存结构的一部分,而是C P U结构的一部分

 

是这么理解吗?cpu要读取内存中的数据,以多少为单位进行读取呢?以4个字节,还是8个字节。还是16个字节为单位来读取内存数据?

目前主要以2个字节为单位吗?是的。2个字节作为对齐单位。

 

以多少个字节为单位来读取内存的数据,这是cpu的知识。与cpu有关系。

 

数据项只能存储在地址是数据项大小的整数倍的内存位置上。如int类型占用4个字节,地址只能在0,4,8等位置上。

也就是说,这个数据的首个地址必须是它的倍数。

 

比如一个数据大小是6个字节。现在要存入内存中去,首个内存地址的位置必须是6的倍数,即6*n才行:6,12,18........这样就可以。

这是结论,有这个限制要求。原因是什么,减少cpu读取内存的次数。不进行内存对齐的话,读取次数将会增加。

 

 

 

 

 

 

 内存对齐的本质:减少cpu读取内存的次数。一次性尽可能多读取数据进来。是这样的吗?

 

 

处理器的内存存取边界是什么意思?

 

 这篇文章讲述了cpu与内存之间的关系

 

内存对齐是操作系统为了快速访问内存而采取的一种策略,简单来说,就是为了放置变量的二次访问。操作系统在访问内存 时,每次读取一定的长度(这个长度就是操作系统的默认对齐系数,或者是默认对齐系数的整数倍)。如果没有内存对齐时,为了读取一个变量是,会产生总线的二 次访问。

 

几个基础知识:内存的每个地址能够存储多少数据。1个字节。

 

cpu的执行指令速度

大部分简单指令的执行只需要一个时钟周期,也就是1/3纳秒。光在这个时间点也只能走10厘米。

 

由于主存中使用电容来存储信息,为了防止因自然 放电而导致的信息丢失,就需要周期性的刷新它所存储的内容,这也带来额外的等待时间。

 

转载于:https://www.cnblogs.com/wangtao_20/p/4686667.html

你可能感兴趣的文章
MYSQL备份和恢复
查看>>
spark安装:在hadoop YARN上运行spark-shell
查看>>
Docker存储驱动之ZFS简介
查看>>
根据sql,一键生成excle 格式, 再通过 zip包压缩为zip
查看>>
PL/SQL Developer 添加数据
查看>>
PHP实时统计文件下载次数
查看>>
linux eth0 改eth1 在改ip
查看>>
乾颐堂鹏同学通过HCIE送给后来者的话
查看>>
JS中的prototype
查看>>
我的友情链接
查看>>
本体编辑和知识获取软件--protege汉化版
查看>>
23张非常精美的圣诞桌面壁纸分享
查看>>
稀疏矩阵的压缩存储和转置
查看>>
华为S5700交换机开启WEB配置
查看>>
mysql主从同步错误解决和Slave_IO_Running: NO
查看>>
Coding and Paper Letter(十七)
查看>>
性能下降曲线
查看>>
求一个数的二进制中1的个数
查看>>
古代教育观点纵览
查看>>
Linux 下搭建PHP环境(make方法)太麻烦了
查看>>