一、进程的状态
进程:进程:并发执行的程序在执行过程中分配和管理资源的基本单位。
1、进程是正在运行的程序实体,并且包括这个运行的程序中占据的所有系统资源,比如说CPU(寄存器),IO,内存,网络资源等
2、进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。
进程管理
操作系统的职能之一,主要是对处理机进行管理。为了提高CPU的利用率而采用多道程序技术。通过进程管理来协调多道程序之间的关系,使CPU得到充分的利用。
进程状态
一个进程的生命周期可以划分为一组状态,这些状态刻画了整个进程。进程状态即体现一个进程的生命状态
1、 三态模型
一个进程从创建而产生至撤销而消亡的整个生命期间,有时占有处理器执行,有时虽可运行但分不到处理器、有时虽有空闲处理器但因等待某个事件的发生而无法执行,这一切都说明进程和程序不相同,它是活动的且有状态变化的,这可以用一组状态加以刻画。为了便于管理进程,‘般来说,按进程在执行过程中的不同情况至少要定义三种不同的进程状态:
(1)运行(running)态:进程占有处理器正在运行。
(2)就绪(ready)态:进程具备运行条件,等待系统分配处理器以便运行。
(3)等待(wait)态:又称为阻塞(blocked)态或睡眠(sleep)态,指进程不具备运行条件,正在等待某个事件的完成。
通常,一个进程在创建后将处于就绪状态。每个进程在执行过程中,任意时刻当且仅当处于上述三种状态之一。同时,在一个进程执行过程中,它的状态将会发生改变。引起进程状态转换的具体原因如下:
(1)运行态一一等待态:等待使用资源或某事件发生,如等待外设传输;等待人工干预。
(2)等待态一一就绪态:资源得到满足或某事件己经发生,如外设传输结束;人工干预完成。
(3)运行态一一就绪态:运行时间片到,或出现有更高优先权进程。
(4)就绪态一一运行态:CPU空闲时被调度选中一个就绪进程执行。
2、五态模型
在一个实际的系统里进程的状态及其转换比上节叙述的复杂一些,例如,引入专门的新建态(new)和终止态(exit )。
引入新建态和终止态对于进程管理来说是非常有用的。新建态对应于进程刚刚被创建的状态,创建‘个进程要通过两个步骤,首先,是为一个新进程创建必要的管理信息;然后,让该进程进入就绪态。此时进程将处于新建态,它并没有被提交执行,而是在等待操作系统完成创建进程的必要操作。必须指出的是,操作系统有时将根据系统性能或主存容量的限制推迟新建态进程的提交。
类似地,进程的终止也要通过两个步骤,首先,是等待操作系统进行善后;然后,退出主存。当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结,它将进入终止态。进入终止态的进程以后不再执行,但依然保留在操作系统中等待善后。一旦其他进程完成了对终止态进程的信息抽取之后,操作系统将删除该进程。引起进程状态转换的具体原因如下:
(1)NULL一一新建态:执行‘个程序,创建一个子进程。
(2)新建态一一就绪态:当操作系统完成了进程创建的必要操作,并且当前系统的性能和内存的容量均允许。
(3)运行态一一终止态:当‘个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结。
(4)终止态一一NULL:完成善后操作。
(5)就绪态一一终止态:未在状态转换图中显示,但某些操作系统允许父进程终结子进程。
(6)等待态一一终止态:未在状态转换图中显示,但某些操作系统允许父进程终结子进程。
二、前趋图
略
三、进程的同步与互斥
1、同步:异步环境下的一组并发进程之间的互发信息、相互合作、相互等待,使得各进程按一定的速度执行的过程成为进程同步。
2、互斥:一组并发进程中的一个或多个程序段,因共享某一公有资源而使得它们必须以一个不允许交叉的顺序执行。
四、PV操作(重点)
1、临界资源:诸进程间需要互斥方式对其进行共享的资源,如打印机、磁带机等
2、临界区:每个进程中访问临界资源的那段代码称为临界区
3、信号量:是一种特殊的变量
4、单缓冲区生产者、消费者问题PV原语描述
如果没有PV操作的存在,生产者则不知道缓存区是否可以继续存放产品.消费者也不知道缓冲区是否有产品可取.
加了PV操作后--------------------------------------------
生产者:1、生产者生产一个产品,执行P(S1),则S1=0,S<0不成立.继续送去缓冲区。(如果S1<0,则表示缓冲区已有产品未拿走,进入进程队列等待产品取走)
2、产品送到缓冲区后,执行V(S2),则S2=1;
消费者:1、先执行P(S2),S2=0,S2<0不成立。则可以把缓冲区的产品取走。(如果S2<0,则表示缓冲区没有产品,进入进程队列等待产品进入缓冲区)
2、产品取走后,执行V(S1),则S1=1;
1) 可以看出,在进程中不止一对PV再操作
2) S1表示的缓存区的空位,S2表示缓存区的产品数量。分别对应了消费 者和生产者所需要的关键信息
五、死锁问题
1、死锁:是指两个以上的进程相互都因请求对方已经占有的资源,无限期地等待并无 法继续运行下去的现象。
死锁是系统的一种出错状态,它浪费系统资源,还会导致系统崩溃,所以应该尽量预防和避免死锁
2、产生死锁的原因:资源竞争及进程推进顺序非法
3、产生死锁的4个必要条件:1)互斥条件,2)请求保持条件,3)不可剥夺条件, 4)环路条件
4、解决死锁的策略:
1)鸵鸟策略(即不理睬策略)、
2)预防策略(破坏死锁的4个必要条件之一),
3)避免策略(精心地分配资源,动态地回避死锁),
4)检测与解除死锁(一旦发生死锁,系统不但能检测出来,还能解除)
4.1银行家算法:分配资源的原则
1)当一个进程对资源的最大需求量不超过系统中的资源数时,可以接纳该进程
2)进程可以分期请求资源,但请求的总数不能超过最大需求量
3)当系统现有的资源不能满足进程尚需资源数时,对进程的请求可以推迟分配,但总能使进程在有限的时间里得到资源