linux 輕量級程序與普通程序的區別

2021-07-30 07:57:57 字數 743 閱讀 9813

核心執行緒只執行在核心態,不受使用者態上下文的拖累。

ø處理器競爭:可以在全系統範圍內競爭處理器資源;

ø使用資源:唯一使用的資源是核心棧和上下文切換時保持暫存器的空間

ø排程:排程的開銷可能和程序自身差不多昂貴

ø同步效率:資源的同步和資料共享比整個程序的資料同步和共享要低一些。

輕量級程序

輕量級程序

(lwp)

是建立在核心之上並由核心支援的使用者執行緒,它是核心執行緒的高度抽象,每乙個輕量級程序都與乙個特定的核心執行緒關聯。核心執行緒只能由核心管理並像普通程序一樣被排程。

輕量級程序由

clone()

系統呼叫建立,引數是

clone_vm

,即與父程序是共享程序位址空間和系統資源。

與普通程序區別:

lwp只有乙個最小的執行上下文和排程程式所需的統計資訊。

ø處理器競爭:因與特定核心執行緒關聯,因此可以在全系統範圍內競爭處理器資源øø

排程:像普通程序一樣排程

使用者執行緒

使用者執行緒是完全建立在使用者空間的執行緒庫,使用者執行緒的建立、排程、同步和銷毀全又庫函式在使用者空間完成,不需要核心的幫助。因此這種執行緒是極其低消耗和高效的。

ø處理器競爭:單純的使用者執行緒是建立在使用者空間,其對核心是透明的,因此其所屬程序單獨參與處理器的競爭,而程序的所有執行緒參與競爭該程序的資源。øø

排程:由在使用者空間實現的執行緒庫,在所屬程序內進行排程

0 給主人留下些什麼吧!~~

linux普通程序,後台程序,守護程序

預設情況下,程序是在前台執行的,這時就把shell給佔據了,我們無法進行其它操作。對於那些沒有互動的程序,很多時候,我們希望將其在後台啟動,可以在啟動引數的時候加乙個 實現這個目的 1 21304 starting zookeeper started 1 done zkserver.sh start...

程序和和輕量級程序

在多執行緒程式中,乙個新的執行緒通常由乙個程序呼叫phtread create 函式而誕生的。新執行緒建立後,通常將這個程序稱為主線程。你也許會有所迷惑 乙個程序怎麼會程式設計執行緒?此刻有幾個執行緒,幾個程序?其實通過上文對執行緒 輕量級程序以及執行緒組之間關係的理解後,這個問題似乎也不難回答。我...

程序 輕量級程序(LWP) 執行緒

程序描述符 每程序有自己的thread info,分配釋放函式 alloc thread info,free thread info 執行緒組id tgid 用lwp實現多執行緒支援 程序組id pgrp 回話的id session 管理id資料結構 雜湊表管理 利用id找到所用相關的pd,方便 程...