进程是程序的一次执行
是一个程序及其数据在处理机上顺序执行时所发生的活动
是具有独立功能的程序在一个数据集合上的一次运行过程
是系统进行资源分配和调度的一个基本单位
是PCB结构、程序和数据的集合
设备分配只针对现有进程,不会创建进程
进程的特征:
动态性:进程的实质是程序的一次执行过程,因此,动态特征是进程最重要的特征
并发性:没有为之建立进程的程序是不能并发执行的,仅当为之建立一个进程后才能参加
并发执行
独立性:进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位
异步性:由于进程间的相互制约,使进程具有执行的间断性,即进程按各自独立的、不可
预知的速度向前推进
结构特征:为了控制和管理进程,系统为每个进程设立一个进程控制块--PCB
进程与程序的区别:
程序是进程的静态文本,进程是执行程序的动态过程
进程与程序之间不是一一对应的,同一程序同时运行于若干不同的数据集合上,它将属于若干个不同的进程;
一个进程可以执行多个程序
程序可作为软件资源长期保存,进程只是一次执行过程,是暂时的
进程是系统分配调度的独立单位,能与其他进程并发执行
进程状态及其演变进程执行的间断性,决定了进程可能具有多种状态
基本状态运行的进程可能具有就绪、执行、阻塞三种基本状态
当进程已分配到除CPU以外的所有必要资源时,它便处于就绪状态,一旦获得CPU,便立即执行,进入执行状态
正在执行的进程,由于发生某个事件而暂时无法执行时,便放弃处理机而进入阻塞状态
由于执行的进程变为阻塞状态后,调度程序立即把处理机分配给另一个就绪进程(因此,阻塞进程的事件消失后,进程不会立即恢复到执行状态,而转变为就绪状态,重新等待处理机)
为了管理的需要,还存在着两种比较常见的进程状态,即创建状态和终止状态
创建状态:引起创建的事件:
用户登录
作业调度:为被调度的作业创建进程
提供服务:要求打印
应用请求
创建一个进程一般要通过两个步骤:
首先,为一个新进程创建PCB,并填写必要的管理信息;
其次,把该进程转入就绪状态并插入就绪队列之中。
当一个新进程被创建时,系统已为其分配了PCB,填写了进程标识等信息,但由于该进程所必需的资源或其它信息,如主存资源尚未分配等,一般而言,此时的进程已拥有了自己的PCB,但进程自身还未进入主存,即创建工作尚未完成,进程还不能被调度运行,其所处的状态就是创建状态。
引入创建状态,是为了保证进程的调度必须在创建工作完成后进行,以确保对进程控制块操作的完整性。同时,创建状态的引入,也增加了管理的灵活性,操作系统可以根据系统性能或主存容量的限制,推迟创建状态进程的提交。对于处于创建状态的进程,获得了其所必需的资源,以及对其PCB初始化工作完成后,进程状态便可由创建状态转入就绪状态。
终止状态:引起终止的事件:
正常结束
异常结束
外界干预
系统管理员kill
父进程终止
父进程请求
进程的终止也要通过两个步骤:
首先等待操作系统进行善后处理
然后将其PCB清零,并将PCB 空间返还系统
当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结,它将进入终止状态
进入终止态的进程以后不能再执行,但在操作系统中依然保留一个记录,其中保存状态码和一些计时统计数据,供其它进程收集。一旦其它进程完成了对终止状态进程的信息提取之后,操作系统将删除该进程。
阻塞和唤醒阻塞是进程自身的一种主动行为
a. 调用block原语
b. 停止执行,修改PCB进入阻塞队列(一个或多个
唤醒由其他相关进程完成
a. wakeup原语
b. 修改PCB进入就绪队列
挂起为了系统和用户观察分析的需要,还引入了挂起操作,与挂起对应的是激活操作
当进程被挂起,便会进入静止状态:正在执行,便会暂停执行,处于就绪状态则不接受调度
引入挂起状态的原因有: