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