高手之路——Po学校学习笔记-第四课

来源:互联网 发布:国内硕士申请博士 知乎 编辑:程序博客网 时间:2024/05/16 11:06

第四课 带着问题学习——磁盘


1.存储程序方式是指的什么
2.如何通过内存来提高磁盘的访问速度
3.Winodws为例,他为了节约内存用了哪些手段
4.现在电脑的瓶颈就是在磁盘上,数据传输速度远远低于电脑整个电脑所需求的速度。

5.磁盘发展路线:
软盘---机械硬盘(碟片式)----SSD(芯片式)

6.计算机中能够存储数据的东西
(1)寄存器,在CPU内部来使用的,速度是最快,数量最少,最贵
(2)内存,通过内存地址来访问,一般快,多,贵,
(3)磁盘,最慢,容量最多,最便宜

7.程序执行过程:
(1)CPU直接从磁盘读取数据,取回寄存器中进行运算,运算完成后将数据存储回磁盘。
(2)通过内存将硬盘上的内容加载到内存,然后cup直接访问内存,这种方式比上一种方式要快很多,我们称之为存储式计算机,冯诺依曼结构

8.内存从硬盘中读取数据也需要花费时间,通过什么方式来解决?
(1)通过磁盘缓存技术来解决,第一次读取,先加载数据,同时把数据加载到内存中,第二次读取的时候,直接到内存读取。
(2)虚拟内存,磁盘中的一块当作内存使用,CPU只能执行内存中的数据,所有这时会在物理内存中开辟一段空间,通过这个空间来和磁盘上的虚拟内存进行交换。将数据从虚拟内存读取到物理内存叫做PageIn,反过来叫做PageOut。那么物理内存和虚拟内存的交互方式有哪些?
A.分段式,根据数据集合,分别将数据和程序分开
B.分页式,将数据按照固定的大小进行分页,比如4KB分为一页

9.节约内存的编程方式
(1)函数共用,动态链接库DLL,多个程序调用这个dll
(2)被调用方清理栈,程序运行过程中会在内存中存储一些临时值,使用完了,要进行回收栈的空间。
A.清理栈在什么时候进行,在函数调用结束之后;如何清理栈?
(a).调用_stdcll,这种方式更好,在栈底进行add esp 8,自动进行栈清理,节省内存空间。
(b).其他方式,以前的方式,需要手动调用add esp 8
(3)数据压缩-----节约硬盘的方式
A.RLE算法,比如文本为:AAAABBBBB压缩为A4B5
B.哈夫曼算法,文本压缩,
C.不可逆压缩,比如图片JPEG格式

10.磁盘的物理结构。
扇区,按照磁道一块一块的划分,有多个扇区,簇,最小单位,windows中最磁盘单位为4kb,在同一个簇里边,不能有相同的文件,这也就是为什么文件的大小和占用磁盘的大小的有区别了,占用磁盘的大小永远都是大于文件的大小的,就是因为需要进行扇区对齐,按照簇最小单位的倍数递增。


0 0
原创粉丝点击