免费智能真题库 > 历年试卷 > 软件设计师 > 2018年上半年 软件设计师 上午试卷 综合知识
  第25题      
  知识点:   进程间的通信
  章/节:   计算机软件知识       

 
假设铁路自动售票系统有n个售票终端,该系统为每个售票终端创建一个进程Pii=1,2,…,n)管理车票销售过程。假设Tjj=1,2,…,m)单元存放某日某趟车的车票剩余票数,Temp为Pi进程的临时工作单元,x为某用户的购票张数。Pi进程的工作流程如下图所示,用P操作和Ⅴ操作实现进程间的同步与互斥。初始化时系统应将信号量S赋值为(24)。图中(a)、(b)和(c)处应分别填入(25)。
 
 
  A.  V(S)、P(S)和P(S)
 
  B.  P(S)、P(S)和V(S)
 
  C.  V(S)、V(S)和P(S)
 
  D.  P(S)、V(S)和V(S)
 
 
 

  相关试题:计算机软件知识          更多>  
 
  第63题    2017年下半年  
   53%
求解两个长度为n的序列X和Y的一个最长公共序列(如序列ABCBDAB和BDCABA的一个最长公共子序列为BCBA)可以采用多种计算方法。如可..
  第51题    2015年上半年  
   29%
若关系R (H,L,M,P)的主键为全码(All-key),则关系R的主键应(51)。
  第56题    2010年下半年  
   59%
设有关系模式R (课程,教师,学生,成绩,时间,教室),其中函数依赖集F如下:

关系模式的一个主键是(54) , R规范化..
   知识点讲解    
   · 进程间的通信
 
       进程间的通信
               同步与互斥
               同步是合作进程间的直接制约问题,互斥是申请临界资源进程间的间接制约问题。
               1)同步
               相互合作的进程需要在某些确定点上协调它们的工作,当一个进程到达这些点后,除非另一个进程已经完成某些操作;否则就不得不停下来等待这些操作结束。这就是进程间的同步。
               2)互斥
               在多道程序系统中,各进程可以共享各类资源,但有些资源一次只能供一个进程使用,称为临界资源。这就产生了进程间的间接制约问题——互斥。
               3)临界区管理的原则
               临界区是进程中对临界资源实施操作的那段程序。互斥临界区管理的原则是:有空即进,无空则登;有限等待,让权等待。
               信号量与P、V操作
               信号量机制主要有整型信号量、记录性信号量、信号量集机制。
               1)整型信号量与P、V操作
               信号量是一个整型变量,根据控制对象的不同赋予不同的值。信号量可分为以下两类。
               (1)公用信号量。实现进程间的互斥,初值为1或资源的数目。
               (2)私用信号量。实现进程间的同步,初值为0或某个正整数。
               信号量S的物理意义为:S≥0,表示某资源的可用数;S<0,其绝对值表示阻塞队列中等待该资源的进程数。P、V操作是实现进程同步与互斥的常用方法。
               P操作定义:S:=S-1,若S≥0,则执行P操作的进程继续执行;否则,若S<0,则置该进程为阻塞状态,并将其插入阻塞队列。
               V操作定义:S:=S+1,若S>0,则执行V操作的进程继续执行;否则,若S≤0,则从阻塞状态唤醒一个进程,并将其插入就绪队列,执行V操作的进程继续执行。
               2)利用P、V操作实现进程的互斥
               令信号量的初值为1,当进程进入临界区时执行P操作,退出临界区时执行V操作。则进入临界区的代码段如下。
               
               3)利用P、V操作实现进程的同步
               进程的同步是由于进程间合作而引起的相互制约问题。要实现进程的同步,可用一个信号量与消息联系起来。当信号量的值为0时表示消息未产生,当信号量的值为非0时表示希望的消息已经存在。假定用信号量S表示某条消息,进程可以通过调用P操作测试消息是否达到,调用V操作通知消息已经准备好。
               高级通信原语
               P、V操作是用来协调进程间关系的,编程较困难、效率低,通信对用户不透明,生产者每次只能向缓冲区放一个消息,消费者只能从缓冲区中取一个消息。所以交换的信息量多时要引入高级通信原语。进程高级通信的类型主要有以下几种。
               (1)共享存储系统。相互通信的进程共享某些数据结构或存储区,以实现进程之间的通信。
               (2)消息传递系统。进程间的数据交换以消息为单位,程序员直接利用系统提供的一组通信命令(原语)来实现通信,如Send(A)、Receive(A)。
               (3)管道通信。管道是指用于连接两个进程之间的一个打开的共享文件(pipe文件)。向管道(共享文件)提供输入的发送进程(即写进程),以字符流的形式将大量的数据送入管道;而接收进程可从管道的另一端接收大量的数据。由于通信时采用管道,所以叫管道通信。
   题号导航      2018年上半年 软件设计师 上午试卷 综合知识   本试卷我的完整做题情况  
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 /
 
第25题    在手机中做本题