第三章 网络操作系统的通信
一、选择题
1.计算机网络作为一个信息处理系统,其构成的基本模式是(B)
A.对等模式 B.对等模式和客户机/服务器模式 C.对称多处理模式D.进程模式
2.网络上任意结点主机所拥有的资源都作为网络公用资源,可被其他结点主机上的网络用户共享,这种模式称为(D)
A.客户机/服务器模式B.主从模式C.对象模式D.对等模式 3.消息缓冲通信中的临界资源是(D)
A.消息缓冲队列 B.接收区 C.发送区 D.消息缓冲区 4.消息发送原语中一般要包含发送消息的内存指针和(B)
A.发送者 B.接受者 C.接收消息的内存指针 D.消息缓冲区 5.信箱可由操作系统创建,还可以由(C)创建
A.邮件服务器 B.邮件管理器 C.用户 D.客户机 6.客户机/服务器间通信时,首先要获取(D) A.协议簇 B.网络端口号 C.信箱号 D.IP地址 7.网络端口号用于识别接受者(B) A.客户机 B.进程 C.用户 D.信箱 8.最常用的网络通信基础协议是(A)
A.TCP/IP B.IPX/SPX C.NetBEUI D.HTTP 9.(C)协议不具备路由和跨网段操作功能
A.TCP/IP B.IPX/SPX C.NetBEUI D.HTTP 二、填空:
1.在操作系统中,通信分为(低级通信)和(高级通信)。 2.(高级)通信不仅适用于本机,还适用于网络。 3.低级通信一般包括(信号)、(信号量)等,高级通信有(消息队列)、(共享内存)、(套接字)和(邮箱通信)。网络上主要使用高级通信技术。
4.采用对等工作的网络,各节点主机都处于平等的低位没有(主从)之分。
5.对于同步通信原语而言,进程调用send原语将消息发出后便处于(阻塞状态)。 6.网络通信软件的任务是根据通信协议来控制和管理(线程)的通信。
7.实现在一次操作下将一个消息发送给多个接收者的通信机制称之为(组通信)机制。 8.消息缓冲通信时,当(发送者)要发信息时,执行(send)系统调用命令,产生(自愿性中断)进入操作系统核心。操作系统为发送者分配一个(空缓冲区),并将所发送的消息内容从发送者空间(复制到)该缓冲区中,然后将此缓冲区连接到(接收者)的消息队列末尾。
9.消息缓冲通信时,当(接收者)执行到(receive)系统调用命令时,也产生自(愿性中断),进入操作系统核心;操作系统将(载有消息的缓冲区)从(消息队列中)复制到(接收者)空间中,然后收回(空闲缓冲区)。
10.信箱是一种数据结构,逻辑上可以分为两部分:(信箱头)和信箱体。 11.信箱在创建时必须建立信箱头,其中包括(信箱名称)、(信箱大小)、创建者的进程名等。
12.进程不能向(满)的信箱发邮件,接收者不能从(空的)信箱收邮件。 13.网络通信协议是针对计算机之间(通信)的信息(格式)、能被收/发双方接收的传送信
9
息内容的一组定义。
14.常用的网络协议分为(常用的基础协议)和(常用的应用型协议)。 15.原语的设计上,通信原语分为同步(原语和异步原语)、(缓冲原语和非缓冲原语)和(可靠原语和非可靠原语)。
16.对于同步通信原语而言,进程调用send原语将消息发出便处于(自我阻塞)状态。 17.为了将信息安全可靠地传送到对方,一般采用(可靠)原语。在客户机/服务器模型上可以采用(确认)的方法。在具体应答时一般用(四回合应答)和(三回合应答)来完成。 18.实现流媒体传输有(实时流媒体传输)和(顺序流媒体传输)。流媒体播放方式主要有(单播)、(多播)和(组播)。 三、应用题
1.在某小河上沿南北方向假设了一个独木桥,桥上只能承载一个人无论是由南向北过桥还是由北向南过桥,必须一个一个依次地过桥。请用信号量和P、V操作设计一个由南向北双方人们过桥的程序。 2.请编写一个火车票订票代理点访问票额数据库的程序,要保证票额不能超售或一票二售。 3.某学校的托福考试考点已经报满,但是尚有部分晚到学生希望能候补。请编写一个等候空闲名额的程序,要保证公平,先到先得。
4.请写出消息传递机制的发送原语和接收原语中有哪几个关键参数,并写出发送者和接收者的算法代码。
5.写出服务器向客户机用户发出收费通知的算法程序。
6.某景点与浏览车停车场相距较远,游客可以在停车场免费搭乘环保交通车到景区,浏览完毕再返回停车场。已知景区内交通车总量为M,游客总数为N,约定: 1)每辆交通车限乘一位游客。
2)如果有空闲的交通车,应当允许想浏览的游客乘坐。 3)无空闲交通车时,游客只能排队等待。
4)若没有想游览的游客,空闲的交通车就原地等待。
试利用P、V操作实现游客进程与交通车进程的同步操作。
7.在某大学训练营地只有一件浴室,他们制定了一个简单的规则来使用这间浴室:当浴室没人时,第一个洗澡的人可以随意进入,若进入的是男生,那么静门口写有“男”字的木牌翻过来,后来的人看到木牌后,若他是男生便可以直接进入,若是女生,则只能在门口等候;若第一个来的是女生,就将写有“女”字的木牌翻过来,依次类推。最后一个洗澡的人离开浴室时,若是男生就将“男”字牌扣回去,若是女生就扣“女”字木牌。设计一个程序,能够让男生和女生协调地使用该浴室。
对于上述问题,当现在浴室内有男生,而男生又源源不断进入,可能造成女生长期等候。这显得很不公平,那么请修改程序,当女生来到并在门口等候时,后来的男生就不能越过女生进去,而是在女生后面排队。反之亦然。
8.对于如下四个进程,为满足同步关系,特设置同步信号量S1、S2、S3和S4,初值均为0。a、b、c和x、y、z均为共享存储区,
proc1 proc2 proc3 proc4 {a: =1,b:=2; {P(s1); {x: =8; y:=7; {P(s3); V(s1); z=a+b; P(s2) c=a+x; P(s4); V(s2);} z=z+x+y; x=5; c=a+b+c+x+y+z; V(s3);} V(s4);} }
请问:上述四个进程运行结束后,a、b、c、d、x、y、z的值各是多少?
10
答:a=1,b=2,c=9,x=5,y=7,z=18
9.某大学的学生选课系统规定,学生在每学期预选的课程不能超过15门,总计学分数不能超过35分。张同学选15门课以后,总觉得有更好的课程要选,很希望加选,但是,系统限制使她不能再增加课程了,必须先退掉一门课,再去选新课。当她考虑再三将课程Ci退掉后,再去选课程Cj时,发现课程Cj已经满额,而张同学想选回原来的课程Ci时发现也已经没有空额了。选课系统为了解决这个问题,特地使用了一个专有函数exchange_course(user,Ci,Cj)来交换新课和旧课,可将Ci换成Cj。 exchange_course(user,Ci,Cj){ Ci->P(locki);
Ci->del(user); //先退课 Cj->P(locj);
If(Cj->isFull()==false){ //课没选满 Cj->add(user);
Cj->V(lockj); //选课 Cj->V(locki); 四、思考题
1.网络操作系统的通信有几种类型? 答:通信分为低级通信和高级通信。
2.高级通信与低级通信有什么区别?高级通信的优点是什么?
答:低级通信方式传递的信息一般比较少,访问条件比较严格,低级通信一般用于本机内进程之间。高级通信能够实现在进程之间传递大量的信息,不仅适用于本机,还适用于网络。 3.在共享变量的通信方式中,如何保证变量的一致性?
答:通常,低级通信方式以信号量为主,通过两个P、V原语对信号量进行操作,P、V原语是一种卓有成效的进程同步机制。
4.在消息缓冲通信方式中,发送原语和接收原语的主要功能是什么?
答:当发送者要发信息时,执行send系统调用命令,产生自愿性中断进入操作系统核心。将信息放到缓冲区。当接收者执行到receive系统调用命令时,也产生自愿性中断,进入操作系统核心,将信息从缓冲区取出。
5.信箱通信有什么优点?请描述信箱通信的数据结构并说明其通信过程。
答:信箱通信是一种高级通信,也是间接通信。信箱是一种数据结构,逻辑上由信箱头和若干格子组成的信箱体。发送者调用过程deposit将信件发送到信箱,接收者调用过程remove将信件从信箱中取出。
6.信箱通信机制哪些基本通信原语?它们的功能是什么? 答:send原语,把信件送入指定进程信箱中
deposit原语,不能向已装满信箱大小确定,可存放的信件就受到限制。
remove原语,一个进程可以利用它取出指定进程信箱中的一个信件,但不能从空信箱中取出信件。
7.在网络操作系统中,消息传递机制有什么优点?如何实现? 答:基于消息传递的消息缓冲机制的通信方式适用于网络中个结点主机之间的通信,因此被广泛使用。
消息通信机制是一种高级通信机制,其基本思想是“生产者—消费者”的基本原理,利用公共消息缓冲区实现进程之间和个结点之间的信息交换。
实现:一般由发送者调用消息发送原语send(receive,a),而接受者调用消息接收原语receive(b),其中参数a和b分别代表发送进程准备发送的消息在内存区的首地址和接收今
11
晨用于存放收的消息在内存中的首地址。在发送者和接收者对内存区访问时需要遵循互斥约束。一般用P、V操作原语实现send原语和receive原语。 8.消息传递通信机制中都有哪些通信方式? 答:①通信原语 ②远程过程调用 ③组通信。
9.请描述什么是同步原语、异步原语;缓冲原语、非缓冲原语;可靠原语、非可靠原语。 答:同步原语,也称阻塞原语,就是当发送者调用该原语时,必须对接收者具有明确的要求,当接收者准备就绪可以接收消息时,发送者立即将信息发送给对方,若接收者未准备好,那么发送者就会自我阻塞,等待接收者就绪。而且,当处于发送状态时,发送者会等待信息完全发送完毕后再返回。
异步原语,就是非阻塞原语。当发送者调用异步原语时,先查找接收者,不管找到还是未找到,无论信息是否发出,原语立即返回调用程序,并返回发送成功或失败信息,进而继续执行下面的指令代码。 缓冲原语和非缓冲原语:缓冲原语就是在内核中存在一块内存用来存放过早到达的信息,否则就是非缓冲原语。
可靠原语:为保证发送者发出的信息送达接收者,可以要求发出去的信息有回执,具体在客户机/服务器模型上采用“确认”方法,这种通信原语称为可靠原语。
非可靠原语:在开放系统中通信,不能保证发送者信息是完整可靠的,也不能 暴增信息一定会送到接收者手里,因此这种通信原语称为非可靠原语。
10.使用异步通信原语时,发送者在消息发送完成以前为什么不能使用缓冲区?该如何解决?
答:因为倘若发送进程在消息发送完成之前,即在消息发送期间使用或修改原来的缓冲区,将会造成错误。
解决有两种办法(应采用异步原语):①采用带拷贝的非阻塞原语,即让内核把消息拷贝到内核缓冲区,允许调用进程继续运行。②带中断的非阻塞发送,即当消息发送完成后,中断发送进程,通知发送进程此时缓冲区可用。
11.在进程通信中,传送消息的可靠性是如何保证的? 答:为了保证消息被对方收到,可采用可靠原语。具体作法是:客户向服务器方发一请求后,服务器对这一请求,由其内核向客户内核返回一个确认ACK,当客户内核收到这一消息后,就唤醒客户进程。在客户与服务器之间的请求/应答共需四个消息:①从客户机向服务器的请求②从服务器内核向客户机内核返回一个确认③从服务器到客户机的应答④从客户机的内核向服务器内核返回一个确认(四回合应答)。另一种方法是三回合应答:①客户机向服务器发送的请求②服务器向客户机的应答③客户机确认
12.什么是远程过程调用?它与本地过程调用有什么区别?有什么联系? 答:在网络系统中,不同主机之间也可以采用过程调用的方式进行通信称之为远程过程调用。在网络或分布式系统中,设有任意两个节点A、B,节点A上的进程调用节点B上的一个进程时,节点A上的进程被挂起,在节点B上执行被调用的过程,消息以参数的形式从调用进程传送到被调用进程,并将被调用过程执行的结果返回给调用进程。这种通信方式称为远程过程调用。
区别:本地过程调用(Local Procedure Call, LPC)是为子系统通信特别设计的。远程过程调用(Remote Procedure Call, RPC)类似于LPC,只是在网络上工作,其设计思想是使得RPC尽可能向LPC一样,也就是具有透明性。 13.请描述一个远程调用的整个过程。
答:①客户过程以通常方式调用客户代理。②客户代理构造一个消息并陷入内核。③本地内核发送消息给远程内核。④远程内核把消息送给服务器代理。⑤服务器代理从消息包中取出
12
相关推荐: