操做系統介紹

1、爲何要有操做系統 

  現代的計算機系統主要是由一個或者多個處理器,主存,硬盤,鍵盤,鼠標,顯示器,打印機,網絡接口及其餘輸入輸出設備組成。
  程序員沒法把全部的硬件操做細節都瞭解到,管理這些硬件而且加以優化使用是很是繁瑣的工做,這個繁瑣的工做就是操做系統來幹的,有了他,程序員就從這些繁瑣的工做中解脫了出來,只須要考慮本身的應用軟件的編寫就能夠了,應用軟件直接使用操做系統提供的功能來間接使用硬件。程序員

2、什麼是操做系統及操做系統功能

  定義:操做系統就是一個協調、管理和控制計算機硬件資源和軟件資源的控制程序算法

  操做系統位於計算機硬件與應用軟件之間,本質也是一個軟件。操做系統由操做系統的內核(運行於內核態,管理硬件資源)以及系統調用(運行於用戶態,爲應用程序員寫的應用程序提供系統調用接口)兩部分組成。
  安全

  上圖是操做系統所處的位置,操做系統應該分爲兩部分功能:網絡

一、隱藏了醜陋的硬件調用接口

  爲應用程序員提供調用硬件資源的更好,更簡單,更清>晰的模型(系統調用接口)。應用程序員有了這些接口後,就不用再考慮操做硬件的細節,專心開發本身的應用程序便可。併發

例如:操做系統提供了文件這個抽象概念,對文件的操做就是對磁盤的操做,有了文件咱們無需再去考慮關於磁盤的讀寫控制(好比控制磁盤轉動,移動磁頭讀寫數據等細節)。優化

二、將應用程序對硬件資源的競態請求變得有序化。

例如:不少應用軟件實際上是共享一套計算機硬件,比方說有可能有三個應用程序同時須要申請打印機來輸出內容,那麼a程序競爭到了打印機資源就打印,而後多是b競爭到打印機資源,也多是c,這就致使了無序,打印機可能打印一段a的內容而後又去打印c...,操做系>統的一個功能就是將這種無序變得有序。spa

3、操做系統發展史

一、第一代計算機(1940~1955):真空管和穿孔卡片

  這個時期的電腦沒有操做系統,全部程序設計都是直接操控硬件。程序員拿着他的插件版到機房裏,將本身的插件板街道計算機裏,這幾個小時內他獨享整個計算機資源,後面的一批人都得等着
  優勢:在申請時間段內獨享資源,即時調試程序。
  缺點:浪費計算機資源,一個時間段只有一我的用。操作系統

二、第二代計算機(1955~1965):晶體管和批處理系統

  程序員在穿孔卡片上寫好程序,而後放在讀卡機上,收集足夠後,這些卡片讀進磁帶。機房管理人員把磁帶裝到磁帶機上,操做人員裝入一個特殊程序,它從磁帶讀取做業並運行輸出到第二盤磁帶,看成業全完成,取下輸入和輸出的磁帶,把輸出磁帶拿到1401機器上進行脫機打印。
  1401:I/O操做  7094:計算操做
  特色:輸入攢一大波、還是順序計算、輸出攢一大波
  優勢:批處理,節省時間
  缺點:1.流程須要人蔘與控制;2.計算過程仍然是順序計算--》串行計算
     3.程序員等待結果和從新調試的過程都須要等同批次的其餘程序都運做完才能夠。(影響開發效率)插件

三、第三代計算機(1965~1980):集成電路芯片和多道程序設計

  因爲第二代計算機有兩套機型:設計

  7094大型科學計算機:主要用於科學計算和工程計算。(面向字)
  1401商用計算機:主要用於銀行和保險從事磁帶歸檔和打印服務。(面向字符)
  IBM經過system/360系列來同時知足上述要求,低檔機與1401至關,高檔機與7094至關。

(1)解決人爲參與問題

  將做業從卡片讀入磁盤,因而任什麼時候刻當一個做業結束時,操做系統就能將一個做業從磁帶讀出,裝進空出來的內存區域運行,這種技術叫作同時的外部設備聯機操做:SPOOLING,該技術同時用於輸出。

(2)解決串行計算問題

  cpu運行的速度遠遠快於讀取硬盤數據的速度,所以引入了內存,CPU能夠很是快速地讀取內存的數據。
  多道技術:多道指得是多個程序,解決多個程序競爭或共享同一個資源的有序調度問題,解決方式是多路複用,多路複用時間複用空間上的複用
  空間上的複用:複用內存空間,內存同時存多個程序
        空間複用存在的問題:必須保證物理層面上多個程序的內存是互相隔離的。不然會喪失安全性和穩定性。正是因爲內存物理隔離的問題,第三代計算機操做系統依然是批處理
  時間上的複用:你們共享cpu的時間,當一個程序在等待I/O時,另外一個程序可使用cpu,若是內存中能夠同時存放足夠多的做業,則cpu的利用率能夠接近100%,相似於小學數學所學的統籌方法。
        切換情形:1)會在一個進程遇到io時進行;2)一個進程佔用cpu時間過長也會切換,或者說被操做系統奪走cpu的執行權限。

(3)解決像第一代同樣即時調試本身的程序

  分時操做系統:多個聯機終端+多道技術,索引計算機可以爲許多用戶提供快速的交互式服務,全部的用戶都覺得本身獨享了計算機資源
  UNIX:Ken Thompson開發了一個簡易、單用戶版本的MULTICS,爲了使程序能在任何版本的unix上運行,IEEE提出了一個unix標準,即posix(可移植的操做系統接口Portable Operating System Interface)
  minix:教學用系統
  Linux:芬蘭學生Linus Torvalds基於minix它編寫
  

四、第四代計算機(1980~至今):我的計算機

4、總結

一、操做系統的做用

  1.隱藏醜陋複雜的硬件接口,提供良好的抽象接口
  2.管理、調度進程,並將多個進程對硬件的競爭變得有序。

二、多道技術

  1.產生的背景:針對單核,實現併發看起來多個進程像在同時運行,注意和並行的區別)          如今的主機通常是多核(幾個核最多能夠幾個並行),那麼每一個核都會利用多道技術。        有4個cpu,運行於cpu1的某個程序遇到io阻塞,會等到io結束再從新調度,會被調度到4個cpu中的任意一個,具體由操做系統調度算法決定。  2.空間上的複用:內存中同時有多道程序  3.時間上的複用:複用一個cpu的時間片      注意:遇到io切,佔用cpu時間過長也切,核心在於切以前將進程的狀態保存下來,這樣才能保證下次切換回來時,能基於上次切走的位置繼續運行

相關文章
相關標籤/搜索