进程和线程的内存组织结构

进程和线程的内存组织结构

进程的内存组织结构

进程的地址空间

进程和线程的内存组织结构_第1张图片
进程地址空间

通用的栈结构


进程和线程的内存组织结构_第2张图片
通用的栈结构

进程是操作系统对一个正在运行的程序的抽象,它是资源分配的最小单位,如寄存器,内存,文件等,每一个进程以进程控制块(PCB)的形式来表现。
操作系统会保持跟踪进程运行所需的所有状态信息,也就是进程的上下文。不同进程并发执行,当操作系统决定把 CPU 的控制权从当前进程转移到某个新进程时,就会进行上下文切换,即保存当前进程的上下文,恢复新进程的上下文。
对应用程序而言,提供了一个独立的逻辑控制流和一个私有的地址空间

进程和线程的内存组织结构_第3张图片
PCB

线程模型

线程是进程的执行单元,每个线程都运行在进程的上下文中,共享该进程虚拟地址空间里的代码、数据、堆、共享库和打开的文件。
每个线程都有自己的线程上下文,包括一个唯一的整数线程 ID、栈、栈指针、PC、通用目的寄存器和条件码。

各自独立的线程栈的内存模型并不整齐清楚,它们都保存在进程虚拟地址空间的栈区域中,通常被相应的线程独立访问,但并不对其他线程设防。

进程和线程的内存组织结构_第4张图片
线程上下文模型

你可能感兴趣的:(进程和线程的内存组织结构)