程序是怎样跑起来的(5)

内存和磁盘的亲密关系

在计算机中主要的存储部件是内存和磁盘,硬盘也是磁盘的一种。磁盘中存储的程序,必须要加载到内存后才能运行。在磁盘中保存的原始程序是无法直接运行的。因为负责解析和运行程序内容的CPU,需要通过内部程序计数器来指定内存地址,才能读出程序。
使用CPU去直接读取硬盘里的程序,也是可以的只是读取速度会非常慢会降低程序的运行速度。而直接读取硬盘中程序的情况,也是经常会用到的,在打开的程序比较多的时候,超出了内存的缓存大小,就回把多出来的数据读到虚拟内存中,虚拟内存就是放在硬盘中的内存。只是从硬盘中划分了一部分空间来作为虚拟内存使用,不过速度是相当缓慢。

DLL文件,是在程序运行的时候可以动态加载函数和数据的集合的文件。多个应用可以共有同一个DLL文件。通过共有一个DLL文件则可以达到节约内存的效果。
通过调用_stdcall来减少程序文件的大小。_stdcall是standard call(标准调用)的略称。windwos提供的DLL文件内的函数,基本上都是_stdcall调用方式。主要是节约内存。
栈清理处理是指,把不需要的数据从接受和传递函数的参数时使用的内存上的栈区域中清理出去。push是往栈中存入数据的指令。

磁盘的物理结构。磁盘是通过把其物理表面划分成多个空间来使用的。划分的方式有 扇区方式 和 可变长方式 两种,前者是指将磁盘划分为固定长度的空间,后者则是指吧磁盘划分为长度可变的空间。(而现在用的硬盘大多都是固态硬盘,用的是存储颗粒,不会像机械硬盘那样会有震动,固态硬盘在我们看来是完全静止的,而机械硬盘运行起来是通过转轴转动盘片使磁头来读取数据的)磁盘是以簇为单位来存储数据的。

posted @   ༺ཌ༈枫祁༈ད༻  阅读(6)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示