美文网首页
(四)内存

(四)内存

作者: 墨白找 | 来源:发表于2016-05-20 14:48 被阅读51次

计算机是处理数据的设备,而程序则表现处理顺序和数据结构。在计算机内部,数据被存储在内存和磁盘中,因此程序必须要能够自由使用内存和磁盘。
因此认识内存很重要。
几种不同类别的内存:ROM,DRAM,SRAM


内存的物理机制

内存IC

物理上,内存实际上是一种名叫内存IC的电子元件。内存IC含有大量的引脚。引脚可以被配置为表示不同的信号,包括控制信号、数据信号、地址信号和电源等。


下面用一个虚拟内存IC示例。


能指定多少个地址?
A0~A9为地址信号引脚,这里有10个,因此可以指定2^10=1024个不同的地址。
一次可以输入输出多少数据?
D0~D7为数据信号引脚,这里有8个,因此可以指定长度为8bit的数据,即1字节的数据。
一共可以存储多少数据?
1024x1字节=1024字节=1KB的数据。
RD、WR能控制什么?
RD,即read,该引脚信号为1时,该内存IC为“读”模式,可以输出数据。WR,即write,该引脚信号为1是,内存IC为“写”模式,可以输入数据。RD和WR都为0时,既不能读,也不能写。

内存的逻辑模型


数据类型:代表在内存中存储的是哪种类型的数据。

指针

指针也是一种变量,存储数据在内存中的地址。在32位系统中,指针变量的长度也是32位。


数组

数组:多个同样类型的数据在内存中连续存放的数据结构。
通过 首地址索引 来找到数组中的某一项。对比CPU中的基址寄存器和变址寄存器的机制,可以发现两者是一致的。

栈、队列和环形缓冲区

栈和队列:不通过指定地址和索引即可访问数组的元素。

栈:LIFO (Last In First Out),先进后出。
队列:FIFO (First In First Out),先进先出。

这两种数据结构已经基本了解了,就不记了。。。。。。

环形缓冲区

队列的一种常用的使用方式。


链表和二叉查找树

同样,它们都不用通过指定地址和索引即可访问数组元素。
一般地,
链表:对数组元素的增、删、改操作更为高效。
二叉查找树:对数组元素的索引更为高效。

链表已经基本熟悉了,就不记了。。。。

印象:数组是使用内存的基础。

相关文章

  • (四)内存

    计算机是处理数据的设备,而程序则表现处理顺序和数据结构。在计算机内部,数据被存储在内存和磁盘中,因此程序必须要能够...

  • Android App内存优化

    目录: 一、内存优化的意义 二、Android 内存管理 三、内存问题分类 四、内存优化辅助工具 五、内存优化建议...

  • The X Developing - XDL For Platf

    内存管理。 XDL实现了四种内存管理方式的函数集,即:堆内存、页内存、全局内存和缓存。堆内存(xmem)为程序在运...

  • OC - OC的内存管理机制

    导读 一、为什么要进行内存管理 二、内存管理机制 三、内存管理原则 四、MRC手动内存管理 五、ARC自动内存管理...

  • (四)内存管理

    1. 又知道了两个没有严格执行消息机制的例子 NSProxy:不会从父类里查找,也没有forwarding方法,而...

  • 内存管理(四)

    自动释放池和Runloop关系 打印如下:() 分析:重点在Runloop开头和结尾有两个 callout 明为_...

  • 吐血整理!究极深入Android内存优化(二)

    四、内存抖动 当 内存频繁分配和回收 导致内存 不稳定,就会出现内存抖动,它通常表现为 频繁GC、内存曲线呈锯齿状...

  • NSObject 底层本质

    一、OC 转 C/C++ 二、NSObject 对象内存布局 三、NSObject 内存大小 四、OC 对象内存布...

  • 内存优化

    内存泄露的原因 四种引用类型 常见的内存泄露 1.内部类导致内存泄露 Handler 2.Context导致内存泄...

  • Java 内存模型

    目录 一、Java 内存模型的主要目标二、主内存和工作内存三、内存件的交互操作四、对于 volatile 型变量的...

网友评论

      本文标题:(四)内存

      本文链接:https://www.haomeiwen.com/subject/mvvgrttx.html