免费智能真题库 > 历年试卷 > 程序员 > 2009年上半年 程序员 上午试卷 综合知识
  第26题      
  知识点:   进程的状态及其转换   信号量机制   进程   三态模型
  关键词:   进程   三态模型        章/节:   软件基础知识       

 
假设系统中进程三态模型如下图所示,图中的a和b处应分别填写(26) ,图 中的c和d处应分别填写(27).

 
 
  A.  时间片到、作业调度程序调度
 
  B.  执行了P操作、时间片到
 
  C.  时间片到、进程调度程序调度
 
  D.  时间片到、执行了P操作
 
 
 

 
  第27题    2009年上半年  
   52%
假设系统中进程的三态模型如下图所示,图中的a和b处应分别填写(26) ,图 中的c和d处应分别填写(27).
  第25题    2018年下半年  
   34%
若一个单处理器的计算机系统中同时存在3个并发进程,则同一时刻允许占用处理器的进程数( )。
  第26题    2010年下半年  
   40%
假设系统中进程的三态模型如下图所示,图中的a、b和c的状态分别为(26);当前运行的进程执行P操作后,该进程(27)。
 
  第25题    2012年上半年  
   28%
在操作系统的进程管理中,若系统中有8个进程要使用互斥资源R,但最多只允许两个进程进入互斥段(临界区),则信号量S的变化范围是..
  第26题    2019年上半年  
   57%
某系统中有一个缓冲区,进程P1不断地生产产品送入缓冲区,进程P2不断地从缓冲区中取出产品消费,用P、V操作实现进程间的同步模型..
  第27题    2014年下半年  
   30%
假设系统有n个进程共享资源R,且资源R的可用数为2,那么该资源相应的信号量S的初值应设为(27)。
   知识点讲解    
   · 进程的状态及其转换    · 信号量机制    · 进程    · 三态模型
 
       进程的状态及其转换
        在多道系统中,进程的运行是走走停停的,在处理机上的交替运行,使它的运行状态不断变化。进程的状态主要有三态模型和五态模型。三态模型中最基本的状态有3种:运行、就绪和阻塞。
        .运行(running):正占用处理机。
        .就绪(ready):只要获得处理机即可运行。
        .阻塞(blocked):也称等待或挂起状态,正等待某个事件(如I/O完成)的发生。
        在进程运行的过程中,由于自身进展情况及外界环境的变化,这3种基本状态可以在一定的条件下相互转换,进程的状态及转换如下图所示。
        
        进程状态及其转换图
        五态模型比三态模型更加复杂,在三态模型的基础上增加了新建态和终止态。新建态对应于进程刚刚被创建还没有被提交时的状态,此时应在等待系统完成创建进程的所有必要信息。创建进程时分两个阶段:第一个阶段为一个新进程创建必要的管理信息;第二个阶段让该进程进入就绪状态。有了新建态,操作系统往往因系统的性能和内存容量的限制推迟新建态进程的提交。进程的终止态也可分为两个阶段:第一个阶段等待操作系统进行善后处理;第二个阶段释放内存。
 
       信号量机制
        信号量机制是一种有效的进程同步与互斥工具。目前主要有:整型信号量、记录型信号量、信号量集机制。
        1)整型信号量与P操作和V操作
        信号量是一个整型变量,根据控制对象的不同被赋予不同的值。信号量分为两类:公用信号量,实现进程间的互斥,初值为1或资源的数目;私用信号量,实现进程间的同步,初值为0或某个正整数。
        信号量S的物理意义:S≥0表示某资源的可用数,若S<0,则其绝对值表示阻塞队列中等待该资源的进程数。
        除了设置初值外,对信号量只能进行特殊的操作:P操作和V操作。P操作和V操作都是不可分割的原子动作,也称为原语,其中P操作表示申请一个资源,V操作表示释放一个资源。
        P操作和V操作都是原语。利用信号量S的取值表示共享资源的使用情况。在使用时,把信号量S放在进程运行的环境中,赋予其不同的初值,并在其上实施P操作和V操作,以实现进程间的同步与互斥。
        P操作和V操作的定义如下。
        P(S):①S=S-1;②若S<0,则该进程进入S信号量的队列中等待。
        V(S):①S=S+1; ②若S≤0,则释放S信号量队列上的一个等待进程,使之进入就绪队列。
        当S>0时,表示还有资源可以分配;当S<0时,其绝对值表示信号量等待队列中进程的数目。每执行一次P操作,意味着要求分配一个资源;每执行一次V操作,就意味着释放一个资源。
        2)利用P操作和V操作实现进程的互斥
        令信号量mutex的初值为1,进入临界区时执行P操作,退出临界区时执行V操作,于是临界区就改写成下列形式的代码段:
        
        由于mutex初值为1, P、V是原子操作,可以实现互斥。
 
       进程
        简单而言,一个进程就是一个正在运行的程序。一般来说,一个进程至少应该包括以下几个方面的内容。
        .相应的程序:进程既然是一个正在运行的程序,当然需要有相应程序的代码和数据。
        .CPU上下文:指程序在运行时,CPU中各种寄存器的当前值,包括:程序计数器,用于记录将要取出的指令的地址;程序状态字,用于记录处理器的运行状态信息;通用寄存器,用于存放数据或地址;段寄存器,用于存放程序中各个段的地址;栈指针寄存器,用于记录栈顶的当前位置。
        .一组系统资源:包括操作系统用来管理进程的数据结构、进程的内存地址空间、进程正在使用的文件等。
        进程有动态性、独立性和并发行三个特性。
        (1)动态性。进程是一个正在运行的程序,而程序的运行状态是在不断地变化的。例如,当一个程序在运行的时候,每执行完一条指令,PC寄存器的值就会增加,指向下一条即将执行的指令。而CPU中用来存放数据和地址的那些通用寄存器,它们的值肯定也不断地变化。另外,堆和栈的内容也在不断地变化,每当发生一次函数调用时,就会在栈中分配一块空间,用来存放此次函数调用的参数和局部变量。而当函数调用结束后,这块栈空间就会被释放掉。
        (2)独立性。一个进程是一个独立的实体,是计算机系统资源的使用单位。每个进程都有自己的运行上下文和内部状态,在它运行的时候独立于其他的进程。
        (3)并发性。从宏观上来看,在系统中同时有多个进程存在,它们相互独立地运行。
        下图表示四个进程A、B、C、D在系统中并发地运行。从中可以看出,虽然从宏观上来说,这四个进程都是在系统中运行,但从微观上来看,在任何一个特定的时刻,只有一个进程在CPU上运行。从时间上来看,开始是进程A在运行,然后是进程B在运行,然后是进程C和进程D。接下来又轮到了进程A去运行。因此,在单CPU的情形下,所谓的并发性,指的是宏观上并发运行,而微观上还是顺序运行,各个进程轮流去使用CPU资源。
        
        四个进程在并发运行
        在具体实现上,以CPU中的程序计数器PC为例,真正物理上的PC寄存器只有一个。当四个进程在轮流执行时,PC取值的运动轨迹是先在进程A内部流动,然后再到进程B的内部流动,再到进程C和D。从进程的独立性角度来说,每个进程都有“自己”独立的PC寄存器,即逻辑上的PC寄存器,它们的取值相互独立、互不影响。所谓的逻辑PC,其实就是一个内存变量。例如,在上图中,当进程A要执行的时候,就把A的逻辑PC的值拷贝到物理PC中,然后开始运行。当轮到B运行的时候,先把物理PC的当前值保存到A的逻辑PC中,然后再把B的逻辑PC的值装入到物理PC中,即可运行。这样就实现了各个进程的轮流运行。
 
       三态模型
        一个进程从创建而产生至撤销而消亡的整个生命周期,可以用一组状态加以刻画,为了便于管理进程,一般来说,按进程在执行过程中的不同状况至少定义3种不同的进程状态:
        (1)运行(running)态。占有处理器正在运行。
        (2)就绪(ready)态。指具备运行条件,等待系统分配处理器以便运行。
        (3)等待(wait)态。又称为阻塞(blocked)态或睡眠(sleep)态,指不具备运行条件,正在等待某个事件的完成。
        一个进程在创建后将处于就绪状态。每个进程在执行过程中,任一时刻当且仅当处于上述三种状态之一,同时,在一个进程执行过程中,它的状态将会发生改变。下图表示进程的状态转换。
        
        进程三态模型及其状态转换
        运行状态的进程将由于出现等待事件而进入等待状态,当等待事件结束之后等待状态的进程将进入就绪状态,而处理器的调度策略又会引起运行状态和就绪状态之间的切换。引起进程状态转换的具体原因如下:
        运行态——等待态:等待使用资源,如等待外设传输,等待人工干预。
        等待态——就绪态:资源得到满足,如外设传输结束,人工干预完成。
        运行态——就绪态:运行时间片到,出现有更高优先权进程。
        就绪态——运行态:CPU空闲时选择一个就绪进程。
   题号导航      2009年上半年 程序员 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第26题    在手机中做本题