虚拟化技术原理与实现 pdf_多进程的实现原理-多道技术
1.操作系統
? 位于應用軟件和硬件設備之間,本質是一個軟件
核心作用:
1.為用戶屏蔽了復雜繁瑣的硬件接口;為應用程序提供了清晰易用的系統接口
2.將用用程序對硬件資源的競爭變得有序
操作系統與應用程序的區別:
1.操作系統是受保護的,無法被用戶修改
2.大型:僅內核代碼量達上百萬行
3.長壽,一旦完成,不會重寫,只會有所改進
2. 操作系統發展史
第一代計算機(1940-1945):真空管和穿孔卡片
特點:
沒有操作系統的概念
所有的程序設計都是直接操控硬件
工作過程:
程序員在墻上的機時表預約一段時間,然后程序員拿著他的插件版到機房里,將自己的插件板街道計算機里,這幾個小時內他獨享整個計算機資源,后面的一批人都得等著(兩萬多個真空管經常會有被燒壞的情況出現)。
后來出現了穿孔卡片,可以將程序寫在卡片上,然后讀入機而不用插件板
優點:
程序員在申請的時間段內獨享整個資源,可以即時地調試自己的程序(有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 圖形化用戶接口,用戶只需要通過鼠標點擊拖拽界面上的元素即可完成大部分操作
轉自:多進程的實現原理-多道技術
總結
以上是生活随笔為你收集整理的虚拟化技术原理与实现 pdf_多进程的实现原理-多道技术的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python里的关键字有哪些_Pytho
- 下一篇: 箭头函数可被打印却不能调用_5种应该避免