更多“为了进行进程协调,进程之间应当具有一定的联系,这种联系通常采用进程间交换数据的方式进行,这种方式称为() ”相关问题
  • 第1题:

    进程通信就是进程之间进行信息交换。系统中各进程异步执行,但有些进程之间必须保持

    一定的联系,以便协调一致地完成指定任务。这种联系就是通过交换一定数量的信息实现的。

    消息缓冲通信技术是一种高级通信机制,由Hansen首先提出。其基本思想是:根据“生产者—消费者关系”原理,利用公共消息缓冲区实现进程之间的信息交换。

    1.试叙述高级通信机制与低级通信机制P、V原语操作的主要区别。

    2.试解释消息缓冲通信技术的基本原理。

    3.消息缓冲通信机制中提供发消息的原语Send(receiver,a)和接受消息原语Receive(a)。调用参数a分别表示发送消息的内存区首地址或接受进程的内存消息区首地址。试设计相应的数据结构,并用P、V操作原语实现Send和Receive原语。


    正确答案:1.要点:进程间通信时所交换的通信量可多可少。少的时候仅是一些状态和数据的交换或者仅是一个简单的唤醒信号:多则可交换大量的信息。前者称为进程同步与进程互斥也称为进程间低级通信:后者称成为进程间的高级通信。 2.要点: (1) 由操作系统在系统空间维护一组缓冲区; (2) 由操作系统提供两个进程高级通信原语Send和Receive: (3) 发送进程要发送消息时执行Send系统调用命令产生自愿性中断进入操作系统核心; (4) 操作系统为发送进程分配一个空缓冲区并将所发送的消息内容从发送进程空间拷贝到该缓冲区中然后将此缓冲区连接到接受进程的消息队列尾。发送进程就完成了发送返回到用户态继续执行; (5) 当接受进程执行到receive系统调用时也产生自愿性中断进入操作系统核心; (6) 操作系统将载有消息的缓冲区从消息队列中取出并将消息拷贝到接受进程空间中然后收回空闲缓冲区:接受进程完成了消息接受返回到用户态继续执行; 3.要点: (1) 消息缓冲区的数据结构: type Message=record sender(消息发送者) size(消息长度) text(消息正文) pointer(消息队列指针) end; (2) 设置信号量如下: 每个接受进程有一个m-mutex:互斥对消息队列的操作初值为1; buffer:管理空闲缓冲区初值为空闲缓冲区个数; b-mutex:互斥操作空闲缓冲区初值为1; message:管理接受进程消息初值为0。 (3) Send(receivera) begin 根据参数receiver寻找接受进程如果没有找到则出错返回: P(buffer): P(b-mutex): 从消息缓冲区链上摘取一个空闲消息缓冲区; V(b-mutex); 将消息长度及消息正文由a地址由发送区拷贝到消息缓冲区中; 将发送进程的名字也刻录在该缓冲区中; P(m-mutex); 将消息缓冲区挂到接受进程消息队列的尾部; V(m-mutex): V(message) end; (4) Receive(a) begin P(message); P(m-mutex): 从消息队列中取一个载有消息的缓冲区: V(m-mutex); 将消息长度以及消息正文由消息缓冲区拷贝到接受区(由a指示); P(b-mutex); 将空闲缓冲区挂到系统消息区链尾; V(b-mutex); V(buffer) end;
    1.要点:进程间通信时所交换的通信量可多可少。少的时候仅是一些状态和数据的交换,或者仅是一个简单的唤醒信号:多则可交换大量的信息。前者称为进程同步与进程互斥,也称为进程间低级通信:后者称成为进程间的高级通信。 2.要点: (1) 由操作系统在系统空间维护一组缓冲区; (2) 由操作系统提供两个进程高级通信原语Send和Receive: (3) 发送进程要发送消息时,执行Send系统调用命令,产生自愿性中断进入操作系统核心; (4) 操作系统为发送进程分配一个空缓冲区,并将所发送的消息内容从发送进程空间拷贝到该缓冲区中,然后将此缓冲区连接到接受进程的消息队列尾。发送进程就完成了发送,返回到用户态继续执行; (5) 当接受进程执行到receive系统调用时,也产生自愿性中断,进入操作系统核心; (6) 操作系统将载有消息的缓冲区从消息队列中取出,并将消息拷贝到接受进程空间中,然后收回空闲缓冲区:接受进程完成了消息接受,返回到用户态继续执行; 3.要点: (1) 消息缓冲区的数据结构: type Message=record sender(消息发送者) size(消息长度) text(消息正文) pointer(消息队列指针) end; (2) 设置信号量如下: 每个接受进程有一个m-mutex:互斥对消息队列的操作,初值为1; buffer:管理空闲缓冲区,初值为空闲缓冲区个数; b-mutex:互斥操作空闲缓冲区,初值为1; message:管理接受进程消息,初值为0。 (3) Send(receiver,a) begin 根据参数receiver寻找接受进程,如果没有找到,则出错返回: P(buffer): P(b-mutex): 从消息缓冲区链上摘取一个空闲消息缓冲区; V(b-mutex); 将消息长度及消息正文由a地址由发送区拷贝到消息缓冲区中; 将发送进程的名字也刻录在该缓冲区中; P(m-mutex); 将消息缓冲区挂到接受进程消息队列的尾部; V(m-mutex): V(message) end; (4) Receive(a) begin P(message); P(m-mutex): 从消息队列中取一个载有消息的缓冲区: V(m-mutex); 将消息长度以及消息正文由消息缓冲区拷贝到接受区(由a指示); P(b-mutex); 将空闲缓冲区挂到系统消息区链尾; V(b-mutex); V(buffer) end;

  • 第2题:

    就绪队列中一旦出现高于当前运行进程优先级的进程,就立即进行调度,转让CPU,这种调度方式称为( )。

    A)轮转方式

    B)可剥夺(抢占)方式

    C)轮询方式

    D)中断方式


    正确答案:B

  • 第3题:

    5、在一个多道程序系统中,进程之间存在一定的逻辑关系,需要在执行次序上协调,进程之间的这种关系属于:

    A.进程同步

    B.进程互斥

    C.进程阻塞

    D.进程唤醒


    D

  • 第4题:

    就绪队列中一旦出现高于当前运行进程的优先级的进程,就立即进行调度,转让CPU,这种调度方式称为

    A.轮转方式

    B.可剥夺(抢占)方式

    C.轮询方式

    D.中断方式


    正确答案:B
    解析:本题考查进程调度算法的概念。进程调度算法解决以何种次序对各就绪进程进行处理机的分配以及按何种时间比例让进程占用处理机。先进先出算法是按照进程进入就绪队列的先后次序来选择。轮转法是将cpu的处理时间划分为一个个时间片,就绪队列中的进程轮流进行一个时间片。进程调度每次将处理机分配给具有最高优先级的就绪进程,这是最高优先级算法,就绪队列中一旦出现高于当前运行进程优先级的进程,就立即进行调度,转让CPU,这种调度方式称为可剥夺(抢占) 方式,是最高优先级算法的一种。正确答案为选项B。

  • 第5题:

    为了描述进程的动态变化过程, 采用了一个与进程相联系的___ ____, 根据它而感知进程的存在以及对进程进行控制。

    A.进程状态字

    B.进程优先数

    C.进程控制块

    D.进程起始地址


    进程控制块