1. 程式人生 > >計算機基礎系列之何為操作系統

計算機基礎系列之何為操作系統

調用接口 系列 邊界 解決 隔離 批處理 簡單 間接 自己

what‘s the 操作系統?

  首先,我們要知道,為什麽要有操作系統。現代的計算機系統主要是由一個或者多個處理器,主存、硬盤、鍵盤、鼠標、顯示器、打印機、網絡接口及其他輸入輸出設備組成。現代計算機的組成部分極其復雜,我們不可能全部了解完再去寫開發,所以就需要用到操作系統。程序員只需要做自己的本職開發工作,應用軟件直接使用操作系統提供的功能來間接使用硬件。

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

  操作系統的功能主要有兩個,一個是隱藏了醜陋的硬件調用接口,為應用程序員提供調用硬件資源的更好,更簡單,更清晰的模型(系統調用接口)。應用程序員有了這些接口後,就不用再考慮操作硬件的細節,專心開發自己的應用程序即可。比如,磁盤資源的抽象是文件系統(C盤,D盤,E盤...下的目錄及文件),有了文件的概念,我們直接打開文件,讀或者寫就可以了,無需關心記錄是否應該使用修正的調頻記錄方式,以及當前電機的狀態等細節。操作系統的實際客戶是應用程序(應用程序員負責開發應用程序,因而也可以說應用程序員是操作系統的客戶)。另一個是將應用程序對硬件資源的競態請求變得有序化。


操作系統的發展。(了解即可,記住也並沒有什麽卵用。。)

    第一代計算機(1940~1955):真空管和穿孔卡片 特點:沒有操作系統的概念,所有的程序設計都是直接操控硬件。優點:程序員在申請的時間段內獨享整個資源,可以即時地調試自己的程序(有bug可以立刻處理)。缺點:浪費計算機資源,一個時間段內只有一個人用。

    第二代計算機(1955~1965):晶體管和批處理系統 特點:有了操作系統的概念,有了程序設計語言。優點:批量處理,節約時間。缺點:整個流程需要人參與控制,計算的過程仍然是順序計算,程序員原來獨享一段時間的計算機,現在必須被統一規劃到一批作業中,等待結果和重新調試的過程都需要等同批次的其他程序都運作完才可以(這極大的影響了程序的開發效率,無法及時調試程序)。

    第三代計算機(1965~1980):集成電路芯片和多道程序設計 第三代計算機的操作系統廣泛應用了第二代計算機的操作系統沒有的關鍵技術——多道技術(需要記住的知識)。cpu在執行一個任務的過程中,若需要操作硬盤,則發送操作硬盤的指令,指令一旦發出,硬盤上的機械手臂滑動讀取數據到內存中,這一段時間,cpu需要等待,時間可能很短,但對於cpu來說已經很長很長,長到可以讓cpu做很多其他的任務,如果我們讓cpu在這段時間內切換到去做其他的任務,這樣cpu不就充分利用了嗎。這正是多道技術產生的技術背景。多道技術中的多道指的是多個程序,多道技術的實現是為了解決多個程序競爭或者說共享同一個資源(比如cpu)的有序調度問題,解決方式即多路復用,多路復用分為時間上的復用空間上的復用。空間上的復用:將內存分為幾部分,每個部分放入一個程序,這樣,同一時間內存中就有了多道程序。時間上的復用:當一個程序在等待I/O時,另一個程序可以使用cpu,如果內存中可以同時存放足夠多的作業,則cpu的利用率可以接近100%。空間上的復用最大的問題是:程序之間的內存必須分割,這種分割需要在硬件層面實現,由操作系統控制。如果內存彼此不分割,則一個程序可以訪問另外一個程序的內存。為了解決這個問題,第三代計算機廣泛采用了必須的保護硬件(程序之間的內存彼此隔離)。

     第四代計算機(1980~至今):個人計算機

總結:

  操作系統是有古人類寫的為現代人類提供方便的軟件,要寫出一份完善的操作系統是一件非常人能做到的事。

  操作系統的作用是使我們在不了解硬件為何物的情況下能方便的對硬件進行操控,有了操作系統應用程序員就不用再考慮操作硬件的細節,專心開發自己的應用程序即可,用戶使用電腦進行日常操作也顯得邊界無疑。重點是,操作系統能將應用程序對硬件資源的競態請求變得有序化,即多路復用。

計算機基礎系列之何為操作系統