1 為什麼要有操作系統

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

 

 2 什麼是操作系統

     操作系統就是一個協調、管理和控制計算機硬件資源和軟件資源的控制程序。

     操作系統的位置:

  

同時包括系分和系統架構_同時包括系分和系統架構

       操作系統位於計算機硬件與軟件之間,本質是一個軟件。操作系統由操作系統的內核(運行與內核態,管理硬件資源)以及系統調用(運行於用户態,為應用程序員寫的應用程序提供系統調用接口)兩部分組成,所以,單純的説操作系統是運行於內核態的,是不準確的。

 

  操作系統分為兩個部分:

  (1) 隱藏了醜陋的硬件調用接口,為應用程序員提供調用硬件資源的更好,更簡單,更清晰的模型(系統調用接口)。應用程序員有了這些接口後,就不用再考慮操作硬件的細節,專心開發自己的應用程序即可。

   比如:磁盤資源的抽象是文件系統(C盤,D盤...以及下面的目錄和文件),有了文件的概念,我們直接打開文件,讀或寫就可以了,無需關心記錄是否應該使用修正的調頻記錄方式,以及當前電機的狀態等細節。

  (2)將應用程序對硬件資源的竟態請求變得有序化,例如:很多應用軟件其實是共享一套計算機硬件,比如説有可能有三個應用程序同時需要申請打印機來輸出內容,那麼a程序競爭到了打印機資源就打印,然後可能是b競爭到打印機資源,也可能是c,這就導致了無序,打印機可能打印了一段a的內容然後又去打印b的內容。

   操作系統的一個功能就是將這種無序變得有序(多路複用)

 

3 操作系統的作用

 作用1:為應用程序提供如何使用硬件資源的抽象

     例如:操作系統提供了文件這個抽象概念,對文件的操作就是對磁盤的操作,有了文件我們無需再去考慮關於磁盤的讀寫控制。

     注意:

     操作系統提供應用程序的該抽象是簡單,清晰,優雅的。為何要提供該抽象呢?

     硬件廠商需要為操作系統提供自己硬件的驅動程序(設備驅動,這也是為何我們要使用聲卡,就必須安裝聲卡驅動。廠商為了節省成本或者兼容舊得硬件,他們的驅動程序是複雜且醜陋的。

     操作系統就是為了隱藏這些醜陋的信息,從而為用户提供更好的接口。

     

同時包括系分和系統架構_多路複用_02

 

作用2:管理硬件資源

   現代的操作系統運行同時運行多道程序,操作系統的任務是在相互競爭之間有序地控制對處理器、存儲器以及其他I/O接口設備的分配。

   例如:

   同一台計算機上同時運行三個程序,他們三個想在同一時刻在同一台計算機上輸出結果,那麼開始的幾行可能是程序1的輸出,接下來幾行是程序2的輸出,然後又是程序3的輸出,最終是一團糟(程序之間是一種互相競爭資源的過程)。操作系統將打印機的結果送到磁盤的緩衝區,在一個程序完全結束後,才將暫存在磁盤上的文件送到打印機輸出,同時其他的程序可以繼續產生更多的輸出結果(這些程序的輸出沒有真正的送到打印機),這樣,操作系統就將由競爭產生的無序變得有序化。

 

4  多路複用

   現代計算機或者網絡都是多用户的,多個用户不僅共享硬件,而且共享文件,數據庫等信息,共享意味着衝突和無序。

   操作系統主要使用來

  (1) 記錄哪個程序使用什麼資源

  (2)對資源請求進行分配

  (3) 為不同的程序和用户調解互相沖突的資源請求

  我們可將上述操作系統的功能總結為:處理來自多個程序發起的多個(多個即多路)共享(共享即複用)資源的請求,簡稱多路複用。

   多路複用的兩種實現方式:

 (1) 時間上的複用

    當一個資源在時間上覆用時,不同的程序或用户輪流使用它,第一個程序獲取該資源使用結束後,在輪到第二個。。第三個。。

    例如,只有一個CPU,多個程序需要在該cpu上運行,操作系統先把cpu分給第一個程序,在這個程序運行的足夠長的時間(時間長短由操作系統的算法説了算)或者遇到了I/O阻塞,操作系統則把cpu分配給下一個程序,以此類推,直到第一個程序重新被分配到cpu然後運行。由於cpu的切換速度很快,給用户的感覺就是這些程序是同時運行的,或者説是併發的,或者説是偽並行的。至於資源如何實現時間複用,或者説誰應該是下一個要運行的程序,以及一個任務需要運行多長時間,這些都是操作系統的工作。

 (2)空間上的複用

   每個客户都獲取了一個大的資源中的一小部分資源,從而減少了排隊等待資源的時間。

   例如:多個運行的程序同時進入內存,硬件層面提供保護機制來確保各自的內存是分割開的,且由操作系統控制,這比一個程序獨佔內存一個一個排隊進入內存效率要搞的多。

   有關空間多路複用的其他資源還有磁盤,在許多系統中,一個磁盤同時為許多用户保存文件,分配磁盤空間並且記錄誰正在使用哪個磁盤快是操作系統資源管理的典型任務。

  

    時間上的複用和空間上的複用合起來就是多道技術

 

5 操作系統發展史

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

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

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