在自考之——我看《作業系統概論》部落格中,我對作業系統的知識進行了歸納和總結。這篇文章可以說是自己在第一次接觸作業系統的内容之後的總結。總體來說,它能夠幫助自己宏觀把控這部分知識。何以見得?在軟體設計師考試中同樣會遇到這部分知識,感覺哪哪都熟悉,但是哪哪都提不起來。好在,我想起了自己當時的總結,看完之後,頓時輕松了許多。
作業系統的主要功能就是管理資源,包括硬體資源和軟體資源。主要内容分為:處理器管理,存儲管理,檔案管理,裝置管理,并發程序。并發程序可以說是在前幾章的基礎上産生的問題。
本文主要介紹處理器管理的一些内容:
- 單道批處理系統和程式的順序執行
- 多道批處理系統和程式的并發執行
先看下圖:
假設圖中的程式1,程式2,程式3,它們都分為3個步驟執行:輸入(I),計算,輸出(O)。
順序執行:(看單道程式執行示意圖)
在程式1的程序開啟到結束的期間内,沒有其他程式的程序在進行。在這段時間内,隻有程式1在執行。它占有計算機的輸入裝置,CPU和輸出資源。盡管在這段時間内,某一小段時間它不用輸入裝置,但是其他程式也不能用。
特點:
系統中隻有一個程式在運作。
獨占系統中所有資源。
不受外界影響。
并發執行:(看多道程式執行示意圖)
在一段時間内,有兩個或兩個以上的程式同時處于開始運作但尚未結束的狀态。
一個程式要執行,首先得把程式裝入記憶體中,在裝入記憶體之後,才能由CPU排程進行處理。
放入記憶體中的程式隻有在執行完後,才會釋放在記憶體中的空間。
在圖中的“多道執行程式示意圖”中,我們看到,程式1還沒執行完畢,程式2,3 就都處在運作但未結束的階段。
說明這幾個程式都已在主存中。
這裡就要引出單道批處理系統和多道批處理系統了。
單道和多道的主要差別是:
單道:一次隻能在主存中裝入1個程式。
多道:一次能在主存中裝入多個程式。
是以在單道批處理系統中,當程式1裝入記憶體後,執行輸入,計算,輸出完畢之後,釋放了在記憶體中的空間,程式2才能再裝入,進行輸入,計算,輸出。
在多道批處理系統中,當程式1裝入記憶體後,隻要記憶體剩餘空間滿足程式2,程式2也會裝入記憶體中,這樣他們就有機會交替使用計算機中的資源。
是以單道批處理系統和順序執行聯系到了一起。多道批處理系統和并發執行聯系到了一起。
- 處理器的兩級排程:
如圖所示:
作業排程發生背景:主存隻能存一個作業或者是主存空間有限的情況下,當輸入井中有多個作業時,通過作業排程算法決定哪個作業優先調入主存中。
程序排程發生背景:CPU中在某一時刻隻能執行一個作業,當主存中有多個處于就緒狀态的作業時,通過程序排程算法決定哪個作業進入CPU。
總結:通過再次學習,了解一些概念的由來,任何概念的提出都有一定的理由和背景。我們知道了它們提出的背景的同時,加深了我們對知識點的了解。