程式設計師無法把所有的硬體操作細節都了解到,因為管理這些硬體並加以優化使用是非常繁瑣的工作,這個繁瑣的工作就是作業系統來幹的,有了他,程式設計師就從這些繁瑣的工作中解脫出來,只需要考慮自己的應用軟體的編寫就可以了,應用軟體直接使用作業系統提供的功能來間接使用硬體
#
作業系統位於電腦硬體與應用軟體之間,本質也是一個軟體。作業系統由作業系統的核心(運行於核心狀態,管理硬體資源)以及系統呼叫(運行於使用者狀態,為應用程式設計師寫的應用程式提供系統呼叫介面)兩部分組成
#隱藏了醜陋的硬體呼叫接口,為應用程式設計師提供呼叫硬體資源更好,更簡單,更清晰的模型(系統呼叫介面)應用程式設計師有了這些介面後,就不用再考慮操作硬體的細節,專心開發自己的應用程式即可
將應用程式對硬體資源的競態請求變的有序化(多路復用)
第一代(1940~1955)真空管和穿孔卡
特點:沒有作業系統的概念,所有的程式設計都由純粹的機器語言編寫
工作過程:程式設計師在牆上的機時表預約一段時間,然後程式設計師拿著他的插件板到機房裡,將自己的插件版接到電腦裡,這幾個小時內他獨享整台電腦的資源,後面的一批人都得等著(2萬多個真空管經常有被燒壞的情況出現),後來出現了穿孔卡片,可以將程式寫在在卡片上,然後讀入機而不用插件板
#優點:程式設計師在申請的時間段裡獨享整個資源,即時調整自己的程序,有bug可以及時處理
缺點:資源的浪費
第二代(1955~1965)電晶體與批次系統
特色:由專業操作人員運作的大型主機,有了作業系統的概念:是人力與電腦結合的系統需要人參與。有了程式設計語言:FORTAN語言或組合語言,寫到紙上,然後穿孔打成卡片,在將卡片盒帶到輸入市,交給操作員等待輸出介面
工作流程
第一代電腦的問題:人機互動多
#第二代如何解決第一代的問題:把一堆人的輸入存成一大波輸入,然後順序極端,然後把一堆人的輸出攢成一大波的輸出
優點:批處理,節省時間
缺點:整個流程需要人參與,計算過程仍然是串行,程式設計師獨享一段時間,等待結果和重新調試的過程需要同批次的其他程式運作完才可以
第三代(1965~1980)積體電路晶片和多道程式設計
如何解決第二代電腦的問題1 :
卡片被拿到機房後能夠很快的將作業從卡片讀入磁碟,於是任何時刻當一個作業結束時,作業系統就能將一個作業從磁帶讀出,裝進空出來的記憶體區域運行,這種技術叫做同時的外部設備聯機操作:SPOOLING,技術同時用於輸出。當採用了這種技術後,就不在需要IBM1401機了,也不必將磁帶搬來搬去了(中間倆小人不再需要)
# 如何解決第二代電腦的問題2:
第三代電腦的作業系統廣泛應用了第二代電腦的作業系統沒有的關鍵技術:多道技術
多道技術中的多道指的是多個程序,多道技術的實現是為了解決多個程序競爭或者說共享同一個資源(比如cpu)的有序調度問題,解決方式即多路復用,多路復用分為時間上的複用和空間上的複用
空間上的複用最大的問題是:程式直接的記憶體必須分割,這種分割在硬體層面實現,由作業系統控制實現。如果記憶體彼此不分割,則一個程式可以存取另外一個程式的記憶體
第三代電腦的作業系統仍然是批次處理,許多程式設計師懷念第一代獨享的計算機,可以即時除錯自己的程序。為了滿足程式設計師很快可以得到回應,出現了分時作業系統
如何解決第二代電腦的問題3:
分時作業系統
多個線上終端+多道技術
第三代電腦廣泛採用了必須的保護硬體(程式之間的記憶體彼此隔離)之後,分時系統才開始流行
後來一位參加過MULTICS開發的貝爾實驗室電腦科學家Ken Thompson開發了一個簡易的,單一使用者版本的MULTICS,這就是後來的UNIX系統。基於它衍生了許多其他的Unix版本,為了讓程式能在任何版本的unix上運行,IEEE提出了一個unix標準,即posix(可移植的操作系統介面Portable Operating System Interface)
後來,在1987年,出現了一個UNIX的小型克隆,即minix,用於教學使用。芬蘭學生Linus Torvalds基於它編寫了Linux
第四代電腦(1980~至今):個人電腦
略
##以上是windows作業系統的詳細內容。更多資訊請關注PHP中文網其他相關文章!