首页 > 系统相关 >《程序是怎样跑起来的》第五章——内存与磁盘的亲密关系

《程序是怎样跑起来的》第五章——内存与磁盘的亲密关系

时间:2024-02-18 16:58:24浏览次数:26  
标签:Windows 程序 DLL 内存 亲密关系 磁盘 虚拟内存

本章前面有几个问题:

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

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

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

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

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

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

解析:

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

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

3、虚拟内存。记住虚拟内存,脑癌是内存容量不足的计算机,也可以运行很大的程序。

4、DLL文件。DLL是Dynamic Link Liabrary 的略称。

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

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

在计算机中程序保存在存储设备中,通过有序的被读出来实现运行,这被称为存储程序方式(程序内置方式)。在此之前程序是通过改变计算机的布线等来变更程序的。因为磁盘中存储的程序是无法直接运行的,必须在接再到内存之后才能运行。因为CPU只用通过计数器来指定内存地址才能在内存中读出数据,如果直接从磁盘中读取数据,因为磁盘的读取速度慢,所以程序运行速度会极大降低

 

 我们知道磁盘读写速度慢,因此引入了缓存,磁盘将将要运行的程序存入缓存中,CPU直接从缓存中读取数据,由此大大提高了磁盘的访问速度

 因为内存一般都极其有限,所以提出来虚拟内存。虚拟内存是计算机系统中的一种技术,通过它,操作系统可以使用磁盘空间来扩展计算机的主内存。当主内存不足以容纳当前所有需要执行的程序或进程时,部分内容会被暂时保存到磁盘上,从而腾出空间给其他程序继续运行。虚拟内存使得每个程序都能够获得足够的内存空间,提高了系统的稳定性和多任务处理能力。

实际上正在运行的程序在这个时间点上是必须在内存中的,也就是说,为实现虚拟内存,必须把实际内存的内容,和磁盘上的洗你内存的内容进行部分置换,,并且同时运行内存。虚拟内存分为分页式和分段式。windows采用的是分页式,指的是在不考虑程序构造的情况下,把运行的程序按照一定大小的也进行分割,并一页为单位在内存和磁盘间进行置换。在分页式中读出page in,写入称为page out ,一般Windows的页大小为4KB,即将大程序页4KB的页来切分,以页为单位放入内存或虚拟内存中。

既然虚拟内存的出现是因为内存的有限,那么怎么节约内存?

1.通过DLL文件实现函数共有:DLL文件实在程序运行时可以动态加载Library(函数和数据的集合)的文件。多个应用共有一个DLL文件就达到了节约内存的目的。(Windows本身也是多个DLL文件的集合体,在安装新应用时,DLL文件将会被追加,应用利用直接DLL文件来运行)。DLL文件还有一个优点:在不变更EXE文件的情况下,只通过升级DLL文件就可以完成更新。

2.通过调用_stdcall 来减小程序文件的大小:此方法是C语言编写应用是利用的高级技巧。

_stdcall 是一种调用约定(calling convention),它规定了函数的参数传递方式以及函数内部清理堆栈的方式。在 _stdcall 调用约定中,函数的参数是从右向左依次入栈,由调用者负责清理堆栈上的参数。这意味着被调用函数在返回时会自行清理堆栈,而不是由调用者来清理。

在 Windows 平台上,C 和 C++ 编译器默认使用 _stdcall 调用约定,因此在 Windows API 中经常会看到使用 _stdcall 修饰的函数声明。这种调用约定也被广泛应用于 Win32 API 编程以及基于 Windows 的 C/C++ 开发中。

总之,_stdcall 是一种函数调用约定,用于规定函数参数传递和堆栈清理的规则,并在 Windows 平台的编程中扮演着重要的角色。

磁盘的物理结构:磁盘的划分方式有扇区方式和可变长方式两种,前者将磁盘换分为固定长度的空间,后者剑磁盘换分为长度可变的空间。一般常见的硬盘使用的都是扇区方式:将磁盘表面分为若干个同心圆的空间就是磁道,把磁道按固定大小(能存储的数据长度相同)划分而成的就是扇区。

 扇区是磁盘物理读写的最小单位,一般一个扇区为512字节,在Windows在逻辑结构方面对磁盘进行读写的单位是扇区整数倍簇。磁盘的容量雨大,簇的容量也越大。

标签:Windows,程序,DLL,内存,亲密关系,磁盘,虚拟内存
From: https://www.cnblogs.com/wcpp/p/18017092

相关文章

  • 内存与磁盘的亲密关系
    计算机中主要的存储部件是内存和磁盘。磁盘中存储的程序,必须要加载到内存后才能运行。在磁盘中保存的原始程序是无法直接运行的。磁盘缓存指的是把从磁盘中读出的数据存储到内存空间中的方式。磁盘缓存提高访问速度的机制:(1)首次读出时从磁盘读出(低速)(2)保存读出的数据(3)......
  • 什么是内存以及内存的使用
    内存(Memory)是计算机的重要部件,也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。它是外存与CPU进行沟通的桥梁,计算机中所有程序的运行都在内存中进行,内存性能的强弱影响计算机整体发挥的水平。只要计算机开始运行,操作系统就会把需要运算......
  • io-磁盘
     磁盘I/O:寻道时间:指磁头找到指定磁道消耗的时间;旋转延迟:盘片旋转并将数据定位到读/写头(磁头)下方所需的时间;是磁盘驱动器存在的一种延迟现象;传输时间:将数据从磁盘读出或写入数据所经历的时间;与每次读/写的字数和磁盘的转速有关; 磁盘io:从磁盘找到数据的......
  • 内存的物理结构
    计算机是处理数据的机器,而程序负责处理步骤和数据结构。作为处理对象的数据存储在内存和磁盘中,因此程序员必须能够灵活地使用内存和磁盘。内存芯片分为RAM\ROM等不同类型。内存芯片上有很多引脚,这些引脚负责连接电源,以及输入输出地址信号、数据信号和控制信号,通过指定地址,就可以对......
  • 第五章:内存和磁盘的亲密关系
    《程序是怎样跑起来的》第五章主要讲述了内存和磁盘之间的关系,以及它们在程序运行过程中的作用。这一章节深入浅出地介绍了内存和磁盘的基本概念、工作原理以及它们之间的数据传输过程,让我对计算机的存储系统有了更深入的了解。首先,本章对内存和磁盘的定义和作用进行了详细的解释......
  • 《系统是怎样跑起来的》读后感——第四章 熟练使用有棱有角的内存
    1.内存的物理机制很简单内存实际上是一种名为内存IC的电子元件。虽然内存IC包括DRAM、SRAM、ROM等多种形式,但从外部来看,其基本机制都是一样的。内存IC中有电源、地址信号、数据信号、控制信号等用于输入输出的大量引脚(IC的引脚),通过为其指定地址(address),来进行数据的读写。V......
  • 《程序是怎样跑起来的》让内存画方为圆
    一,内存的物理结构1.分类:RAM[可读可写的存储器][需要刷新]ROM[只读不写的存储器][不需要刷新]2.内存的芯片内存的芯片包括电源地址,信号,数据信号和控制信号二,内存的逻辑结构像一栋大楼程序中通过指定的变量的数据类型就可以改变读写物理内存的单位长度,很方便三,用好内存,先从数组开始1......
  • 《程序是怎样跑起来的》内存与磁盘的密切联系
    内存与磁盘的密切联系一,程序必须从硬盘加载到内存中才方可运行二,磁盘缓存内存空间临时存放,从磁盘读取出来的数据可提高磁盘数据的访问速度三,将磁盘当成内存使用的虚拟内存将磁盘的一部分模拟成内存来使用的机制使用方式:将运行页面换入将不运行的页面换出,使一个程序被割成多......
  • 第四、五章——内存和磁盘
    计算机的处理对象数据是储存在内存和磁盘上的。内存————内存的物理机制—内存IC中有电源、地址信号、数据信号、控制信号等用于输入输出的大量引脚,通过为其指定地址,完成数据的读写。内存的逻辑模型是楼房,一层可以存储一个字节的数据,楼层就是地址。变量的数据类型不同,所占用的......
  • 酷睿i5-12450H+16GB内存!神舟战神Mini电脑1899元到手
    神舟战神Minii5迷你台式电脑正在参与京东年货节大促,搭载酷睿第12代i5-12450H处理器,另外还有16GBDDR4内存和512GBPCIe4.0SSD,整机到手价1899元,应该是目前为止相同配置售价最低的品牌迷你主机。酷睿第12代i5-12450H处理器其实是用于笔记本的型号,拥有超低的功耗但是性能却不低......