標籤:images 計算 code 第一個 大型 應用程式 科學計算 逗號 方案
一、為什麼要有作業系統?
現代電腦系統是由一個或者多個處理器,主存,磁碟,印表機,鍵盤,滑鼠顯示器,網路介面以及各種其他輸入 輸出裝置組成的複雜系統,每位程式員不可能掌握所有系統實現的細節,並且管理最佳化這些組件是一件挑戰性極強 的工作。所以,我們需要為電腦安裝一層軟體,成為作業系統,任務就是使用者程式提供一個簡單清晰的電腦模 型,並管理以上所有裝置。 定義也就有了:作業系統是一個用來協調、管理和控制電腦硬體和軟體資源的系統程式,它位於硬體和應用程式之間。 (程式是運行在系統上的具有某種功能的軟體,比如說瀏覽器,音樂播放器等。) 作業系統的核心的定義:作業系統的核心是一個管理和控製程序,負責管理電腦的所有實體資源,其中包括:檔案系 統、記憶體管理、裝置管理和進程管理。
二、作業系統曆史2.1 真空管與穿孔卡片(無作業系統)
過程: 萬能程式員們將對應於程式和資料的已穿孔的紙帶(或卡片)裝入輸入機,然後啟動輸入機把程式和資料輸入電腦 記憶體,接著通過控制台開關啟動程式針對資料運行;計算完畢,印表機輸出計算結果;使用者取走結果並卸下紙帶(或 卡片)後,才讓下一個使用者上機。 注意點: 1 程式員需要在牆上的計時錶上預約時間 2 同一時刻只有一個程式在記憶體中被CPU調用運行(串列的) 優缺點: 優點:程式員在申請的時間段內獨享整個資源,即時的調試自己的程式,如果有bug可以當場處理, 缺點:這對於電腦供應商來說是一種浪費(你買一台電腦4000塊,那 一年中你用365比只用1天,肯定是省成本的, 物盡其用)
2.2 晶體管和批處理系統
一代電腦的問題: 人機互動太多了(輸入--->計算--->輸出 輸入--->計算--->輸出 輸入--->計算--->輸出 ) 解決辦法: 把一堆人的輸入攢成一大波輸入,然後順序計算(這是有問題的,但是第二代計算沒有解決)再把計算結果攢成 一大波輸出,這就是批處理系統 作業系統前身: 在收集了大約一個小時的批量作業之後,這些卡片被讀入磁帶,然後磁帶被送到機房裡並裝到磁帶上。然後磁帶被送到 機房裡並裝到磁帶機上。隨後,操作員裝入一個特殊的程式(此乃現代作業系統的前身),它負責從磁帶上讀入第一個 作業(job,一個或一組程式)並運行,其輸出寫到第二個磁帶上,而且不列印。每個作業結束後,作業系統自動的從 磁帶上讀入下一個作業並且運行。當一整批的作業全部結束後,操作員去下輸入和輸出磁帶,講輸入磁帶換成下一批作 業,並且把輸出磁帶拿到一台1041機器上進行離線(不與主要電腦聯機)列印 優點:批處理 缺點: 1 圖的中間還有倆小人 2 仍然是順序計算
2.3 整合電路晶片和多道程式設計
針對二代電腦的兩個主要問題 開發出SPOOLING技術: 卡片被拿到機房後能夠很快的將作業從卡片讀入磁碟,於是任何時刻當一個作業結束時,作業系統就能將一個作業從磁 帶讀出,裝進空出啦的記憶體地區運行,這種技術叫做同時的外部裝置聯機操作:SPOOLING該技術同時用於輸出。當采 用了這種技術後,就不在需要IBM1401機了,也不必將磁帶搬來搬去了(中間倆小人失業了),強化了作業系統的功能 開發出多道程式設計,用於解決順序執行的問題: 在7094機上(程式啟動並執行機器),若當前作業因等待磁帶或等待其他IO操作而暫停,CPU就處於休閑狀態直至IO操作 完成,對於CPU密集的科學計算,IO操作少,浪費時間不明顯,對於商業資料處理,IO等待能到達80%~90%,所以必 須解決CPU浪費的現象。 解決方案:將記憶體分為幾個部分,每一部分存放不同的作業,1-5所示。當一個作業等待IO完成時,另一個作業可以 使用CPU,記憶體中放足夠的作業,則CPU的利用率能接近100% 此時的第三代電腦適合大型科學計算和繁忙的商務資料處理,但,本質上其仍是一個批處理系統。 雖然解決了諸如以上問題,但多個作業必須在全部運行結束後,才能得到結果,從一個作業的提交到運算結果取回往往 長達數小時。 想象一個情境:A君 B君 C君 三個程式員同時在偵錯工具,一旦A君寫錯一個逗號,那麼可能需要半天的時間才能看到結
果,因為B君C君的結果也同時運算出來了。時間必然要長。一言以蔽之:大家一起存作業,大家一起去資料(磁帶) 許多程式員懷念第一代獨享的電腦,可以即時調試自己的程式。為了滿足程式員們很快可以得到響應,出現了分時作業系統 分時作業系統:多個聯機終端+多道技術 20個用戶端同時載入到記憶體,有17在思考,3個在運行,cpu就採用多道的方式處理記憶體中的這3個程式,由於客戶提交的一般
都是簡短的指令而且很少有耗時間長度的,索引電腦能夠為許多使用者提供快速的互動式服務,所有的使用者都以為自己獨享了計
算機資源
2.4 個人電腦
隨著大規模整合電路的發展,每平方厘米的矽片晶片上可以整合數千個晶體管,個人電腦的時代就此到來。
電腦網路基礎-作業系統