进程的非正式定义很简单:运行着的程序。进程是由多道程序的并发执行而引出的,他和程序是两个不同的概念。人们常常希望同时运行多个程序,比如在使用计算机时,我们会同时运行浏览器、音乐播放器、游戏等等,也就是说进程具有并发性。
实际上一个正常的系统可能会同时运行上百个进程。操作系统通过让一个进程只运行一个时间片,然后切换到其他进程,从而提供存在多个虚拟CPU的假象。这便是时分共享CPU系统,所有现代操作系统都采用这种分时机制。
机制(mechanism)是一些低级方法或协议,例如上下文切换机制。在这些机制之上,操作系统中有一些所谓的策略(policy),策略是在操作系统内做出某种决定时所用的算法,比如进程调度算法(比如利用进程调度算法,从就绪队列中选择一个进程,通过上下文切换机制,使得该进程上处理机运行)
抽象:进程概念
操作系统正在运行的程序提供的抽象,就是所谓的进程(process)。为了能够理解构成进程的是什么,我们必须理解它的机器状态——即程序正在运行时可以读取或更新的内容。进程的机器状态有一个明显的组成部分——内存,正在运行的程序的指令和数据都存放于内存中,因此进程可以访问的内存(称为地址空间)是该进程的一部分。
寄存器也是进程的机器状态的一部分。许多指令都会明确的读取或更新寄存器。请注意,有一些非常特殊的寄存器也构成机器状态的一部分。例如,程序计数器(Program Counter,即PC寄存器,有时也叫指令指针,Instruction Pointer,IP寄存器)指明当前进程即将执行的下一条指令的内存地址;类似的,栈指针和相关