目录
进程管理也称为处理机管理,其核心是如何合理的分配处理机的时间,提高系统的效率。
前驱图是一个有向无循环图,由结点和有向边组成,结点代表各程序段的操作,而结点间的有向边表示两个程序段操作之间存在的前驱关系(“—>”)。
输入—>计算:输入是计算的前驱,计算是输入的后继,只有输入结束后计算才能开始。
程序顺序执行时的主要特征是:顺序性、封闭性、可再现性。
顺序性是指程序的各程序段严格按照规定的顺序执行;
封闭性是指程序运行时系统内的资源只受该程序控制而改变,执行结果不受外界因素的影响;
可再现性是指只要程序执行环境和初始条件相同,程序多次执行的结果相同。
程序并发执行时的主要特征是:
1>,失去了程序的封闭性;
2>,程序和机器执行程序的活动不在一一对应;
3>,并发程序间具有相互制约性。
进程是程序的一次执行。进程通常由程序、数据、进程控制块PCB组成。
三态模型:运行,就绪,阻塞。
运行:当一个进程在处理机上运行时,称该进程处于运行状态。
就绪:一个进程获得了除处理机外的一切所需资源,一旦得到处理机即可运行;
阻塞:也称等待或睡眠状态,一个进程正在等待某一事件发生而暂时停止运行。
五态模型:
新增了新建态和终止态。
新建:进程刚刚被创建且没有被提交的状态。
终止:进程运行结束。
进程控制是指对系统中所有进程从创建到消亡的全过程实施有效的控制。其主要功能包括创建一个新进程、撤销一个已经运行完成的进程、改变进程的状态、实现进程间的通信。
进程控制是由操作系统内核中的原语实现的。
原语是指由若干条机器指令组成的、用于完成特定功能的程序段。原语的特点是在执行中不能被分割,即原子操作要么都做,要么都不做。原语是原子操作。
进程间的同步:多个并发执行的进程都以各自独立的、不可预知的速度向前推进,但是有时需要在某些确定点上协调相互合作进程间的工作。进程间的同步是指进程间完成一项任务时直接发生相互作用的关系。
进程间的互斥:进程间的互斥是指系统中各进程互斥使用临界资源。
临界资源:有些资源一次只能供一个进程使用,成为临界资源。
临界区:是进程中对临界资源实施操作的那段程序。
对互斥临界区管理的四条规则:
1,有空即进:当无进程处于临界区时,允许进程进入临界区;
2,无空则等:当有一个进程在临界区时,其他需要进入临界区的进程只能等待;
3,有限等待:对要求访问临界资源的进程,应保证进程等待有限时间后进入临界区,以免陷入“饥饿”状态;
4,让权等待:当进程不能进入自己的临界区时,应立即释放处理机,以免进程陷入“忙等”状态。
信号量机制:
公用信号量:实现进程间的互斥,初值为1或资源的数目。
私用信号量:实现进程间的同步,初值为0或某个正整数。
PV操作是实现进程同步与互斥的常用方法,P操作表示申请一个资源,V操作表示释放一个资源。
在某些操作系统中,一个作业从提交到完成需要经历高、中、低三级调度。
高级调度:又称为“长调度”“作业调度”“接纳调度”,它决定处于输入池中的哪个后备作业可以调入主系统做好运行的准备,成为一个或一组就绪进程。系统中一个作业只需经过一次高级调度。
中级调度:又称为“中程调度”“对换调度”,它决定处于交换区中的就绪进程哪个可以调入内存。
低级调度:又称“短程调度”“进程调度”,它决定处于内存中的就绪进程哪个可以占用CPU,是操作系统中最活跃、最重要的调度程序,对系统的影响很大。
进程调度的方式分为可剥夺式和不可剥夺式。 可剥夺式是指当有更高优先级进程到来时,强行将正在运行的CPU分配给高优先级的进程。
进程调度算法:
先来先服务FCFS算法:按照作业提交或进程变为就绪状态的先后次序分配CPU,即每当进入进程调度时,总是将就绪队列中队首的进程投入运行。用于宏观调度。
时间片轮转RR算法:主要用于微观调度,其设计目标是提高资源利用率,通过时间片轮转,提高进程并发性和响应时间特性,从而提高资源利用率。有两种方法:
1,固定时间片:分配给每个进程相等的时间片,使所有进程都公平进行。
2,可变时间片:根据进程不同的要求对时间片的大小实时修改,可以更好的提高效率。
优先级调度算法:是让每一个进程都拥有一个优先级,通常数值大的表示优先级高,系统在调度时总选择优先级高的占用CPU。分为静态优先级和动态优先级。
静态优先级:进程的优先级在创建时确定,直到进程终止都不会改变。
动态优先级:在创建进程时赋予一个优先级,在进程运行过程中还可以改变,以便获得更好的调度性能。
多级反馈调度:是时间片轮转算法与优先级算法的总和与发展。
死锁是指两个以上的进程互相都要求使用对方已经占有的资源而导致无法继续运行的现象。
进程推进顺序不当、同类资源分配不当、PV操作使用不当等情况都可能造成死锁。
产生死锁的原因是竞争资源或非法的进程推进顺序。
产生死锁的四个条件:
1,互斥条件:一次只允许一个进程使用;
2,请求保持条件:零星的请求资源,即以获得部分资源又请求资源被阻塞;
3,不可剥夺条件:进程以获得的资源在未使用完之前不能被剥夺,只能在使用完时由自己释放;
4,环路条件:当发生死锁时,在进程资源有向图中必然会构成环路,其中每个进程占有了下一个进程申请的一个或多个资源。
进程资源有向图:由方框,圆圈,有向边组成。
方框表示资源,圆圈表示进程。
传统的进程有两个基本属性:可拥有资源的独立单位,可独立调度和分配的基本单位。
引入线程后:线程作为调度和分配的基本单位,进程作为独立分配资源的单位。