深入解析现代计算系统中的进程与线程:基础、生命周期和区别
创作时间:
作者:
@小白创作中心
深入解析现代计算系统中的进程与线程:基础、生命周期和区别
引用
CSDN
1.
https://m.blog.csdn.net/lph159/article/details/138269829
1. 进程和线程的基础
进程:是计算机中已运行程序的实例,是操作系统分配资源和调度的基本单位。
线程:是进程的一个实例,是 CPU 调度和执行的单位,一个进程可以包含一个或多个线程,线程间共享进程的资源。
一个进程由以下资源组成:
文本段(Text Segment):包含程序编译后的机器代码。这部分是进程内存空间的核心,执行的代码在这里运行。
数据段(Data Segment):存储全局变量、静态变量、常量以及未初始化的变量。
堆(Heap):用于动态内存分配,当程序运行过程中需要更多的内存时,通过
malloc或new操作符在运行时创建对象,内存从堆上分配。栈(Stack):用于存储临时数据,如函数的局部变量、函数参数、返回地址等。
在内存中,堆和栈的物理或虚拟地址分配是由操作系统的内存管理器控制的,它们在进程的地址空间中通常被安排在两端,中间留有足够的空间以供扩展。在许多系统中,栈从高地址向低地址增长(即向堆的方向),而堆则从低地址向高地址增长,两者在内存中相向而行,使可用空间的灵活性最大化。
2. 进程状态和生命周期
进程在其生命周期中的确会经历不同的状态,这些状态反映了进程从创建到终止的整个过程。
开始(Start):操作系统在这一阶段为进程分配必要的资源和内存,并初始化进程控制块(PCB)
就绪(Ready):
- 进程在这一状态具备了运行的所有条件(除了CPU资源外)
- 进程也可以从运行状态转回就绪状态(通常是因为它的时间片已用完或更高优先级的进程需要执行)
- 运行(Running):
- 进程正在处理器上执行其指定的操作。
- 如果进程需要等待其他资源(如I/O操作、文件等)或者执行完毕,会结束运行状态。
- 等待(Waiting or Blocked):
- 当进程需要等待某一事件(例如输入/输出操作完成、信号量操作、获取资源失败等)时,它会转入等待状态。此时进程不占用处理器资源,即使有空闲的处理器也不会被执行(因为要先转到就绪态)
- 一旦等待的事件被满足,进程将转回就绪状态,再次等待处理器的调度
- 终止(Terminated or Exit):
- 一旦进程完成了它的执行任务或者被操作系统强制终止,它就进入终止状态。在此状态下,操作系统回收分配给进程的所有资源,包括内存、打开的文件等,并清理其进程控制块。
3. 进程和线程的区别
- 资源共享(主要区别):
- 进程:每个进程都有自己独立的内存空间,包括代码、数据和堆等。因此,不同进程之间的资源是不共享的,除非通过进程间通信(IPC)机制如管道、共享内存或信号等。
- 线程:同一进程中的所有线程共享相同的内存空间和资源,如文件描述符和全局变量等。这种共享使得数据的交换和通信更为方便和高效。
- 开销与性能:
- 进程:创建新进程(重量级操作)需要复制父进程的资源和初始化新的内存空间,这需要较大的开销。进程切换也需要更多的时间和资源,因为它涉及到保存和加载不同进程的内存状态。
- 线程:线程作为轻量级进程,创建和销毁的开销小,切换速度快,因为它们共享相同的内存和资源。线程切换主要涉及保存和加载寄存器、栈和程序计数器的状态。
- 执行与调度:
- 进程切换(需要与操作系统交互):在进程切换时,操作系统需要进行完整的上下文切换,包括内存地址空间的转换,这需要与操作系统密切交互,导致切换时间较长。
- 线程切换:线程之间的切换不需要改变内存地址空间,只需调整少量寄存器和堆栈信息。因此,线程切换的开销远小于进程切换。
- 变量和同步:
- 进程:每个进程操作自己的私有变量,进程间的数据隔离提供了更好的数据安全性,但这也意味着进程间的通信和数据交换更为复杂。
- 线程:由于线程共享内存,一个线程对共享数据的修改可以被同一进程中的其他线程立即看到。这提供了高效的数据交流方式,但也带来了同步和数据一致性的挑战。
热门推荐
十款没有网也能爽玩的单机游戏推荐
人参的生长环境(从土壤到气候)
发动机飞轮的磨损现象、原因及故障排除
如何检测曲轴?这些检测方法有哪些实际应用?
智能汽车健康监测系统:保障行车安全
春天去哪儿看花?这份全国春日赏花地图带你找找灵感
清江鱼与鲶鱼——品尝美味的差异
选择正确的一次性杯子尺寸
古诗四字取名寓意
纣王:暴君还是背锅侠?揭开历史上真实的商纣王!
万一没虫吃宝塔糖有害处吗
坚果很好,但这1种千万别吃!
用呼吸摆脱压力
个人当理性参与超长期国债投资
举一反三:从传统智慧到现代创新思维
举一反三:从古至今的智慧传承与创新应用
杨桃伤肾是真的吗?医生的专业解答来了
舟山市重点大学名单:含浙江海洋大学
豆浆机能榨果汁吗?详解豆浆机榨果汁的可行性与方法
营养师的一日三餐搭配表包含哪些食物?
探索编程开发的魅力:构建你的创意世界
51单片机数码管显示原理与实现详解
结构性存款与股票的投资差异
二月初十土地诞,做1事吃2样忌3事,寓意:春回大地,五谷丰登
灯笼果是什么?产地、功效与食用方法全解析
如何评估房屋贷款利率的合理性?这些利率如何影响您的财务规划?
40℃+能逃去哪?马尾这5个避暑地请收藏
如何使用抗过敏药物?
宝宝健脾养胃助消化的粥有什么
QwQ:思忖未知之界