数据结构:2.1 .1进程与线程——进程
进程
- 1. 进程的概念和特征
- 2.进程的状态与转换
- 2.1 状态
- 2.2 转换
- 3.进程的组织
- 3.1 PCB(进程控制块)
- 4. 进程控制
- 5.进程通信
- 参考资料
首先来一个问题: 为什么要引入进程?
在多道程序环境下,允许多个程序并发执行,此时它们将失去封闭性,并具有间断性及不可再现性的特征。为此引入了进程(Process)的概念,(进程引入目的:)以便更好地描述和控制程序的并发执行,实现操作系统的并发性和共享性(最基本的两个特性)。
1. 进程的概念和特征
1.1 概念
-
进程和程序的区别和联系
-
程序就是个存放在磁盘里的可执行文件,如:QQ.exe
-
进程就是程序的一次执行过程,如:可同时启动多次QQ程序
-
-
进程的概念: (不同角度有不同定义、下面是比较典型的定义)
- 1) 进程是程序的一次执行过程。
- 2) 进程是一个程序及其数据在处理机上顺序执行时所发生的
活动
。 - 3) 进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
- 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。(传统操作系统的定义)
-
进程实体: 又称
进程映像
,程序段、相关数据段和PCB(进程控制块)三部分构成。PCB是进程存在的唯一标志
-
进程是
动态
的,进程映像则是静态
的。
1.2 特征(理解即可)
下面的叙述中,正确的是()。
A. 进程获得处理器运行是通过调度得到的
B. 优先级是进程调度的重要依据,一旦确定不能改动
C. 在单处理器系统中,任何时刻都只有一个进程处于运行态
D. 进程申请处理器而得不到满足时,其状态变为阻塞态
答案:A
解析:选项B错在优先级分静态和动态两种,动态优先级是根据运行情况而随时调整的。选项C错在系统发生死锁时有可能进程全部都处于阻塞态,或无进程任务,CPU空闲。选项D错在进程申请处理器得不到满足时就处于就绪态,等待处理器的调度。
2.进程的状态与转换
2.1 状态
2.2 转换
- 运行态——>阻塞态: 等待资源、I/O、信号
- 阻塞态——>就绪态: 资源满足、I/O结束、信号完成
- 就绪态——>运行态: 处理器空闲时选择更高优先权进程抢占
- 运行态——>就绪态: 运行时间片到、有更高优先权进程
- 阻塞态不可能直接变成运行态
- 一个进程从运行态变成阻塞态是
主动
的行为,而从阻塞态变成就绪态是被动
的行为,需要其他相关进程的协助。
在任何时刻,一个进程的状态变化()引起另一个进程的状态变化。
A.必定 B. 一定不 C.不一定 D.不可能
答案:C
解析:一个进程的状态变化可能会引起另一个进程的状态变化。例如,一个进程时间片用完,可能会引起另一个就绪进程的运行。同时,一个进程的状态变化也可能不会引起另一个进程的状态变化。例如,一个进程由阻塞态转变为就绪态就不会引起其他进程的状态变化。
一个进程释放了 一台打印机,它可能会改变()的状态。
A.自身进程 B.输入/输出进程 C.另一个等待打印机的进程 D.所有等待打印机的进程
答案:C
解析:由于打印机是独占资源,当一个进程释放打印机后,另一个等待打印机的进程就可能从阻塞态转到就绪态。当然,也存在一个进程执行完毕后由运行态转为结束态时释放打印机的情况,但这并不是由于释放打印机引起的,相反是因为运行完成才释放了打·印机。
3.进程的组织
进程是一个独立的运行单位,也是操作系统进行资源分配和调度的基本单位。它由以下三部分组成,其中最核心的是进程控制块(PCB
)。
3.1 PCB(进程控制块)
-
PCB主要包括:进程描述信息、进程控制和管理信息、资源分配清单和处理机相关信息等
-
常用的组织方式:
- 链式方式:
- 索引方式:
- 链式方式:
3.2 程序段和数据段
-
程序段:能被进程调度程序调度到CPU执行的程序
代码段
。 -
数据段:一个进程的数据段,可以是进程对应的程序加工处理的
原始数据
,也可以是程序执行时产生的中间或最终结果
。
4. 进程控制
4.1 进程控制概念
-
什么是进程控制?
进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。简单来说:进程控制就是要实现进程状态的转换。 -
怎样实现进程控制?用
原语
实现。
原语:一般把进程控制用的程序段称为原语,原语的特点是执行期间不允许中断,它是一个不可分割的基本单位 -
为什么要用原语实现进程控制?
假如刚执行完步骤①来了一个中断信号,若没有用“原语”,那么程序就会立即执行中断程序。此时,PCB2的state=1(就绪态),但PCB2仍在阻塞队列,出现了矛盾
若使用“原语”,由于原语具有原子性那么程序会继续执行步骤②,让PCB2进入就绪队列,在执行中断程序
4.2 进程的创建
-
父进程和子进程
允许一个进程创建另一个进程,此时创建者称为
父进程
,被创建的进程称为子进程
。子进程可以继承父进程所拥有的资源。当子进程被撤销时,应将其从父进程那里获得的资源归还给父进程。此外,在撤销父进程时,通常也会同时撤销其所有的子进程。
-
进程创建过程:
- 申请一个空白PCB 。若PCB申请失败,则创建失败。
- 为进程分配其运行所需的资源,这些资源或从操作系统获得,或仅从其父进程获得。如果资源不足(如内存),则并不是创建失败,而是处于创建态,等待内存资源。
- 初始化PCB。
- 将新进程插入就绪队列,等待被调度运行。创建态到就绪态
-
引起进程创建的事件:
终端用户登录系统、作业调度、系统提供服务、用户程序的应用请求等。
4.2 进程的终止
- 进程终止过程:(就绪态/阻塞态/运行态/----->终止态----->无)
- 根据被终止进程的标识符,检索出该进程的PCB,从中读出该进程的状态。
- 若被终止进程处于执行状态,立即剥夺CPU,将CPU分配给其他进程。
- 将其所有子孙进程终止。
- 将该进程所拥有的全部资源,或归还给其父进程,或归还给操作系统。
- 将该PCB从所在队列(链表)中删除。
- 引起进程终止的事件:
- 正常结束,表示进程的任务已完成并准备退岀运行。
- 异常结束,表示进程在运行时,发生了某种异常事件,使程序无法继续运行,如存储区越界、保护错、非法指令、特权指令错、运行超时、算术运算错、I/O故障等。
- 外界干预,指进程应外界的请求而终止运行,如操作员或操作系统干预、父进程请求和父进程终止。
4.3 进程的唤醒和阻塞
4.4 进程的切换
5.进程通信
-
进程通信是指进程之间的信息交换。
- 例如:将一条新闻从微博转发到微信。
-
PV操作是
低级
通信方式,高级
通信包括:共享存储、消息传递、管道通信 -
高级通信
方式是指以较高的效率传输大量数据的通信方式
5.1 共享存储
- 共享方式分为两种:
- 低级分享方式:基于
数据结构
的共享 - 高级分享方式:基于
存储区
的共享
- 低级分享方式:基于
- 操作系统只负责为通信进程提供可共享使用的存储空间和同步互斥工具,而
数据交换则由用户
自己安排读/写指令完成。
5.2 消息传递
- 在消息传递系统中,进程间的数据交换以格式化的消息(Message)为单位。
- 隐藏了通信实现细节,使通信过程对用户透明,简化了通信程序的设计,是当前应用最广泛的进程间通信机制。
- 通信方式
-
直接通信方式
-
间接通信方式
-
5.3 管道通信
-
管道通信是消息传递的一种特殊方式。所谓“管道”,是指用于连接一个读进程和一个写进程以实
现它们之间的通信的一个共享文件,又名pipe文件 -
管道机制必须提供以下三方面的协调能力:互斥、同步和确定对方的存在。
参考资料
《王道:23操作系统考研复习指导》