近年來,多重執行脈(Multiple Threads)技術已在計算機科學作業的許多領域中,扮演著相當重要的角色,例如:作業系統的設計、程式語言的設計、分散式系統及平行程式規劃上的應用等等。由於多重執行脈技術的應用日亦增廣,因此,了解多重執行脈,並且將其活用於技術統的開發上,應為當務之急。 在這篇論文中,我們首先介紹多重執行脈與傳統行程(Process)之間的關係,闡述多重執行脈的優點,並且以實際上的應用做為印證。然後,我們針對多重執行脈的控制機制,以及其主要的設計方式(Kernel Threads及User Level Threads)提出討論,並比較其優缺點。 有鑒於多重執行脈的重要性,我們設計與製作了一個C語言多重執行脈程式庫,作為學習多重執行脈的基本運作函數,透過這些函數的實際運作,讀者可以很容易的掌握多重執行脈的精隨所在。此外,讀者亦可由此一程式庫的設計中了解到多重執行脈控制機制的基本架構。 在個人電腦的單執行脈環境下製作多重執行脈程式庫,必須克服岔斷(Interrupts)的重進入(Reentrancy)的問題。我們討論了兩種解決方案,比較其優缺點及適用時機,並採用其中一方案作為本程式庫的製作方法。 最後,我們以一個〝多重二元樹之搜尋〞的問題,來印證多重執行脈技術在簡化程式設計及提昇程式效率上的助益。
|