Skip to content

Latest commit

 

History

History
16 lines (15 loc) · 2.04 KB

介绍下进程的地址空间(虚拟地址和物理地址).md

File metadata and controls

16 lines (15 loc) · 2.04 KB
  1. 虚拟地址空间
    • 每个进程在运行时都有自己独立的虚拟地址空间,从逻辑上看,每个进程都拥有连续而私有的地址空间。
    • 虚拟地址空间是一个抽象概念,它包含了进程可以访问的所有内存地址,但不需要实际的对应物理内存。通过虚拟地址空间,进程可以访问代码、数据、堆、栈以及操作系统内核提供的其他资源。
    • 虚拟地址空间通常被分为几个部分,如代码段(text segment)、数据段(data segment)、堆(heap)和栈(stack)等,用于存放不同类型的数据和程序代码。
  2. 物理地址空间
    • 物理地址空间是实际存在于计算机硬件中的内存地址空间,用于存储进程的真实数据和程序代码。
    • 当进程访问虚拟地址时,操作系统会将虚拟地址转换为对应的物理地址,从而找到数据或指令在内存中的真正位置。
    • 物理地址空间是由计算机的物理内存组成,包括主存(RAM)、磁盘交换空间(swap space)等。
  3. 地址映射
    • 在操作系统中,虚拟地址到物理地址的映射是通过内存管理单元(MMU)来实现的。MMU负责将进程发出的虚拟地址转换为对应的物理地址,以实现内存的访问。
    • 当进程访问某个虚拟地址时,如果该地址未映射到物理内存,则会触发缺页中断(page fault),操作系统负责将相应的页面加载到内存中,并更新页表进行地址映射。
  4. 地址空间的划分
    • 操作系统将地址空间划分为多个页面(page)或段(segment),以便更有效地管理内存。每个页面或段有固定大小,通常为4KB~8KB。
    • 虚拟地址空间中的页面称为虚拟页面(virtual page),物理地址空间中的页面称为物理页面(physical page)。页面的映射关系由页表记录,操作系统负责维护和管理页表。

总的来说,进程的地址空间既包括虚拟地址空间(供进程使用的逻辑地址)也包