进程的定义
进程:一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。
进程的组成
- 程序代码
- 程序处理的数据
- 程序计数器中的值,指示下一条将运行的指令
- 一组寄存器存储的当前值
- 一组系统资源
进程与程序的联系
- 程序是产生进程的基础
- 程序的每次运行 构成不同的进程
- 进程是程序的功能实现
- 通过多次执行,一个程序对应多个进程;通过调用关系,一个进程可包括多个程序
进程与程序的区别
- 进程是动态的,程序是静态的:程序是代码的集合,进程是程序的执行,有核心态和用户态
- 进程是暂时的,程序是永久的
- 组成不同:进程:程序,数据,进程控制
进程的特点
- 动态性:可动态地创建、结荣进程;.
- 并发性:进程可以被独立调度并占用处理机运行;并发并行.
- 独立性:不同进捏的工作不相互彩晌;.
- 制约性:因访问共享数据/资源或进程间同步而产生制约。
进程控制结构
进程控制块(PCB):操作系统管理控制进程运行所用的信息集合。操作系统用 PCB 来描述进程的基本情况以及运行变化的过程, PCB 是进程存在的唯一标志。
- 进程标识信息
- 处理机状态信息保存区
- 进程控制信息
进程的生命期管理:
- 进程创建
- 进程运行
- 进程等待
- 进程唤醒
- 进程结束
引起进程创建
3 个主要事件:
- 系统初始化时;
- 用户请求创建一个新进程;
- 正在运行的进程执行了创建进程的系统调用;
进程等待(阻塞) :
- 请求并等待系统服务,无法马上完成
- 启动某种操作,无法马上完成
- 需要的数据没有到达
唤醒进程:
- 被阻塞进程需要的资源可被满足
- 被阻塞进程等待的事件到达
- 将该进程的PCB插入到就绪队列
进程结束
- 正常退出(自愿的)
- 错误退出(自愿的)
- 致命错误(强制性的)
- 被其他进程所杀(强制性的)
进程挂起
没有占用内存空间
与挂起相关的状态转换挂起( StlsPend ) :把一个进程从内存转到外存
可能有以下几种情况:
- 阻塞到阻塞挂起:没有进程处于就绪状态或就绪进程要求更多内存资源时.会进行这种转换,以提交新进程或运行就绪进程;.就绪到就绪挂起:当有高优先级阻塞(系统认为会很快就绪的)进程和低优先就绪进程时,系统会选择挂起低优先级就绪进程;
- 运行到就绪挂起:对抢先式分时系统.当有高优先级阻塞挂起走。进入就绪挂起时,系统可能会把运行进程转到就绪挂起状态;
在外存时的状态转换:
- 阴塞挂起到就绪挂起:当有阻塞挂起进程因相关事件出现时.系统会把阻塞挂起进程转换为就绪挂起进程。