計算機處理資訊經歷了這幾個發展階段:手工操作-穿孔卡片——》聯機批處理-磁帶儲存——》離線批處理——》多道批處理系統、多使用者分時系統、實時系統
作業系統的三種基本型別:多道批處理系統、分時系統、實時系統。
到目前基本上都是通用作業系統:具有多種型別操作特徵的作業系統。可以同時兼有多道批處理、分時、實時處理的功能,或其中兩種以上的功能。
至此,作業系統的基本概念、功能、基本結構和組成都已形成並漸趨完善。
2023年第一台計算機誕生--20世紀50年代中期,計算機工作還在採用手工操作方式。此時還沒有作業系統的概念。
批處理系統:載入在計算機上的乙個系統軟體,在它的控制下,計算機能夠自動地、成批地處理乙個或多個使用者的作業(這作業包括程式、資料和命令)。
為克服與緩解:高速主機與慢速外設的矛盾,提高cpu的利用率,又引入了離線批處理系統,即輸入/輸出脫離主機控制。
所謂多道程式設計技術,就是指允許多個程式同時進入記憶體並執行。即同時把多個程式放入記憶體,並允許它們交替在cpu中執行,它們共享系統中的各種硬、軟體資源。當一道程式因i/o請求而暫停執行時,cpu便立即轉去執行另一道程式。
多道程式系統的出現,標誌著作業系統漸趨成熟的階段,先後出現了作業排程管理、處理機管理、儲存器管理、外部裝置管理、檔案系統管理等功能。
由於多個程式同時在計算機中執行,開始有了空間隔離的概念,只有記憶體空間的隔離,才能讓資料更加安全、穩定。
出了空間隔離之外,多道技術還第一次體現了時空復用的特點,遇到io操作就切換程式,使得cpu的利用率提高了,計算機的工作效率也隨之提高。
由於cpu速度不斷提高和採用分時技術,一台計算機可同時連線多個使用者終端,而每個使用者可在自己的終端上聯機使用計算機,好象自己獨佔機器一樣。
分時技術:把處理機的執行時間分成很短的時間片,按時間片輪流把處理機分配給各聯機作業使用。
雖然多道批處理系統和分時系統能獲得較令人滿意的資源利用率和系統響應時間,但卻不能滿足實時控制與實時資訊處理兩個應用領域的需求。於是就產生了實時系統,即系統能夠及時響應隨機發生的外部事件,並在嚴格的時間範圍內完成對該事件的處理。
進入20世紀80年代,大規模積體電路工藝技術的飛躍發展,微處理機的出現和發展,掀起了計算機大發展大普及的浪潮。一方面迎來了個人計算機的時代,同時又向計算機網路、分布式處理、巨型計算機和智慧型化方向發展。於是,作業系統有了進一步的發展,如:個人計算機作業系統、網路作業系統、分布式作業系統等。
現代的計算機系統主要是由乙個或者多個處理器,主存,硬碟,鍵盤,滑鼠,顯示器,印表機,網路介面及其他輸入輸出裝置組成。
一般而言,現代計算機系統是乙個複雜的系統。
其一:如果每位應用程式設計師都必須掌握該系統所有的細節,那就不可能再編寫**了(嚴重影響了程式設計師的開發效率:全部掌握這些細節可能需要一萬年....)
其二:並且管理這些部件並加以優化使用,是一件極富挑戰性的工作,於是,計算安裝了一層軟體(系統軟體),稱為作業系統。它的任務就是為使用者程式提供乙個更好、更簡單、更清晰的計算機模型,並管理剛才提到的所有裝置。
總結:
程式設計師無法把所有的硬體操作細節都了解到,管理這些硬體並且加以優化使用是非常繁瑣的工作,這個繁瑣的工作就是作業系統來幹的,有了他,程式設計師就從這些繁瑣的工作中解脫了出來,只需要考慮自己的應用軟體的編寫就可以了,應用軟體直接使用作業系統提供的功能來間接使用硬體。
精簡的說的話,作業系統就是乙個協調、管理和控制計算機硬體資源和軟體資源的控制程式。作業系統所處的位置如圖
一:隱藏了醜陋的硬體呼叫介面,為應用程式設計師提供呼叫硬體資源的更好,更簡單,更清晰的模型(系統呼叫介面)。應用程式設計師有了這些介面後,就不用再考慮操作硬體的細節,專心開發自己的應用程式即可。
例如:作業系統提供了檔案這個抽象概念,對檔案的操作就是對磁碟的操作,有了檔案我們無需再去考慮關於磁碟的讀寫控制(比如控制磁碟轉動,移動磁頭讀寫資料等細節),
二:將應用程式對硬體資源的競態請求變得有序化
例如:很多應用軟體其實是共享一套計算機硬體,比方說有可能有三個應用程式同時需要申請印表機來輸出內容,那麼a程式競爭到了印表機資源就列印,然後可能是b競爭到印表機資源,也可能是c,這就導致了無序,印表機可能列印一段a的內容然後又去列印c...,作業系統的乙個功能就是將這種無序變得有序。
作業系統 程序
在作業系統中,作業系統將記憶體,網路,檔案系統抽象為資源的統一抽象表示。1 什麼是程序 程序就是進入記憶體中正在執行的程式。把程序當做一組元素組成的實體。程序包括兩個部分,一部分是 部分,另一部分是 相關的資料集合。程序控制塊 每乙個程序,在核心中都對應著乙個程序控制塊。程序控制塊中儲存著程序的所有...
作業系統 程序
程序是作業系統中的重要概念,描述了程式的執行資訊。乙個程序就是一次執行。可以把程式想象成類,程序就是例項。引入程序的概念有利於實現多程式並行的設計。每乙個程式執行的時候可以大致分為io任務和計算任務,如果乙個程序正在io,那麼應該把cpu讓給另乙個程序執行計算任務,這樣可以提公升cpu的利用率,這就...
作業系統程序
乙個程序就是乙個正在執行的程式。它包括 程序狀態。包括 每個程序在作業系統中用程序控制塊pcb來表示,用來儲存與該程序有關的各種狀態資訊。pcb只是基本原理中的說法,對於乙個真實的作業系統可能不叫pcb,比如linux中叫做任務結構體 task struct 分時系統是在程序之間快速切換,以便使用者...