1. 程式人生 > >python之併發程式設計—作業系統的發展史

python之併發程式設計—作業系統的發展史

手工操作 —— 穿孔卡片

      1946年第一臺計算機誕生--20世紀50年代中期,計算機工作還在採用手工操作方式。此時還沒有作業系統的概念。

         

  程式設計師將對應於程式和資料的已穿孔的紙帶(或卡片)裝入輸入機,然後啟動輸入機把程式和資料輸入計算機記憶體,接著通過控制檯開關啟動程式針對資料執行;計算完畢,印表機輸出計算結果;使用者取走結果並卸下紙帶(或卡片)後,才讓下一個使用者上機。

手工操作方式兩個特點:   (1)使用者獨佔全機。不會出現因資源已被其他使用者佔用而等待的現象,但資源的利用率低。   (2)CPU 等待手工操作。CPU的利用不充分。         20世紀50年代後期,出現
人機矛盾
:手工操作的慢速度和計算機的高速度之間形成了尖銳矛盾,手工操作方式已嚴重損害了系統資源的利用率(使資源利用率降為百分之幾,甚至更低),不能容忍。唯一的解決辦法:只有擺脫人的手工操作,實現作業的自動過渡。這樣就出現了成 批處理

批處理 —— 磁帶儲存

  批處理系統:載入在計算機上的一個系統軟體,在它的控制下,計算機能夠自動地、成批地處理一個或多個使用者的作業(這作業包括程式、資料和命令)。

聯機批處理系統

  首先出現的是聯機批處理系統,即作業的輸入/輸出由CPU來處理。       

 

  主機與輸入機之間增加一個儲存裝置——磁帶,在運行於主機上的監督程式的自動控制下,計算機可自動完成:成批地把輸入機上的使用者作業讀入磁帶,依次把磁帶上的使用者作業讀入主機記憶體並執行並把計算結果向輸出機輸出。完成了上一批作業後,監督程式又從輸入機上輸入另一批作業,儲存在磁帶上,並按上述步驟重複處理。 監督程式不停地處理各個作業,從而實現了作業到作業的自動轉接,減少了作業建立時間和手工操作時間,有效克服了人機矛盾,提高了計算機的利用率。 但是,在作業輸入和結果輸出時,主機的高速CPU仍處於空閒狀態,等待慢速的輸入/輸出裝置完成工作: 主機處於“忙等”狀態。

離線批處理系統

  為克服與緩解:高速主機與慢速外設的矛盾,提高CPU的利用率,又引入了 離線批處理系統,即輸入/輸出脫離主機控制。      

     

 

  衛星機:一臺不與主機直接相連而專門用於與輸入/輸出裝置打交道的。   其功能是:   (1)從輸入機上讀取使用者作業並放到輸入磁帶上。   (2)從輸出磁帶上讀取執行結果並傳給輸出機。   這樣,主機不是直接與慢速的輸入/輸出裝置打交道,而是與速度相對較快的磁帶機發生關係,有效緩解了主機與裝置的矛盾。主機與衛星機可並行工作,二者分工明確,可以充分發揮主機的高速計算能力。       離線批處理系統:20世紀60年代應用十分廣泛,它極大緩解了人機矛盾及主機與外設的矛盾。   不足:每次主機記憶體中僅存放一道作業,每當它執行期間發出輸入/輸出(I/O)請求後,高速的CPU便處於等待低速的I/O完成狀態,致使CPU空閒。 為改善CPU的利用率,又引入了多道程式系統。

多道程式系統

多道程式設計技術

      所謂多道程式設計技術,就是指允許多個程式同時進入記憶體並執行。即同時把多個程式放入記憶體,並允許它們交替在CPU中執行,它們共享系統中的各種硬、軟體資源。當一道程式因I/O請求而暫停執行時,CPU便立即轉去執行另一道程式。

      在A程式計算時,I/O空閒, A程式I/O操作時,CPU空閒(B程式也是同樣);必須A工作完成後,B才能進入記憶體中開始工作,兩者是序列的,全部完成共需時間=T1+T2。

             將A、B兩道程式同時存放在記憶體中,它們在系統的控制下,可相互穿插、交替地在CPU上執行:當A程式因請求I/O操作而放棄CPU時,B程式就可佔用CPU執行,這樣 CPU不再空閒,而正進行A I/O操作的I/O裝置也不空閒,顯然,CPU和I/O裝置都處於“忙”狀態,大大提高了資源的利用率,從而也提高了系統的效率,A、B全部完成所需時間<<T1+T2。       多道程式設計技術不僅使CPU得到充分利用,同時改善I/O裝置和記憶體的利用率,從而提高了整個系統的資源利用率和系統吞吐量(單位時間內處理作業(程式)的個數),最終提高了整個系統的效率。   單處理機系統中多道程式執行時的特點:   (1)多道:計算機記憶體中同時存放幾道相互獨立的程式;   (2)巨集觀上並行:同時進入系統的幾道程式都處於執行過程中,即它們先後開始了各自的執行,但都未執行完畢;   (3)微觀上序列:實際上,各道程式輪流地用CPU,並交替執行。 多道程式系統的出現,標誌著作業系統漸趨成熟的階段,先後出現了作業排程管理、處理機管理、儲存器管理、外部裝置管理、檔案系統管理等功能。 由於多個程式同時在計算機中執行,開始有了空間隔離的概念,只有記憶體空間的隔離,才能讓資料更加安全、穩定。 出了空間隔離之外,多道技術還第一次體現了時空複用的特點,遇到IO操作就切換程式,使得cpu的利用率提高了,計算機的工作效率也隨之提高。

多道批處理系統

  20世紀60年代中期,在前述的批處理系統中,引入多道程式設計技術後形成多道批處理系統(簡稱:批處理系統)。   它有兩個特點:   (1)多道:系統內可同時容納多個作業。這些作業放在外存中,組成一個後備佇列,系統按一定的排程原則每次從後備作業佇列中選取一個或多個作業進入記憶體執行,執行作業結束、退出執行和後備作業進入執行均由系統自動實現,從而在系統中形成一個自動轉接的、連續的作業流。   (2)成批:在系統執行過程中,不允許使用者與其作業發生互動作用,即:作業一旦進入系統,使用者就不能直接干預其作業的執行。   批處理系統的追求目標:提高系統資源利用率和系統吞吐量,以及作業流程的自動化。   批處理系統的一個重要缺點:不提供人機互動能力,給使用者使用計算機帶來不便。   雖然使用者獨佔全機資源,並且直接控制程式的執行,可以隨時瞭解程式執行情況。但這種工作方式因獨佔全機造成資源效率極低。   一種新的追求目標:既能保證計算機效率,又能方便使用者使用計算機。 20世紀60年代中期,計算機技術和軟體技術的發展使這種追求成為可能。

分時系統

      由於CPU速度不斷提高和採用分時技術,一臺計算機可同時連線多個使用者終端,而每個使用者可在自己的終端上聯機使用計算機,好象自己獨佔機器一樣。          分時技術:把處理機的執行時間分成很短的時間片,按時間片輪流把處理機分配給各聯機作業使用。   若某個作業在分配給它的時間片內不能完成其計算,則該作業暫時中斷,把處理機讓給另一作業使用,等待下一輪時再繼續其執行。由於計算機速度很快,作業執行輪轉得很快,給每個使用者的印象是,好象他獨佔了一臺計算機。而每個使用者可以通過自己的終端向系統發出各種操作控制命令,在充分的人機互動情況下,完成作業的執行。 具有上述特徵的計算機系統稱為分時系統,它允許多個使用者同時聯機使用計算機。   特點:   (1)多路性。若干個使用者同時使用一臺計算機。微觀上看是各使用者輪流使用計算機;巨集觀上看是各使用者並行工作。   (2)互動性。使用者可根據系統對請求的響應結果,進一步向系統提出新的請求。這種能使使用者與系統進行人機對話的工作方式,明顯地有別於批處理系統,因而,分時系統又被稱為互動式系統。   (3)獨立性。使用者之間可以相互獨立操作,互不干擾。系統保證各使用者程式執行的完整性,不會發生相互混淆或破壞現象。   (4)及時性。系統可對使用者的輸入及時作出響應。分時系統效能的主要指標之一是響應時間,它是指:從終端發出命令到系統予以應答所需的時間。    分時系統的主要目標:對使用者響應的及時性,即不至於使用者等待每一個命令的處理時間過長。 分時系統可以同時接納數十個甚至上百個使用者,由於記憶體空間有限,往往採用對換(又稱交換)方式的儲存方法。即將未“輪到”的作業放入磁碟,一旦“輪到”,再將其調入記憶體;而時間片用完後,又將作業存回磁碟(俗稱“滾進”、“滾出“法),使同一儲存區域輪流為多個使用者服務。 多使用者分時系統是當今計算機作業系統中最普遍使用的一類作業系統。       注意:分時系統的分時間片工作,在沒有遇到IO操作的時候就用完了自己的時間片被切走了,這樣的切換工作其實並沒有提高cpu的效率,反而使得計算機的效率降低了。但是我們犧牲了一點效率,卻實現了多個程式共同執行的效果,這樣你就可以在計算機上一邊聽音樂一邊聊qq了。

實時系統

    雖然多道批處理系統和分時系統能獲得較令人滿意的資源利用率和系統響應時間,但卻不能滿足實時控制與實時資訊處理兩個應用領域的需求。於是就產生了實時系統,即系統能夠及時響應隨機發生的外部事件,並在嚴格的時間範圍內完成對該事件的處理。 實時系統在一個特定的應用中常作為一種控制裝置來使用。     實時系統可分成兩類:     (1)實時控制系統。當用于飛機飛行、導彈發射等的自動控制時,要求計算機能儘快處理測量系統測得的資料,及時地對飛機或導彈進行控制,或將有關資訊通過顯示終端提供給決策人員。當用於軋鋼、石化等工業生產過程控制時,也要求計算機能及時處理由各類感測器送來的資料,然後控制相應的執行機構。     (2)實時資訊處理系統。當用於預定飛機票、查詢有關航班、航線、票價等事宜時,或當用於銀行系統、情報檢索系統時,都要求計算機能對終端裝置發來的服務請求及時予以正確的回答。此類對響應及時性的要求稍弱於第一類。    實時作業系統的主要特點:   (1)及時響應。每一個資訊接收、分析處理和傳送的過程必須在嚴格的時間限制內完成。   (2)高可靠性。需採取冗餘措施,雙機系統前後臺工作,也包括必要的保密措施等。
分時——現在流行的PC,伺服器都是採用這種執行模式,即把CPU的執行分成若干時間片分別處理不同的運算請求 linux系統
實時——一般用於微控制器上、PLC等,比如電梯的上下控制中,對於按鍵等動作要求進行實時處理 
分時系統和實時系統的比較

通用作業系統

  作業系統的三種基本型別:多道批處理系統、分時系統、實時系統。    通用作業系統:具有多種型別操作特徵的作業系統。可以同時兼有多道批處理、分時、實時處理的功能,或其中兩種以上的功能。   例如:實時處理+批處理=實時批處理系統。首先保證優先處理實時任務,插空進行批處理作業。常把實時任務稱為前臺作業,批作業稱為後臺作業。   再如:分時處理+批處理=分時批處理系統。即:時間要求不強的作業放入“後臺”(批處理)處理,需頻繁互動的作業在“前臺”(分時)處理,處理機優先執行“前臺”作業。   從上世紀60年代中期,國際上開始研製一些大型的通用作業系統。這些系統試圖達到功能齊全、可適應各種應用範圍和操作方式變化多端的環境的目標。但是,這些系統過於複雜和龐大,不僅付出了巨大的代價,且在解決其可靠性、可維護性和可理解性方面都遇到很大的困難。   相比之下,UNIX作業系統卻是一個例外。這是一個通用的多使用者分時互動型的作業系統。它首先建立的是一個精幹的核心,而其功能卻足以與許多大型的作業系統相媲美,在核心層以外,可以支援龐大的軟體系統。它很快得到應用和推廣,並不斷完善,對現代作業系統有著重大的影響。   至此,作業系統的基本概念、功能、基本結構和組成都已形成並漸趨完善。

作業系統的進一步發展

  進入20世紀80年代,大規模積體電路工藝技術的飛躍發展,微處理機的出現和發展,掀起了計算機大發展大普及的浪潮。一方面迎來了個人計算機的時代,同時又向計算機網路、分散式處理、巨型計算機和智慧化方向發展。於是,作業系統有了進一步的發展,如:個人計算機作業系統、網路作業系統、分散式作業系統等。

個人計算機作業系統

  個人計算機上的作業系統是聯機互動的單使用者作業系統,它提供的聯機互動功能與通用分時系統提供的功能很相似。   由於是個人專用,因此一些功能會簡單得多。然而,由於個人計算機的應用普及,對於提供更方便友好的使用者介面和豐富功能的檔案系統的要求會愈來愈迫切。

網路作業系統

  計算機網路:通過通訊設施,將地理上分散的、具有自治功能的多個計算機系統互連起來,實現資訊交換、資源共享、互操作和協作處理的系統。   網路作業系統:在原來各自計算機作業系統上,按照網路體系結構的各個協議標準增加網路管理模組,其中包括:通訊、資源共享、系統安全和各種網路應用服務。

分散式作業系統

  表面上看,分散式系統與計算機網路系統沒有多大區別。分散式作業系統也是通過通訊網路,將地理上分散的具有自治功能的資料處理系統或計算機系統互連起來,實現資訊交換和資源共享,協作完成任務。——硬體連線相同。   但有如下一些明顯的區別:   (1)分散式系統要求一個統一的作業系統,實現系統操作的統一性。   (2)分散式作業系統管理分散式系統中的所有資源,它負責全系統的資源分配和排程、任務劃分、資訊傳輸和控制協調工作,併為使用者提供一個統一的介面。   (3)使用者通過這一介面,實現所需要的操作和使用系統資源,至於操作定在哪一臺計算機上執行,或使用哪臺計算機的資源,則是作業系統完成的,使用者不必知道,此謂:系統的透明性。   (4)分散式系統更強調分散式計算和處理,因此對於多機合作和系統重構、堅強性和容錯能力有更高的要求,希望系統有:更短的響應時間、高吞吐量和高可靠性。

作業系統的作用

  現代的計算機系統主要是由一個或者多個處理器,主存,硬碟,鍵盤,滑鼠,顯示器,印表機,網路介面及其他輸入輸出裝置組成。

  一般而言,現代計算機系統是一個複雜的系統。

  其一:如果每位應用程式設計師都必須掌握該系統所有的細節,那就不可能再編寫程式碼了(嚴重影響了程式設計師的開發效率:全部掌握這些細節可能需要一萬年....)

  其二:並且管理這些部件並加以優化使用,是一件極富挑戰性的工作,於是,計算安裝了一層軟體(系統軟體),稱為作業系統。它的任務就是為使用者程式提供一個更好、更簡單、更清晰的計算機模型,並管理剛才提到的所有裝置。

  總結:

  程式設計師無法把所有的硬體操作細節都瞭解到,管理這些硬體並且加以優化使用是非常繁瑣的工作,這個繁瑣的工作就是作業系統來乾的,有了他,程式設計師就從這些繁瑣的工作中解脫了出來,只需要考慮自己的應用軟體的編寫就可以了,應用軟體直接使用作業系統提供的功能來間接使用硬體。

  精簡的說的話,作業系統就是一個協調、管理和控制計算機硬體資源和軟體資源的控制程式。作業系統所處的位置如圖

  細說的話,作業系統應該分成兩部分功能:

  

複製程式碼
#一:隱藏了醜陋的硬體呼叫介面,為應用程式設計師提供呼叫硬體資源的更好,更簡單,更清晰的模型(系統呼叫介面)。應用程式設計師有了這些介面後,就不用再考慮操作硬體的細節,專心開發自己的應用程式即可。
例如:作業系統提供了檔案這個抽象概念,對檔案的操作就是對磁碟的操作,有了檔案我們無需再去考慮關於磁碟的讀寫控制(比如控制磁碟轉動,移動磁頭讀寫資料等細節),

#二:將應用程式對硬體資源的競態請求變得有序化
例如:很多應用軟體其實是共享一套計算機硬體,比方說有可能有三個應用程式同時需要申請印表機來輸出內容,那麼a程式競爭到了印表機資源就列印,然後可能是b競爭到印表機資源,也可能是c,這就導致了無序,印表機可能列印一段a的內容然後又去列印c...,作業系統的一個功能就是將這種無序變得有序。
複製程式碼

 

手工操作 —— 穿孔卡片

      1946年第一臺計算機誕生--20世紀50年代中期,計算機工作還在採用手工操作方式。此時還沒有作業系統的概念。

         

  程式設計師將對應於程式和資料的已穿孔的紙帶(或卡片)裝入輸入機,然後啟動輸入機把程式和資料輸入計算機記憶體,接著通過控制檯開關啟動程式針對資料執行;計算完畢,印表機輸出計算結果;使用者取走結果並卸下紙帶(或卡片)後,才讓下一個使用者上機。

手工操作方式兩個特點:   (1)使用者獨佔全機。不會出現因資源已被其他使用者佔用而等待的現象,但資源的利用率低。   (2)CPU 等待手工操作。CPU的利用不充分。         20世紀50年代後期,出現 人機矛盾:手工操作的慢速度和計算機的高速度之間形成了尖銳矛盾,手工操作方式已嚴重損害了系統資源的利用率(使資源利用率降為百分之幾,甚至更低),不能容忍。唯一的解決辦法:只有擺脫人的手工操作,實現作業的自動過渡。這樣就出現了成 批處理

批處理 —— 磁帶儲存

  批處理系統:載入在計算機上的一個系統軟體,在它的控制下,計算機能夠自動地、成批地處理一個或多個使用者的作業(這作業包括程式、資料和命令)。

聯機批處理系統

  首先出現的是聯機批處理系統,即作業的輸入/輸出由CPU來處理。       

 

  主機與輸入機之間增加一個儲存裝置——磁帶,在運行於主機上的監督程式的自動控制下,計算機可自動完成:成批地把輸入機上的使用者作業讀入磁帶,依次把磁帶上的使用者作業讀入主機記憶體並執行並把計算結果向輸出機輸出。完成了上一批作業後,監督程式又從輸入機上輸入另一批作業,儲存在磁帶上,並按上述步驟重複處理。 監督程式不停地處理各個作業,從而實現了作業到作業的自動轉接,減少了作業建立時間和手工操作時間,有效克服了人機矛盾,提高了計算機的利用率。 但是,在作業輸入和結果輸出時,主機的高速CPU仍處於空閒狀態,等待慢速的輸入/輸出裝置完成工作: 主機處於“忙等”狀態。

離線批處理系統

  為克服與緩解:高速主機與慢速外設的矛盾,提高CPU的利用率,又引入了 離線批處理系統,即輸入/輸出脫離主機控制。      

     

 

  衛星機:一臺不與主機直接相連而專門用於與輸入/輸出裝置打交道的。   其功能是:   (1)從輸入機上讀取使用者作業並放到輸入磁帶上。   (2)從輸出磁帶上讀取執行結果並傳給輸出機。   這樣,主機不是直接與慢速的輸入/輸出裝置打交道,而是與速度相對較快的磁帶機發生關係,有效緩解了主機與裝置的矛盾。主機與衛星機可並行工作,二者分工明確,可以充分發揮主機的高速計算能力。       離線批處理系統:20世紀60年代應用十分廣泛,它極大緩解了人機矛盾及主機與外設的矛盾。   不足:每次主機記憶體中僅存放一道作業,每當它執行期間發出輸入/輸出(I/O)請求後,高速的CPU便處於等待低速的I/O完成狀態,致使CPU空閒。 為改善CPU的利用率,又引入了多道程式系統。

多道程式系統

多道程式設計技術

      所謂多道程式設計技術,就是指允許多個程式同時進入記憶體並執行。即同時把多個程式放入記憶體,並允許它們交替在CPU中執行,它們共享系統中的各種硬、軟體資源。當一道程式因I/O請求而暫停執行時,CPU便立即轉去執行另一道程式。

      在A程式計算時,I/O空閒, A程式I/O操作時,CPU空閒(B程式也是同樣);必須A工作完成後,B才能進入記憶體中開始工作,兩者是序列的,全部完成共需時間=T1+T2。

             將A、B兩道程式同時存放在記憶體中,它們在系統的控制下,可相互穿插、交替地在CPU上執行:當A程式因請求I/O操作而放棄CPU時,B程式就可佔用CPU執行,這樣 CPU不再空閒,而正進行A I/O操作的I/O裝置也不空閒,顯然,CPU和I/O裝置都處於“忙”狀態,大大提高了資源的利用率,從而也提高了系統的效率,A、B全部完成所需時間<<T1+T2。       多道程式設計技術不僅使CPU得到充分利用,同時改善I/O裝置和記憶體的利用率,從而提高了整個系統的資源利用率和系統吞吐量(單位時間內處理作業(程式)的個數),最終提高了整個系統的效率。   單處理機系統中多道程式執行時的特點:   (1)多道:計算機記憶體中同時存放幾道相互獨立的程式;   (2)巨集觀上並行:同時進入系統的幾道程式都處於執行過程中,即它們先後開始了各自的執行,但都未執行完畢;   (3)微觀上序列:實際上,各道程式輪流地用CPU,並交替執行。 多道程式系統的出現,標誌著作業系統漸趨成熟的階段,先後出現了作業排程管理、處理機管理、儲存器管理、外部裝置管理、檔案系統管理等功能。 由於多個程式同時在計算機中執行,開始有了空間隔離的概念,只有記憶體空間的隔離,才能讓資料更加安全、穩定。 出了空間隔離之外,多道技術還第一次體現了時空複用的特點,遇到IO操作就切換程式,使得cpu的利用率提高了,計算機的工作效率也隨之提高。

多道批處理系統

  20世紀60年代中期,在前述的批處理系統中,引入多道程式設計技術後形成多道批處理系統(簡稱:批處理系統)。   它有兩個特點:   (1)多道:系統內可同時容納多個作業。這些作業放在外存中,組成一個後備佇列,系統按一定的排程原則每次從後備作業佇列中選取一個或多個作業進入記憶體執行,執行作業結束、退出執行和後備作業進入執行均由系統自動實現,從而在系統中形成一個自動轉接的、連續的作業流。   (2)成批:在系統執行過程中,不允許使用者與其作業發生互動作用,即:作業一旦進入系統,使用者就不能直接干預其作業的執行。   批處理系統的追求目標:提高系統資源利用率和系統吞吐量,以及作業流程的自動化。   批處理系統的一個重要缺點:不提供人機互動能力,給使用者使用計算機帶來不便。   雖然使用者獨佔全機資源,並且直接控制程式的執行,可以隨時瞭解程式執行情況。但這種工作方式因獨佔全機造成資源效率極低。   一種新的追求目標:既能保證計算機效率,又能方便使用者使用計算機。 20世紀60年代中期,計算機技術和軟體技術的發展使這種追求成為可能。

分時系統

      由於CPU速度不斷提高和採用分時技術,一臺計算機可同時連線多個使用者終端,而每個使用者可在自己的終端上聯機使用計算機,好象自己獨佔機器一樣。          分時技術:把處理機的執行時間分成很短的時間片,按時間片輪流把處理機分配給各聯機作業使用。   若某個作業在分配給它的時間片內不能完成其計算,則該作業暫時中斷,把處理機讓給另一作業使用,等待下一輪時再繼續其執行。由於計算機速度很快,作業執行輪轉得很快,給每個使用者的印象是,好象他獨佔了一臺計算機。而每個使用者可以通過自己的終端向系統發出各種操作控制命令,在充分的人機互動情況下,完成作業的執行。 具有上述特徵的計算機系統稱為分時系統,它允許多個使用者同時聯機使用計算機。   特點:   (1)多路性。若干個使用者同時使用一臺計算機。微觀上看是各使用者輪流使用計算機;巨集觀上看是各使用者並行工作。   (2)互動性。使用者可根據系統對請求的響應結果,進一步向系統提出新的請求。這種能使使用者與系統進行人機對話的工作方式,明顯地有別於批處理系統,因而,分時系統又被稱為互動式系統。   (3)獨立性。使用者之間可以相互獨立操作,互不干擾。系統保證各使用者程式執行的完整性,不會發生相互混淆或破壞現象。   (4)及時性。系統可對使用者的輸入及時作出響應。分時系統效能的主要指標之一是響應時間,它是指:從終端發出命令到系統予以應答所需的時間。    分時系統的主要目標:對使用者響應的及時性,即不至於使用者等待每一個命令的處理時間過長。 分時系統可以同時接納數十個甚至上百個使用者,由於記憶體空間有限,往往採用對換(又稱交換)方式的儲存方法。即將未“輪到”的作業放入磁碟,一旦“輪到”,再將其調入記憶體;而時間片用完後,又將作業存回磁碟(俗稱“滾進”、“滾出“法),使同一儲存區域輪流為多個使用者服務。 多使用者分時系統是當今計算機作業系統中最普遍使用的一類作業系統。       注意:分時系統的分時間片工作,在沒有遇到IO操作的時候就用完了自己的時間片被切走了,這樣的切換工作其實並沒有提高cpu的效率,反而使得計算機的效率降低了。但是我們犧牲了一點效率,卻實現了多個程式共同執行的效果,這樣你就可以在計算機上一邊聽音樂一邊聊qq了。

實時系統

    雖然多道批處理系統和分時系統能獲得較令人滿意的資源利用率和系統響應時間,但卻不能滿足實時控制與實時資訊處理兩個應用領域的需求。於是就產生了實時系統,即系統能夠及時響應隨機發生的外部事件,並在嚴格的時間範圍內完成對該事件的處理。 實時系統在一個特定的應用中常作為一種控制裝置來使用。     實時系統可分成兩類:     (1)實時控制系統。當用于飛機飛行、導彈發射等的自動控制時,要求計算機能儘快處理測量系統測得的資料,及時地對飛機或導彈進行控制,或將有關資訊通過顯示終端提供給決策人員。當用於軋鋼、石化等工業生產過程控制時,也要求計算機能及時處理由各類感測器送來的資料,然後控制相應的執行機構。     (2)實時資訊處理系統。當用於預定飛機票、查詢有關航班、航線、票價等事宜時,或當用於銀行系統、情報檢索系統時,都要求計算機能對終端裝置發來的服務請求及時予以正確的回答。此類對響應及時性的要求稍弱於第一類。    實時作業系統的主要特點:   (1)及時響應。每一個資訊接收、分析處理和傳送的過程必須在嚴格的時間限制內完成。   (2)高可靠性。需採取冗餘措施,雙機系統前後臺工作,也包括必要的保密措施等。
分時——現在流行的PC,伺服器都是採用這種執行模式,即把CPU的執行分成若干時間片分別處理不同的運算請求 linux系統
實時——一般用於微控制器上、PLC等,比如電梯的上下控制中,對於按鍵等動作要求進行實時處理 
分時系統和實時系統的比較

通用作業系統

  作業系統的三種基本型別:多道批處理系統、分時系統、實時系統。    通用作業系統:具有多種型別操作特徵的作業系統。可以同時兼有多道批處理、分時、實時處理的功能,或其中兩種以上的功能。   例如:實時處理+批處理=實時批處理系統。首先保證優先處理實時任務,插空進行批處理作業。常把實時任務稱為前臺作業,批作業稱為後臺作業。   再如:分時處理+批處理=分時批處理系統。即:時間要求不強的作業放入“後臺”(批處理)處理,需頻繁互動的作業在“前臺”(分時)處理,處理機優先執行“前臺”作業。   從上世紀60年代中期,國際上開始研製一些大型的通用作業系統。這些系統試圖達到功能齊全、可適應各種應用範圍和操作方式變化多端的環境的目標。但是,這些系統過於複雜和龐大,不僅付出了巨大的代價,且在解決其可靠性、可維護性和可理解性方面都遇到很大的困難。   相比之下,UNIX作業系統卻是一個例外。這是一個通用的多使用者分時互動型的作業系統。它首先建立的是一個精幹的核心,而其功能卻足以與許多大型的作業系統相媲美,在核心層以外,可以支援龐大的軟體系統。它很快得到應用和推廣,並不斷完善,對現代作業系統有著重大的影響。   至此,作業系統的基本概念、功能、基本結構和組成都已形成並漸趨完善。

作業系統的進一步發展

  進入20世紀80年代,大規模積體電路工藝技術的飛躍發展,微處理機的出現和發展,掀起了計算機大發展大普及的浪潮。一方面迎來了個人計算機的時代,同時又向計算機網路、分散式處理、巨型計算機和智慧化方向發展。於是,作業系統有了進一步的發展,如:個人計算機作業系統、網路作業系統、分散式作業系統等。

個人計算機作業系統

  個人計算機上的作業系統是聯機互動的單使用者作業系統,它提供的聯機互動功能與通用分時系統提供的功能很相似。   由於是個人專用,因此一些功能會簡單得多。然而,由於個人計算機的應用普及,對於提供更方便友好的使用者介面和豐富功能的檔案系統的要求會愈來愈迫切。

網路作業系統

  計算機網路:通過通訊設施,將地理上分散的、具有自治功能的多個計算機系統互連起來,實現資訊交換、資源共享、互操作和協作處理的系統。   網路作業系統:在原來各自計算機作業系統上,按照網路體系結構的各個協議標準增加網路管理模組,其中包括:通訊、資源共享、系統安全和各種網路應用服務。

分散式作業系統

  表面上看,分散式系統與計算機網路系統沒有多大區別。分散式作業系統也是通過通訊網路,將地理上分散的具有自治功能的資料處理系統或計算機系統互連起來,實現資訊交換和資源共享,協作完成任務。——硬體連線相同。   但有如下一些明顯的區別:   (1)分散式系統要求一個統一的作業系統,實現系統操作的統一性。   (2)分散式作業系統管理分散式系統中的所有資源,它負責全系統的資源分配和排程、任務劃分、資訊傳輸和控制協調工作,併為使用者提供一個統一的介面。   (3)使用者通過這一介面,實現所需要的操作和使用系統資源,至於操作定在哪一臺計算機上執行,或使用哪臺計算機的資源,則是作業系統完成的,使用者不必知道,此謂:系統的透明性。   (4)分散式系統更強調分散式計算和處理,因此對於多機合作和系統重構、堅強性和容錯能力有更高的要求,希望系統有:更短的響應時間、高吞吐量和高可靠性。

作業系統的作用

  現代的計算機系統主要是由一個或者多個處理器,主存,硬碟,鍵盤,滑鼠,顯示器,印表機,網路介面及其他輸入輸出裝置組成。

  一般而言,現代計算機系統是一個複雜的系統。

  其一:如果每位應用程式設計師都必須掌握該系統所有的細節,那就不可能再編寫程式碼了(嚴重影響了程式設計師的開發效率:全部掌握這些細節可能需要一萬年....)

  其二:並且管理這些部件並加以優化使用,是一件極富挑戰性的工作,於是,計算安裝了一層軟體(系統軟體),稱為作業系統。它的任務就是為使用者程式提供一個更好、更簡單、更清晰的計算機模型,並管理剛才提到的所有裝置。

  總結:

  程式設計師無法把所有的硬體操作細節都瞭解到,管理這些硬體並且加以優化使用是非常繁瑣的工作,這個繁瑣的工作就是作業系統來乾的,有了他,程式設計師就從這些繁瑣的工作中解脫了出來,只需要考慮自己的應用軟體的編寫就可以了,應用軟體直接使用作業系統提供的功能來間接使用硬體。

  精簡的說的話,作業系統就是一個協調、管理和控制計算機硬體資源和軟體資源的控制程式。作業系統所處的位置如圖

  細說的話,作業系統應該分成兩部分功能:

  

複製程式碼
#一:隱藏了醜陋的硬體呼叫介面,為應用程式設計師提供呼叫硬體資源的更好,更簡單,更清晰的模型(系統呼叫介面)。應用程式設計師有了這些介面後,就不用再考慮操作硬體的細節,專心開發自己的應用程式即可。
例如:作業系統提供了檔案這個抽象概念,對檔案的操作就是對磁碟的操作,有了檔案我們無需再去考慮關於磁碟的讀寫控制(比如控制磁碟轉動,移動磁頭讀寫資料等細節),

#二:將應用程式對硬體資源的競態請求變得有序化
例如:很多應用軟體其實是共享一套計算機硬體,比方說有可能有三個應用程式同時需要申請印表機來輸出內容,那麼a程式競爭到了印表機資源就列印,然後可能是b競爭到印表機資源,也可能是c,這就導致了無序,印表機可能列印一段a的內容然後又去列印c...,作業系統的一個功能就是將這種無序變得有序。
複製程式碼