为解决低级通信(如PV操作)存在的编程复杂、易死锁、效率低下等问题,操作系统引入了更高级的进程通信机制

一、高级通信原语
为解决低级通信(如PV操作)存在的编程复杂、易死锁、效率低下等问题,操作系统引入了更高级的进程通信机制,主要包括以下三种模式:

  1. 共享存储模式
    多个进程通过访问同一块共享内存区域进行数据交换。该方式要求进程对共享数据结构有明确约定,通常需配合同步机制(如互斥锁)使用,以避免竞争条件。

  2. 消息传递模式
    进程间通过发送和接收消息来通信,无需共享地址空间。系统提供原语如 Send(A, message)Receive(A, message),适用于分布式环境。可进一步分为直接通信(点对点)和间接通信(通过信箱或端口)。

  3. 管道通信(Pipe)
    利用一个特殊的共享文件(pipe 文件)连接两个相关进程(通常是父子进程),数据以字符流形式按顺序传输,常用于进程流水线协作。管道分为无名管道(临时、单向)和命名管道(FIFO,持久化)。

二、管程(Monitor)
为克服PV操作分散在程序各处导致的死锁风险与维护困难,由汉森(Brinch Hansen)和霍尔(C.A.R. Hoare)于1974-1975年提出“管程”概念,是一种高级同步构造。

核心机制:

  • 将共享资源及其操作封装成一个模块,包含:
    • 共享数据结构
    • 对这些数据的操作过程(函数/方法)
    • 初始化代码
    • 访问控制权限(仅允许一个进程进入管程)
  • 使用条件变量实现进程同步,例如:
    • wait(condition):使当前进程阻塞并释放管程
    • signal(condition):唤醒等待该条件的一个进程

作用:

  • 集中管理共享资源,提高代码可读性和安全性
  • 避免死锁和竞态条件,支持多进程安全访问抽象数据类型

补充说明:
上述机制是操作系统中处理并发控制的核心技术,广泛应用于多任务调度、资源共享、进程协作等场景,构成了现代操作系统并发管理的基础。
消息传递模式中的直接通信与间接通信主要区别在于通信双方的耦合方式、地址指定机制以及通信的灵活性:

  1. 直接通信

    • 通信双方必须显式指明接收者或发送者。例如,进程 A 调用 Send(B, message) 明确向进程 B 发送消息。
    • 接收方也需调用 Receive(A) 明确从 A 接收消息。
    • 特点是点对点强耦合,发送和接收进程需要彼此知道对方的身份(ID 或名称)。
    • 常用于父子进程或固定协作关系的进程之间。
  2. 间接通信

    • 引入中间实体——信箱(Mailbox)或端口(Port),进程通过信箱收发消息。
    • 发送方调用 Send(mailbox_id, message) 将消息放入指定信箱,接收方调用 Receive(mailbox_id, message) 从中取走消息。
    • 发送者和接收者无需知道对方身份,只需共享同一个信箱即可,实现松耦合通信
    • 支持一对多、多对一、多对多通信模式,适用于复杂系统和分布式环境。

总结对比:

对比项直接通信间接通信
地址指定明确指定进程 ID使用信箱/端口标识
耦合度高(强绑定)低(松耦合)
灵活性较差高,支持多种通信模式
应用场景简单、固定的进程间通信复杂系统、客户-服务器架构等

在这里插入图片描述

源码来自:https://pan.quark.cn/s/d16ee28ac6c2 ### 上线流程 Java Web平台在实施Java Web应用程序的发布过程时,通常包含以下几个关键阶段:应用程序归档、生产环境配置文件替换、系统部署(涉及原有应用备份、Tomcat服务关闭、缓存数据清除、新版本WAR包上传及服务重启测试)以及相关异常情况记录。以下将对各阶段进行深入说明。#### 一、应用程序归档1. **归档前的准备工作**: - 需要事先验证Java开发环境的变量配置是否正确。 - 一般情况下,归档操作会在项目开发工作结束后执行,此时应确认所有功能模块均已完成测试并符合发布标准。 2. **具体执行步骤**: - 采用`jar`指令执行归档操作。例如,在指定文件夹`D:\apache-tomcat-7.0.2\webapps\prsncre`下运行指令`jar –cvf prsncre.war`。 - 执行该指令后,会生成一个名为`prsncre.war`的Web应用归档文件,其中包含了项目的全部资源文件及编译后的程序代码。#### 二、生产环境配置文件调换1. **操作目标**:确保线上运行环境与开发或测试环境的参数设置存在差异,例如数据库连接参数、服务监听端口等信息。2. **执行手段**: - 将先前成功部署的WAR包中`xml-config`文件夹内的配置文件进行复制处理。 - 使用这些复制得到的配置文件对新生成的WAR包内的对应文件进行覆盖新。 #### 三、系统部署1. **原版应用备份**: - 在发布新版本之前,必须对当前运行版本进行数据备份。例如,通过命令`cp -r prsncre ../templewebapps/`将旧版应用复...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Bol5261

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值