2020-08-29:进程线程的区别,除了包含关系之外的一些区别,底层详细信息?

举报
福大大架构师每日一题 发表于 2020/08/29 22:15:47 2020/08/29
【摘要】 福哥答案2020-08-29:1.根本区别进程:资源调度最小单位。线程:CPU调度最小单位。2.地址空间进程:进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间,建立数据表来维护代码段、堆栈段和数据段。线程:线程没有独立的地址空间,同一进程的线程共享本进程的地址空间。3.内存和files共享进程:当创建一个进程的时候,mm_struct会指向另外一块地址,使用copy-on-...

福哥答案2020-08-29:


1.根本区别

进程:资源调度最小单位。

线程:CPU调度最小单位。


2.地址空间

进程:进程有自己独立的地址空间,每启动一个进程,系统都会为其分配地址空间,建立数据表来维护代码段、堆栈段和数据段。

线程:线程没有独立的地址空间,同一进程的线程共享本进程的地址空间。


3.内存和files共享

进程:当创建一个进程的时候,mm_struct会指向另外一块地址,使用copy-on-write进行复制。

线程:而创建一个线程的时候,mm_struct会指向父进程的同一块虚拟内存区域,所以会有资源冲突问题。


不论线程和进程,在linux中的创建都是很快速的。


4.块

进程:进程控制块PCB。一个进程用ProcessControlBlock上的一个entry记录其基本信息(pid,state,priority等),进程会被操作系统分配一个内存逻辑地址空间,即其拥有一段内存空间供使用。

线程:线程控制块TCB。线程是进程内负责执行一项任务的单元,这个单元用ThreadControlBlock上的一个entry记录其基本信息(tid,state,priority,counter,register info等),这个单元有着自己的stack来用于任务执行。


5.系统开销

进程:进程执行开销大。

线程:线程执行开销小。


6.切换速度

进程:切换相对慢。

线程:切换相对快。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。