位於應用軟件和硬件設備之間,本質是一個軟件程序員
核心做用:1.爲用戶屏蔽了複雜繁瑣的硬件接口;爲應用程序提供了清晰易用的系統接口安全
2.將用用程序對硬件資源的競爭變得有序性能
操做系統與應用程序的區別:學習
1.操做系統是受保護的,沒法被用戶修改操作系統
2.大型:僅內核代碼量達上百萬行插件
3.長壽,一旦完成,不會重寫,只會有所改進設計
第一代計算機(1940-1945):真空管和穿孔卡片調試
特色:
沒有操做系統的概念
全部的程序設計都是直接操控硬件blog
工做過程:
程序員在牆上的機時表預定一段時間,而後程序員拿着他的插件版到機房裏,將本身的插件板街道計算機裏,這幾個小時內他獨享整個計算機資源,後面的一批人都得等着(兩萬多個真空管常常會有被燒壞的狀況出現)。接口
後來出現了穿孔卡片,能夠將程序寫在卡片上,而後讀入機而不用插件板
優勢:
程序員在申請的時間段內獨享整個資源,能夠即時地調試本身的程序(有bug能夠馬上處理)
缺點:
浪費計算機資源,一個時間段內只有一我的用。
第二代計算機(1955-1965):晶體管和批處理系統
第二代如何解決第一代的問題/缺點:
1.把一堆人的輸入攢成一大波輸入,
2.而後順序計算(這是有問題的,可是第二代計算也沒有解決)
3.把一堆人的輸出攢成一大波輸出
現代操做系統的前身:(見圖)
優勢:批處理,節省了機時
缺點:1.整個流程須要人蔘與控制,將磁帶搬來搬去(中間倆小人)
2.計算的過程仍然是順序計算-》串行
3.程序員原來獨享一段時間的計算機,如今必須被統一規劃到一批做業中,等待結果和從新調試的過程都須要等同批次的其餘程序都運做完才能夠(這極大的影響了程序的開發效率,沒法及時調試程序)
第三代計算機(1965-1980):集成電路芯片和多道程序設計
第三代計算機的操做系統普遍應用了第二代計算機的操做系統沒有的關鍵技術:多道技術
cpu在執行一個任務的過程當中,若須要操做硬盤,則發送操做硬盤的指令,指令一旦發出,硬盤上的機械手臂滑動讀取數據到內存中,這一段時間,cpu須要等待,時間可能很短,但對於cpu來講已經很長很長,長到可讓cpu作不少其餘的任務,若是咱們讓cpu在這段時間內切換到去作其餘的任務,這樣cpu不就充分利用了嗎。這正是多道技術產生的技術背景
多道技術:
多道技術中的多道指的是多個程序,多道技術的實現是爲了解決多個程序競爭或者說共享同一個資源(好比cpu)的有序調度問題,解決方式即多路複用,多路複用分爲時間上的複用和空間上的複用。
空間上的複用:將內存分爲幾部分,每一個部分放入一個程序,這樣,同一時間內存中就有了多道程序。
時間上的複用:當一個程序在等待I/O時,另外一個程序可使用cpu,若是內存中能夠同時存放足夠多的做業,則cpu的利用率能夠接近100%,相似於咱們小學數學所學的統籌方法。(操做系統採用了多道技術後,能夠控制進程的切換,或者說進程之間去爭搶cpu的執行權限。這種切換不只會在一個進程遇到io時進行,一個進程佔用cpu時間過長也會切換,或者說被操做系統奪走cpu的執行權限)
空間上的複用最大的問題是:程序之間的內存必須分割,這種分割須要在硬件層面實現,由操做系統控制。若是內存彼此不分割,則一個程序能夠訪問另一個程序的內存.
弊端:
1.安全性差,好比你的qq程序能夠訪問操做系統的內存,這意味着你的qq能夠拿到操做系統的全部權限。
2.穩定性差,某個程序崩潰時有可能把別的程序的內存也給回收了,比方說把操做系統的內存給回收了,則操做系統崩潰。
第四代計算機(1980-至今:我的計算機
第四代也就是咱們常見的操做系統,大可能是具有圖形化界面的,例如:Windows,macOS ,CentOS等
因爲採用了IC設計,計算機的體積降低,性能增加,而且成本以及能夠被普通消費者接受,而第三代操做系統大都須要進行專業的學習才能使用,因而各個大佬公司開始開發那種不須要專業學習也能夠快速上手的操做系統,即上述操做系統!
它們都是用了GUI 圖形化用戶接口,用戶只須要經過鼠標點擊拖拽界面上的元素便可完成大部分操做