複製鏈接
請複製以下鏈接發送給好友

多道程序

鎖定
多道程序設計技術是在計算機內存中同時存放幾道相互獨立的程序,使它們在管理程序控制下,相互穿插運行,兩個或兩個以上程序在計算機系統中同處於開始到結束之間的狀態, 這些程序共享計算機系統資源。與之相對應的是單道程序,即在計算機內存中只允許一個的程序運行。
對於一個單CPU系統來説,程序同時處於運行狀態只是一種宏觀上的概念,他們雖然都已經開始運行,但就微觀而言,任意時刻,CPU上運行的程序只有一個。
中文名
多道程序
相    反
單道程序
定    義
多任務
特    徵
多道宏觀上並行微觀上串行

目錄

多道程序1. 概念

程序是在時間上嚴格有序的指令集。它獨佔使用系統中的一切資源,包括CPU、內存、外設以及軟件等等,沒有其他競爭者同它爭奪與共享。因此,在單CPU的計算機系統中,一段時間內只有一個程序在運行。程序獨佔了計算機的全部資源,不受外來影響
計算機的早期,多任務被稱作多道程序。多道程序是指CPU一次讀取多個程序放入內存,先運行第一個程序直到它出現了IO操作。因為IO操作慢,CPU需要等待。為了提高CPU利用率,此時運行第二個程序。即,第n+1個程序得以執行的條件是第n個程序進行IO操作或已經運行完畢。這種方式每個程序的時間分配是不均等的,很可能第一個程序運行了幾個小時而不出現IO操作,故第二個程序沒有運行。在當初,這種情況是令人接受的。人們一次指定運行多個程序,過幾個小時或一天後來看運行結果或拿走打印出來的文件。人們不需要實時獲得每個程序的運行情況,只關心運行結果。
多任務處理是指計算機同時運行多個程序的能力。多任務的一般方法是運行第一個程序的一段代碼,保存工作環境;再運行第二個程序的一段代碼,保存環境;……恢復第一個程序的工作環境,執行第一個程序的下一段代碼……現代的多任務,每個程序的時間分配相對平均。
引入多道程序設計技術的根本目的是為了提高CPU的利用率 [1]  ,充分發揮計算機系統部件的並行性,現代計算機系統都採用了多道程序設計技術。多道程序設計的出現,加快了現在操作系統的誕生。

多道程序2. 特徵

1)多道:即計算機內存中同時存放幾道相互獨立的程序。
2)宏觀上並行:同時進入系統的幾道程序都處於運行過程中,即它們先後開始了各自的運行,但都未運行完畢。
3)微觀上串行:從微觀上看,內存中的多道程序輪流地或分時地佔有CPU。

多道程序3. 優點

提高CPU的利用率。在多道程序環境下,多個程序共享計算機資源當某個程序等待I/O操作時,CPU可以執行其他程序,大大提高CPU的利用率。
提高設備的利用率。在多道程序環境下,多個程序共享系統的設備,大大提高系統設備的利用率。
提高系統的吞吐量。在多道程序環境下,減少了程序的等待時間,提高了系統的吞吐量。

多道程序4. 調度

多道程序處理在內存中可同時裝入幾個程序,當一個程序因等待外部傳輸而不能工作下去時,中央處理機馬上可以執行另一個程序,若第二個程序又因某種原因不能繼續執行時,中央處理機便執行第三個程序,如此繼續直至第一個程序外部傳輸完畢後再執行第一個程序。採用多道程序合理搭配可以提高資源的利用率,增強系統的輸入輸出能力。多道程序處理是以偽並行方式進行的。從一個時間間隔看,各個程序都已開始執行,但都未執行完畢。從某一瞬間看,在中央處理機中只有一個程序在執行,每個程序佔有一個時間片,交替地、串行地使用中央處理機。各道程序並不按它們開始的次序結束。
多道程序共享處理系統的各種資源,但是系統的資源有限,每道程序要求資源的數量和種類也各不相同,因此多道程序的調度根據每個程序的不同資源要求採用下列策略:①先來先服務,按程序錄入順序建立一個後備隊列,由調度程序從頭掃描後備隊列,找出第一個資源能得到滿足的程序,將它插入現行隊列等待執行。②按優先數調度,系統挑選優先數最高的程序執行。程序的優先數可以由用户規定(系統對優先數高的程序收取較高的費用),也可由系統決定(系統根據程序的等待時間、運行時間的長短和對系統資源要求的多寡來規定)。這種優先數可以在程序進入系統時確定,也可以在每次程序調度時計算得出。在同一優先數的程序中,仍按先來先服務的原則調度。③均衡調度,把程序按其本身的特性分類,如A類是輸入輸出費時的程序,B類是輸入輸出與運算時間均衡的程序,C類為運算費時的程序。程序調度程序輪流地從這些不同類型的程序中挑選運行程序,使資源得到均衡的利用,發揮系統效率並使用户滿意。
如圖,列出了單道程序和多道程序的執行情況,可以看出多道程序能夠極大的提高系統的資源利用率。
參考資料