(一)内存那些事儿:内存运行的基本原理
内存运行的基本原理
内存是计算机中用于存储数据和指令的存储单元集合,通过总线与 CPU 等部件进行数据传输和通信。
1. 内存的工作原理
- 存储单元:内存由许多存储单元组成,每个单元有唯一地址,就像房子有门牌号一样。这些存储单元可以存储一定量的数据,通常是 8 位、16 位、32 位或 64 位等,常见的是 8 位,即一个字节(Byte)。常见为 8 位(1 字节)。
- 数据传输:内存通过数据总线、地址总线和控制总线与 CPU 等部件通信。
- 读写过程:CPU 通过总线发送地址和长度,内存控制器读取数据并返回。
存储单元类型
- DRAM:使用电容存储数据,需定期刷新,成本低,常用作主存。
- SRAM:使用触发器存储数据,速度快但成本高,常用于高速缓存(Cache)。
2. 内存的作用
在计算机系统中,内存是连接 CPU 和硬盘的关键组件,对程序运行起着不可或缺的作用。
程序是指挥计算机运行的一系列有序指令集合,主要由代码段和数据段组成。
- 代码段:存放完成各种操作的指令,包括算术运算指令(如加、减、乘、除,实现数值计算)、逻辑判断指令(如比较大小、判断条件真假,为程序流程提供决策依据)以及流程控制指令(如循环、分支语句,决定程序执行顺序和路径)等。这些指令以二进制形式存储,是程序执行各种任务的核心逻辑。
- 数据段:用于存储程序运行所需数据,包括变量和常量。变量的值在程序运行时可变,用于临时存储和传递数据;常量则具有固定值,为程序提供特定参考数据。
硬盘作为非易失性存储介质,能在断电后长期保存程序和数据。但因其读写速度较慢,无法满足 CPU 快速处理数据的需求。为解决这一问题,当硬盘中存储的程序需要运行时,会将程序的一份拷贝加载到内存中。这是因为内存具备快速读写特性,可作为 CPU 与硬盘之间的高速中转站。CPU 实际操作的是加载到内存中的程序副本,它依据程序代码段,从内存读取指令和相关数据,执行各类操作,并将运算结果写回内存。若没有内存的参与,CPU 直接与硬盘交互数据,程序运行效率将因硬盘读写速度的限制而极为低下,难以满足现代计算机系统对高性能计算的要求。
因此,可以理解为内存是程序运行的必须载体。
3. 操作系统的内存管理能力
操作系统通过内存管理机制确保系统高效运行。
3.1 内存装入与链接
-
装入机制:程序从硬盘加载到内存
- 绝对装入:编译时确定内存位置,灵活性差。
- 可重定位装入:运行时将逻辑地址转换为物理地址,提升内存利用率。
- 动态装入:按需动态分配内存,进一步提高灵活性。
-
链接方式:链接是将程序各模块及所需库函数连接成完整可执行程序的过程
- 静态链接:运行前完成链接,执行速度快,但文件较大。
- 动态链接:运行时按需加载库函数,减少文件大小,提高模块复用性。
一句话,解决如何将硬盘中的程序挪到内存中,这样程序才可以去运行。
3.2 内存分配与管理
-
连续分配:
- 单一连续分配:简单划分为系统区和用户区,适用于单任务系统。
- 固定分区分配:将内存划分为固定大小分区,易造成内存浪费。
- 动态分区分配:根据进程需求动态分配,可能产生外部碎片。
-
非连续分配:
- 分页:通过页表实现逻辑页到物理页框的映射,解决内存碎片问题。
- 分段:按逻辑结构划分段,便于共享和保护,但可能产生外部碎片。
- 段页式:结合分页和分段优点,提升灵活性和效率。
一句话,解决这些问题:电脑可能会同时运行多个程序,这些程序的内存该如何分配?程序如果有动态增长的内存需求,应该怎么申请和释放内存?
3.3 内存交换与虚拟内存
- 内存交换:将暂时不用的内存页面转移到磁盘,释放物理内存。
- 虚拟内存:通过虚拟地址空间让多个进程在有限物理内存下运行,提升并发能力。
内存交换和虚拟内存是操作系统中两项重要的技术,它们协同工作,将磁盘空间作为物理内存的有效扩展,为程序运行创造了比实际物理内存更为广阔的虚拟地址空间。
所谓“内存页面”,是内存管理中的一个基本单位,操作系统将内存划分成大小固定的页面,每个页面可以存放一定量的数据或程序代码。
当系统运行过程中,物理内存资源逐渐紧张时,内存交换机制便开始发挥作用。操作系统会识别出那些暂时不被使用的内存页面,将它们从物理内存转移到磁盘上存储,从而释放出物理内存空间,以供其他急需内存的进程使用。当后续程序需要再次使用这些页面时,操作系统又会将其从磁盘重新交换回物理内存。
虚拟内存技术则在此基础上,进一步让多个进程能够在有限的物理内存条件下同时运行。例如,假设一台计算机仅有 4GB 的物理内存,但通过虚拟内存技术,系统可以为每个进程分配数 GB 甚至更大的虚拟地址空间。这使得多个进程看似都拥有足够的内存资源,极大地提高了系统的并发处理能力,有效突破了物理内存不足对程序运行数量和规模的限制。
一句话,内存不够用了,如何将硬盘当内存使用。
3.4 高级功能与优化
- 内存保护:防止非法访问,确保系统稳定性。
- 高速缓存管理:通过多级缓存(如 L1、L2、L3)提升内存访问速度。
- 内存碎片整理:通过紧凑技术合并分散的空闲内存,提升利用率。
- 共享内存:允许进程共享内存区域,需同步机制保障访问安全。
- 内存映射:将文件映射到内存,支持高效文件访问和进程间通信。
小结
内存是 CPU 和硬盘之间的高速缓冲,通过操作系统的内存管理机制,确保程序高效运行,满足现代计算机对高性能和多任务处理的需求。
参考资料
Enjoy Reading This Article?
Here are some more articles you might like to read next: