程序員將對應於程序和數據的已穿孔的紙帶(或卡片)裝入輸入機,而後啓動輸入機把程序和數據輸入計算機內存,接着經過控制檯開關啓動程序針對數據運行;計算完畢,打印機輸出計算結果;用戶取走結果並卸下紙帶(或卡片)後,才讓下一個用戶上機。程序員
手工操做方式兩個特色:算法
工做過程:數據庫
程序員在牆上的機時表預定一段時間,而後程序員拿着他的插件版到機房裏,將本身的插件板街道計算機裏,這幾個小時內他獨享整個計算機資源,後面的一批人都得等着(兩萬多個真空管常常會有被燒壞的狀況出現)。安全
後來出現了穿孔卡片,能夠將程序寫在卡片上,而後讀入機而不用插件板網絡
優勢:程序員在申請的時間段內獨享整個資源,能夠即時地調試本身的程序(有bug能夠馬上處理)併發
缺點:浪費計算機資源,一個時間段內只有一我的用。
注意:同一時刻只有一個程序在內存中,被cpu調用執行,比方說10個程序的執行,是串行的操作系統
注意:20世紀50年代後期,出現人機矛盾。:手工操做的慢速度和計算機的高速度之間造成了尖銳矛盾,手工操做方式已嚴重損害了系統資源的利用率(使資源利用率降爲百分之幾,甚至更低),不能容忍。惟一的解決辦法:只有擺脫人的手工操做,實現做業的自動過渡。這樣就出現了成批處理。插件
串行概念:一個完完整整的執行完了再執行下一個.設計
主機與輸入機之間增長一個存儲設備——磁帶,在運行於主機上的監督程序的自動控制下,計算機可自動完成:成批地把輸入機上的用戶做業讀入磁帶,依次把磁帶上的用戶做業讀入主機內存並執行並把計算結果向輸出機輸出。完成了上一批做業後,監督程序又從輸入機上輸入另外一批做業,保存在磁帶上,並按上述步驟重複處理。調試
監督程序不停地處理各個做業,從而實現了做業到做業的自動轉接,減小了做業創建時間和手工操做時間,有效克服了人機矛盾,提升了計算機的利用率。
可是,在做業輸入和結果輸出時,主機的高速CPU仍處於空閒狀態,等待慢速的輸入/輸出設備完成工做: 主機處於「忙等」狀態。
爲克服與緩解:高速主機與慢速外設的矛盾,提升CPU的利用率,又引入了脫機批處理系統,即輸入/輸出脫離主機控制。
衛星機:一臺不與主機直接相連而專門用於與輸入/輸出設備打交道的。
其功能是:
如何解決第一代計算機的問題/缺點:
這樣,主機不是直接與慢速的輸入/輸出設備打交道,而是與速度相對較快的磁帶機發生關係,有效緩解了主機與設備的矛盾。主機與衛星機可並行工做,兩者分工明確,能夠充分發揮主機的高速計算能力。
脫機批處理系統:20世紀60年代應用十分普遍,它極大緩解了人機矛盾及主機與外設的矛盾。
優勢:
批處理,節省了機時
缺點:每次主機內存中僅存放一道做業,每當它運行期間發出輸入/輸出(I/O)請求後,高速的CPU便處於等待低速的I/O完成狀態,導致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設備和內存的利用率,從而提升了整個系統的資源利用率和系統吞吐量(單位時間內處理做業(程序)的個數),最終提升了整個系統的效率。
空間複用:共用一個內存條,每個進程都有本身獨立的內存空間,互不干擾,物理級別的隔離.
時間複用: 共用了一個cpu
cpu的切換:io請求的時候,一個進程佔用時間過長的時候
###ps 現代計算機或者網絡都是多用戶的,多個用戶不只共享硬件,並且共享文件,數據庫等信息,共享意味着衝突和無序。 操做系統主要使用來 1.記錄哪一個程序使用什麼資源 2.對資源請求進行分配 3.爲不一樣的程序和用戶調解互相沖突的資源請求。 咱們可將上述操做系統的功能總結爲:處理來自多個程序發起的多個(多個即多路)共享(共享即複用)資源的請求,簡稱多路複用 多路複用有兩種實現方式 1.時間上的複用 當一個資源在時間上覆用時,不一樣的程序或用戶輪流使用它,第一個程序獲取該資源使用結束後,在輪到第二個。。。第三個。。。 例如:只有一個cpu,多個程序須要在該cpu上運行,操做系統先把cpu分給第一個程序,在這個程序運行的足夠長的時間(時間長短由操做系統的算法說了算)或者遇到了I/O阻塞,操做系統則把cpu分配給下一個程序,以此類推,直到第一個程序從新被分配到了cpu而後再次運行,因爲cpu的切換速度很快,給用戶的感受就是這些程序是同時運行的,或者說是併發的,或者說是僞並行的。至於資源如何實現時間複用,或者說誰應該是下一個要運行的程序,以及一個任務須要運行多長時間,這些都是操做系統的工做。 2.空間上的複用 每一個客戶都獲取了一個大的資源中的一小部分資源,從而減小了排隊等待資源的時間。 例如:多個運行的程序同時進入內存,硬件層面提供保護機制來確保各自的內存是分割開的,且由操做系統控制,這比一個程序獨佔內存一個一個排隊進入內存效率要高的多。 有關空間複用的其餘資源還有磁盤,在許多系統中,一個磁盤同時爲許多用戶保存文件。分配磁盤空間而且記錄誰正在使用哪一個磁盤塊是操做系統資源管理的典型任務。 這兩種方式合起來即是多道技術
空間上的複用最大的問題是:程序之間的內存必須分割,這種分割須要在硬件層面實現,由操做系統控制。若是內存彼此不分割,則一個程序能夠訪問另一個程序的內存,
首先喪失的是安全性,好比你的qq程序能夠訪問操做系統的內存,這意味着你的qq能夠拿到操做系統的全部權限。
其次喪失的是穩定性,某個程序崩潰時有可能把別的程序的內存也給回收了,比方說把操做系統的內存給回收了,則操做系統崩潰。