延續昨天的「作業系統的簡介」,今天要來講作業系統的分類和進化史
然後剛好看到一張梗圖,分享給大家XDD 網友真有才
磁帶機 圖片來源
這個階段是由「人工」來安排工作的排序。只有電腦硬體,沒有軟體
輸入的裝置可能是讀卡機或磁帶機; 輸出裝置是磁帶機、印表機、打孔機
操作流程大致是程式人員會將程式和資料打動在打孔紙(打孔卡)上,接著依序輸入到計算機裡,之後再由控制台來執行
一個程式寫完到執行完可能需要一個禮拜的時間!還不包含程式有bug喔!真的超級費時的!「手動操作階段」就是需要花很多人力做資料的裝線和讀取的工作
打孔卡 圖片來源
引發的問題:
解決方法:
「批次系統」會將所排程的作業一次完成,負責將一個工作轉換到下一個工作時做自動化轉換。操作流程大概是:
「批次系統」有以下特點:
「多元程式規劃系統」利用完成一個作業的空檔,進行另一個作業,也就是只要 process(程序)進入等待時, CPU 就會被轉移到其他工作上運作,一直保持著忙碌的狀態。「多元程式規劃系統」中有兩種主要的排班/排程(Schedule):
PS 「排程/排班」是什麼?
當今天要被執行的作業很多時,在資源有限的情況下勢必會有執行的優先順序,這個順序的關係就稱為「排程」或「排班」
「多元程式規劃系統」有以下特點:
「分時系統」是將 CPU 的時間切割成多個區段,讓 CPU 在許多程序和使用者之間能夠不斷切換、穿梭來執行工作。由於切換得很頻繁而且時間很短,就會讓使用者以為電腦只專門為他一個人服務,但實際上卻是許多使用者同時使用一部電腦呀,就像開了分身一樣。也拜「分時系統」所賜,讓一群使用者可以同時在同個機器上做不同的工作
「分時系統」是依靠「時間觸發」(Time Driven),不管程序目前在什麼狀態,時間一到 CPU 就到下一個程序,原本的程序就得進入等待
「分時系統」有以下特點:
「多處理器系統」顧名思義就是具有多個中央處理器,以平行處理模式處理工作的排程,並共享資源、時脈等。在進行大量運算時,有多個處理器可以分擔工作,所以效能也跟著提升!但效能並不是倍數成長
例如:今天多了 4 顆處理器,效能並不會也跟著提升 4 倍,因為多個處理器同時運作,也會需要資源去保持工作的執行,雖沒辦法倍數成長,但是效能提升還是有的
另外就是,容錯率(Fault Tolerance)提高,因為有多個處理器運作,所以就算其中一個處理器發生問題,系統也不會因此終止
前面介紹的系統通常是同個工作由同一部電腦的「一個」或「多個」 CPU 來執行,在「分散式系統」中,電腦並不會共享資源和時脈,都有自己的記憶體甚至是作業系統,彼此之間依靠**「網路」**來傳遞資訊。分散式系統近幾年因為網路的進步,也跟著越來越成熟,web service(網路服務) 就是將分散式系統變成網路上的標準化服務,讓應用服務可以「跨平台」傳遞資訊。web service 通常是許多應用程式介面(API)所組成
分散式系統的特性是資料會在網路上互傳,所以要留意安全性問題喔~
本系列文章所談到的還只是冰山一角,講大概的架構而已,像是「即時系統」、「手持系統」也是屬於作業系統的類型。如果還想了解更多可以參考書籍或是聯合大學 - 資管系的教授提供的免費課程 http://debussy.im.nuu.edu.tw/sjchen/OS_Final.html