[关闭]
@llplmlyd 2018-09-20T21:43:56.000000Z 字数 2132 阅读 1065

操作系统原理(三)之进程

操作系统原理


进程的定义

一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程。

进程的组成

进程包含了正在运行的一个程序的所有状态信息

进程与程序的联系

  1. 程序是产生进程的基础
  2. 程序的每次运行构成不同的进程 进程是程序功能的体现
  3. 通过多次执行,一个程序可对应多个进程;
  4. 通过调用关系,一个进程可包括多个程序

进程和程序的区别

进程是动态的,程序是静态的
程序是有序代码的集合;进程是程序的执行,进程有核心态/用户态
进程是暂时的,程序是永久的
进程是一个状态变化的过程,程序可长久保存
进程与程序的组成不同
进程的组成包括程序、数据和进程控制块(即进程状态信息)

进程的特点

动态性:可动态地创建、结束进程
并发性:进程可以被独立调度并占用处理机运行
独立性:不同进程的工作不相互影响
制约性:因访问共享数据/资源或进程间同步而产生制约

进程控制块结构

进程控制块:操作系统管理控制进程运行所用的信息集合
操作系统用PCB来描述进程的基本情况以及运行变化的过程,PCB是进程存在的唯一标志

使用进程控制块

进程的创建:为该进程生成一个PCB
进程的终止:回收它的PCB
进程的组织管理:通过PCB的组织管理来实现

PCB含有以下三大类信息

PCB的组织方式

链表
同一状态的进程其PCB成一链表,多个状态对应多个不同的链表
各状态的进程形成不同的链表:就绪链表、阻塞链表
索引表
同一状态的进程归入一个index表(有index指向PCB),多个状态对应多个不同的index表
各状态的进程形成不同的索引表:就绪索引表、阻塞索引表

进程的生命周期管理

进程创建
系统初始化时
用户请求创建一个新进程
正在运行的进程执行了创建进程的系统调用
进程运行
内核选择一个就绪的进程
进程等待
进程只能自己阻塞自己,因为只有进程自身才能知道何时需要等待某种事件的发生
进程唤醒
将该进程的PCB插入到就绪队列 且 进程只能被别的进程或操作系统唤醒
进程结束
正常退出(自愿的)
错误退出(自愿的)
致命错误(强制性的)
被其他进程所杀(强制性的)

进程状态变化模型

基本状态

运行状态(Running)
当一个进程正在处理机上运行时
就绪状态(Ready)
一个进程获得了除处理机之外的一切所需资源,一旦得到处理机即可运行
等待状态(又称阻塞状态 Blocked)
一个进程正在等待某一时间而暂停运行时。如等待某资源,等待输入/输出完成

基本过程(状态点)

创建状态(New)
一个进程正在被创建,还没被转到就绪状态之前的状态
结束状态(Exit)
一个进程正在从系统中消失时的状态,这是因为进程结束或由于其他原因。

可能的状态变化如下

进程挂起

进程没有占用内存空间。处在挂起状态的进程映像在外存中

挂起状态

阻塞挂起状态(Blocked-suspend)
进程在外存并等待某事件的出现
就绪挂起状态(Ready-suspend)
进程在外存,但只要进入内存,即可运行;

状态转换

挂起(suspend):内存→外存

转换后仍在外存

解挂/激活(Activate):外存→内存

状态队列

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注