网络工程师-操作系统之进程管理(第二天)
进程管理
1、操作系统概述
2、内容纲要
1、概念:进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的独立单位。它是由程序块、进程控制块(PCB)和数据块三部分组成。
2、进程和程序的区别:
- 进程是程序的一次执行过程,没有程序就没有进程。程序是完成某个特定功能的一系列程序语句的集合,只要不被破坏,它就永远存在。
- 程序是一个静态的概念,而进程是一个动态的概念,它是由创建而产生,完成任务后因撤销而消亡;进程是系统进行资源配置分配和调度的独立单位,而程序不是。
3、进程的状态:进程状态反映进程执行过程的变化。这些状态随着进程的执行和外界条件的变化而转换。在三态模型中,进程状态分为三个基本状态,即运行,就绪,阻塞。在五态模型中,进程分为新建、终止,运行,就绪,阻塞。
例题:
例题2:
4、进程的同步与互斥
5、PV操作(对信号量进行操作)
(1)信号量机制
- 信号量是OS提供的管理公有资源的有效手段。
- 信号量是一个整数,当信号量大于等于零时,代表可供并发进程使用的资源数量,当信号量小于零时,表示出于阻塞状态进程的个数。
实例1:互斥模型
例题:
实例2:同步模型
例题1:
例题2:
6、系统死锁(即系统没有资源分配给进程使用)
7、产生死锁的四个条件:互斥、环路等待、保持和等待、不可剥夺
8、银行家算法
(1)分配原则
-
当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程。
-
进程可以分期请求资源,但请求的总数不能超过最大需求量。
-
当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使京城在有限的时间里得到资源。
(2)银行家算法例题
答案分析:
(3)死锁的检测
-
检测:
-
允许死锁的发生,但是操作系统会不断监视系统的进展情况,判断死锁是否真的发生
-
一旦死锁真的发生则采取专门的措施,解除死锁并以最小的代价恢复操作系统的运行
-
-
检测时机:
-
当进程由于资源请求不满足而等待时检测死锁—-系统开销太大
-
定时检测
-
系统资源利用率下降时检测死锁
-
(4)死锁解除
-
资源剥夺法。挂起某些死锁进程,并抢占它的资源,将这些资源分配给其他的死锁进程。但应防止被挂起的进程长时间得不到资源,而处于资源匮乏的状态。
-
撤销进程法。强制撤销部分、甚至全部死锁进程并剥夺这些进程的资源。撤销的原则可以按进程优先级和撤销进程代价的高低进行。
-
进程回退法。让一(或多)个进程回退足以回避死锁的地步,进程回退时自愿释放资源而不是被剥夺。要求系统保持进程的历史信息,设置还原点。