1. 程式人生 > >作業系統 --概念篇。

作業系統 --概念篇。

1.為什麼要在OS中引入執行緒。

目的:為了減少程式在併發執行時所付出的時空開銷,使OS具有更好的併發性,提高CPU的利用率,程序是分配資源的基本單位,而執行緒則是系統排程的基本單位。

2.試從排程性,併發性,擁有資源及系統開銷方面對程序和執行緒進行比較。

答:①排程性,傳統OS中,程序是作為獨立排程和分派的基本單位,因而程序是能獨立執行的基本單位,每次排程時上下文切換開銷較大,引入執行緒的OS中,把執行緒作為排程和分派的基本單位,因而執行緒是能獨立執行的基本單位,切換時代價遠低於程序。

       ②併發性,引入執行緒OS中,不僅程序之間可以併發執行,而且在一個程序的多個執行緒之間亦可併發執行,甚至還允許在一個程序中的所有執行緒都能併發執行,不同程序中執行緒也能併發執行。

       ③擁有資源,程序可以擁有資源,並作為系統中擁有資源的一個基本單位,執行緒本身並不擁有系統資源,僅有一點必不可少的能保證獨立執行的資源,同時允許多個執行緒共享該程序所擁有的資源。

       ④系統開銷,建立或撤消程序,以及程序切換時,系統為之分配,回收資源開銷遠大於執行緒上下文切換代價,執行緒遠低於程序。

3.處理機排程的三個層次。

答:①高階排程又稱長排程或作業排程,他的排程物件是作業,主要功能是根據某種演算法,決定將外存上處於後備佇列中的哪幾個作業調入記憶體,為它們建立程序,分配必要資源,插入就緒佇列。

       ②低階排程又稱為程序排程或短程排程,其所排程的物件是程序(或核心級執行緒)。主要功能是根據某種演算法,決定就緒佇列中的哪個程序應獲得處理機,決定就緒佇列中的哪個程序應獲得處理機,由分派程式將處理機分配給選中的程序。

      ③中級排程又稱為記憶體排程,引入中級排程目的:提高記憶體利用率和系統吞吐量。

4.處理機排程演算法的共同目標:

①資源利用率,②公平性,③平衡性,④策略強制執行。

5.程序排程方式:

(1)非搶佔式,一旦處理機分配給某程序後,就一直讓他執行下去,採取此方式時,可能引起程序排程的因素歸結為:

①正在執行的程式執行完畢,或因發生某事件而使其無法再繼續執行;

②正在執行中的程序因提出I/O請求而暫停執行;③在程序通訊或同步過程中,執行了某種原語操作。

(2)搶佔方式,允許排程程序根據某種原則,去暫停某種正在執行的程序,將已分配給該程序的處理機重新分配給另一程序。

遵循原則:

①優先原則,允許優先順序高的新到程序搶佔當前程序的處理機。

②短程序優先原則,允許新到的短程序搶佔當前長程序的處理機。

③時間片原則,各程序按時間片輪轉執行時,當正在執行的程序的一個時間片用完後,便停止該程序的執行而重新進行排程。