进程管理
进程的概念
进程:
=>是程序在一个数据集合上运行的过程
=>是系统进行资源分配和调度的一个独立单位
=>由程序块,进程控制块(PCB)和数据块三部分组成
进程与程序的区别:
=>进程是程序的一次执行过程,没有程序就没有进程
=>程序是完成某个特定功能的一系列程序语句的集合,只要不被破坏,就永远存在
=>程序是一个静态概念,而进程是一个动态的概念,它由创建而产生,完成任务后因撤销而消亡
=>进程是系统进行资源分配和调度的独立单位,而程序不是
进程的状态
三态模型(软考涉及)
等待状态 == 阻塞状态
运行态 -- CPU时间片用完了与来了优先级高的进程 --> 就绪态
就绪态 --一切资源准备就绪,CPU调度 --> 运行态

进程同步与互斥
同步 ==> 直接制约关系
互斥 ==> 间接制约关系

PV操作
CPU控制进程对非CPU资源的访问
临界资源:诸进程间需要互斥方式对其进行共享的资源,如:打印机,磁带机等
临界区:每个进程中访问临界资源的那段代码称为临界区
信号量:是一种特殊的变量 ==> 可以表示资源数量
P操作 ==> 申请资源 V操作 ==> 释放资源

多个进程共享一台打印机问题(互斥模型):

单缓冲区生产者,消费者问题(同步模型):

PV操作应用

自我理解:答案:A C
这是一道典型的互斥模型 S1==>发货员 S2==>审核员
顾客需要提货时,必须要发货员空闲,否则需要排队
即第一问:当发货员空闲时,允许顾客进入仓库提货,a应该是申请资源 ==> P(S1)
顾客离开时,发货员空闲,可以通知下一个顾客进来,即b应该是释放资源 ==> V(S1)
顾客要离开需要审核员审核,即c应该是申请资源 ==> P(S2)
审核完成后审核员可以通知下一位要离开的顾客,即d应该是释放资源 ==> V(S2)
即第二问答案为:V(S1),P(S2),V(S2)
死锁问题
含义:一个进程在等待一件不可能发生的事,则进程就发生死锁
一个或多个进程产生死锁,就会导致系统死锁
例子:系统有5个进程:A,B,C,D,E。这5个进程都需要4个系统资源。如果系统至少有多少个资源,则不可能发生死锁。
自我理解:此题答案为16个。系统要到达所需的最少资源,那么每个进程都要到达所需资源数减一,然后有一个空闲的资源,将其随便分配给一个进程都可完成,完成后就释放其进程的所有资源,然后被其它进程调用,即不会发生死锁问题。少于16个有可能会发生死锁问题。

银行家算法
遵循分配原则:
==>当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程
==>进程可以分期请求资源,但请求的总数不能超过最大需求量
==>当系统现有的资源不能满足进程所需的资源数时,对进程的进程的请求可以推迟分配,但总能时进程在有限的时间里获得资源
银行家算法例子:

自我理解:由题意可以看出,剩余资源数为:R1:R2:R3 = 2:1:0
| 进程 | 最大需求量 | 已分配资源数 | 所需资源数 |
|---|---|---|---|
| P1 | 6 5 2 | 1 2 1 | 5 3 1 |
| P2 | 2 2 1 | 2 1 1 | 0 1 0 |
| P3 | 8 1 1 | 2 1 0 | 6 0 1 |
| P4 | 1 2 1 | 1 2 0 | 0 0 1 |
| P5 | 3 4 4 | 1 1 3 | 2 3 1 |
分析表格可知:
【1】只有P2进程满足,即先分配,完成后剩余资源R1:R2:R3 = 4:2:1
【2】接着只有P4进程满足,完成后剩余资源R1:R2:R3 = 5:4:1
【3】接着P1和P5接满足
==>P1完成后剩余资源R1:R2:R3 = 6:6:2
==>p5完成后剩余资源R1:R2:R3 = 6:5:4
【4】由上可知不管完成哪一个接下来都可以完成进程分配
即可能的进程序列有:
P2 -> P4 -> P1 -> P5 -> P3
P2 -> P4 -> P1 -> P3 -> P5
P2 -> P4 -> P5 -> P3 -> P1
P2 -> P4 -> P5 -> P1 -> P3
例子一


内容来源于希赛网

浙公网安备 33010602011771号