大工13春《操作系统概论》辅导资料六
大工13春《操作系统概论》辅导资料六主 题:第三章进程管理(第5节)
学习时间:2013年5月6日-5月12日
内 容:
第三章进程管理
这周我们将学习第六章中的第5节,下面整理出的理念框架供同学们学习。
第五节 UNIX SVR4的进程管理
一、UNIX操作系统进程调度算法
UNIX操作系统采用可剥夺的动态优先级调度算法。进程的优先级由赋给它的优先数确定,优先数越小,优先级越高。在该算法中,进程的优先数随着它占用CPU的时间增加而增加。当进程占用CPU的时间减少时,其优先数也随着减少。这样,随着进程占用CPU时间的逐渐增加,它的优先数也随着增加。相应地,一其优先级却在逐渐减小,那么它占用CPU的可能性就会减小,从而使该进程占用CPU的时间逐渐减少,进程的优先数亦会减小,它相应的优先级就会提高,该进程占用CPU的可能性又会增加。于是进程占用CPU的时间将逐渐增加……形成一个负反馈,其效果是操作系统会使占用CPU时间长的进程减少占用CPU的时间,使占用CPU时间短的进程增加占用CPU的时间,从而使各进程均衡地使用中央处理器。
作为一个分时的、多任务、多用户操作系统,要保证公平地对待各个用户的进程,使各终端用户的响应时间不至太一长.所以UNIX操作系统采用了这种调度算法。但这种算法不能满足关键任务的需求,从而使传统的UNIXrK操作系统缺乏实时性。
下面以UNIX操作系统SVR4的进程管理为例子。
图1UNIX操作系统SVR4的进程管理
在UNIX系统中,每个用户在自己的“虚拟计算机”上运行。虚拟计算机的当前状态称为一个“映像”(Image),每个映像内容如表9-1所示。
在UNIX中进程定义为“一个映像的执行”。
同其他操作系统一样,UNIX操作系统建立在进程的概念之上,并以进程作为基本的组织概念,整个计算机系统是所有进程集合的活动。系统为了管理进程的活动,必须为每个进程设立一个进程控制块(PCB)来记录各个进程的状态以及进程映像中的一些数据,进程控制块也是进程存在的标志,是操作系统的重要数据基。通常PCB中包含的信息量很多,PCB所占的空间很大。
UNIX系统为了节省PCB所占的主存空间,把每个进程的PCB分为以下两部分:
•常驻主存部分,称proc结构,其中包含有进程调度时必须使用的一些主要信息;
•非常驻主存部分,称user结构,这里登记有更多的进程运行时才要用到的信息,它随用户的程序和数据部分而换进和换出主存。
整个系统有一个进程表,称为proc数组。每个进程的proc结构(PCB的一部分)均为此数组的一个元素,称为进程表(或pro数组)的一个表目。
由前面可知,UNIX把操作系统作为用户进程地址空间的一部分,所以UNIX使用两类进程:系统进程和用户进程。系统进程执行在内核模式和执行操作系统代码。用户进程执行在用户模式和用户程序,用户进程通过系统调用进入内核模式。所以在UNIX系统中,有时把进程i的用户程序部分称为用户进程i而把其中的核心程序部分叫做系统进程i。实际上用户进程i和系统进程i都是进程i的一部分,这两个进程(用户和系统进程D的PCB是同一个(进程i的PCB)。只是这两个进程所执行的程序不同,映射到不同的物理地址空间,使用不同的堆栈。一个系统进程的地址空间中包含所有的系统核心程序和各进程的进程数据区ppda,所以各进程的系统进程除ppda不同外,其余部分全是相同的(其物理的地址空间也相同)。而各进程的用户进程部分则是各不相同的。
如表,图2所示的proc结构表中列出了进程表表目内容(proc结构)。
图2proc结构
如图3所示的user结构表中列出了进程user结构内容。
图3user结构
在UNIX中进程共有9种状态,它们是:
•用户运行:运行在用户模式;
•内核运行:运行在内核模式;
•准备运行在主存:调度程序立刻调度去运行;
•在主存睡眠:直等到事件发生后才能运行,进程在主存中;
•准备运行,被交换:进程准备去运行,但交换程序必须在内核调度它运行前,把进程交换进入主存;
•睡眠,被交换:进程正等待事件,而且已经被交换到外存中;
•被抢占:进程正从内核模式返回到用户模式,但内核抢占它的执行,调度其他进程;
•被建立:进程新被建立,尚未准备运行;
•撤离:进程不再存在,但它给父进程留下一个记录,以便其收集。
在UNIX系统中,进程调度的功能是由一个专门的进程--0号进程来负责。由于UNIX系统的进程调度的主要功能是响应分时用户,这主要由0号进程来负责,所以0号进程包括两部分任务;
•把进程的映像从主存换出到磁盘;
•分配处理器。
UNIX系统的进程调度是按照其优先级的高低来进行调度的。系统进程的优先级高于用户进程的优先级,其最初的优先级取决于进程所等待的事件,事件优先级的排列次序为:磁盘事件、终端事件、时钟事件和用户进程事件。用户进程的优先级是基于其所使用处理器时间的多少而动态地变化。优先级高的进程优先得到处理器。每个进程分得的时间片一般为11s。UNIX以每秒为用户进程计算一次优先数,优先数愈小,优先级愈高。
在分时系统中,各交互进程需要在主存和磁盘之间进行交换。一个在主存中非运行状态的进程,其进程的映像将被从主存中换出而存入磁盘的对换区中。而一个被选中运行的磁盘上的就绪进程,其映像可以被换入主存。在这两种情况下,均有主存或磁盘空间的分配和释放问题。在UNIX中主存的磁盘空间的分配和释放模块是相同的,所使用的分配算法是“最先适应法”,其自由存储块数据基的组织是按地址排序的。
一个进程在运行过程中如果要求增加分给它的主存块数时,系统就重新分给它一块的主存空间,并把旧的主存区中的内容复制到新分给的主存区中同时释放旧的主存区。如果进程要求增加主存空间而系统不能满足其要求时,就将该进程换出主存而放入磁盘对换区中,直到有足够主存时才将它重新换入主存。
所有进程的对换工作全是由0号进程负责,其对换过程如下:当0号进程决定要从磁盘上换入进程时,它首先扫描系统的PCB表(proc数组)以找出在磁盘上驻留时间最长的就绪进程并将其换入主存。为此要为其分配主存。如果主存不够,0号进程要从进程表中查找在主存驻留时间最长,并正等待慢速事件的那些进程(像输入/输出之类)换出,以腾出更多的主存空间。进程被换入主存后,.就同主存中的进程一起争夺对CPU的控制权。
选择题
1、进程是由()组成的。
A、程序+数据+进程控制块
B、程序+数据+标识符
C、数据+进程控制块
D、数据+标识符+进程控制块
2、在一单处理机系统中,若有四个用户进程,在某一时刻,处于阻塞状态的用户进程最多有()个。
A、1 B、2 C、3 D、4
3、正在运行的进程因提出的服务请求未被操作系统立即满足或者所需数据尚未到达等原因,只能把()状态转变为等待状态。
A、父进程
B、子进程
C、进程本身
D、其他进程
4、用户可以通过()创建或者终止一个进程。
A、函数调用 B、宏指令 C、系统调用 D、阻塞调用
5、在操作系统中进程是一个具有一定独立功能程序在某个数据集合上的一次()。
A、并发活动
B、运行活动
C、单独操作
D、关联操作
参考答案
1-5ADCCB
页:
[1]