address-spaces.pdf
需积分: 0 153 浏览量
更新于2021-05-31
收藏 1.42MB PDF 举报
虚拟内存组织和地址空间是操作系统中非常重要的概念,而本文档《address-spaces.pdf》主要涉及操作系统课程中与进程地址空间和二进制格式相关的内容。在深入探讨之前,让我们先明确几个关键概念:进程、虚拟地址空间、内存映射、动态内存分配、操作系统目标等。
进程是操作系统执行的一个实例化的程序。每个进程都有自己独立的虚拟地址空间。虚拟地址空间可以被看作是进程可以访问的内存范围,其上限通常由硬件架构确定。而操作系统的目标之一就是提供一种抽象,使得每个进程都认为自己拥有整个物理内存的独立副本。
地址空间是进程虚拟地址空间的组织结构,它由不同的部分构成。它可能包括程序二进制文件和共享库,比如C语言标准库libc.so。地址空间中还包含匿名页,它们没有文件作为支撑,主要用途是进程堆栈(heap和stack),用于动态分配内存。当进程结束时,这些匿名页面的内容也会消失。
地址空间的布局通常是应用程序决定的,而且在编译时确定。链接器指令可以影响这个布局,而操作系统通常会保留地址空间的一部分来映射自己,例如在x86架构的Linux系统中,通常是地址空间的上部1GB。
关于地址空间的一个简单示例是“Hello World”程序,它通过链接器指定了程序的加载地址,并明确指出程序希望加载libc的位置。同时,该程序会动态地向操作系统请求为堆(heap)和栈(stack)分配“匿名”页面。
在实践中,我们可以通过使用ldd命令查看一个程序请求的内存布局。比如,对于/usr/bin/git,可以通过命令ldd /usr/bin/git来查看,该命令将显示程序在运行时所需的库及其在虚拟地址空间中的地址。
当多个程序都希望将libc(即C语言标准库)映射到相同的地址时,这并不是一个问题。这是如何工作的呢?答案在于每个进程都拥有自己的地址空间抽象。每个进程的虚拟地址空间是独立的,即使它们在物理内存中使用的是相同的地址,也不会相互影响。
内存映射过程包括两个系统目标:
1. 提供内存抽象,使得每个进程都认为自己拥有完整的物理内存。操作系统通过页表、页面置换算法和虚拟地址转换等机制实现这一目标。
2. 实现物理内存的共享。当多个进程映射相同的内存内容时,操作系统会使得它们在虚拟内存层面上看似有各自的副本,实际上却共享同一块物理内存。
在文章中也提到了动态内存分配的概念,这是指在程序运行时,向操作系统请求内存空间的过程。典型的例子是堆,它用于动态存储数据。操作系统根据进程的请求,为进程的地址空间中添加新的内存映射,或者删除不再需要的映射。
除了虚拟内存的基本知识外,文档中还提到了进程内存布局的一些细节,例如在x86 Linux系统中,操作系统为自身保留了地址空间的一部分。这包括了操作系统代码和数据结构所需的内存区域,同时确保了操作系统的代码不会与任何用户空间程序的内存区域发生冲突。
本文档讨论了地址空间的一个重要特性,即内存映射的实现。操作系统的内存管理单元(MMU)负责虚拟地址到物理地址的转换。操作系统利用一种称为“页表”的数据结构来记录这种映射关系。当程序访问其地址空间的某个虚拟地址时,MMU将通过页表查找该地址对应的物理地址。如果该映射不存在(即发生了页面错误),操作系统会介入,可能从磁盘交换区加载缺失的页面到物理内存中,然后更新页表以完成映射。
整个文档讲述了操作系统如何通过虚拟内存机制抽象物理内存,以及如何管理不同进程的地址空间,来使得每个程序和用户感觉他们拥有独立且无限的内存空间,同时操作系统确保这些内存空间被高效且安全地使用。
JohhnyRade
- 粉丝: 13
- 资源: 5
最新资源
- NPC三电平逆变器改进同步载波调制算法仿真 (同步SPWM,同步SVPWM) 本仿真的优点: 1)三电平逆变器的输出相电压保持半波对称和三相对称,对应输出线电压不含三的倍数次谐波和偶次谐波,从而优化
- arcgis矢量shp格式玉环县地图
- 平面机械手step全套技术资料100%好用.zip
- 基于参数化MPC方案的四旋翼无人机轨迹跟踪容错控制研究-含代码及公式解释
- arcgis矢量shp格式榆林市地图
- 基于java+jsp+Servlet的B2C网上拍卖系统设计与实现源码.zip
- 皮带夹持机(sw16可编辑+工程图+bom)全套技术资料100%好用.zip
- 基于matlab的凸轮轮廓的设计计算与绘图 计算此结构的最优化参数,根据其原理输出推程和回程的最大压力角、最小曲率半径等相关结果 程序已调通,可直接运行
- 碾米机模型sw16可编辑全套技术资料100%好用.zip
- 瓶子灌装检测机sw19全套技术资料100%好用.zip
- 基于机器学习实现android恶意软件检测模型源码(下载即用)
- 永磁同步电动机的无传感器控制 永磁同步电机是用于将电能转为机械能的同步电机 该项目的目标是为永磁同步电机(PMSM)实现一种无传感器控制器 该项目由四个部分组成: 1-PMSM建模 2-永磁同步
- BMSmatlab仿真模型 BMS仿真,电池管理系统,整个BMS的matlab仿真模型 包含限位,EKF-SOC,均衡,充点电控制,冷却风机,充电控制,开机自检功能
- labview调用halcon实现目标检测,源码,labview2018 64位,halcon22.05,里面包含模型和测视集
- 沙滩垃圾自动清理车sw16可编辑全套技术资料100%好用.zip
- 柔性链夹瓶机sw16可编辑全套技术资料100%好用.zip