看完本文,你會了解到:
-
認(rèn)識馮諾依曼體系結(jié)構(gòu)
-
操作系統(tǒng)概念與定位
目錄
馮諾依曼體系結(jié)構(gòu)
引入馮諾依曼體系結(jié)構(gòu)
所有的設(shè)備都只能和內(nèi)存打交道
對馮諾依曼的理解,不能停留在概念上,要深入到對軟件數(shù)據(jù)流理解上
馮諾依曼體系結(jié)構(gòu)帶來的啟示
操作系統(tǒng)(Operator System)
基本概念
設(shè)計操作系統(tǒng)(OS)的目的
定位
如何理解管理
計算機軟硬件架構(gòu)推導(dǎo)
談?wù)勥M(jìn)程
馮諾依曼體系結(jié)構(gòu)
我們常見的計算機,如筆記本。我們不常見的計算機,如服務(wù)器,大部分都遵守馮諾依曼體系。
引入馮諾依曼體系結(jié)構(gòu)
先上經(jīng)典老圖:
計算機是硬件和軟件的完美結(jié)合,通過馮諾依曼體系結(jié)構(gòu)的學(xué)習(xí)我們能了解其硬件的組成原理
-
輸入設(shè)備:包括鍵盤, 鼠標(biāo),掃描儀, 寫板,網(wǎng)卡等。
-
中央處理器(CPU):含有運算器和控制器等。
-
輸出設(shè)備:顯示器,網(wǎng)卡,打印機等。
注意點:
-
網(wǎng)卡等設(shè)備既是輸入設(shè)備,也可以是輸出設(shè)備。
-
這里的存儲器指的是內(nèi)存。
所有的設(shè)備都只能和內(nèi)存打交道
為什么外設(shè)不直接和CPU進(jìn)行交互?
????????眾所周知,CPU很快,而外設(shè)是很慢的,如果直接交互,CPU就不得不等待慢吞吞的硬件,造成效率上的浪費。為了提高整機的效率,所以我們設(shè)置內(nèi)存,所有設(shè)備都只能和內(nèi)存交互,CPU處理內(nèi)存中數(shù)據(jù)的同時,外設(shè)也可以向內(nèi)存中輸入數(shù)據(jù)。
外存和內(nèi)存
-
這里的存儲器指的是內(nèi)存,而內(nèi)存有著掉電易失性,速度不快也不慢(相較于CPU慢,比外設(shè)快)。
-
磁盤是外存,擁有永久存儲的能力,速度慢(相較于內(nèi)存)。
IO是什么?
我們平時所說的IO是什么呢?I是指input,我們將數(shù)據(jù)從外設(shè)加載到內(nèi)存。O是指output,我們將數(shù)據(jù)從內(nèi)存輸出到外設(shè)。
對馮諾依曼的理解,不能停留在概念上,要深入到對軟件數(shù)據(jù)流理解上
請解釋,從你登錄上qq開始和某位朋友聊天開始,數(shù)據(jù)的流動過程。從你打開窗口,開始給他發(fā)消息,到他看到消息之后的數(shù)據(jù)流動過程。
????????我們先通過鍵盤輸入消息,然后加載到內(nèi)存,CPU從內(nèi)存中讀取數(shù)據(jù),進(jìn)行加密和計算后再放到內(nèi)存,顯示器(顯示消息到屏幕上)和網(wǎng)卡(發(fā)送數(shù)據(jù)到網(wǎng)絡(luò))再從內(nèi)存中讀取數(shù)據(jù)。(忽略網(wǎng)絡(luò)部分處理細(xì)節(jié))
????????朋友電腦的網(wǎng)卡從網(wǎng)絡(luò)上獲取到了我們發(fā)送的數(shù)據(jù),然后加載到內(nèi)存,CPU從內(nèi)存中讀取數(shù)據(jù),進(jìn)行解密和計算后再放到內(nèi)存,顯示器再從內(nèi)存讀取相關(guān)的數(shù)據(jù),顯示到屏幕上。
馮諾依曼體系結(jié)構(gòu)帶來的啟示
-
我們所寫的程序都需要先加載到內(nèi)存中。
-
所有的設(shè)備都只能和內(nèi)存打交道。
-
cpu要訪問我的代碼和數(shù)據(jù)只能從內(nèi)存中訪問。
操作系統(tǒng)(Operator System)
基本概念
操作系統(tǒng)是一款進(jìn)行軟硬件資源管理的軟件
任何計算機系統(tǒng)都包含一個基本的程序集合,稱為操作系統(tǒng)(OS)。
籠統(tǒng)的理解,操作系統(tǒng)包括:
-
內(nèi)核(進(jìn)程管理,內(nèi)存管理,文件管理,驅(qū)動管理)
-
其他程序(例如函數(shù)庫,shell程序等等)
設(shè)計操作系統(tǒng)(OS)的目的
????????對下通過合理的管理好軟硬件資源(手段), 對上給用戶提供良好(安全的、穩(wěn)定的、高效的)的執(zhí)行環(huán)境(目的)。
定位
????????在整個計算機軟硬件架構(gòu)中,操作系統(tǒng)的定位是:一款純正的搞管理的軟件。(對軟硬件資源進(jìn)行管理)
如何理解管理
以日常生活為例:
一個學(xué)校的校長要如何對學(xué)校進(jìn)行管理呢?
????????在學(xué)校的生活中,我們很少會與校長見面,但我們的數(shù)據(jù)校長是能夠隨時拿到的(各種信息),校長對我們的管理本質(zhì)上是對我們的信息進(jìn)行管理。
-
管理者不需要和被管理者直接交互,依然能夠管理被管理對象。
-
管理者通過收集上來的數(shù)據(jù)來做決策。(如發(fā)獎學(xué)金按績點排名等)
-
如何管理被管理者的數(shù)據(jù)?先描述,再組織,如用struct結(jié)構(gòu)體來描述一個學(xué)生的信息,我們用鏈表將該結(jié)構(gòu)體的對象鏈接起來,對學(xué)生數(shù)據(jù)的管理就變成了對該鏈表的增刪查改操作。
?
計算機軟硬件架構(gòu)推導(dǎo)
驅(qū)動
先描述,再組織(用struct結(jié)構(gòu)體描述起來,用鏈表或其他高效的數(shù)據(jù)結(jié)構(gòu)組織起來)。通過驅(qū)動程序來管理硬件。(這也是為什么我們用藍(lán)牙和鼠標(biāo)等外設(shè)時需要對應(yīng)的驅(qū)動程序)
系統(tǒng)調(diào)用接口
????????為了安全,操作系統(tǒng)不相信任何人,但必須給上層用戶提供各種服務(wù)。所以操作系統(tǒng)提供部分系統(tǒng)調(diào)用接口。
????????在開發(fā)角度,操作系統(tǒng)對外會表現(xiàn)為一個整體,但是會暴露自己的部分接口,供上層開發(fā)使用,這部分由操作系統(tǒng)提供的接口,叫做系統(tǒng)調(diào)用。
對系統(tǒng)調(diào)用的封裝
系統(tǒng)調(diào)用接口使用的成本太高了,為了方便用戶的使用,進(jìn)行了封裝。如c/c++語言庫中封裝了系統(tǒng)調(diào)用接口。
系統(tǒng)調(diào)用在使用上,功能比較基礎(chǔ),對用戶的要求相對也比較高,所以,有心的開發(fā)者可以對部分系統(tǒng)調(diào)用進(jìn)行適度封裝,從而形成庫,有了庫,就很有利于更上層用戶或者開發(fā)者進(jìn)行二次開發(fā)。
?
用戶進(jìn)行操作
我們平時的操作基本都停留在用戶層。
談?wù)勥M(jìn)程
????????那在還沒有講進(jìn)程之前,就問大家,操作系統(tǒng)是怎么管理進(jìn)行進(jìn)程管理的呢?很簡單,先把進(jìn)程描述起來,再把進(jìn)程組織起來!下篇博客將介紹進(jìn)程的基本概念。文章來源:http://www.zghlxwxcb.cn/news/detail-401454.html
? ??文章來源地址http://www.zghlxwxcb.cn/news/detail-401454.html
到了這里,關(guān)于馮諾依曼體系與操作系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!