news 2026/6/10 5:20:26

操作系统(15)--进程与线程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
操作系统(15)--进程与线程

进程与线程的区别

进程:进行资源分配与调度的基本单位

线程:程序运行的基本单位

线程是进程的指向单位,一个进程可以运行多个进程,多个线程共享同一块内存空间。

资源开销:

一个进程拥有独立的内存空间,创建和销毁开销较大。进程上下文切换开销较大。

多个线程共享同一块内存空间,创建和销毁开销小,线程间的上下文切换小

通信:

进程之间相互隔离,相互通信需要特殊通道。

线程共享相同的那日村空间,他们之间可以直接共享数据,通信更加方便。

安全性:

进程之间相互隔离,一个进程崩溃不影响其它进程

线程之间共享相同的内存空间,一个线程的错误可能会影响所有线程的稳定。

并发与并行的区别

并发:在某个时间段执行多个任务,即交替执行。

对于一个单核处理器,计算机能在同一时间段内执行多个任务,主要是通过分配时间片的方式,让一个任务执行一段时间,然后切换到另一个任务,再运行一段时间,不同任务会这样交替往复地一直执行下去。这个过程也被称作进程或线程的上下文切换。并发通常与任务之间的交替执行和任务调度有关。

并行:在某一时刻同时执行多个任务,同时执行。

对于CPU来说,指的是在CPU的多个核心上同时执行不同的任务,而不用通过分配时间片的方式进行运行。在并行系统中,多个处理单元可以同时处理独立的子任务,从而加速整体任务的完成。

用户态与内核态

用户态:用户态是CPU运行用户程序的一种模式,权限较低,不能直接访问硬件资源,用户态需要通过系统调用的方式请求内核态服务。

内核态:内核态是CPU运行操作系统内核的一种模式,拥有最高权限,可以直接访问硬件资源,内核态负责管理系统的核心功能,如进程调度、内存管理、设备驱动等。

通常,内核态不直接运行用户程序(即便内核态可以访问用户空间),而是通过系统调用机制安全地与用户空间交互。具体来说,当用户程序需要执行某些特权操作时,它会通过系统调用(System Call)请求操作系统的服务。系统调用会触发从用户态到内核态的切换,此时CPU会执行操作系统提供的服务代码来完成用户请求的操作,执行完成后再转换为用户态继续执行用户程序。这种设计确保了系统的安全性与稳定性,同时实现了用户程序与内核的隔离。

进程间的通信方式

进程间的通信有:信号,信号量,管道,共享内存,消息队列,套接字等

信号

  • 本质:一种异步通知机制,用于通知进程某个事件已经发生(如SIGINT(Ctrl+C),SIGKILL)。详细可看这篇文章Linux 13 信号

  • 特点:开销小,但传递的信息量有限(只有一个信号编号)。类似于“打断”。

  • 典型用途:进程控制、异常处理。

信号量

  • 本质:一种计数器,用于控制多个进程对共享资源的访问,实现同步与互斥。 详细可看这篇文章LINUX15--进程间的通信-信号量

  • 特点:主要解决进程/线程的同步问题,防止竞态条件。它本身不传递数据,而是协调访问顺序。

  • 典型用途:保护临界区,实现生产者-消费者模型。

管道

  • 本质:一种单向的字节流通信通道。 详细可看这篇文章LINUX14 进程间的通信 - 管道

    • 匿名管道:用于具有亲缘关系(如父子、兄弟)的进程间通信。生命周期随进程。

    • 命名管道 (FIFO):有文件名,存在于文件系统中,可用于无亲缘关系的进程通信。

  • 特点:遵循“先进先出”原则,数据读完即弃。

  • 典型用途:Shell命令中的|(竖线)就是匿名管道,用于连接前一个命令的输出和后一个命令的输入。

共享内存

  • 本质:在内存中开辟一块区域,映射到多个进程的地址空间,这些进程可直接读写该区域。详细可看这篇文章Linux16-进程间的通信--共享内存

  • 特点速度最快的IPC方式,因为数据不需要在内核和用户空间之间复制。但需要配合信号量等机制进行同步,以防止数据混乱。

  • 典型用途:需要高频、大数据量交换的场景,如大型软件模块间、数据库缓存。

消息队列

  • 本质:一个存放在内核中的消息链表。进程可以向队列中添加(写)或取出(读)指定格式的消息。详细可看这篇文章Linux17 进程间的通信 消息队列

  • 特点

    • 消息是有格式、有类型的。

    • 通信可以是异步的(发送方不必等待接收方)。

    • 独立于进程存在(进程结束,队列可能仍保留)。

  • 典型用途:需要按特定类型处理、或需要解耦生产者和消费者的进程间通信。

套接字

  • 本质:通信端点的抽象,是最通用的IPC机制。

  • 特点

    • 不仅可用于同一台机器上的进程间通信(本地套接字,如Unix Domain Socket),更主要用于跨网络的进程通信(网络套接字,如TCP/IP Socket)。

    • 功能强大,支持不同的协议、通信模式和网络拓扑。

  • 典型用途:网络编程、C/S(客户端/服务器)架构、分布式系统。

特性通信方向亲缘要求数据形式主要目的性能
信号单向信号编号事件通知极高
信号量-计数器值同步/互斥
管道单向匿名管道需要字节流数据传递
共享内存双向结构化/任意大数据交换最高
消息队列双向有格式消息异步通信
套接字双向字节流通用/网络通信中(本地很高)

孤儿进程与僵尸进程

孤儿进程:一个进程中父进程意外终止,子进程仍然执行,操作系统自动接管孤儿进程,使其成为init的子进程,它的退出状态由init负责。

僵尸进程:

当子进程终止,但其父进程并没有调用获取子进程的退出状态时,子进程的进程表仍然留在系统中;也就是说:一个进程终止,但是并未被清除。僵尸进程会占用系统有限表项,所以要避免僵尸进程的堆积。

处理方法:调用wait或 waitpid,对子进程的退出状态回收

详细内容可查看这篇文章L8-fotk进程复制

进程间的状态

进程的主要状态包括新建就绪运行阻塞(等待)、结束,以及一些其他细化的状态。

新建 → 就绪
  • 操作系统为新进程分配完内存、标识符等资源,进程具备执行条件。
就绪 → 运行
  • 当调度程序选择一个就绪进程,并为其分配 CPU 时,进程从就绪状态转变为运行状态。
  • 例如,当时间片轮到某个就绪进程,操作系统的调度器将 CPU 分配给它。
运行 → 就绪
  • 当正在运行的进程因为时间片耗尽或者被抢占而暂停执行时,会返回到就绪状态。
  • 例如,在多任务环境下,如果有更高优先级的进程需要运行,正在运行的进程会被抢占并切换到就绪状态。
运行 → 阻塞
  • 当进程需要等待某个事件时,例如等待 I/O 完成、等待资源、等待信号等,会从运行状态转变为阻塞状态。
  • 例如,进程请求一个文件的 I/O 操作时,由于 I/O 操作比较慢,需要等待完成,进程会从运行状态进入阻塞状态。
阻塞 → 就绪
  • 当阻塞的事件完成时,例如 I/O 操作结束、等待的资源可用等,阻塞进程会重新进入就绪状态。
  • 例如,某进程在等待 I/O 操作,当操作完成后,该进程被唤醒,进入就绪状态。

详细内容可看操作系统(11)进程描述与控制--5种IO状态(1)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 14:33:07

亲测好用!10款AI论文工具测评:本科生毕业论文必备

亲测好用!10款AI论文工具测评:本科生毕业论文必备 2025年AI论文工具测评:为什么你需要这份榜单? 随着人工智能技术的不断发展,越来越多的本科生开始借助AI工具提升论文写作效率。然而,面对市场上琳琅满目的…

作者头像 李华
网站建设 2026/6/10 12:43:41

冲床自动送料全套程序一套,含信捷plc及威纶通触摸屏有详细注释文件,有一定基础的可自行制作,已...

冲床自动送料全套程序一套,含信捷plc及威纶通触摸屏有详细注释文件,有一定基础的可自行制作,已实际应用多年,视频即现场视频,软件产品具有可复制性冲床自动送料系统里藏着不少硬核技术活儿,今天就带大伙儿拆…

作者头像 李华
网站建设 2026/6/10 6:21:34

论文重复率超过30%?学会这五个实用技巧,快速将查重率降到合格线以下

最新研究数据揭示,全球气温上升与极端气候事件的发生频率呈现出明显的正相关性,这一发现进一步验证了气候系统变化对气象异常模式产生的深远影响。 首先,咱们聊聊人工降重的基本功 人工智能领域的快速发展已成为多项调研报告的重点关注对象…

作者头像 李华
网站建设 2026/6/10 5:28:07

颠覆性7款AI论文神器!20分钟万字问卷,真实参考文献一键搞定!

还在为开题报告抓耳挠腮?还在为文献综述熬夜检索?还在为导师的修改意见一筹莫展?如果你的答案是肯定的,那么这篇文章就是你学术生涯的转折点。作为一名深耕学术领域的资深研究者,我耗时数月,深度测评了市面…

作者头像 李华
网站建设 2026/6/10 10:37:03

2025模温机品牌实力榜:防爆非标定制与高精度控温企业盘点

2025模温机品牌实力榜:防爆非标定制与高精度控温企业盘点在工业制造迈向精密化与智能化的今天,模温机已不再是简单的加热设备,而是保障产品质量、提升生产效率的核心温控枢纽。尤其在化工合成、复合材料成型、精密注塑等高端领域,…

作者头像 李华
网站建设 2026/6/10 12:25:32

【毕业设计】基于机器学习+深度学习的二手车价格预测及应用实现

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华