消息正文:Text 消息缓冲通信机制的基本工作原理是:把消息缓冲区作为进程通讯的一个基本单位,为了 实现进程之间的通讯,系统提供了发送原语Send(A)和接收原语 Receive(B)。每当发送进程欲 发送消息时,发送进程用Send(A)原语把欲发送的消息从发送区复制到消息缓冲区,并将它挂 在接收进程的消息队列末尾。如果该接收进程因等待消息而处于阻塞状态,则将其换醒。而每 当接收进程欲读取消息时,就用接收原语 Receive(B)从消息队列头取走一个消息放到自己的 接收区。 3.消息缓冲通信机制中,消息队列属于临界资源,故在PCB中设置了一个用于互斥的信号量 mutex,而每当有进程要进入消息队列时,应对信号量 mutex施行P操作,退出消息队列后,应对 信号量 mutex施行Ⅴ操作。由于接受进程可能会收到几个进程发来的消息,故应将所有的消息 缓冲区链成一个队列,其队头由接收进程PCB中的队列头指针Htr指出。 为了表示队列中的消息的数目,在PCB中设置了信号量旬,每当发送进程发来一个消息,并将 它挂在接收进程的消息队列上时,便在Sn上执行Ⅴ操作:而每当接收进程从消息队列上读取 个消息时,先对Sn执行P操作,再从队列上移出要读取的消息 用P、V原语操作实现Send原语和 Receive原语的处理流程如下 Procedure Send (receiver, Ma) 发送原语 begil getbuf (Ma 申请消息缓冲区} i sender: =Ma Sender 将发送区的信息发送到消息缓冲区 i. text: =Ms. text i next: =0: getid(PCB set, receive, j) 获得接收进程的内部标识符} (j insert(j Hptr, i 消息缓冲区插入到消息队列首} v(. Sn) v(jmutex) Procedure Receive (Mb) 接收原语} egin j: internal name 接收进程内部标识符} P(j. Sn) P(i mutex) remove(j Hptr, i) 从消息队列中移出第一个消息} v( Mb Sender:=i Sender 将消息缓冲区中的信息复制到接收区} Mb. Size:=i Size Mb. text: =i. text 0.4西安电子科技大学200年考研操作系统试题 (一)单项选择题(10分) 1.分页式虚拟存储管理系统中,一般来说页面的大小与可能产生缺页中断的次数。 A.成正比B.成反比 C.无关 D.成固定比值 2.实时操作系统必须在 内完成来自外部的事件消息正文: Text; 消息缓冲通信机制的基本工作原理是:把消息缓冲区作为进程通讯的一个基本单位,为了 实现进程之间的通讯,系统提供了发送原语 Send(A)和接收原语 Receive(B)。每当发送进程欲 发送消息时,发送进程用 Send(A)原语把欲发送的消息从发送区复制到消息缓冲区,并将它挂 在接收进程的消息队列末尾。如果该接收进程因等待消息而处于阻塞状态,则将其换醒。而每 当接收进程欲读取消息时,就用接收原语 Receive(B)从消息队列头取走一个消息放到自己的 接收区。 3.消息缓冲通信机制中,消息队列属于临界资源,故在 PCB 中设置了一个用于互斥的信号量 mutex,而每当有进程要进入消息队列时,应对信号量mutex施行P操作,退出消息队列后,应对 信号量 mutex 施行 V 操作。由于接受进程可能会收到几个进程发来的消息,故应将所有的消息 缓冲区链成一个队列,其队头由接收进程 PCB 中的队列头指针 Hptr 指出。 为了表示队列中的消息的数目,在 PCB 中设置了信号量旬,每当发送进程发来一个消息,并将 它挂在接收进程的消息队列上时,便在Sn上执行V操作:而每当接收进程从消息队列上读取一 个消息时,先对 Sn 执行 P 操作,再从队列上移出要读取的消息。 用 P、V 原语操作实现 Send 原语和 Receive 原语的处理流程如下: Procedure Send(receiver,Ma) {发送原语} begin getbuf(Ma, size,i); {申请消息缓冲区} i.sender:=Ma.Sender; {将发送区的信息发送到消息缓冲区} i.size:=Ma.Size; i.text:=Ms.text; i.next:=0; getid(PCB set,receive,j); {获得接收进程的内部标识符} P(j.mutex); insert(j.Hptr,i); {消息缓冲区插入到消息队列首} V(j.Sn); V(j.mutex); end Procedure Receive(Mb) {接收原语} begin j:internal name; {接收进程内部标识符} P(j.Sn); P(j.mutex); remove(j.Hptr,i); {从消息队列中移出第一个消息} V(j.mutex); Mb.Sender:=i.Sender; {将消息缓冲区中的信息复制到接收区} Mb.Size:=i.Size: Mb.text:=i.text: End 10.4 西安电子科技大学 2000 年考研操作系统试题 (一)单项选择题(10 分) 1.分页式虚拟存储管理系统中,一般来说页面的大小与可能产生缺页中断的次数_____。 A.成正比 B.成反比 C.无关 D.成固定比值 2.实时操作系统必须在_______内完成来自外部的事件