目錄
導(dǎo)讀
??專欄導(dǎo)讀
??馮·諾依曼
??馮諾依曼體系結(jié)構(gòu)
??木桶效應(yīng)
??操作系統(tǒng)(Operator System)
??概念
??設(shè)計(jì)OS的目的
??系統(tǒng)調(diào)用和庫(kù)函數(shù)概念?
導(dǎo)讀
六一兒童節(jié)快到了,提前祝大家六一兒童節(jié)快樂哦?。?!
六一兒童節(jié)的即將來(lái)到,祝愿我家寶??,愿你童心未泯,無(wú)憂無(wú)慮;童真相伴,快樂每天;童言無(wú)忌,不要束縛;童話生活,時(shí)刻甜蜜;童年依在,幸福永遠(yuǎn)。祝兒童節(jié)快樂!
?
??專欄導(dǎo)讀
??作者簡(jiǎn)介:日出等日落,在讀本科生一枚,致力于 C/C++、Linux 學(xué)習(xí)。
??本文收錄于 Linux系列,本專欄主要內(nèi)容為 C++ 初階、C++ 進(jìn)階、STL?詳解等,持續(xù)更新!
??相關(guān)專欄推薦:C語(yǔ)言系列 、Linux系列 、數(shù)據(jù)結(jié)構(gòu)與算法
??馮·諾依曼
計(jì)算機(jī)的世界有兩尊大神,一位是馮·諾依曼
,另一位是阿蘭·圖靈
。
??馮·諾依曼
-
約翰·馮·諾依曼(John von Neumann)是一位著名的數(shù)學(xué)家、計(jì)算機(jī)科學(xué)家、物理學(xué)家,是20世紀(jì)最重要的數(shù)學(xué)家之一。他還是是現(xiàn)代計(jì)算機(jī)、博弈論、核武器和生化武器等領(lǐng)域內(nèi)的科學(xué)全才之一,被后人稱為“現(xiàn)代計(jì)算機(jī)之父”、“博弈論之父”。馮諾依曼體系結(jié)構(gòu)便是它的經(jīng)典理論,從我們經(jīng)常所能見到的計(jì)算機(jī)到當(dāng)前最先進(jìn)的計(jì)算機(jī)都采用的是馮諾依曼體系結(jié)構(gòu)。所以馮諾依曼是當(dāng)之無(wú)愧的數(shù)字計(jì)算機(jī)之父。
?
??阿蘭·圖靈
-
艾倫·麥席森·圖靈(Alan Mathison Turing),英國(guó)數(shù)學(xué)家、邏輯學(xué)家,被稱為計(jì)算機(jī)科學(xué)之父,人工智能之父。圖靈對(duì)于人工智能的發(fā)展有諸多貢獻(xiàn),提出了一種用于判定機(jī)器是否具有智能的試驗(yàn)方法,即著名的圖靈試驗(yàn),每年都有試驗(yàn)的比賽。此外,圖靈提出的著名的圖靈機(jī)模型為現(xiàn)代計(jì)算機(jī)的邏輯工作方式奠定了基礎(chǔ)。
?
??馮諾依曼體系結(jié)構(gòu)
我們常見的計(jì)算機(jī),如筆記本。我們不常見的計(jì)算機(jī),如服務(wù)器,大部分都遵守馮諾依曼體系。、
- 截至目前,我們所認(rèn)識(shí)的計(jì)算機(jī),都是有一個(gè)個(gè)的硬件組件組成
- 輸入設(shè)備:鍵盤、話筒、攝像頭、網(wǎng)卡、磁盤
- 輸出設(shè)備:顯示器、磁盤、網(wǎng)卡、聲卡音響
- 外設(shè)一般都會(huì)比較慢一些,以磁盤為例
- 內(nèi)存還不是最快的,CPU最快
注:
磁盤并不等同于內(nèi)存
;輸入設(shè)備于輸出設(shè)備都叫作外設(shè)
;在數(shù)據(jù)層面,CPU不直接與外設(shè)溝通,而至于內(nèi)存打交道
;外設(shè)也只會(huì)與內(nèi)存進(jìn)行溝通
;
?那我們?yōu)槭裁催€需要內(nèi)存呢?
因?yàn)橥庠O(shè)較慢,CPU很快,但是整體的效率以外設(shè)的速度為準(zhǔn),這樣就不太合適,為了解決這個(gè)問題,就出現(xiàn)內(nèi)存。
??內(nèi)存的存在就可以大大緩解外設(shè)的效率低的問題,內(nèi)存的存在可以對(duì)數(shù)據(jù)進(jìn)行預(yù)加載,CPU以后在進(jìn)行數(shù)據(jù)計(jì)算的時(shí)候,根本不需要訪問外設(shè),只要訪問內(nèi)存就可以了
??木桶效應(yīng)
對(duì)于像【磁盤】這種外設(shè)來(lái)說雖然它有著大容量的內(nèi)存,但是讀寫速度卻非常慢,機(jī)械硬盤讀寫速度平均60---80M每秒;固態(tài)硬盤不同品牌型號(hào)之間,平均大約在150---300M每秒
但是對(duì)CPU來(lái)說,也就我們上面說到過的運(yùn)算器 + 控制器,它的運(yùn)算速度比磁盤不知道要快出多少倍了。一個(gè)寫入很慢,一個(gè)讀入很快,真的可以兼容嗎?
大家應(yīng)該都聽過木桶效益
什么是木桶效應(yīng)呢?一桶水最多能裝多少水,并不是看竹板中最長(zhǎng)的那個(gè),而是取決于最短的那塊板。
同理,計(jì)算機(jī)一直追求的是極致的計(jì)算速度。我們知道CPU的計(jì)算速度是非??斓?,但是計(jì)算機(jī)的速度并不能由CPU決定。
CPU的計(jì)算速度飛快,但是如果數(shù)據(jù)的供應(yīng)跟不上,那么CPU只能說是徒有一身本領(lǐng)卻無(wú)處施展。我們要知道,外設(shè)(以磁盤為例)的訪問速度是非常慢的,因而,盡管磁盤的容量非常大,例如幾G或幾百G的硬盤也就幾十塊錢。如果CPU直接從磁盤讀取數(shù)據(jù),那么它們整體的速度就會(huì)很慢。
CPU ——?納秒
(ns) 內(nèi)存 ——?微秒
(us) 外設(shè) ——?毫秒
(ms)
我們可以知道CPU和外設(shè)差距是非常大的,因此我們需要內(nèi)存這個(gè)東西來(lái)進(jìn)行過渡
我們可能聽說過一個(gè)概念——一個(gè)程序在運(yùn)行前都會(huì)先加載到內(nèi)存中,為什么呢??jī)?nèi)存相對(duì)于磁盤來(lái)說讀取速度非常的快,所以有了內(nèi)存的存在,我們可以將要讀與的程序預(yù)加載到內(nèi)存中,因?yàn)閮?nèi)存的讀取速度非???,所以CPU直接從內(nèi)存中拿數(shù)據(jù)就好了。
因?yàn)閮?nèi)存的讀取速度很快,所以價(jià)格較為昂貴。盡管它能存儲(chǔ)的數(shù)據(jù)很少,但卻非常的重要。
- 在數(shù)據(jù)層面,CPU不直接與外設(shè)溝通,而至于內(nèi)存打交道。
??操作系統(tǒng)(Operator System)
??概念
任何計(jì)算機(jī)系統(tǒng)都包含一個(gè)基本的程序集合,稱為操作系統(tǒng)(OS)?;\統(tǒng)的理解,操作系統(tǒng)包括:
- 內(nèi)核(進(jìn)程管理,內(nèi)存管理,文件管理,驅(qū)動(dòng)管理)
- 其他程序(例如函數(shù)庫(kù),shell程序等等)
?他是一款進(jìn)行軟硬件資源管理的軟件
??設(shè)計(jì)OS的目的
- 與硬件交互,管理所有的軟硬件資源
- 為用戶程序(應(yīng)用程序)提供一個(gè)良好的執(zhí)行環(huán)境
??如何理解 "管理"
就像校長(zhǎng)管理學(xué)生,先對(duì)每個(gè)學(xué)生對(duì)象都先作描述,在意某種數(shù)據(jù)結(jié)構(gòu)將學(xué)生對(duì)象的信息保存起來(lái)。
例如:
當(dāng)校長(zhǎng)想要開除某個(gè)學(xué)生時(shí),他并不會(huì)直接找到學(xué)生本人說“你現(xiàn)在被開除啦,趕緊回家去吧!”,而是刪除了該學(xué)生信息所對(duì)應(yīng)的結(jié)點(diǎn),然后將通知該學(xué)生的任務(wù)下達(dá)給輔導(dǎo)員。
輔導(dǎo)員也不會(huì)問為什么,你給我任務(wù),我就執(zhí)行。于是輔導(dǎo)員便找到學(xué)生并通知他,你被開除了。
操作系統(tǒng)扮演的角色就如同校長(zhǎng),它只負(fù)責(zé)作決策。而決策由誰(shuí)來(lái)執(zhí)行呢?
答案是硬件驅(qū)動(dòng),如同輔導(dǎo)員,所以硬件驅(qū)動(dòng)的角色是一位決策執(zhí)行者。而軟硬件資源就如同學(xué)生,是被管理者。
管理者和被管理者,是不需要直接溝通的!
?
?管理者和被管理者都沒有直接溝通,他如何管理我呢?
??管理的本質(zhì):對(duì)被管理對(duì)象的數(shù)據(jù)做管理?。?!
那么管理者是如何拿到被管理者的數(shù)據(jù)呢?
管理的本質(zhì):先描述,再組織
我們可以把學(xué)生理解為硬件(軟件也可以),校長(zhǎng)就是操作系統(tǒng),輔導(dǎo)員就為硬件驅(qū)動(dòng)
??總結(jié)
計(jì)算機(jī)管理硬件
先描述
再組織
??系統(tǒng)調(diào)用和庫(kù)函數(shù)概念?
?系統(tǒng)調(diào)用
- 在開發(fā)角度,操作系統(tǒng)對(duì)外會(huì)表現(xiàn)為一個(gè)整體,但是會(huì)暴露自己的部分接口,供上層開發(fā)使用,這部分由操作系統(tǒng)提供的接口,叫做系統(tǒng)調(diào)用。
那么我們之前有沒有使用過系統(tǒng)調(diào)用呢?答案是肯定是有的。當(dāng)我們寫下printf("hello world")這樣的代碼,運(yùn)行起來(lái)之后就會(huì)在屏幕上顯示hello world的字符。其實(shí)你以為你寫下這句代碼,計(jì)算機(jī)就會(huì)在屏幕上打印內(nèi)容是你的功勞,但其實(shí),這是編譯器在底層做了系統(tǒng)調(diào)用,你確實(shí)沒有直接使用系統(tǒng)調(diào)用,因?yàn)檫@是編譯器幫你完成的。
?庫(kù)函數(shù)
- 系統(tǒng)調(diào)用在使用上,功能比較基礎(chǔ),對(duì)用戶的要求相對(duì)也比較高,所以,有心的開發(fā)者可以對(duì)部分系統(tǒng)調(diào)用進(jìn)行適度封裝,從而形成庫(kù),有了庫(kù),就很有利于更上層用戶或者開發(fā)者進(jìn)行二次開發(fā)。
我們對(duì)庫(kù)已經(jīng)不是第一次認(rèn)識(shí)了,C語(yǔ)言、C++等語(yǔ)言都有自己的庫(kù)。庫(kù)就是對(duì)具有某些相似功能的函數(shù)作封裝方便用戶直接調(diào)用,從而提高開發(fā)的效率。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-464097.html
文章的最后,祝大家六一快來(lái)哦!??!
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-464097.html
到了這里,關(guān)于【Linux】深入了解馮諾依曼體系結(jié)構(gòu)與操作系統(tǒng)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!