計算機作業系統之程序管理

2022-08-12 02:48:11 字數 2114 閱讀 9657

程序和執行緒的聯絡和區別

定義:

程序:具有一定獨立功能的程式關於某個資料集合上的一次執行活動,是系統進行資源分配和排程的乙個獨立單位。

執行緒:程序的乙個實體,是cpu排程和分派的基本單位,他是比程序更小的能獨立執行的基本單位,執行緒自己基本上不擁有系統資源,只擁有一點在執行中必不可少的資源(如程式計數器,一組暫存器和棧),乙個執行緒可以建立和撤銷另乙個執行緒;

(執行緒共享:堆,全域性變數,靜態變數,檔案公用資源)

程序和執行緒的關係:

(1)乙個執行緒只能屬於乙個程序,而乙個程序可以有多個執行緒,但至少有乙個執行緒。

(2)資源分配給程序,同一程序的所有執行緒共享該程序的所有資源。

(3)執行緒在執行過程中,需要協作同步。不同程序的執行緒間要利用訊息通訊的辦法實現同步。

(4)處理機分給執行緒,即真正在處理機上執行的是執行緒。

(5)執行緒是指程序內的乙個執行單元,也是程序內的可排程實體。

執行緒與程序的區別:

(1)排程:執行緒作為排程和分配的基本單位,程序作為擁有資源的基本單位。

(2)併發性:不僅程序之間可以併發執行,同乙個程序的多個執行緒之間也可以併發執行。

(3)擁有資源:程序是擁有資源的乙個獨立單位,執行緒不擁有系統資源,但可以訪問隸屬於程序的資源。

(4)系統開銷:在建立或撤銷程序的時候,由於系統都要為之分配和**資源,導致系統的明顯大於建立或撤銷執行緒時的開銷。但程序有獨立的位址空間,程序崩潰後,在保護模式下不會對其他的程序產生影響,而執行緒只是乙個程序中的不同的執行路徑。執行緒有自己的堆疊和區域性變數,但執行緒之間沒有單獨的位址空間,乙個執行緒死掉就等於整個程序死掉,所以多程序的程式要比多執行緒的程式健壯,但是在程序切換時,耗費的資源較大,效率要差些。

死鎖產生的原因及四個必要條件

產生死鎖的原因主要是:

(1) 因為系統資源不足。

(2) 程序執行推進的順序不合適。

(3) 資源分配不當等。

如果系統資源充足,程序的資源請求都能夠得到滿足,死鎖出現的可能性就很低,否則就會因爭奪有限的資源而陷入死鎖。其次,程序執行推進順序與速度不同,也可能產生死鎖。

產生死鎖的四個必要條件:

(1) 互斥條件:乙個資源每次只能被乙個程序使用。

(2) 請求與保持條件:乙個程序因請求資源而阻塞時,對已獲得的資源保持不放。

(3) 不剝奪條件:程序已獲得的資源,在末使用完之前,不能強行剝奪。

(4) 迴圈等待條件:若干程序之間形成一種頭尾相接的迴圈等待資源關係。

這四個條件是死鎖的必要條件,只要系統發生死鎖,這些條件必然成立,而只要上述條件之一不滿足,就不會發生死鎖。

死鎖的解除與預防:

理解了死鎖的原因,尤其是產生死鎖的四個必要條件,就可以最大可能地避免、預防和解除死鎖。所以,在系統設計、程序排程等方面注意如何不讓這四個必要條件成立,如何確定資源的合理分配演算法,避免程序永久佔據系統資源。此外,也要防止程序在處於等待狀態的情況下占用資源。因此,對資源的分配要給予合理的規劃。

程序間通訊

1、管道(pipe)

乙個程序往管道裡寫資料,另乙個程序從管道裡取資料。管道又可以分為匿名管道,匿名管道只能在父、子程序之間通訊。還有一種命名管道(named pipes),linux下叫做fifo,命名管道可以在任意程序之間通訊。

2、油槽(slot)

linux下叫做訊息佇列(message)。就像我們日常通過郵局寄送信件。乙個程序寄送,另乙個程序接收。

3、訊息(message)

linux下叫做訊號(signal)。windows是訊息驅動的,程序可以呼叫win32 api函式sendmessage或者postmessage向另乙個程序傳送訊息,windows系統也可以向程序傳送訊息。

linux下可以通過kill、raise、alarm、pause這些訊號處理系統呼叫來實現。

4、共享記憶體(shared memory)

程序之間通過共享一塊記憶體的方式來交換資料。

5、socket

計算機作業系統 程序管理(2)

程序的狀態 就緒 ready 狀態 當程序已分配到除cpu以外的所有必要資源後,只要再獲得cpu,便可立即執行,程序這時的狀態稱為就緒狀態。在乙個系統中處於就緒狀態的程序可能有多個,通常將它們排成乙個佇列,稱為就緒佇列。執行狀態 程序已獲得cpu,其程式正在執行。在單處理機系統中,只有乙個程序處於執...

計算機作業系統 程序管理(7)

執行緒 程序是資源分配的基本單位,執行緒是任務排程的基本單位。引入程序是為了使多道程式有條不紊的併發執行,提高資源利用率和系統吞吐量 引入程序是為了減少程式在併發執行時所付出的時空開銷。執行緒間的同步和通訊 1 互斥鎖 共享多個資源時導致死鎖。2 互斥鎖 條件變數 解決共享乙個臨界資源時的死鎖問題。...

計算機作業系統之儲存管理

儲存管理 就是對記憶體的管理。記憶體管理提高儲存器的利用率以及從邏輯上擴充儲存器。儲存管理功能 記憶體的 與分配,位址變換 程式中的邏輯位址與記憶體中的實體地址之間的轉換 記憶體擴充 借助虛擬技術或覆蓋技術從邏輯上擴充記憶體容量 記憶體保護 保證進入記憶體的各道作業都在自己的儲存空間執行,互不干擾 ...