從核心觀點看,程序的目的就是擔當分配系統資源(cpu
時間、記憶體等
)的實體。
程序是資源管理的最小單位,執行緒是程式執行的最小單位。在作業系統設計上,從程序演化出執行緒,最主要的目的就是更好的支援
smp以及減小(程序
/執行緒)上下文切換開銷。
最初的程序定義都包含程式、資源及其執行三部分,其中程式通常指**,資源在作業系統層面上通常包括記憶體資源、
io資源、訊號處理等部分,而程式的執行通常理解為執行上下文,包括對
cpulinux
核心在2.0.x
版本就已經實現了輕量程序,應用程式可以通過乙個統一的
clone()
系統呼叫介面,用不同的引數指定建立輕量程序還是普通程序。
linux
使用輕量級程序,對多執行緒應用程式提供更好的支援。兩個輕量級程序基本上可以共享一些資源,諸如位址空間、開啟的檔案等等。只要其中乙個修改共享資源,另乙個就立即檢視這種修改。當然,當兩個執行緒訪問共享資源時必須同步它們自己。
在linux
中,乙個執行緒組基本上就是實現了多執行緒應用的一組輕量級程序。
程序 輕量級程序(LWP) 執行緒
程序描述符 每程序有自己的thread info,分配釋放函式 alloc thread info,free thread info 執行緒組id tgid 用lwp實現多執行緒支援 程序組id pgrp 回話的id session 管理id資料結構 雜湊表管理 利用id找到所用相關的pd,方便 程...
linux核心 程序,輕量級程序,執行緒,執行緒組
本篇文章將介紹本人對以下問題的理解。1 程序 輕量級程序 執行緒 執行緒組之間的關係 2 及它們的標識相關說明 一 程序 輕量級程序 執行緒 執行緒組之間的關係 借助上圖說明 程序p0有四條執行流,即執行緒,主線程t0是它的第乙個執行緒,且與程序p0相關聯,之後衍生出t1 t2 t3三個執行緒,這三...
Linux中的輕量級程序
在linux中,輕量級程序可以是程序,也可以是執行緒。我們所說的執行緒,在linux中,其實是輕量級程序之間共享 段,檔案描述符,訊號處理,全域性變數時 如果不共享,就是我們所說的程序。程序是資源管理的最小單位,執行緒是程式執行的最小單位。在作業系統設計上,從程序演化出執行緒,最主要的目的就是減小多...