news 2026/3/8 6:42:07

进程与线程

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
进程与线程

进程控制块

为了描述和控制进程的运行,系统为每个进程定义了一个数据结构——进程控制块(PCB)。 它是进程重要的组成部分,它记录了操作系统所需的、用于描述进程的当前状态和控制进程的全部信息。 操作系统就是根据进程的PCB来感知进程的存在,并依此对进程进行管理和控制。 PCB是进程存在的唯一标识。

PCB主要包括如下4方面的信息

1.进程标识信息

进程标识信息用于唯一地标识一个进程,一个进程通常有两种标识符:内部标志符&外部标识符。

内部标志符: 由操作系统赋予每个进程的一个唯一的数字标识符,它通常为一个进程的序号,方便了系统使用。

外部标识符: 由创建者产生,是由字母和数字组成的字符串,为用户进程访问该进程提供方便。

为了描述进程间的家族关系,通常还设有父进程标识和子进程标识,以表示进程间的家族关系。

此外,还设有用户名或用户标识号表示该进程属于哪个用户。

2.处理机状态

处理机状态信息主要由处理机的各个寄存器内的信息组成。 进程运行时的许多信息均存放在处理机的各种寄存器中。其中程序状态字(PSW)是相当重要的,处理机根据程序状态寄存器中的PSW来控制程序的运行。

3.进程调度信息

PCB中还存放着一些与进程调度有关的信息。

- 进程状态。 标识进程的当前状态(就绪、运行、阻塞),作为进程调度的依据。

- 进程优先级。 表示进程获得处理机的优先程度。

- 为进程调度算法提供依据的其他信息。例如,进程等待时间、进程已经获得处理器的总时间和进程占用内存的时间等。

- 事件。 是指进程由某一状态转变为另一状态所等待发生的事件。(比如等待I/O释放)

4.进程控制信息

- 程序和数据地址。 是指组成进程的程序和数据所在内存或外存中的首地址,以便在调度该进程时能从其PCB中找到相应的程序和数据。

- 进程同步和通信机制。 指实现进程同步和通信时所采取的机制,如消息队列指针和信号量等,他们可以全部或部分存在PCB中。

- 资源清单。 列出了进程所需的全部资源已经分配给该进程的资源,但不包括CPU.

- 链接指针。它给出了处于同一队列中的下一个PCB的首地址。

总结:

对于多道程序环境,系统中通常存在多个PCB,这些PCB有的已经被占用,有的处于空闲状态。为了方便对这些PCB的查找,通常采用链表或索引将PCB管理起来。 无论采用哪种管理方式,均是将具有相同状态进程的PCB组成一个队列,或是根据进程进入该状态的原因将其组成一个队列,设置相应的队首指针,这样就可以非常方便的访问各个进程的PCB。

进程与线程的关系和区别

什么是进程

先给一个定义进程是一个具有一定独立功能的程序在一个数据集合上依次动态执行的过程。进程是一个正在执行的程序的实例,包括程序计数器、寄存器和程序变量的当前值。

进程有哪些特征?

  1. 进程依赖于程序运行而存在,进程是动态的,程序是静态的;
  2. 进程是操作系统进行资源分配和调度的一个独立单位(CPU除外,线程是处理器任务调度和执行的基本单位);
  3. 每个进程拥有独立的地址空间,地址空间包括代码区、数据区和堆栈区,进程之间的地址空间是隔离的,互不影响。

什么是线程?

进程的创建、销毁与切换存在着较大的时空开销,因此人们急需一种轻型的进程技术来减少开销。在80年代,线程的概念开始出现,线程被设计成进程的一个执行路径,同一个进程中的线程共享进程的资源,因此系统对线程的调度所需的成本远远小于进程。

进程与线程的区别总结:

本质区别:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位。

包含关系:一个进程至少有一个线程,线程是进程的一部分,所以线程也被称为轻权进程或者轻量级进程。

资源开销:每个进程都有独立的地址空间,进程之间的切换会有较大的开销;线程可以看做轻量级的进程,同一个进程内的线程共享进程的地址空间,每个线程都有自己独立的运行栈和程序计数器,线程之间切换的开销小。

影响关系:一个进程崩溃后,在保护模式下其他进程不会被影响,但是一个线程崩溃可能导致整个进程被操作系统杀掉,所以多进程要比多线程健壮。

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

算法:四数相加||

题目(四数相加 II)本质是:给你 4 个数组 A、B、C、D统计有多少个四元组 (i, j, k, l)满足A[i] B[j] C[k] D[l] 0 关键点数组长度一般 ≤ 200暴力 4 重循环是 O(n^4) → 必超时核心思想:把「四数相加」拆成「两数相加 两数相加…

作者头像 李华
网站建设 2026/3/6 11:36:38

差分信号布线在PCB原理图设计中的应用详解

以下是对您提供的博文内容进行 深度润色与专业重构后的版本 。本次优化严格遵循您的全部要求: ✅ 彻底去除AI痕迹,语言自然、老练、有工程师现场感 ✅ 摒弃“引言/核心/应用/总结”等模板化结构,以 真实设计逻辑流 组织全文 ✅ 所有技…

作者头像 李华
网站建设 2026/2/19 19:33:34

告别环境配置烦恼!YOLOE镜像开箱即用实测分享

告别环境配置烦恼!YOLOE镜像开箱即用实测分享 你有没有过这样的经历:凌晨两点,对着终端里第7次报错的 ImportError: cannot import name MultiScaleDeformableAttention 发呆;CUDA版本、PyTorch编译方式、CLIP分支兼容性……光是…

作者头像 李华
网站建设 2026/3/4 10:23:40

5个专业级技巧:DLSS Swapper如何优化游戏超采样性能

5个专业级技巧:DLSS Swapper如何优化游戏超采样性能 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 在3A游戏画质持续提升的当下,玩家常面临"画质-性能"的两难选择:开启DL…

作者头像 李华
网站建设 2026/3/8 3:22:38

流媒体下载难题终结者:N_m3u8DL-RE如何让视频保存变得简单高效

流媒体下载难题终结者:N_m3u8DL-RE如何让视频保存变得简单高效 【免费下载链接】N_m3u8DL-RE 跨平台、现代且功能强大的流媒体下载器,支持MPD/M3U8/ISM格式。支持英语、简体中文和繁体中文。 项目地址: https://gitcode.com/GitHub_Trending/nm3/N_m3u…

作者头像 李华
网站建设 2026/3/3 11:23:12

3分钟上手BetterNCM Installer:网易云音乐插件管理的免费高效工具

3分钟上手BetterNCM Installer:网易云音乐插件管理的免费高效工具 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 你是否遇到过网易云音乐插件安装繁琐、版本不兼容的问题&…

作者头像 李华