作業系統之多道程式設計

2021-10-07 09:36:24 字數 1093 閱讀 1287

早期的批處理系統中,i/o裝置和cpu仍然是序列工作的,cpu時間浪費巨大,浪費了cpu的處理能力。作業系統中只有乙個可執行程式,乙個任務執行時,必須cpu執行完,i/o才能執行,兩者不可並行。

隨著cpu速度迅速提高而i/o裝置速度卻提高不多,導致cpu和i/o裝置之間的速度不匹配,矛盾越來越突出。

為了解決這個問題,多道程式的概念被提出。

多道程式設計:允許多個程式(作業)同時進入乙個計算機系統的記憶體並啟動進行交替計算的方法,也就是,計算機中可以同時存放多道程式,從巨集觀上來看它們是並行的,多道程式都同時處於執行過程中,但都未執行結束,但是微觀上是序列的,輪流占用cpu交替執行,引入多道程式設計技術的根本目的是提高cpu的利用率,充分發揮計算機系統部件的並行性。

交替執行的多道程式設計理念,能夠提高系統的效率,增加單位時間的處理能力,但是對於單道程式來說,卻延長了計算時間。所以,要明白,多道程式設計提高資源利用率和系統吞吐率是以犧牲使用者的作業周轉時間為代價的,而一些無法延遲的計算,也是多道程式設計需要考慮的問題。

在多道程式設計中,道的數量是需要衡量的,因為道數的多少和系統效率不是完全正相關的(比如cpu的切換也是需要時間的),它通常由系統的資源和使用者的要求而定。而且,記憶體的容量以及使用者的響應時間也是影響多道程式道數的重要因素。

多道程式設計系統與多重處理系統有差別,後者是指配置了多個物理cpu,從而,能真正同時執行多道程式的計算機系統。要有效地使用多重處理系統,必須採用多道程式設計技術,反過來,多道程式設計不是必須要有多重處理系統支援。

實現多道程式設計必須妥善地解決三個問題:儲存保護與程式浮動;處理器的管理和分配;系統資源的管理和排程;

在多道程式設計中,記憶體是由幾道程式所共享,因此,硬體需要提供一定的功能,使得記憶體中的各道程式只能訪問它自己的區域,以避免相互干擾。特別是當一道程式發生錯誤的時候,不致影響到其它的程式,更不能影響系統程式,這就是儲存保護。

在多道程式設計系統裡,如果系統僅配置乙個物理處理器,那麼,多個程式必須輪流占有處理器,這就涉及到處理器的排程,程式在執行中處於三種狀態:

所以,一道程式在執行中總是處於執行、就緒、等待三種狀態之一,一道程式在執行過程中,它的程式狀態是變化的,從執行態到等待態的轉換是在發生了某種事件時產生的,從等待態轉換成就緒態是在等待的某個事件完成時產生的

作業系統多道程式設計和分時 筆記02

簡單批作業系統 1 自動作業排程 自動從乙個執行完的作業轉換到下乙個作業 2 常駐監控程式 控制作業傳輸 排程作業執行 3 單道程式設計 批處理系統 批處理 使用者將一批作業提交作業系統後就不再干預,由作業系統控制它們自動執行 批處理作業系統 1 採用批量處理作業技術的作業系統 2 單道批處理系統 ...

1 4 作業系統的結構之多道程式系統和分時系統

作業系統有乙個很重要的特點是具有多道程式能力 什麼是多道程式系統?首先考慮單道程式系統 只考慮計算機執行乙個程式的情況,程式中有一部分需要計算的,這就需要cpu進行工作了,但是也可能要進行磁碟的讀寫等i o操作。這是,cpu就空閒了,就需要停下來等待i o操作執行完成。那麼,問題發生了,i o操作可...

作業系統 多道程式排程

計算機系統採用了中斷和通道技術之後,i o裝置和cpu可以並行操作,初步解決了高速處理和低速外部裝置之間的矛盾,提高了計算機的工作效率。但這種並行使有限的。多道程式設計是在計算機記憶體中同時存放幾道相互獨立的程式 只有將程式放到記憶體cpu才會執行 使它們在管理程式控制之下,相互穿插地執行 記憶體中...