【操作系统】2.1.4 进程通信

简介: 【操作系统】2.1.4 进程通信

@[TOC]

1. 什么是进程通信?

:star:进程通信:进程通信就是指进程之间的信息交流。进程时分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立。

:microphone:每个进程都是独立的,不可能让进程之间随意就可以读取信息(乱闯民宅是犯法的),如果随机读取了那还得了,你的信息都要被泄露。所以为了保证安全,一个进程不能直接访问另一个进程的内存地址空间。但是进程直接交换信息也是必要的(比如用QQ音乐的登录时,如果你已经登录了qq,那么就会获取到你的QQ信息,就可以直接点击登录了)。

image-20220722114309814

2.共享存储

:star: 共享空间:为了实现两个进程之间的通信,操作系统会在内存中开辟一块内存空间供两个进程共同使用。但是两个进程对共享空间的访问必须是互斥的(我这边还在更改信息,你那边就要读信息,拿到的肯定是错误的信息啊,所以为了正确性,必须要保证互斥)

  • 基于数据结构的共享:比如共享空间里只能放一个长度为10的数字,这种共享方式速度慢,限制多,是一种低级通信方式。
  • 基于存储区的共享:在内存中开辟一块共享存储区,数据的形式、存放位置都由进程控制,而不是操作系统,这种方式速度快,是一种高级通信方式。(没有了限制,当然快啦)

image-20220722115013041

3.管道通信

:star: 管道:是指用于连接读写进程的一个共享文件,其实就是在内存重开辟了一个大小固定的缓冲区。

  • 管道只能采用半双工通信,某一时间段内只能实现单向的传输,如果要实现双向同时通信,则需要设置两个管道
  • 各进程要互斥地访问管道
  • 数据以字符流地形式写入管道,当管道写满时,写进程地write()系统调用就被阻塞,等待读进程将数据取走,当取完时,管道变空,此时都进程的read()系统调用将被阻塞。(写完了才能读,读完了才能写)
  • 管道中的数据一旦被读出就无法挽回,所以读进程只能有一个,否则可能会有读错数据的情况。

image-20220722123240453

4. 消息传递

:star: 消息:消息包括消息头和消息体(信件一样),消息头包括了发送进程ID(发送方),接受线程ID(接收方),消息类型,消息长度等格式化信息。消息体包含要发送的信息。

  • 直接通信方式:消息直接挂到接收进程的消息缓冲队列(每个进程都有一个接收消息的消息缓冲队列,每次取消息就从缓冲队列中取)当中去。
  • 间接通信方式:消息发到邮箱中,接收方道邮箱中取消息。

image-20220722123841218

总结

image-20220722123905306

相关文章
|
2天前
|
Linux
【Linux】命名管道的创建方法&&基于命名管道的两个进程通信的实现
【Linux】命名管道的创建方法&&基于命名管道的两个进程通信的实现
|
2天前
|
Linux
【Linux】进程通信之匿名管道通信
【Linux】进程通信之匿名管道通信
|
2天前
|
存储 安全 Linux
【Linux】详解进程通信中信号量的本质&&同步和互斥的概念&&临界资源和临界区的概念
【Linux】详解进程通信中信号量的本质&&同步和互斥的概念&&临界资源和临界区的概念
|
3天前
|
算法 Linux 调度
深入理解操作系统:进程管理与调度策略
【5月更文挑战第10天】 本文将深入探讨操作系统的核心机制之一:进程管理。我们将从进程的概念入手,解析其生命周期,进而展开对操作系统中进程调度策略的详细讨论。文中不仅涉及理论分析,还结合了现代操作系统如Linux的实际案例,以期提供一个全面而深刻的视角。通过阅读本文,读者将对操作系统如何高效地管理计算资源有更深层次的理解。
|
6天前
|
算法 调度 UED
深入理解操作系统的进程调度策略
【5月更文挑战第7天】 在现代计算机系统中,操作系统的核心职责之一是确保CPU资源的有效分配与利用。本文旨在探讨操作系统中的进程调度策略,并分析其对系统性能的影响。我们将从调度的基本概念出发,介绍几种常见的调度算法,如先来先服务、短作业优先和轮转调度等,并对它们的优缺点进行比较。此外,文章还将讨论多级反馈队列调度策略,它结合了多种调度方法的优点,以适应不同类型的工作负载。通过深入分析,本文旨在为读者提供一个清晰的框架,以理解操作系统如何管理并发执行的多个进程,以及这些管理策略如何影响系统的整体效率和响应性。
|
7天前
|
算法 调度
深入理解操作系统:进程管理与调度策略
【5月更文挑战第5天】 在现代计算机系统中,操作系统的核心职能之一是高效地管理计算机资源,尤其是处理多个并发运行的程序(进程)。本文将探讨操作系统中的进程管理机制,重点分析不同的进程调度策略及其对系统性能的影响。我们将从理论和实践的角度出发,比较各种调度算法的优劣,并提出在特定场景下如何选择最合适的调度策略。通过深入剖析进程调度的原理和实现细节,旨在为读者提供全面而深刻的认知框架,以便于更好地理解和优化操作系统的性能。
|
9天前
|
算法 调度 云计算
深入理解操作系统:进程管理与调度策略
【5月更文挑战第4天】本文将深入探讨操作系统中的关键组成部分——进程管理,以及如何通过有效的进程调度策略提升系统性能。我们将剖析进程的概念、状态转换和控制,并详细分析不同的进程调度算法,如先来先服务(FCFS)、短作业优先(SJF)和多级反馈队列(MLFQ)。文章旨在为读者提供一个清晰的框架,以理解操作系统如何处理并发任务,保证系统资源的有效利用和响应性。
|
11天前
|
负载均衡 算法 调度
深入理解操作系统:进程管理与调度策略
【5月更文挑战第2天】 在现代计算环境中,操作系统的核心职能之一是确保系统资源的高效利用和任务的顺畅执行。本文将探讨操作系统中的关键组件——进程管理及其调度策略。通过对进程的概念、生命周期以及调度算法的详细分析,我们旨在揭示操作系统如何协调多个运行中的程序,以实现快速响应和资源优化。文章还将讨论不同类型操作系统(如实时操作系统和通用操作系统)中进程调度策略的差异性及其对系统性能的影响。通过理论与实践相结合的方式,本文为读者提供了一个全面了解操作系统进程管理的平台。
|
11天前
|
负载均衡 算法 大数据
深入理解操作系统:进程管理和调度策略
【5月更文挑战第1天】 在现代操作系统的核心功能中,进程管理与调度策略是确保系统高效、稳定运行的关键。本文旨在深入剖析操作系统中的进程概念、进程状态转换以及进程调度机制。通过对先进先出、最短作业优先和时间片轮转等调度算法的比较分析,我们不仅揭示了它们在资源分配和任务执行中的应用,还讨论了它们在不同场景下的表现和局限性。此外,文章还将探讨多核处理器环境下的调度策略演变,以及未来操作系统在进程管理方面可能面临的挑战。
|
12天前
|
算法 调度
深入理解操作系统中的进程调度策略
【5月更文挑战第1天】在多任务操作系统中,进程调度策略是决定系统性能和响应能力的关键因素。本文将详细探讨现代操作系统中常见的进程调度算法——从简单的先来先服务(FCFS)到复杂的多级反馈队列(MLFQ),以及实时系统中的立即模式和时间片轮转(RR)。我们将分析每种调度策略的工作原理、优势、局限性以及它们如何影响操作系统的整体表现。通过比较不同策略在各种负载场景下的表现,读者将能更好地理解如何为特定应用选择最合适的调度策略。