對比程序切換與同一程序內的執行緒間切換的異同 10

時間 2025-06-17 19:05:12

對比程序切換與同一程序內的執行緒間切換的異同?

1樓:hi零果果

程序間切換的步驟:

1,儲存程式計數其以及其他暫存器。

2, 更新當前處於「執行態」的程序的程序控制塊,把進宴圓高程狀態改為相應狀態,更新其他相關域。

3, 把被切換程序的程序控制塊移到相關狀態的佇列。

4, 選擇另外乙個程序開始執行,把該程序程序控制塊的狀態改為「執行態」

5, 恢復被選擇程序的處理器在最近一次被切換出執行態時的上下文,比如載入程式計數器以及其他處理器的值。

程序間切換伴隨著兩次模式切換(使用者--核心,核心--使用者)。

同一程序內)執行緒間切換的步驟:

執行緒分兩種,使用者級執行緒和核心級執行緒。

在使用者級執行緒中,有關執行緒晌尺管理的所有工作都由應用程式完成,核心沒有意識到執行緒的存在。

同一程序內)使用者級執行緒間切換時,只需要儲存使用者暫存器的內容,程式計數器,棧指標,不需要模式切換。

缺點:1, 在程序的某個執行緒腔念執行系統呼叫時,不僅該執行緒被阻塞,該執行緒所在程序的所有執行緒都被阻塞。

2, 無法利用多處理器。

在核心級執行緒中,有關執行緒的管理工作都是由核心完成的,應用程式部分沒有執行緒管理的許可權,只有乙個介面(api)

同一程序內)核心級執行緒間切換時,除了儲存上下文,還要進行模式切換。

優點:1, 可以利用多處理器。

2, 執行緒阻塞不會導致程序阻塞。

2樓:詩意的要命

快點快點,我也要知道!!

執行緒與程序的異同

3樓:

定義不一樣,程序是執行中的一段程式螞握,而乙個程序中執行中的每個任務即為乙個執行緒。乙個執行緒只可以屬於乙個程序,但乙個程序能包含多個線山物喚程。執行緒無位址空間,它包括在程序的逗凱位址空間裡。

執行緒的開銷或代價比程序的小。

為什麼同一程序的兩執行緒的上下文切換比不同程序間所需工作量少

4樓:網友

因為同乙個程序的多個執行緒之間很多東西是共享的,意味著你切換了也不用資源全部切換掉,但是程序之間資源(cpu資源,記憶體位址等等這個百科有的)在一般情況下是獨立的,所以不同程序的執行緒切換就要切換更多資源。

5樓:網友

程序切換分兩步。

1.切換頁目錄以使用新的位址空間。

2.切換核心棧和硬體上下文。

對於linux來說,執行緒和程序的最大區別就在於位址空間。

對於執行緒切換,第1步是不需要做的,第2是程序和執行緒切換都要做的。 所以明顯是程序切換代價大。

執行緒上下文切換和程序上下問切換乙個最主要的區別是執行緒的切換虛擬記憶體空間依然是相同的,但是程序切換是不同的。這兩種上下文切換的處理都是通過作業系統核心來完成的。核心的這種切換過程伴隨的最顯著的效能損耗是將暫存器中的內容切換出。

另外乙個隱藏的損耗是上下文的切換會擾亂處理器的快取機制。簡單的說,一旦去切換上下文,處理器中所有已經快取的記憶體位址一瞬間都作廢了。還有乙個顯著的區別是當你改變虛擬記憶體空間的時候,處理的頁表緩衝(processor』s translation lookaside buffer (tlb))或者相當的神馬東西會被全部重新整理,這將導致記憶體的訪問在一段時間內相當的低效。

為什麼要執行緒同步,說出執行緒同步的幾種方法

6樓:網友

執行緒有可能和其他執行緒共享一些資源,比如,記憶體,檔案,資料庫等。

當多個執行緒同時讀寫同乙份共享資源的時候,可能會引起衝突。這時候,我們需要引入執行緒「同步」機制,即各位執行緒之間要有個先來後到,不能一窩蜂擠上去搶作一團。

執行緒同步的真實意思和字面意思恰好相反。執行緒同步的真實意思,其實是「排隊」:幾個執行緒之間要排隊,乙個乙個對共享資源進行操作,而不是同時進行操作。

執行緒同步的方法。

1)wait():使乙個執行緒處於等待狀態,並且釋放所持有的物件的lock。

2)sleep():使乙個正在執行的執行緒處於睡眠狀態,是乙個靜態方法,呼叫此方法要捕捉。

interruptedexception異常。

3)notify():喚醒乙個處於等待狀態的執行緒,注意的是在呼叫此方法的時候,並不能確切的。

喚醒某乙個等待狀態的執行緒,而是由jvm確定喚醒哪個執行緒,而且不是按優先順序。

4)notityall ()喚醒所有處入等待狀態的執行緒,注意並不是給所有喚醒執行緒乙個物件的鎖,而是讓它們競爭。

7樓:網友

執行緒同步,就是同一時間保證正確的訪問資料。

比如,乙個蘋果5個人吃,大家都同時用口吃你怎麼吃啊。

乙個人咬一口,就換另乙個人吃,這就叫同步了。

作業系統程序同步的基本概念,作業系統“程序同步”的基本概念是什麼

水閏愛樹木 1 概念 程序同步是一個作業系統級別的概念,是在多道程式的環境下,存在著不同的制約關係,為了協調這種互相制約的關係,實現資源共享和程序協作,從而避免程序之間的衝突,引入了程序同步。2 程序的同步與互斥 1 程序的同步與互斥是指程序在推進時的相互制約關係。在多道程式系統中,由於資源共享與程...

程序與執行緒的區別是什么,程序與執行緒的區別是什麼?

1 程序是具有一定獨立功能的程式關於某個資料集合上的一次執行活動,程序是系統進行資源分配和排程的乙個獨立單位.執行緒是程序的乙個實體,是cpu排程和分派的基本單位,它是比程序更小的能獨立執行的基本單位.執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資源 如程式計數器,一組暫存器和棧 但...

自己洗車與花錢洗車的優劣對比,與成本對比!

自己洗車的優勢 1 費用低 乙個水桶一塊抹布,就可以完成,而且自己洗車比讓別人洗用心。2 簡單方便 乙個水桶一塊抹布加上合適的水想什麼時候洗車就什麼時候洗車。缺點 1 浪費自己的時間,自己洗車是比別人給你洗洗的用心但是浪費的時間也多,並且大多不得要領。2 自己洗車經常不小心就會劃傷車漆,因為經常有小...