操做系统的内存对齐机制学习笔记

 

 

 

http://blog.csdn.net/lgouc/article/details/8235471html

 

http://blog.sina.com.cn/s/blog_67c294ca01012qbu.htmlspa

 

 

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

 

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

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

 

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

 

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

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

 

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

这是结论,有这个限制要求。缘由是什么,减小cpu读取内存的次数。不进行内存对齐的话,读取次数将会增长。变量

 

 

 

 

 

 

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

 

 

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

 

http://www.cnblogs.com/xkfz007/archive/2012/10/08/2715163.html 这篇文章讲述了cpu与内存之间的关系

 

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

 

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

 

cpu的执行指令速度

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

 

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

相关文章
相关标签/搜索