深入解析现代计算系统中的进程与线程:基础、生命周期和区别
创作时间:
作者:
@小白创作中心
深入解析现代计算系统中的进程与线程:基础、生命周期和区别
引用
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)机制如管道、共享内存或信号等。
- 线程:同一进程中的所有线程共享相同的内存空间和资源,如文件描述符和全局变量等。这种共享使得数据的交换和通信更为方便和高效。
- 开销与性能:
- 进程:创建新进程(重量级操作)需要复制父进程的资源和初始化新的内存空间,这需要较大的开销。进程切换也需要更多的时间和资源,因为它涉及到保存和加载不同进程的内存状态。
- 线程:线程作为轻量级进程,创建和销毁的开销小,切换速度快,因为它们共享相同的内存和资源。线程切换主要涉及保存和加载寄存器、栈和程序计数器的状态。
- 执行与调度:
- 进程切换(需要与操作系统交互):在进程切换时,操作系统需要进行完整的上下文切换,包括内存地址空间的转换,这需要与操作系统密切交互,导致切换时间较长。
- 线程切换:线程之间的切换不需要改变内存地址空间,只需调整少量寄存器和堆栈信息。因此,线程切换的开销远小于进程切换。
- 变量和同步:
- 进程:每个进程操作自己的私有变量,进程间的数据隔离提供了更好的数据安全性,但这也意味着进程间的通信和数据交换更为复杂。
- 线程:由于线程共享内存,一个线程对共享数据的修改可以被同一进程中的其他线程立即看到。这提供了高效的数据交流方式,但也带来了同步和数据一致性的挑战。
热门推荐
冬季高发皮肤病来袭,如何预防?
轴承座是什么东西 轴承座的作用和功能
剧版《哈利·波特》大举选角:多元化与包容性新篇章
手机视频拍摄技巧全攻略:从入门到精通
维多利亚时代
世界技能大赛怎么参加?
App数据的爬取
湖人负于篮网,三名角色球员合砍60分,抡冒烟也带不动拉胯的大哥
正宗山东杂粮煎饼的制作方法(传承山东美食文化)
网络教育:灵活学习新选择,提升学历与技能的有效途径
阴阳师协同对弈阵容搭配攻略
红外热成像摄像机在视频监控系统的应用(边防、海防、森林防火、电力监控利器)
解析电容笔的工作原理及其关键技术点
入市后,风、光资产估值的影响因素!
食用菌贮藏秘籍,不同品种的最佳保存方法,让你的食材新鲜如初!
表白被拒后,如何高情商处理这段感情?
如何标注电阻器的阻值?四种方法详解
英国人的眼睛是什么颜色的?
马佳,夺得女子50米自由泳S11级金牌,再次打破了由她保持的世界记录
舒适到极致的主卧套房设计| 15款卧室设计
通过SDRAM调整提升树莓派性能的实用指南
通过SDRAM调整提升树莓派的性能
如何根据五行理论为孩子起一个吉祥的名字
公积金个人住房贷款有哪些
北京华天启动“38口行动计划”
【趣味地理】中国茶叶地图:全国茶到底有多少种?追随茶的一路
小孩能吃全麦面包吗
网上如何申领失业保险金?金坛失业金手机上申请流程及入口
在ADS中进行稳定性分析的多种理论方法-使用环路增益和奈奎斯特图
把房子过户给未成年孩子,可以吗?