1.什么叫同步?
相互合作的两个进程之间需要在某个(些)确定点协调它们的工作,一个进程到达了该点后,除非另一进程已经完成了某些操作,否则就不得不停下来,等待这些操作的完成。这就是进程间的同步。
什么叫互斥?
两个进程由于不能同时使用同一临界资源,只能在一个进程使用完了,另一进程才能使用,这种现象称为进程间的互斥。
①同步的主要特征是:一个进程在某一点上等待另一进程提供信息,两进程之间存在直接制约关系,其表现形式为进程—进程。②互斥的主要特征是争用资源,两进程间存在间接制约关系,其表现形式是进程—资源—进程。
2.试给出P、V操作的定义。
P、V操作是定义在信号量S上的两个操作,其定义如下:
P(S):①S:=S-1;②若S≥0,则调用P(S)的进程继续运行;③若S<0,则调用P(S)的进程被阻塞,并把它插入到等待信号量S的阻塞队列中。
V(S):①S:=S+1;②若S>0,则调用V(S)的进程继续运行;③若S≤0,则从等待信号量S的阻塞队列中唤醒头一个进程,然后调用V(S)的进程继续运行。
如何利用P、V操作实现进程间的互斥?
P、V操作是解决同步与互斥问题的有力工具。为解决互斥问题,应采取如下步骤: 首先根据给定问题的描述,列出各进程要执行的程序。其次,设置信号量。互斥问题中,在临界区前面加P(S),临界区后面加V(S)。最后确定信号量的初值。在互斥问题中,信号量通常取为互斥资源的个数。
说明信号量的物理意义:
信号量S>0时,S的数值表示某类可用资源的数目,执行P操作意味着申请分配一个单位的资源;当S≤0时,表示无资源可用,此时S的绝对值表示信号量S的阻塞队列中的进程数。执行V操作意味着释放一个单位的资源。
3.如何利用P、V操作实现进程间的同步?
P、V操作是解决同步与互斥问题的有力工具。为解决同步问题,应采取如下步骤:首先根据给定问题的描述,列出各进程要执行的程序。其次,设置信号量。同步问题中有几个同步点就设置几个信号量,等待的地方加P(S),发信号(解除等待)的
地方加V(S)。最后确定信号量的初值。在同步问题中,信号量的初值一般取0.在同步和互斥中,信号量初值的设置有何不同:在同步问题中,信号量的初值一般取为0,在互斥问题中,信号量通常取为互斥资源的个数。
4.高级通信原语有何优点?
能够实现在进程之间传递大量的信息。
在消息缓冲通信方式中,发送原语和接收原语的主要功能是什么?
发送原语的作用:将欲发送的消息从发送区复制到消息缓冲区,并把它挂起在接收进程的消息缓冲队列末尾。如果该接收进程因等待消息而处于阻塞状态,则将其唤醒。
接收原语的作用:把发送者发来的消息从消息缓冲区复制到接收区,然后将消息缓冲区从消息队列中消去,如果没有消息可以接收,则进入阻塞状态。
5.什么是信箱?
信箱用于存放信件,而信件是一个进程发送给另一进程的消息。
信箱的数据结构:信箱头和信箱体。信箱头是信箱的描述部分,信箱体由若干格子组成,每个格子可存放一个信件。
信箱头包括的信息:①信箱名②信箱大小③已存信件数④空的格子数。
如何用信箱实现两个进程之间的通信?
进程A想向进程B发送消息前,先把消息组成一封信件,然后调用send原语向进程B发送信件,并将信件投入进程B的信箱中。进程B为得到进程A的消息,只要调用receive原语就可以从信箱中索取来自进程A的信件。这就完成了一次进程A到进程B的通信过程。
6.在网络操作系统中,为什么要采用消息传递的通信机制?
基于共享变量的通信方式适用于网络中各节点内部诸进程之间的通信,而基于消息传递的通信方式适用于网络中各节点之间的进程通信。
在消息传递的通信机制中有哪些通信方式?①通信原语 ②远程过程调用 ③组通信。
7.什么是同步原语?
当一个进程调用一个send原语时,在消息开始发送后,发送进程便处于阻塞状态,直至消息完全发送完毕,send原语的后继语句才能继续执行。当一个进程调用一个receive原语时,并不立即返回控制,而是等到把消息实际接收下来,并把它放入指定的接收区,才返回控制,继续执行该原语的后继指令。在这段时间它一直处于阻塞状态。上述的send和receive被称为同步通信原语或阻塞通信原语。
什么是异步原语?发送进程在调用send原语后,并不进入阻塞状态,它不等消息发送完就继续执行其后继语句。
在使用异步通信原语时,发送者在消息发送完成前为什么不能使用缓冲区?
因为倘若发送进程在消息发送完成之前,即在消息发送期间使用或修改原来的缓冲区,将会造成错误。
如何解决?
有两种办法(应采用异步原语):①采用带拷贝的非阻塞原语,即让内核把消息拷贝到内核缓冲区,允许调用进程继续运行。②带中断的非阻塞发送,即当消息发送完成后,中断发送进程,通知发送进程此时缓冲区可用。
8.在进程间通信如何保证消息不会丢失?
为了保证消息被对方收到,可采用可靠原语。具体作法是:客户向服务器方发一请求后,服务器对这一请求,由其内核向客户内核返回一个确认ACK,当客户内核收到这一消息后,就唤醒客户进程。在客户与服务器之间的请求/应答共需四个消息:①从客户向服务器的请求②从服务器内核向客户内核返回一个确认③从服务器到客户的应答④从客户的内核向服务器内核返回一个确认。
9.远程过程调用:在网络或分布式系统中,设有任意两个节点A、B,节点A上的进程调用节点B上的一个进程时,节点A上的进程被挂起,在节点B上执行被调用的过程,消息以参数的形式从调用进程传送到被调用进程,并将被调用过程执行的结果返回给调用进程。这种通信方式称为远程过程调用。
其基本原理是什么?
允许某一节点上的程序调用其他节点上的过程或函数。例如节点机A上的进程调用节点机B上的过程,节点机A的调用进程被挂起,在节点机B上执行被调用过程。消息以参数的形式从调用过程传到被调用过程,被调用过程执行的结果再返回给调用过程。对程序员来说,他看不到消息传递过程和I/O处理过程。
10.RPC的透明性指的是什么?
指的是要使得远程过程调用尽可能像本地调用一样。调用过程应该不知道被调用过程是在另外一台计算机上执行,反过来也是如此,被调用过程也不应该知道是由哪个机器上的进程调用的。如何保证这一透明性:远程过程调用为实现其透明性,在客户机上设置一个客户代理,同样在服务器机上设置一个服务器代理。
11.简述远程过程调用的步骤。
①客户过程以通常方式调用客户代理。②客户代理构造一个消息并陷入内核。③本地内核发送消息给远程内核。④远程内核把消息送给服务器代理。⑤服务器代理从消息包中取出参数并调用服务器。⑥服务器完成相应的服务,将结果送给服务代理。⑦服务代理将结果打包形成一个消息并陷入内核。⑧远程内核发送消息给客户机内核。⑨客户机内核把消息传送给客户代理。⑩客户代理取出结果,返回给客户的调用程序。并以实例说明。
12.试说明远程过程调用的优缺点。
优点:格式化好、使用方便、透明性好;
缺点:缺乏灵活性。
在具体实现上尚有哪些难点需要解决?
①远程过程调用的参数在系统内不同机型之间的通用能力有所不足。②缺乏在一次调用过程中多次接收返回结果的能力。③远程过程调用缺乏传送大量数据的能力。
13.什么叫组通信?
在网络系统中,一个相互作用的进程集合称为组。一个发送者在一次操作中将一个消息发送给多个接收者的通信,称为组通信。
它应用于何种场合?在网络系统中可以采用组通信方式。
组通信的主要特征是?当一个消息发送给这个组时,该组的所有成员都可以接收,组通信具有“一对多”的形式,即一个发送者,多个接收者。
组通信的实现?组通信的实现在很大程度上依赖于硬件。在一些网络系统中,可以为组指定一个特殊的网络地址。可采用多播式、广播式、单播式。