进程管理
概念
进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。它由程序块、进程控制块(PCB)和数据块三部分组成。
进程与程序的区别
进程是程序的一次执行过程,没有程序就没有进程。
程序是完成某个特定功能的一系列程序语句的集合,只要不被破坏,它就永远存在。程序是一个静态的概念,而进程是一个动态的概念,它由创建而产生,完成任务后因撤销而消亡;进程是系统进行资源分配和调度的独立单位,而程序不是。
进程的状态
运行、就绪、等待
进程的同步与互斥
同步:速度有差异,在一定情况下停下等待
互斥:如千军万马过独木桥
PV操作(P是荷兰语的Passeren,V是荷兰语的Verhoog)
临界资源:诸进程间需要互斥方式对其进行共享的资源,如打印机等
临界区:每个进程中访问临界资源的那段代码称为临界区
信号量:是一种特殊的变量
死锁问题
进程管理是操作系统的核心,但如果设计不当,就会出现死锁的问题。如果一个进程在等待一件不可能发生的事,则进程就死锁了。而如果一个或者多个进程产生死锁,就会造成系统死锁。
形成死锁的四个必要条件:互斥、保持和等待、不剥夺、环路等待
死锁的预防:打破四大条件
死锁的避免:有序资源分配法、银行家算法(分配资源的原则)
银行家算法
当一个进程对资源的最大需求量不超过系统中的资源数时可以接纳该进程
进程可以分期请求资源,但请求的总数不能超过最大需求量
当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源