馮諾依曼體系結構
馮·諾依曼體系結構,也被稱為普林斯頓結構,是一種計算機架構,其核心特點包括將程序指令存儲和數據存儲合并在一起的存儲器結構,程序指令和數據的寬度相同,通常都是16位或32位
我們常見的計算機,筆記本等大部分都遵守馮諾依曼體系
截至目前,我們所認識的計算機都是由一個個硬件組成:
存儲器: 指的是內存
輸入設備: 鍵盤,攝像頭,話筒,磁盤,網卡…
輸出設備: 顯示器,音響,磁盤,網卡…
CPU: 運算器,算術運算,邏輯運算
控制器: CPU是可以響應外部事件,協調外部就緒事件,如拷貝數據到內存
為什么在中間要加一個存儲器,也就是內存的結構。不直接訪問cpu
因為cpu里寄存器之類,拿數據是最快的,到內存,磁盤,光盤,磁帶等效率都是遞減。如果直接訪問cpu,需要存儲4gb等較大數據就需要很大的寄存器,成本很貴。用內存作為中間介質,cpu需要數據訪問內存,從外部讀取數據放到內存,不直接訪問cpu,節省了很多成本。
輸入input,輸出output,通過內存這兩個就是IO
強調
存儲器指內存
不考慮緩存情況,cpu只對內存進行讀寫,不能訪問外設
外設要輸入輸出數據,也只能寫入內存或從內存中讀取
一句話,所有設備都只能直接和內存打交道
對馮諾依曼體系的理解,不能停留在概念上,要深入到軟件數據流理解,從登上qq開始和朋友聊天,數據的流動過程,從鍵盤輸入設備到內存,然后輸出到網卡發送過去,朋友斷網卡收到數據,通過內存到輸出設備顯示出來
操作系統(Operator System)
概念
任何計算機系統都包含一個基本的程序集合,稱為操作系統(OS)。籠統的理解,操作系統包括
- 內核(進程管理,內存管理,文件管理,驅動管理)
- 其他程序(函數庫,shell程序等)
OS的目的
與硬件交互,管理所有的軟硬件資源
為用戶程序提供一個穩定、安全、簡單的執行環境
定位
操作系統的定位是一款純正搞管理的軟件
如何理解管理
- 管理的例子
- 描述被管理的對象
- 組織被管理對象
操作系統的管理是對被管理對象的數據的管理,管理和被管理者可以不直接溝通,拿到被管理者的數據支持管理決策,然后執行才是最重要的。就比如學校的校長決策,實現對學生的管理,入學畢業等,只需要修改學生的相關數據,不需要直接和學生溝通。這就形成了先描述,再組織。先描述學生數據的結構,然后組織信息的增刪查改,就完成了管理
和下面的銀行結構類似
行長就是操作系統,如何管理銀行系統,首先是各種硬件設備,有各自的管理者來管理,這就是各種驅動程序直接管理。操作系統需要對內存、驅動、進程、文件等進行管理,不需要直接和軟硬件打交道,和它們的對應管理溝通。對外提供了各種接口,也就是系統接口的函數調用,但這些很不方便。操作系統假設對所有人都不信任 ,因為人直接操作困難也很容易出錯。所以和銀行柜臺前面的引導員一樣,形成了shell外殼程序和圖形化界面,供用戶很方便的操作,告訴需求,程序來讓操作系統執行,對于程序員,封裝了各種庫和編程語言。客戶在銀行存錢,實際上是對數據的修改,最后也是先描述,后組織,對每個客戶的數據和倉庫數據進行描述,然后組織數據的結構執行,操作系統也一樣,對每個硬件和軟件的行為歸根到底都是對數據的管理
總結
計算機管理硬件
描述:用struct結構體
組織:用鏈表或其他高效的數據結構
系統調用和庫函數
在開發家都,操作系統對外表現為一個整體,會開放自己的一些接口,供上層開發使用,這部分就是系統調用
系統調用功能基礎,要求也高,所以適度封裝,有了庫,有利于進行二次開發
承上啟下
進程管理是怎么管理,也是先描述,然后組織