ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

东北大学操作系统实验一详解

2022-02-05 17:04:31  阅读:191  来源: 互联网

标签:操作系统 东北大学 通信 临界 详解 消息 进程 邮箱 共享


目录

实验一思考题:

一、如何控制进程间的相互通信?

1.1 直接通信

1.2 间接通信

1.3 IPC模型(进程间相互通信):

二、什么是进程同步?什么是进程互斥?分别有哪些实现方式?


实验一思考题:

一、如何控制进程间的相互通信?

        进程间相互通信,简称IPC,IPC有两种方式:内存共享,消息传递。消息传递系统(Message Passing System, MPS)进程之间不借助共享变量进行通信。MPS设施(facility)提供两种操作(operations):发送消息,接收消息。如果P和Q想要进行通信,他们需要在他们之间建立通信联系,并通过发送/接收交换信息。进程间通信需要考虑系统调用、速度、数据容量。

        进程间通信分为直接通信和间接通信两种:

1.1 直接通信

  1. 直接通信:进程必须明确地相互命名。send(P,message)–向进程P发送消息;receive(Q,消息)–从进程Q接收消息;receive (id, message)。
    1. 通信连接的特性:连接是自动建立的;链路只与一对通信进程相关联;每对之间正好存在一个连接;链路可能是单向的,但通常是但双向的。
    2. 有限模块化:在更改进程的标识符(id)时,必须找到对旧标识符的所有引用,以便将它们修改为新标识符
    3. 消息(messages)是从邮箱(也称为端口)定向和接收的。
      1. 每一个邮箱有一个唯一的id
      2. 进程只有在共享邮箱时才能通信
    4. 通信连接的特性:
      1. 仅当进程共享公共邮箱时才建立链接
      2. 一个邮箱可能被多个进程共享
      3. 每对进程可以共享多个邮箱
      4. 链路可以是单向的或双向的

1.2 间接通信

  1. 间接通信
    1. 间接通信操作
      1. 需要创建一个新邮箱,
      2. 发送和接收消息都要通过这个邮箱,
      3. 销毁这个邮箱
    2. 间接通信相关原语定义为:
      1. send(A,message)–将消息发送到邮箱A
      2. receive(A,message)–从邮箱A接收消息
    3. 间接通信邮箱共享
      1. P1P2P3共享邮箱A
      2. P1发送,P2P3接收
    4. 解决方案
      1. 允许连接最多与两个进程关联
      2. 每次只允许一个进程执行接收操作
      3. 允许系统任意选择接收器。发送者被通知接收者是谁

1.3 IPC模型(进程间相互通信):

  1. 进程间通信可以通过:
    1. 共享内存:进程共享一些数据结构或内存块;
    2. 管道(pipe):连接读进程和写进程,作为两个进程通信的共享文件;
    3. 消息传递:消息是数据传输的单位,对信息传递更为有用。

二、什么是进程同步?什么是进程互斥?分别有哪些实现方式?

        进程同步:在多道程序环境下,进程是并发执行的,不同进程之间存在着不同的相互制约关系。我们把异步环境下的一组并发进程因直接制约而互相发送消息、进行互相合作、互相等待,使得各进程按一定的速度执行的过程称为进程间的同步。具有同步关系的一组并发进程称为协作进程,协作进程间互相发送的信号称为消息或事件。如果我们对一个消息或事件赋以唯一的消息名,则我们可用过程wait (消息名)表示进程等待协作进程发来的消息,而用过程signal (消息名) 表示向协作进程发送消息。

        实现进程同步:(1)为各并发进程设置私用信号量。(2)为私用信号量赋初值。(3)利用P、v原语和私用信号量规定各进程的执行顺序。

        进程互斥:两个或两个以上的进程,不能同时进入关于同一组共享变量的临界区域,否则可能发生与时间有关的错误,这种现象被称作进程互斥。也就是说,一个进程正在访问临界区资源,另一个要访问该资源的进程必须等待

实现进程互斥

  1. 互斥操作(mutual exclusion
    1. 如果Pi在其临界区部分执行,则其他进程不能在其临界区部分执行。
    2. 一次只能有一个进程处于临界区
  2. 前进(progress)
    1. 如果没有进程在其临界区执行,并且存在希望进入其临界区部分的某些进程,则不能无限期推迟选择下一个将进入临界区部分的进程。
    2. 当一个进程想进入自己的CS,而其他进程不想进CS时,则这个进程可以进入自己的CS
    3. 任何进程都不会被迫等待可用的资源,否则会非常浪费。如果另一个进程设置了标志,表示要进入其关键部分,则该进程不能立即重新进入关键部分。
  3. 有限等待(Bounded Waiting
    1. 在一个进程发出进入其临界区部分的请求之后,以及在该请求被批准之前,允许其他进程进入其临界区部分的次数必须存在一个界限。
      1. 假设每个进程以非零(nonzero)速度执行
      2. 关于n个过程的相对速度(relative speed)没有假设
      3. 没有一个进程可以永远等待资源——否则就是一个简单的解决方案:没有进程进入。

标签:操作系统,东北大学,通信,临界,详解,消息,进程,邮箱,共享
来源: https://blog.csdn.net/weixin_53803820/article/details/122791334

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有