26.进程空间和线程空间
概念
進(jìn)程:是資源分配和調(diào)度的基本單位。
線程:是進(jìn)程的一個實(shí)體,是cpu進(jìn)行調(diào)度的基本單位,是比進(jìn)程更小的獨(dú)立運(yùn)行的基本單位。
線程運(yùn)行需要內(nèi)存空間,包括線程程序的數(shù)據(jù)空間、存儲空間、運(yùn)行空間等。
進(jìn)程有獨(dú)立的進(jìn)程地址空間,線程沒有獨(dú)立的線程地址空間,但是多個線程共享同一個進(jìn)程的地址空間。
舉個例子:每打開一個QQ,就相當(dāng)于重新分配一個進(jìn)程空間。我有兩個QQ ,就有兩個進(jìn)程空間。但問題來了,我們程序員是不關(guān)心物理地址的。那這兩個QQ運(yùn)行的空間會不會發(fā)生沖突?答案是不會。因?yàn)镃PU里的MMU(內(nèi)存管理單元)里有兩個QQ的邏輯-物理地址的映射表。但我們切換進(jìn)程的時候,內(nèi)核就會自動跟新映射表,用戶空間就會自動切換。
我們舉個例子:cpu相當(dāng)于一個老板。它有很多家公司(進(jìn)程),但是每個時刻只能去打理一家公司(進(jìn)程)。每一家公司(進(jìn)程)里有很多的員工(線程),公司的辦公室(進(jìn)程空間)是這家公司的員工(進(jìn)程)能夠共享使用的。但是這個老板的不同公司(進(jìn)程)之間的辦公室(進(jìn)程空間)是相互獨(dú)立的,不共享的。每一個辦公室里都有很多的會議室,每間會議室都會有人數(shù)限制(互斥鎖),所以在辦公室門口有放了幾把鑰匙。來一個人就拿一把鑰匙進(jìn)入,鑰匙就會少一把,出來后再把鑰匙放回去。這里的鑰匙數(shù)量就是信號燈。
總結(jié)
以上是生活随笔為你收集整理的26.进程空间和线程空间的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 25.计算机和计算器的区别
- 下一篇: *27.硬实时和软实时