程序是怎样跑起来的-第05章 内存和磁盘的亲密关系

05 内存和磁盘的亲密关系

热身问题

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

    在存储装置中保存程序,并逐一运行的方式。现代计算机采用的就是存储程序方式。


2:通过使用内存来提高磁盘访问速度的机制称为什么?

    Disk Cache(磁盘缓存),磁盘缓存指的是,把从磁盘中读出的数据存储在内存中,当该数据再次被读取时,不是从磁盘而是从内存中直接高速读出。


3:把磁盘的一部分作为假想内存来使用的机制称为什么?

    虚拟内存(virtual memory),借助虚拟内存哪怕是内存不足的计算机,也可以运行很大的程序。


4:Windows中,在程序运行时,存储着可以动态加载调用的函数和数据的文件称为什么?

    DLLDLL文件),Dynamic Link Liabrary的简称。


5:EXE程序文件中,静态加载函数的的方式称为什么?

    静态链接,函数的加载方式有静态链接和动态链接两种。


6:Windows计算机中,一般磁盘中1个扇区是多少字节?

    通常为512字节,扇区是磁盘保存数据的物理单位。


5.1 不读入内存就无法运行

    存储程序方式:程序保存在存储设备中,通过有序地被读出来实现运行,这一机制称为存储程序方式。磁盘中存储的程序,必须要加载到内存后才能运行。在磁盘中保持的原始程序是无法直接运行的。即使CPU可以直接读出并运行磁盘中保存的程序,由于磁盘读取速度很慢,程序的运行速度还是会降低。


5.2 磁盘缓存加快了磁盘访问速度

    磁盘缓存(disk cache):磁盘缓存指的是把磁盘中读出的数据存储到内存空间中来,这样当下一次需要读取同一数据时,就不用通过实际的磁盘,而是从磁盘缓存中把内容读出。这样可以大大改善磁盘数据的访问速度。现在随着硬盘访问速度的大幅改善,磁盘缓存的效果也就没有之前那么明显了。

    把低速设备的数据保存到高速设备中,需要时可以直接将其从高速设备中读出,这种缓存的方式在其他情况下也会用到。其中的一个实例就是在Web服务器中使用。Web浏览器就可以把获取的数据暂时保存在磁盘中,然后在需要时再显示磁盘中的数据。也就是说,把低速网络数据保存到相对高速的磁盘中。


5.3 虚拟内存把磁盘作为部分内存来使用

    虚拟内存(virtual memory):虚拟内存指的是把磁盘的一部分作为假想的内存来使用。虚拟内存虽说是把磁盘作为内存的一部分来使用,但实际上正在运行的程序部分,在这个时间点上必须存在在内存中。也就是说,为了实现虚拟内存,就必须把实际内存(也称物理内存)的内容,和磁盘上的虚拟内存的内容进行部分置换(swap),并同时运行程序。


5.4 节约内存的编程方法

    图形用户界面(GUIGraphical User Interface)。DLLDynamic Link Library)文件,顾名思义,是在程序运行时可以动态加载Library(函数和数据的集合)的文件。


5.5 磁盘的物理结构

    扇区是对磁盘进行物理读写的最小单位。在Window的软件方面对磁盘进行读写的单位是扇区的整数倍簇(cu1簇可以是1KB(两个扇区)、2KB4KB等等。不过不同的文件不能存储在同一个簇中,否则就会导致有一方的文件不能被删除。因此不管多小的文件,都会占用1簇的空间。这样以来,所有的文件都会占用1簇的整数倍的磁盘空间。

    如果减少簇的容量,磁盘访问次数就会增加,就会导致读写文件的时间变长。

    磁盘是通过把其物理表面划分成多个空间来使用的。划分的方式分为扇区方式和可变长方形两种,一般使用的是扇区方式,把磁盘分为若干个同心圆的空间就是磁道。把磁盘按照固定大小(能存储的数据长度相同)划分成的空间就是扇区。

发布了180 篇原创文章 · 获赞 13 · 访问量 13万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 编程工作室 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览