1. 程式人生 > >計算機系統發展史

計算機系統發展史

計算機的作業系統

作業系統是:首先作業系統是軟體資源的管理,其次管理排程硬體和軟體的資源排程,最後提供使用者和其他軟體方便介面和環境的程式集合。

1 首先從手工階段開始(無作業系統)

人們先把程式紙帶裝在計算機上,然後啟動輸入機吧程式和送入計算機,接著通過啟動輸入及吧程式送入計算機,接著通過控制檯開關啟動程式執行。計算完畢,印表機輸出計算結果,使用者卸下病取走紙帶。第二個使用者上級,重複同樣的步驟。 

 

 

 

 

 

 

 

 

 

 

 

 

使用者獨佔這個機器,CPU等待手工操作,CPU利用不充分

這種模式是的整個計算機的資源利用率很低,只有完成了一個任務才可以進行下一個,而且這個過程中人物會把機器(cpu)全“佔滿”就沒有分配可言。

2 批處理系統

批量處理系統:家在計算機上的一個監督軟體,在監督軟體的控制下,計算機能夠自動的,橙皮的處理一個或者多個使用者的作業(作業包括程式,資料,命令。)

就像在一個等候大廳有一個引領的人進行排程,使得整個事件變得更加的快捷。

這就是聯機批處理:在主機和輸入機間正價兩個儲存裝置—磁帶機,在監督程式的自動控制下,計算機自動完成任務。(成蒲的把輸入機的使用者作業讀入磁帶,一次吧磁帶上的使用者作業讀入主機記憶體並執行,執行完成後把計算結果輸出機輸出。完成一批作業後,監督程度又從輸入機讀區作業存入磁帶,按照上面的步驟重複處理任務。監督程式不停的處理各個作業,實現了作業自動轉接,減少了作業的建立時間和手工操作時間,有效的克服了人機矛盾,提高了計算機資源的利用率。)大大減少了CPU等待時間。但是CPU還是會有空閒時間。  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

離線批處理系統:為了克服與緩解告訴主機與慢速外設(輸入輸出裝置),提高CPU利用率,用又引入了離線批處理系統,即輸入輸出脫離主機控制。

顯著特徵就是:增加一臺不與主機直接相連衛星機。衛星機用來從輸入機上讀取使用者作業並放到磁帶機上;將磁帶機上的執行結果傳給輸出機。這樣主機不再與慢速的輸入輸出裝置連線。主機與衛星機兩者並行工作,分工明確,可充分發揮主機的告訴計算能力。

讓CPU不要停下來,加了一個衛星機的東西,就像磁帶機的紅牛一樣,使得分配更快跟合理。不用等待要處理的東西交給CPU的時間。

但是這時候的CPU還是一個個處理。

多到程式系統

多到程式設計技術,就是隻可以是的多個程式同時進入記憶體並且執行。幾同時把多個程式放在記憶體,並且允許他們交替在CPU中執行,他們共享系統系統中的各種硬體軟體資源,當一道程式因I/O請求而暫停執行時,CPU便立即轉去執行另一道程式。

 單道程式執行過程 :在A程式計算時,I/O空閒, A程式I/O操作時,CPU空閒(B程式也是同樣);必須A工作完成後,B才能進入記憶體中開始工作,兩者是序列的,全部完成共需時間=T1+T2。

多道程式執行過程 :將A、B兩道程式同時存放在記憶體中,它們在系統的控制下,可相互穿插、交替地在CPU上執行:當A程式因請求I/O操作而放棄CPU時,B程式就可佔用CPU執行,這樣 CPU不再空閒,而正進行A I/O操作的I/O裝置也不空閒,顯然,CPU和I/O裝置都處於“忙”狀態,大大提高了資源的利用率,從而也提高了系統的效率,A、B全部完成所需時間<T1+T2。

多道程式設計技術不僅使CPU得到充分利用,同時改善I/O裝置和記憶體的利用率,從而提高了整個系統的資源利用率和系統吞吐量(單位時間內處理作業(程式)的個數),最終提高了整個系統的效率

(1)多道:系統內可同時容納多個作業。這些作業放在外存中,組成一個後備佇列,系統按一定的排程原則每次從後備作業佇列中選取一個或多個作業進入記憶體執行,執行作業結束、退出執行和後備作業進入執行均由系統自動實現,從而在系統中形成一個自動轉接的、連續的作業流。

(2)成批:在系統執行過程中,不允許使用者與其作業發生互動作用,即:作業一旦進入系統,使用者就不能直接干預其作業的執行。

批處理系統的追求目標:提高系統資源利用率和系統吞吐量,以及作業流程的自動化。

批處理系統的一個重要缺點:不提供人機互動能力,給使用者使用計算機帶來不便。

雖然使用者獨佔全機資源,並且直接控制程式的執行,可以隨時瞭解程式執行情況。但這種工作方式因獨佔全機造成資源效率極低。

20世紀60年代中期,在前述的批處理系統中,引入多道程式設計技術後形成多道批處理系統。

多道批處理系統的一個重要缺點:不提供人機互動能力,給使用者使用計算機帶來不便。雖然使用者獨佔全機資源,並且直接控制程式的執行,可以隨時瞭解程式執行情況。但這種工作方式因獨佔全機造成資源效率極低。即使CPU可以1分鐘運算100W次,如果作業是按照每分鐘100次來做運算,資源被大大浪費。

 

 

                                                                                                                                    

 

 

 

但是這會使每一個任務花費的時間更長 

分時系統

分時技術:把處理劑的執行時間分成很短的時間片,按時間片輪流把處理劑分配給各聯機作業使用。

若某個作業分配給他的時間片內不能完成其計算,則該作業暫時中斷,把處理機讓給另一個作業使用,下一輪時再繼續其執行。由於計算機速度很快,作業執行輪轉得很快,給每個使用者的印象是,好象他獨佔了一臺計算機。而每個使用者可以通過自己的終端向系統發出各種操作控制命令,在充分的人機互動情況下,完成作業的執行。

具有上述特徵的計算機系統稱為分時系統,它允許多個使用者同時聯機使用計算機。 

問題: 無法對特殊任務做出及時響應

 

 

 

 

 

實時系統

雖然多道批處理系統和分時系統能獲得較令人滿意的資源利用率和系統響應時間,但卻不能滿足實時控制與實時資訊處理兩個應用領域的需求。於是就產生了實時系統,即系統能夠及時響應隨機發生的外部事件,並在嚴格的時間範圍內完成對該事件的處理。

實時系統可分成兩類:

(1)實時控制系統。當用于飛機飛行、導彈發射等的自動控制時,要求計算機能儘快處理測量系統測得的資料,及時地對飛機或導彈進行控制,或將有關資訊通過顯示終端提供給決策人員。當用於軋鋼、石化等工業生產過程控制時,也要求計算機能及時處理由各類感測器送來的資料,然後控制相應的執行機構。

(2)實時資訊處理系統。當用於預定飛機票、查詢有關航班、航線、票價等事宜時,或當用於銀行系統、情報檢索系統時,都要求計算機能對終端裝置發來的服務請求及時予以正確的回答。此類對響應及時性的要求稍弱於第一類。

實時作業系統的主要特點:

(1)及時響應。每一個資訊接收、分析處理和傳送的過程必須在嚴格的時間限制內完成。

(2)高可靠性。需採取冗餘措施,雙機系統前後臺工作,也包括必要的保密措施等。

通用處理系統

作業系統的蛋中基本型別:多道批處理系統,分時系統,實時系統。

具有多種型別操作特徵的作業系統。可以同時兼多道批處理,分時,實時處理的功能,或其中兩種以上的功能。

例如:例如:實時處理+批處理=實時批處理系統。首先保證優先處理實時任務,插空進行批處理作業。常把實時任務稱為前臺作業,批作業稱為後臺作業。

再如:批處理+分時處理=分時批處理系統。即:時間要求不強的作業放入“後臺”(批處理)處理,需頻繁互動的作業在“前臺”(分時)處理,處理機優先執行“前臺”作業。

從上世紀60年代中期,國際上開始研製一些大型的通用作業系統。這些系統試圖達到功能齊全、可適應各種應用範圍和操作方式變化多端的環境的目標。但是,這些系統過於複雜和龐大,不僅付出了巨大的代價,且在解決其可靠性、可維護性和可理解性方面都遇到很大的困難。

 

 同一廠家相同的作業系統

這種情況一直持續到二十世紀六十年代IBM公司開發了system/360系列的機器。儘管這些機器在效能上有明顯的差異,但是他們有統一的作業系統——OS/360

1965年時,AT&T公司 下貝爾實驗室(Bell Labs)加入一項由奇異電子(General Electric)和麻省理工學院(MIT)合作的計劃;該計劃要建立一套多使用者、多工、多層次(multi-user、multi- processor、multi-level)的MULTICS作業系統。

Multics 的目標是整合分時技術以及當時其他先進技術,允許使用者在遠端終端通過電話(撥號)登入到主機,然後可以編輯文件,閱讀電子郵件,執行計算器等等。但是專案目標太過激進,進度嚴重滯後。最後,直到1969年AT&T 高層決定放棄這個專案。

其中有一個 叫Ken Thompson 的人 ,因為工作需要,他希望開發一個小小的作業系統,,他花了一個月的時間 在這臺PDP-7上寫了一個作業系統,和一些常用的工具程式,——這就是鼎鼎大名的Unics——後被改名為Unix。

到了1970年,PDP-7卻只能支援兩個使用者 ,因為PDP-7的效能不佳,肯·湯普遜 與丹尼斯·裡奇決定把第一版UNIX移植到PDP-11/20的機器上,開發第二版UNIcs。在效能提升後,真正可以提供多人同時使用, 布萊恩·柯林漢提議將它的名稱改為UNIX。

Unix被稱為計算機/網際網路行業的基石。

 

 

 

肯·湯普遜的同事看到他寫的程式很好用,都開始使用這個系統,中間經過了多次改版。

由於當時的機器結構不同,所以每次安裝系統時,都需要重新編寫一遍。

 

第一版的Unix是使用匯編語言和B語言來開發的,B語言不夠強大,所以Thompson和Ritchie對其進行了改造,並於1971年共同發明了C語言。

1973年Thompson和丹尼斯·裡奇用C語言重寫了UNIX。這個時候,Unix的正式版本發行了。

pastedGraphic.png

 

 

同年,學術界參與到UNIX的開發工作中,重要的就是加州伯克利(Berkeley)大學。伯克利大學的Bill Joy在獲取了UNIX的核心原始碼後,著手修改成適合自己機器的版本,並且同時增加了很多工具軟體與編譯程式,最終將其命名為Berkeley Software Distribution(BSD)。

由於UNIX的高度可移植性與強大的效能,加上當時並沒有版權糾紛,所以很多商業公司開始了UNIX作業系統的開發,例如AT&T自己的System V、IBM的AIX以及HP與DEC等公司,都採用自己的主機與自己的UNIX作業系統。但當時 並沒有統一的硬體標準,不同公司生產的硬體 不一樣,不同公司開發的的程式 無法相容使用,只能執行在自己公司生產的硬體裡。這個時候也沒有人針對個人電腦來開發unix系統。

 

Windows系統、蘋果系統? 先看一下下圖:

pastedGraphic_1.png

 

一直到1979年,AT&T推出 System V 第七版 Unix ,這個時候開始支援個人電腦。出於商業上的考慮,AT&T決定收回unix的版權,最重要的就是不可對學生提供原始碼。學校受到很大的衝擊,教學受到影響。

這個時候有一位 Andrew Tanenbaum(譚邦寧)教授,在1984-1986年間寫了一個叫Minix的Unix Like 核心程式;意思為:mini unix,並且與 unix相容、支援X86 個人電腦。為避免版權糾紛,在編寫的時候不看unix的原始碼。由於譚邦寧教授 認為Minix主要用在教育事業上,所以對MInix的開發只是點到為止,不能滿足使用者的需求。

在1988年間,Linus Torvalds

進入了赫爾辛基大學,選讀了計算機科學系。在就學期間,託瓦茲接觸到了Unix 這個作業系統,但是使用unix需要等待,其他人使用的時候他就無法使用。他就想“我為什麼不自己搞一部Unix玩?” , 不久之後,他就聽說有一個類似 Unix 的系統,和 Unix 完全相容,還可以在 Intel 386 機器上面跑的作業系統,

 

 於是他在購買了最新的 Intel 386 的個人計算機後,就立即安裝了 Minix 這個作業系統。

託瓦茲跟在研究Minix的過程中,發現 Minix 雖然真的很棒,但是譚寧邦教授就是不願意進行功能的加強,導致一堆工程師在作業系統功能上面的慾求不滿! 這個時候年輕的託瓦茲就想:『既然如此,那我何不自己來改寫一個我想要的作業系統?』 二是他就開始了核心程式的撰寫了。

到了1991年,Linus Torvalds在BBS上面貼了一則訊息,宣稱他以bash、gcc等工具寫了一個小小的核心程式,不過還不夠,他希望這個程式可以獲得大家的一些修改建議,這個核心程式可以在Intel的386機器上執行。同時提供了下載地址。這讓很多人感興趣,從此便開始了Linux不平凡的路程。

 

 

Linux版本分支

pastedGraphic_2.png

 

Linux 應用領域

  1. 企業伺服器 - 企業

  2. 嵌入式 - 手機、個人數字助理(PDA)、消費性電子產品及航空航天等領域中

  3. 桌面- 個人電腦

  4. 其他

 

 

Android

  2003 安迪·魯賓創辦了Android公司 。Android--基於Linux核心的開放移動作業系統

  2005年,Android公司被Google收購

  2007年11月5日,谷歌公司正式公佈Android作業系統

 

蘋果公司

pastedGraphic_3.png

 Apple-I

pastedGraphic_4.png

Macintosh,簡稱Mac

pastedGraphic_5.pngpastedGraphic_6.png

 

 

微軟

pastedGraphic_7.png

Windows timeline history

 pastedGraphic_8.png

 

蘋果與微軟

1973年施樂公司開發除了Alto——真正意義上的個人PC,有鍵盤、顯示器、圖形介面、乙太網等。 但是並沒有重視。

1979年,喬布斯聽說了Alto,決定去看看,看到以後震驚了,回去就讓技術人員去實現圖形介面,為此還從施樂挖了好多技術人員,開發Lisa專案;然後最後失敗了。但是為後來的Macintosh,積攢了好多經驗。

1980年微軟和IBM合作PC系統,微軟以捆綁的方式在IBM-PC上預裝DOS,廉價銷售(5$)許可證。

1981年,喬布斯邀請蓋茨看Macintosh樣機,想讓微軟幫助Macintosh開發應用軟體,蓋茨看到Macintosh的圖形後,也震驚了,心想,這東西要是上市,我的DOS立馬完蛋,未來的天下是圖形的。不過喬布斯看出了蓋茨的資訊,就要求微軟在給蘋果開發軟體過程中學到的東西用於任何非蘋果的裝置上。但是喬布斯忽略了,不讓為微軟編寫類似Macintosh的系統。

蓋茨瞭解到Macintosh效法於施樂,於是也從施樂挖人,開發自己的圖形系統——windows。微軟把win的研發放在第一位,耽誤了Macintosh的釋出。 

1984年Macintosh 釋出,風靡世界。

1985年 windows1.0釋出,喬布斯發現win很想Macintosh,就說蓋茨偷了蘋果的東西

 pastedGraphic_9.png

                      alto

 

 

參考: 浪潮之巔、百度百科、Goole、維基百科、Google圖片