【软件测试】操作系统篇:第六章 进程及处理机管理

 

第六章 进程及处理机管理

1、进程的引入

1)进程调度属于低级处理机管理,即确定系统中哪个进程将获得CPU;而作业调度属于高级处理机管理,即确定系统中哪些作业将获得CPU

2)进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。

3)引入进程的意义是描述多道程序设计系统中程序的动态执行过程。

 

2、进程的定义及特征

1)程序和进程的区别见教材153页的表6-2

2)进程的五个基本特征:动态性、并发性、独立性、制约性、结构性;

3)进程与线程:线程是由进程进一步派生出来的一组代码(指令组)的执行过程。

 

3、进程调度

1)进程的三个基本状态及转换

三个基本状态是等待、执行和就绪,在一定的条件下,进程的状态将发生转换。

                           

2)进程调度

作业调度和进程调度的区别:

一个作业从进入系统到最后完成,一般至少要经历两级调度:作业调度和进程调度。

作业调度是宏观上的高级调度,它的主要功能是根据一定的算法,从输入井中选中若干个作业,分配必要的资源,如主存、外设等,为它们建立初始状态为就绪的作业进程。

进程调度是微观上的低级调度,它的主要功能是根据一定的算法将CPU分派给就绪队列中的一个进程。一般的操作系统都必须有进程调度。

可见在多道系统中,作业调度与进程调度是相互配合来实现多道作业的并行执行的。两者的关系可用下图表示。

          

进程调度算法 主要有先来先服务(FCFS)、轮转法、多级反馈轮转法、优先数法。

3)进程控制块(PCB)是进程存在的唯一标志,它描述了进程的动态性。

 

4、进程通信

1)进程的同步与互斥

进程的同步与互斥是指进程在推进时的相互制约关系。

一般来说同步反映了进程之间的协作性质,往往指有几个进程共同完成一个任务时在时间次序上的某种限制,进程相互之间各自的存在及作用,通过交换信息完成通信。如接力比赛中一组队员使用接力棒等。

进程互斥体现了进程之间对资源的竞争关系,这时进程相互之间不一定清楚其它进程情况,往往指多个任务多个进程间的通讯制约,因而使用更广泛。如打篮球时双方挣抢篮板球等。

2)临界区

一次仅允许一个进程使用的共享资源称为临界资源,每个进程中访问临界资源的程序段称为临界区。

3)原语

原语是不可中断的过程。

1)加锁/开锁(LOCK/UNLOCK)原语

优点是实现互斥简单;缺点是效率很低。

2)信号量(Semaphore)及PV操作

PV操作能够实现对临界区的管理要求。它由P操作原语和V操作原语组成,对信号量进行操作,具体定义如下:

PS):①将信号量S的值减1,即S=S-1

②如果S30,则该进程继续执行;否则该进程置为等待状态,排入等待队列。

VS):①将信号量S的值加1,即S=S+1

②如果S>0,则该进程继续执行;否则释放队列中第一个等待信号量的进程。

信号量的数据结构为一个值和一个指针,指针指向等待该信号量的下一个进程。信号量的值与相应资源的使用情况有关。当它的值大于0时,表示当前可用资源的数量;当它的值小于0时,其绝对值表示等待使用该资源的进程个数。注意信号量的值仅能由PV操作来改变。

一般来说,信号量S30时,S表示可用资源的数量。执行一次P操作意味着请求分配一个单位资源,因此S的值减1;当S<0时,表示已经没有可用资源,请求者必须等待别的进程释放该类资源,它才能运行下去。而执行一个V操作意味着释放一个单位资源,因此S的值加1;若S0,表示有某些进程正在等待该资源,因此要唤醒一个等待状态的进程,使之运行下去。

PV操作实现进程间的同步与互斥,应该注意以下四方面问题:

A)对每一个共享资源都要设立信号量。互斥时对一个共享资源设立一个信号量;同步时对一个共享资源可能要设立两个或多个信号量,要视由几个进程来使用该共享变量而定。

B)互斥时信号量的初值一般为1;同步时至少有一个信号量的初值大于等于1

CPV操作一定要成对调用。互斥时在临界区前后对同一信号量作PV操作;同步时则对不同的信号量作PV操作,PV操作的位置一定要正确。

D)对互斥和同步混合问题,PV操作可能会嵌套,一般同步的PV操作在外,互斥的PV操作在内。

3)消息缓冲通信原语

高级通信原语,用于一组信息发送(Send)与读取(Read)。

 

5、死锁

1)死锁的概念

死锁是两个或两个以上的进程中的每一个都在等待其中另一个进程释放资源而被封锁,它们都无法向前推进,称这种现象为死锁现象。

 产生死锁的原因是共享资源有限,多个进程对共享资源的竞争,而且操作不当。

2)产生死锁的四个必要条件是资源互斥使用、保持和等待、非剥夺性、循环等待。

3)解决死锁的方法

一般有死锁的预防,即破坏产生死锁的四个必要条件中的一个或多个,使系统绝不会进入死锁状态;死锁的避免,即在资源动态分配的过程中使用某种办法防止系统进人死锁状态;以及允许系统产生死锁,然后使用检测算法及时地发现并解除它。

 

CSDN博文地址:http://blog.csdn.net/lwlliang/archive/2011/03/01/6216721.aspx

官方博文地址:http://www.17core.com/blog/html/201103/204.html

发布了65 篇原创文章 · 获赞 2 · 访问量 4万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章