計算機操作系統(tǒng)線程的概念
隨著軟件設計技術的發(fā)展,上述以進程為基礎的并發(fā)技術出現(xiàn)了一系列的問題。其中,主要問題是系統(tǒng)的并發(fā)程度過低,系統(tǒng)在進行進程切換時的時間和空間開銷過大。究其原因,就是以進程作為分配處理器資源的基本單位顯得過于龐大和笨重。于是,就促使人們把程序的運行過程再分割為更小的單位----線程,即把一個進程再分割為多個線程。這樣,應用程序在系統(tǒng)中的運行過程就有了兩個概念:進程和線程。
一個在操作系統(tǒng)管理下的程序,在內(nèi)存中既有一個代表進程的進程控制塊,也有多個代表線程的線程控制塊。當然,這些線程控制塊是歸屬于進程控制塊的,這兩者之間的關系可參見圖。
如果把進程控制塊看作一個家庭的檔案,那么線程控制塊就相當于家庭成員的檔案。
操作系統(tǒng)在進行資源的分配時,對于存儲空間資源,系統(tǒng)仍然以進程為單位來進行分配,而對于處理器資源則以線程為單位來進行分配。也就是說,同一個進程中的所有線程共享進程的資源,由于線程是基本運行單位,因此在線程控制塊中要包含模塊代碼的指針和代碼運行時所需的私有堆棧。
由于線程沒有獨占的存儲空間,所以系統(tǒng)在調度切換線程時,只是考慮如何給線程分配處理器,而無須考慮其他資源的分配,所以調度工作所需的時間開銷就小得多。如果把進程看作一個家庭,那么線程就相當于家庭成員。顯然,調動一個家庭成員要比調動一個家庭容易得多。
擁有多個線程的進程叫做多線程進程。一個多線程進程的示意圖如圖所示。
圖 多線程進程示意圖
綜上所述,在多線程操作系統(tǒng)中,進程是系統(tǒng)分配資源的基本單位,而線程是系統(tǒng)調度的基本單位。線程是進程的組成部分,同一個進程中的所有線程共享這個進程所獲得的資源。
歡迎轉載,信息來源維庫電子市場網(wǎng)()
ks99