内存 (Po学校 计算机科学 笔记整理)

版权声明:本文为博主原创文章,转载请注明来源 https://blog.csdn.net/C1664510416/article/details/78801343

内存


问题:

  1.高级编程语言中的数据类型表示的是什么?

    数据类型表示的是所占内存空间的大小。

2.32位环境中,指针的长度是多少位?

32位环境中,地址总线的长度就是 32 bit,也就是 4个字节的大小,而指针的值表示的就是内存的地址,所以指针的长度也是32 bit,所以指针的大小为 4个字节。



知识点整理:


1.内存的物理结构:电源引脚,地址引脚,数据引脚,控制引脚。

电源引脚:5V + 0V.

数据引脚:D0 ~ D7  一次的大小为 1 byte.

地址引脚:代表了内存的寻址能力,A0~A9  00000 00000

~ 11111 11111  则寻址能力为,则:内存存储大小为

1024*1 byte=1MB.

控制引脚:W 引脚 (write),R 引脚(read)。



2.内存的寻址过程:

接入 5V ~0V  --》  CPU 将地址写入 寻址引脚,寻址,CPU将数据写入数据引脚,控制引脚   W引脚 通电,写入数据。

内存容量=寻址能力 x 写入大小.



内存的逻辑结构与数据结构的关系:


类数组方式:


内存的结构可以比作一个一个小楼房,从上到下是一个个小房子,地址从上到下依次从大到小。

1.数组:所以访问数据最快的方式是累加连续读取,即数组的方式。记录首地址(基址寄存器),不断的变换偏移(变址寄存器)值,达到快速读取的目的。

缺点:删除数据很慢,因为要把下面的数据往上移动。

2.

first in,last out.

取一块大小固定的内存空间,从低向上记录,最先进栈的最后出来

应用:记录查询,回溯。

3.队列:

按照进入的顺序,挨个读出来。


类数组的结构在执行删除,和插入操作的时候,会非常慢。


链表:(方便删除和插入)

在内容的下一个空间插入指针。



程序在内存中执行。



磁盘:

问题:

1.存储程序的方式是什么?

存储在磁盘上。

2.如何通过内存提高磁盘的访问速度。

将数据先读入内存,减少CPU直接从磁盘读取数据 的时间。

3.Windows 为例,它为了节约内存用了哪些手段?

在磁盘开辟空间作为虚拟内存,共用函数,被调用方清理栈。



磁盘的物理结构:

类型:扇区(按照磁道划分),可变长。


Windows 在进行磁盘操作是 ,是以为单位来进行的。即使文件的大小不满足一簇,也按照一簇操作。(一簇中不能有相同的文件)



目前计算机的运算瓶颈在 磁盘。

磁盘的速度有待提高。

磁盘的发展历程:软盘   —  硬盘(HHD) — 混合(HDD)—固态(SSD)

磁盘与内存息息相关。

现代计算机:

冯.诺依曼体系(存储程式计算机)

CPU — 内存—Disk

CPU —Disk

存储数据:

1.内存:速度一般快,价格一般贵,空间数量一般多

2.磁盘:速度慢,价格便宜,空间数量多

3.寄存器:速度非常快,价格很贵,空间数量很少


一.(磁盘缓存技术)由于一开始的磁盘的速度非常慢,所以在CPU从磁盘读

取数据的同时,将磁盘数据写入内存当中,(把内存当做磁盘用)


应用:浏览器,服务端,数据库


二.(虚拟内存技术)内存不够用,将磁盘划分出一块空间作为虚拟内存。

通过置换算法,将数据一页一页的从磁盘将数据加载到内存。(pagein pageout)

应用:大多数的大型程序都是这样的。程序所需的内存

远远大于内存的空间。


节省内存的编程方式:

1.函数共用:DLL 动态链接库

2.被调用方清理栈 Windows 中的 _stdcall

节省磁盘的方式:

数据压缩:RLE算法 压缩黑白照片(传真),EXE文件.

哈夫曼算法 压缩文本文件.(采用编码的方式,

将经常出现的字符用短编码表示)



压缩:

可逆压缩(上述);

不可逆压缩(JPEG格式)






猜你喜欢

转载自blog.csdn.net/C1664510416/article/details/78801343