深入理解计算机操作系统——第8章:进程
进程:
(1)进程的经典概念就是执行中的一个程序的实例。
(2)系统中的每一个程序都是运行在进程的上下文中。
(3)上下文:由程序正确运行所需的状态组成,这个状态包括:存放在存储器中的代码和数据,它的栈,通用目的寄存器,
程序计数器,环境变量,以及打开的文件描述符等等。
进程给程序提供的关键抽象:
(1)独立的逻辑控制流:好像程序在运行时独占cpu处理器
(2)私有的地址空间:好像程序独占存储器一样。
逻辑控制流:
程序的运行时会有一系列的程序计数器(PC)的值,这些值唯一的对应着可执行程序的指令。这些值的序列就是逻辑控制流。
(1)并发流:
一个逻辑流的执行时间上与领一个流重叠称为并发流。
如上图,A和B时间上有重叠,A和C时间上有重叠
而B与C,因为执行C的第一条指令时B的最后一条指令已经执行完了
(2)多任务:一个进程与其他进程轮流的执行称为多任务。
(3)时间片:一个进程执行它的控制流上的一个片段称为时间片。
8.2.3 私有地址空间
(1)进程为每个程序提供一个假象,好像它独占的使用整个系统的地址空间。
(2)如32位机,地址是2^32个可能的地址集合。
(3)一个进程为运行在它上面的程序提供私有的地址空间,这个地址所关联的存储字节是不能被其他进程所访问的
(4)地址空间的顶部是保留给内核的,底部是保留给用户程序的
8.2.4 内核模式和用户模式
(1)一个运行在内核模式下的进程可以访问指令集中的任何指令,可以访问存储器中的任何存储字节
(2)一个运行在用户模式下的进程不能访问特权指令
(3)处理器中的某只控制寄存器的模式位来控制模式。
8.2.5 上下文切换
(1)内核为每个进程维持一个上下文,上下文就是内核重新启动一个被抢占的进程所需的状态。
上下文切换:(在内核的模式下)
(1)保存当前进程的上下文。
(2)恢复某个先前被抢占的进程的被保存的上下文
(3)将控制传递给这个新恢复的进程