操作系统-进程
理论嘛,当然是枯燥的啦,并且不容易懂,都是这些都是在描述和介绍这门学科的原理,让我们知道计算机操作系统是如何工作的,进程是什么,这让我们更好的理解这门学科,也就是计算机能做什么,为什么能做。
学完之后,一定要用自己的话去概述学过的,在脑子里构建一个框架,用自己的理解去总结学习的,这才叫学习。
Ax 前趋图和程序执行
a 定义
前驱图(Precedence Graph)是指一个有向无循环图,用于描述进程之间的先后顺序。
b 顺序执行
一个应用程序有若干个程序段组成,运行时需要按照先后顺序执行。
所以,每一个段都是一个过程,并不是赋值。
c 程序并发执行
不存在前趋关系可以并发。
并发执行特征
- 间断性
- 失去封闭性
- 不可再现性
Bx 进程的描述
a 定义
进程是程序的一次执行
进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立的单位
b 特征
- 动态性
- 并发性
- 独立性
- 异步性
c 状态与转换
a 三种状态
Ready // 就绪
Running // 执行
Block // 阻塞
b 状态转换
①就绪→执行处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态转变成执行状态。
②执行→就绪处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机,于是进程从执行状态转变成就绪状态。
③执行→阻塞正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。
④阻塞→就绪处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。
c 创建状态和终止状态
- 创建状态
- 终止状态
d 挂起操作和进程状态的转换
omit.
d 进程管理中的数据结构
omit.
Cx 进程控制
进程控制是进程管理中最基本的功能,主要包括创建新进程、终止已完成的进程、将因发生异常情况而无法继续运行的进程置于阻塞状态、负责进程运行中的状态转换等功能。
由OS内核中的原语句实现。
a 操作系统内核
OS划分不同的层次,将与OS与密切相关的硬件、各种常用设备、使用较高的模块都放在高层次中。两方面
- 提高OS的运行效率
- 对软件进行保护,防止被其它应用程序破环。
防止OS遭受到破坏(有意的无意的),通常将处理机的执行状态分成系统态和用户态。
- 系统态,也称管态、内核态:具有较高特权,能执行一切指令,访问所有存储的区域。
- 用户态,也称目态:较低的权限,一般情况下不能去OS的地方,和运行OS指令。
支撑功能
- 中断处理
- 时钟管理
- 原语操作
资源管理功能
- 进程管理(这次主要的内容)
- 存储器管理
- 设备管理
b 进程的创建
1 进程层次结构
在OS中,允许一个进程创建另一个进程,通常把创建进程的进程称为父进程
被创建的进程,称为子进程
子进程创建的进程称其孙进程
由此,被组成了一个进程家族的一个组
了解进程间的关系十分重要
子进程可以继承父进程所有资源
子进程撤销后把资源归还父进程
父进程撤销必须把子进程先撤销
!微软的Windows则不同,所有进程都是相同地位的,没有层次结构概念。
windows创建进程获得一个句柄,就是一个令牌,可以控制其它进程。所以不具有层次性。
2 进程图
3 引起创建进程的事件
- 用户登入
- 作业调度
- 提供服务
- 应用请求
4 进程的创建 Creation of Process
PCB:进程控制块
(1)申请空白PCB,获取唯一标识。申请后就从PCB集合中索取一个空白PCB
(2)为新进程分配所需资源,包括物理和逻辑资源,比如输入输出、内存、文件、设备、CPU时间等。
(3)初始化PCB:标识信息、处理机状态、控制信息。
(4)如果进程就绪队列有位置,就让新进程加进去。
c 进程的终止 Termination of Process
1 引起进程终止的时间
正常结束
异常结束
外界干预
2 进程的终止过程
(1)根据被终止进程的标识符
(2)终止进程在运行,应立即停止,并置调度标志为真
(3)若该进程还有子孙进程,还应将其所有子孙进程也都予以终止,以防它们成为不可控的进程
(4)将被终止进程所拥有的全部资源或归还给其父进程或系统。
(5)将终止进程(PCB)从所在队列中移出,等待其它程序来收集信息。
d 进程的阻塞与唤醒
1 引起进程阻塞和唤醒的事件
(1)向系统请求共享资源失败
(2)等待某种操作的完成。
(3)新数据尚未到达。
(4)等待新任务的到达。
2 进程阻塞过程
一起阻塞事件后,进程通过调用Block将自己阻塞。
3 进程唤醒过程
wakeup唤醒,将等待的进程唤醒。
block 和 wakeup必须成对出现,以便能唤醒被阻塞的进程;否则,阻塞进程将会因不能被唤醒而永久地处于阻塞状态,将再没机会继续运行。
e 进程的挂起与激活
1 进程的挂起
suspend将指定进程或处于阻塞状态的进程挂起。首先检查被挂起进程的状态,若处于活动,则置于静止阻塞,若处于就绪,改为静止。
2 进程的激活过程
利用激活active指定进程激活。将进程从外存调入内存,检查该进程的现行状态,若静止,改为活动。