既然在Linux中程序不是進程,那么什么才算是進程?線程呢?

2021-03-09    分類: 網站建設

C語言程序員編寫的代碼可以編譯為程序,程序通常存放在磁盤等存儲介質中。在 Linux 中,處于運行期的程序被稱作“進程”。

處于運行期的程序被稱作“進程”

空間

、要處理的數據、掛起的信號、打開的文件,可能還會包括多個執行線程等等。

事實上,進程是 Linux 操作系統抽象概念的最基本的一種,Linux 最基礎最重要的工作之一就是管理系統中繁雜的各種進程。

“執行線程”通常被簡稱為“線程”

上面提到的“執行線程”通常被簡稱為“線程”,它被進程包含,同一個進程可能有多個線程,每個線程都有自己獨立的程序計數器、進程棧以及相關的進程寄存器。雖說 Linux 內核管理的是進程,但其實最小的調度單位是線程。

早期傳統的 Unix 系統中,一個進程只能包含一個線程,所以當時進程調度和線程調度其實結果是一致的。

線程不過是一種比較特殊的進程而已

包括 Linux,現代操作系統一般都會為進程提供兩種虛擬機制:虛擬處理器和虛擬內存。讀者應注意“虛擬”一詞,多個進程可能共同使用一個 CPU 和內存,但是“虛擬機制”會讓進程活在楚門的世界一樣,自以為自己獨占 CPU 和全部內存。

應注意,線程之間可以共享虛擬內存,但是它們仍然擁有各自的虛擬 CPU。

到這里,讀者應該明白了,編譯器生成的C語言程序本身并不是進程。進程實際上是處于運行期的程序,與相關資源的總和。

事實上,無論是程序不同,還是執行時的數據不同,都會產生不同的進程。舉例來說,同樣一個C語言程序,是可以產生兩個不同的進程的——它們的運行資源可能是不同的。反過來也是一樣的,多個不同的進程也可以共享同一份資源,例如打開同一個文件,映射同一塊內存空間等。

進程實際上是處于運行期的程序,與相關資源的總和

fork() 調用結束時,會從 Linux 內核返回兩次

不過一般來說,如果有需求創建新的進程,一般都是為了執行不同的新的程序。這一過程通過 exec() 函數族可以方便實現,它們可以為新程序創建新的地址空間,然后加載程序執行。

Linux 操作界面的 shell 終端其實也是一個進程,通過 shell 輸入的執行新程序命令(如 ./a.out )產生的新進程其實都是對應 shell 終端的子進程。

程序既然有新生,也就會有死亡,程序運行結束后,通過 exit() 系統調用退出運行,這個函數會殺死進程,并且將其占用的資源釋放,通知其父進程“死亡信息”。父進程則可以通過 wait() 函數族接收子進程的“死亡信息”,并著手為子進程做后續的“收尸工作”,避免子進程編程“僵尸進程(zombie)”。

“僵尸進程”很難殺死,但是留著“僵尸進程”又會白白浪費系統資源。

點個贊再走吧

歡迎在評論區一起討論,質疑。文章都是手打原創,每天最淺顯的介紹C語言、linux等嵌入式開發,喜歡我的文章就關注一波吧,可以看到最新更新和之前的文章哦。

文章題目:既然在Linux中程序不是進程,那么什么才算是進程?線程呢?
標題路徑:http://m.kartarina.com/news/104862.html

成都網站建設公司_創新互聯,為您提供品牌網站制作品牌網站建設營銷型網站建設做網站虛擬主機網頁設計公司

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

h5響應式網站建設
主站蜘蛛池模板: 国产av无码专区亚洲av果冻传媒| 国产羞羞的视频在线观看 国产一级无码视频在线| 日日摸日日碰人妻无码| 亚洲AV无码乱码在线观看性色扶| 无码伊人66久久大杳蕉网站谷歌| 国产精品无码翘臀在线观看| 免费VA在线观看无码| 无码熟妇人妻在线视频| 久久精品aⅴ无码中文字字幕| 老子午夜精品无码| 无码夫の前で人妻を犯す中字| 无码区国产区在线播放| 亚洲午夜福利精品无码| 老子午夜精品无码| 亚洲AV无码一区二区二三区软件| 东京热av人妻无码专区| 无码av专区丝袜专区| 粉嫩大学生无套内射无码卡视频| 无码一区二区三区亚洲人妻| 麻豆国产精品无码视频| 亚洲日韩精品无码专区网址| 中文字幕无码精品三级在线电影| 永久免费av无码不卡在线观看| 久久久国产精品无码一区二区三区| 男人av无码天堂| 亚洲人片在线观看天堂无码 | 无码国内精品久久人妻| 无码精品国产va在线观看dvd| 久久久无码精品国产一区| HEYZO无码综合国产精品227| 日本无码一区二区三区白峰美| 国产激情无码一区二区app| 国产午夜无码片在线观看| 午夜麻豆国产精品无码| 中文字幕无码免费久久99| 中文字幕人成无码免费视频| 亚洲AV无码日韩AV无码导航| 丰满熟妇人妻Av无码区| 国产产无码乱码精品久久鸭| 亚洲AV无码国产丝袜在线观看| 野花在线无码视频在线播放|