当前位置:网站首页>2020-08-29: process thread differences, in addition to the inclusion relationship, the underlying details?

2020-08-29: process thread differences, in addition to the inclusion relationship, the underlying details?

2020-11-06 21:50:00 Fuda Dajia architect's daily question

Fogo's answer 2020-08-29:

1. Fundamental difference
process : The minimum unit of resource scheduling .
Threads :CPU Scheduling minimum unit .

2. address space
process : The process has its own address space , Every time a process is started , The system will allocate address space to it , Create data tables to maintain code snippets 、 Stack and data segments .
Threads : Threads have no independent address space , Threads of the same process share the address space of this process .

3. Memory and files share
process : When you create a process ,mm_struct It will point to another address , Use copy-on-write replicate .
Threads : And when you create a thread ,mm_struct Will point to the same virtual memory area of the parent process , So there will be resource conflicts .

Regardless of thread and process , stay linux The creation in is very fast .

4. block
process : Process control block PCB. A process uses ProcessControlBlock On the one entry Record its basic information (pid,state,priority etc. ), The process will be allocated a logical memory address space by the operating system , That is, it has a memory space for use .
Threads : Thread control block TCB. A thread is a unit within a process that is responsible for executing a task , This unit uses ThreadControlBlock On the one entry Record its basic information (tid,state,priority,counter,register info etc. ), This unit has its own stack For mission execution .

5. overhead
process : Process execution cost is high .
Threads : Low thread execution cost .

6. Switching speed
process : Switching is relatively slow .
Threads : Switching is relatively fast .


Comment on

版权声明
本文为[Fuda Dajia architect's daily question]所创,转载请带上原文链接,感谢