【操作系统】进程(二)内存管理、通信

JavaEE---进程(二)内存管理、通信

一、内存管理

1.映射访问

2.独立分布

防崩溃

二、通信

1.独立性保障

2.方式

2.1管道

2.1.2特点

2.1.2.1进程条件

2.1.2.2方向

2.1.2.3同步性

2.1.2.4性能

2.2消息队列

2.2.1特点

2.2.1.1方向

2.2.1.2同步性

2.2.1.3性能

2.3共享内存

2.3.1特点

2.3.1.1方向

2.3.1.2同步性

2.3.1.3性能

2.4套接字


前言:

上文【操作系统】进程(一)调度讲解了 进程++PCB的结构组织++ 、++资源分配++ 以及进程在cpu上 通过操作系统的++调度 实现并发执行++ 的效果,本文深入讲解 进程的内存管理进程间通信的相关知识


一、内存管理

1.映射访问

操作系统 为每个进程 都创建有:

  • 模局格式一样虚拟地址空间
  • 独属对应关系映射表

进程只能操作 直接的虚拟地址空间 经映射表映射着 间接访问 实际的物理内存 ,进程 在++自己的虚拟地址空间内 最大范围地访问 也不可能映射访问出 自己总的物理内存外面++


2.独立分布

每个进程的虚拟地址空间 整体映射出的 对应整体物理内存 都是完全互相隔离****的一块块

防崩溃

进程如果在自己的虚拟地址空间内 越界访问到 ++未申请开辟的虚拟空间++ 而造成进程崩溃时,只会破坏 该进程对应的物理内存,接着操作系统 对其进行资源回收,而其它进程的 虚拟空间和物理内存 都不受影响地 继续运行


二、通信

进程 在操作系统提供的特殊渠道独立置、取信息 来保持隔离地交流

1.独立性保障

  • 写进程 无法直接连续写入修改 读进程内存
  • 读进程 主动地收取数据 拥有 读取进来判断是否修改的权利

两进程 仍然互相保持着独立地 进行数据交流


2.方式

2.1管道

内核 将写进程写入的数据 复制到内核缓冲区 置放,再将其 复制到读进程中 收取(两进程是没有 内核的管道缓冲区映射关系的,无法通过 共享管道缓冲区内存 映射传输,所以只能通过 内核复制传输)

2.1.2特点
2.1.2.1进程条件

需要 有亲缘关系的 父子进程间通信


2.1.2.2方向

一个管道单向通信,得创建两个管道 才能实现双向通信


2.1.2.3同步性

数据是 按顺序先进 后才有出无边界的 字节流 ,先进再出 ++已保证 置取同步性++


2.1.2.4性能

两次内核复制 并且有阻塞等待 ,效率较,++适合少量数据传输++


2.2消息队列

写进程 按照特定格式(类型+数据) 将信息复制置入 操作系统维护的 邮箱队列 中,读进程 根据消息类型 从队列中 复制取出 属于自己的消息

2.2.1特点
2.2.1.1方向

双向通信


2.2.1.2同步性

消息是 按顺序先进 后才有出有格式、有边界的 结构化数据块 ,先进后出 ++已保证 置取同步性++


2.2.1.3性能

两次内核复制 并且有阻塞等待 ,效率较,++适合少量数据传输++


2.3共享内存

操作系统 划出一块物理内存 分别额外映射到 两进程的虚拟地址空间 中,两进程 便能直接映射到 此共享物理内存上 进行置放、收取数据 完成独立隔离地交流

2.3.1特点
2.3.1.1方向

双向通信


2.3.1.2同步性

因为读写两进程 可不按先后顺序地 映射到 操作获取 数据 ,所以需要使用++信号量++ 或++互斥锁++ 来同步进程 对共享资源的访问


2.3.1.3性能

不需要 内核中转复制,进程 直接映射 操作获取数据 ,性能极,++能频繁交换大量数据++


2.4套接字

能用于 网络上 不同计算机的 进程间通信

相关推荐
Sincerelyplz1 分钟前
【AI会议纪要实践】mapReduce、RAG 与结构化输出
java·后端·agent
专注VB编程开发20年3 分钟前
安卓APP与服务器通讯技术,文件传输和文字消息收发
运维·服务器
顺风尿一寸6 分钟前
深入Linux内核:mkdir系统调用的完整实现解析
linux
用户2367829801687 分钟前
Linux free 命令深度解析:从内存监控到 OOM 排查的完整指南
linux
过期动态8 分钟前
【LeetCode 热题 100】接雨水
java·数据结构·算法·leetcode·职场和发展
SNKXD_117 分钟前
2026品牌运营团队AI营销培训:TOP5轻量化课程适配常态化技能升级学习
大数据·人工智能·学习
gs8014023 分钟前
网络隐形杀手:从 Could not connect to SMTP host 报错深度剖析 Docker MTU 黑洞理论与实战
网络·docker·容器
zhangjw3433 分钟前
第15篇:Java多线程零基础入门,进程线程、线程创建方式、线程生命周期、线程安全彻底吃透
java·开发语言·面试
无足鸟ICT34 分钟前
【RHCA+】boxes命令(艺术框)
linux