• 内存和磁盘的亲密关系


    问题

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

      在存储装置中保存程序,并逐一运行的方式

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

      磁盘缓存Disk Cache

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

      虚拟内存Virtual Memory

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

      动态链接库DLL

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

      静态链接

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

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

    不读入内存就无法运行

    存储程序方式:程序保存在存储设备中,通过有序地被读出来实现运行。

    计算机中主要的存储部件是内存和磁盘。磁盘中存储的程序,必须要加载到内存后才能运行。在磁盘中保存的原始程序是无法直接运行的,这是因为,负责解析和运行程序内容的CPU,需要通过内部程序计数器来指定内存地址,然后才能读出程序。即使CPU可以直接读出并运行磁盘中保存的程序,由于磁盘读取速度慢,程序的运行速度还是会降低。

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

    磁盘缓存:从磁盘中读出的数据存储到内存空间中。

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

    通过借助虚拟内存,在内存不足时也可以运行程序。不过,虽然虚拟内存是把磁盘作为内存的一部分来使用,但实际上正在运行的程序部分,在这个时间点上是必须存在在内存中的。也就是说沦为了实现虚拟内存,就必须把实际内存的内容和磁盘上的虚拟内存的内容进行部分置换,并同时运行程序。

    虚拟存的方法有分页式和分段式。Windows采用的是分页式。该方式是指,在不考虑程序构造的情况下,把运行的程序按照一定大小的页进行分割,并以页为单位在内存和磁盘间进行置换。

    为了实现虚拟内存功能,Windows在磁盘上提供了虚拟内存用的页文件。该文件由Windows自动生成和管理。文件的大小也就是虚拟内存的大小,通常是实际内存的相同程序指两倍程度。通过Windows的控制面板,可以查看或变更当前虚拟内存的设定。

    节约内存的编程方法

    虚拟内存无法彻底解决内存不足的问题。

    1. 通过DLL文件实现函数共有:多个应用可以共有同一个DLL文件,而通过共有同一个DLL文件则可以达到节约内存的效果。
    2. 通过调用_stdcall来减小程序文件的大小:在C语言中,在调用函数后,需要执行栈清理处理指令。栈清理处理,比起在函数调用方进行,在反复被调用的函数一方进行时,程序整体要小一些。

    磁盘的物理结构

    磁盘是通过把其物理表面划分成多个空间来使用的。划分的方式有扇区方式和可变长方式两种,前者是指将磁盘划分成固定长度的空间,后者则是指把磁盘划分为长度可变的空间。扇区方式中,把磁盘表面分成若干个同心圆的空间就是磁道,把磁道按照固定大小划分而成的空间就是扇区。扇区是对磁盘进行物理读写的最小单位。不过,Windows在软件方面对磁盘进行读写的单位是簇——扇区整数倍。不同的文件是不能存储在同一个簇中的,否则就会导致只有一方的文件不能被删除。不管是多么小的文件,都会占用1簇的空间。所有的文件都会占用1簇的整数倍的磁盘空间。

  • 相关阅读:
    supervisor使用小记
    linux新增定时脚本
    page_fault_in_nonpaged_area异常解决方案(已解决)
    和安卓对接老是ping不通?试试内网映射
    github文件下载加速器
    mybatis新增账号并且返回主键id
    arraylist源码解析
    MySQL安装教程
    通过get方法的方式获取配置项信息
    @Inject注解
  • 原文地址:https://www.cnblogs.com/fr-ruiyang/p/14567096.html
Copyright © 2020-2023  润新知