深入理解进程
关于进程的讨论
进程的分类
- 系统进程/用户进程
- 前台进程/后台进程
- CPU密集型进程/ I/O型密集型进程
进程层次结构
UNIX进程家族树:init为根进程,然后向下衍生; Windows:所有进程地位相同
进程地址空间
操作系统给每个进程都分配了一个地址空间
先看一段程序:
同时运行两个Myval程序:Myval 7,Myval 8
输出:
可以看到变量myval的值不同,但是输出的地址却相同。其实两个程序地址0x60104c只是虚拟地址,物理内存不相同,它们只是处在相对一样的地址上。
再具体一点,两个程序的内核地址空间不同,但是用户地址相同。
上下文(CONTEXT)切换
将CPU硬件状态从另一个进程切换到另一个进程的过程称为 上下文切换。进程运行时,其硬件状态保存在CPU的寄存器中,包括程序计数器、程序状态寄存器、栈指针寄存器、通用寄存器、其他控制寄存器的值。进程不运行时,这些寄存器的值保存在进程控制块(PCB)中;当操作系统要运行一个新的进程时,将PCB中的相关值送到 对应的寄存器中。