多线程(一) ~ 进程与线程的区别
文章目录
- 一. 计算机简单介绍
- (一) 结构
- (二) CPU
- (三) GPU
- (四) 操作系统内核进程管理功能
- 二. 进程(process)
- (一)定义
- (二)PCB
- 三. 线程(Thread)
- 四. 进程与线程的区别
一. 计算机简单介绍
(一) 结构
计算机的基本结构冯诺依曼体系结构
冯诺依曼体系结构是现代计算机的基础架构,由数学家冯·诺依曼于1945年提出,其核心包括二进制逻辑、程序存储执行及计算机五大组成部分(运算器、控制器、存储器、输入设备、输出设备)。
(二) CPU
又称为中央处理器,是计算机的核心部分,现代CPU为多核CPU,有计算与存储功能
CPU的寄存器比内存储存速度更快,空间比内存更小,是计算的主要工具
(三) GPU
GPU全称图形处理器,是显卡的核心组件,负责处理图像渲染、几何计算等图形相关任务。它通过大规模并行处理提升计算效率,与CPU(中央处理器)形成互补
(四) 操作系统内核进程管理功能
操作系统内核是操作系统的核心部分,负责管理计算机的硬件资源和提供基础服务,是应用程序与硬件之间的中间层。其功能复杂且关键,对于进程管理主要可分为以下几大核心功能:
- 进程创建与销毁:内核负责启动新进程(如用户双击应用程序)、终止无用进程(如用户关闭程序),并管理进程的状态(就绪、运行、阻塞等)
- 进程调度:通过调度算法(如时间片轮转、优先级调度、多级反馈队列等),决定哪个进程获得 CPU 资源,实现多任务并发执行(宏观上多个程序同时运行)
- 线程管理:现代内核支持线程(轻量级进程),负责线程的创建、调度和同步,减少进程切换的开销
二. 进程(process)
(一)定义
在操作系统中一段程序运行起来就叫做进程
进程的属性由进程控制块PCB组织起来,是一个很大的结构体,这是因为大多操作系统是由C语言写的
进程是操作系统资源分配的基本单位
(二)PCB
属性:
- PID: 一段进程的身份标识符,每个进程都拥有独特的PID
- 内存指针: 进程运行过程中需要内存资源,所以要知道对应的指令位置及指令数据所存储的地址
- 文件描述符表:进程运行过程中需要和各种资源来打交道(硬盘,网卡等),操作系统会把这些资源的数据以文件的形式来组织
- 状态:进程状态分为两种->
就绪状态:进程正在CPU运行或者已准备好随时都可以去CPU运行的状态
阻塞状态:CPU切换运行该进程受阻,该状态下进程不能到CPU上运行- 优先级:每个进程都有对应的优先级,由操作系统来决定
- 上下文:现代CPU是靠切换形式来实现多进程的并发执行,所以每次该进程的指令运行一部分后,将执行状态从寄存器写入内存中保存,接着切换到另一进程执行另一进程的指令,等待一段时间后切换到该进程时,要从内存中读取该进程上一次执行状态到寄存器,然后从该位置继续执行
- 记账信息:记录每个进程使用CPU的时间和资源大小,确保不会让某一进程长时间吃不到CPU资源
三. 线程(Thread)
线程相比于进程是一个轻量级进程
每个线程相当于进程中的一段运行指令
线程与线程之间会相互影响,引起线程安全问题
一个进程中,多个线程共用创建进程时分配的资源,省去了调用资源与分配资源及销毁资源的过程
线程中拥有与调度相关的属性:状态,优先级,上下文,记账信息
线程是操作系统调度执行的基本单位
一个进程包含多个线程
四. 进程与线程的区别
进程 | 线程 |
---|---|
操作系统资源分配的基本单位 | 操作系统调度执行的基本单位 |
进程与进程之间串行执行互不影响 | 线程与线程之间可能会相互影响 |
一个进程包含可能包含多个线程,开辟进程与销毁进程CPU开销比较大 | 线程的创建会共享进程的资源配置(内存/网络),是一个轻量级进程 |
一个进程就是一个程序 | 一个线程就是一段运行指令 |
进程包含线程 | 线程属于进程的一部分 |
进程有⾃⼰的内存地址空间 | 线程只独享指令流执⾏的必要资源,如寄存器和栈 |