?? 馮諾依曼體系結(jié)構(gòu)
數(shù)學(xué)家馮·諾依曼提出了計(jì)算機(jī)制造的三個(gè)基本原則,即采用二進(jìn)制邏輯、程序存儲(chǔ)執(zhí)行以及計(jì)算機(jī)由五個(gè)部分組成(運(yùn)算器、控制器、存儲(chǔ)器、輸入設(shè)備、輸出設(shè)備),這套理論被稱(chēng)為馮·諾依曼體系結(jié)構(gòu)。
??1.體系概述
現(xiàn)代計(jì)算機(jī)發(fā)展所遵循的基本結(jié)構(gòu)形式始終是馮·諾依曼機(jī)結(jié)構(gòu)。這種結(jié)構(gòu)特點(diǎn)是“程序存儲(chǔ),共享數(shù)據(jù),順序執(zhí)行”,需要 CPU 從存儲(chǔ)器取出指令和數(shù)據(jù)進(jìn)行相應(yīng)的計(jì)算。
-
輸入設(shè)備:包含鍵盤(pán),話筒,攝像頭,網(wǎng)卡,磁盤(pán)(I)
-
存儲(chǔ)器:包含內(nèi)存(寄存器、高速緩沖存儲(chǔ)器以及主存儲(chǔ)器,操作系統(tǒng)關(guān)機(jī)數(shù)據(jù)不復(fù)存在)和外存(硬盤(pán),軟盤(pán),CD,磁帶,操作系統(tǒng)關(guān)機(jī)數(shù)據(jù)也可保存)
-
CPU:包含運(yùn)算器(數(shù)據(jù)流計(jì)算交換)和控制器(接收指令和發(fā)出控制指令)
-
輸出設(shè)備:包含顯示器,磁盤(pán),網(wǎng)卡,聲卡聲響
比如我們上qq聊天,我們需要把聊天內(nèi)容通過(guò)鍵盤(pán)輸入給計(jì)算機(jī)(通過(guò)鍵盤(pán)這種輸入設(shè)備),然后消息發(fā)出,顯示到對(duì)方屏幕上(這時(shí)對(duì)方顯示器就是輸出設(shè)備)
而且它們的運(yùn)行速度也有很大差異,在市面上可以幾百塊錢(qián)可以買(mǎi)到512G或者1T的硬盤(pán),而內(nèi)存只能買(mǎi)到8G或者12G的,顯然同等存儲(chǔ)空間下內(nèi)存比硬盤(pán)要貴很多,那么同等地,它的速度也會(huì)比硬盤(pán)或者外設(shè)快很多。
而越昂貴,它的速度也就越塊,運(yùn)行速度:CPU >> 內(nèi)存 >> 外設(shè)
??2.CPU和內(nèi)存的數(shù)據(jù)交換
既然前面說(shuō)了CPU速度是最快的,那么為什么還要存在內(nèi)存呢,直接把CPU連到外設(shè)是不是會(huì)大大提升效率?
答案是否定的,舉個(gè)例子來(lái)說(shuō),CPU工作的速度是納秒級(jí),而內(nèi)存是微秒級(jí),最后外設(shè)是毫秒級(jí),如果CPU直接跟外設(shè)打交道,那么將是納秒跟微秒的對(duì)比,CPU造價(jià)最貴,自然速度也就最快,那么它的時(shí)間將是很昂貴的,一個(gè)外設(shè)輸入就會(huì)占用很多CPU的時(shí)間,這就跟木桶原理是一樣的
木桶所能盛放的最大水量取決于最短的那塊木板,而不是最長(zhǎng)的那塊,所以CPU如果直接跟外設(shè)打交道,那么計(jì)算機(jī)的運(yùn)行速度完全取決于外設(shè)的速度,而CPU那么快的速度顯然是浪費(fèi)掉了,這時(shí)便引入了內(nèi)存。
內(nèi)存的訪問(wèn)速度比外設(shè)快,但是又比CPU慢,CPU可以直接從內(nèi)存中拿到數(shù)據(jù),放進(jìn)CPU計(jì)算的同時(shí),DMA可以把外設(shè)的東西調(diào)到內(nèi)存,下次CPU就可以直接從內(nèi)存中拿取數(shù)據(jù)。
這就是為什么我們打開(kāi)一個(gè)程序的時(shí)候,需要先把數(shù)據(jù)加載到內(nèi)存中,然后再交給CPU運(yùn)行,因?yàn)檫@是體系結(jié)構(gòu)決定的
結(jié)論:在數(shù)據(jù)層面,CPU一般不和外設(shè)溝通,而是只和內(nèi)存打交道
??3.體系結(jié)構(gòu)中數(shù)據(jù)的流動(dòng)
我們下面模擬一下qq消息在兩臺(tái)主機(jī)中的傳遞:
數(shù)據(jù)先由張三的鍵盤(pán)輸入"晚安",然后該消息被刷新到我們自己的顯示器上,然后點(diǎn)擊發(fā)送,這期間由DMA將數(shù)據(jù)調(diào)入內(nèi)存,內(nèi)存中數(shù)據(jù)在調(diào)入CPU進(jìn)行加密,然后將加密后的數(shù)據(jù)返回給網(wǎng)卡,網(wǎng)卡在通過(guò)網(wǎng)絡(luò)進(jìn)行輸出給另一臺(tái)主機(jī),另一臺(tái)主機(jī)的網(wǎng)卡(此時(shí)網(wǎng)卡為輸入設(shè)備)接收到數(shù)據(jù),將數(shù)據(jù)給CPU進(jìn)行解密,最后顯示到對(duì)方李四的顯示器上。
結(jié)論:在數(shù)據(jù)層面上,外設(shè)一般不直接和CPU打交道,而是和內(nèi)存打交道
?? 操作系統(tǒng)概念理解
在計(jì)算機(jī)中,操作系統(tǒng)是其最基本也是最為重要的基礎(chǔ)性系統(tǒng)軟件。從計(jì)算機(jī)用戶(hù)的角度來(lái)說(shuō),計(jì)算機(jī)操作系統(tǒng)體現(xiàn)為其提供的各項(xiàng)服務(wù);從程序員的角度來(lái)說(shuō),其主要是指用戶(hù)登錄的界面或者接口;如果從設(shè)計(jì)人員的角度來(lái)說(shuō),就是指各式各樣模塊和單元之間的聯(lián)系。事實(shí)上,全新操作系統(tǒng)的設(shè)計(jì)和改良的關(guān)鍵工作就是對(duì)體系結(jié)構(gòu)的設(shè)計(jì),經(jīng)過(guò)幾十年以來(lái)的發(fā)展,計(jì)算機(jī)操作系統(tǒng)已經(jīng)由一開(kāi)始的簡(jiǎn)單控制循環(huán)體發(fā)展成為較為復(fù)雜的分布式操作系統(tǒng),再加上計(jì)算機(jī)用戶(hù)需求的愈發(fā)多樣化,計(jì)算機(jī)操作系統(tǒng)已經(jīng)成為既復(fù)雜而又龐大的計(jì)算機(jī)軟件系統(tǒng)之一
??1.簡(jiǎn)述
操作系統(tǒng)(OS)是一組主管并控制計(jì)算機(jī)操作、運(yùn)用和運(yùn)行硬件、軟件資源和提供公共服務(wù)來(lái)組織用戶(hù)交互的相互關(guān)聯(lián)的系統(tǒng)軟件程序。根據(jù)運(yùn)行的環(huán)境,操作系統(tǒng)可以分為桌面操作系統(tǒng),手機(jī)操作系統(tǒng),服務(wù)器操作系統(tǒng),嵌入式操作系統(tǒng)等
操作系統(tǒng)包含:
- 內(nèi)核(進(jìn)程管理,內(nèi)存管理,文件管理,驅(qū)動(dòng)管理)
- 其他程序(例如函數(shù)庫(kù), shell程序等等)
??2.設(shè)計(jì)目的
- 與硬件交互,管理所有的軟硬件資源
- 為用戶(hù)程序(應(yīng)用程序)提供一個(gè)良好的執(zhí)行環(huán)境
??3.定位
- 一款進(jìn)行軟硬件資源管理的軟件
??4.理解
我們應(yīng)該如何理解操作系統(tǒng)對(duì)硬件做管理呢?比如在IT公司中,有boss,還很多個(gè)團(tuán)隊(duì),每個(gè)團(tuán)隊(duì)有隊(duì)長(zhǎng)和隊(duì)員,我們可以拿boss - 隊(duì)長(zhǎng) - 隊(duì)員來(lái)解釋。
在每個(gè)IT公司中,boss會(huì)做決策,比如開(kāi)發(fā)某款產(chǎn)品,然后他會(huì)把任務(wù)下發(fā)給對(duì)應(yīng)的團(tuán)隊(duì),團(tuán)隊(duì)隊(duì)長(zhǎng)便會(huì)根據(jù)這個(gè)來(lái)組織隊(duì)員進(jìn)行軟件的開(kāi)發(fā):
在以上的描述中:
- boss:決策(管理者)
- 隊(duì)長(zhǎng):決策被執(zhí)行
- 隊(duì)員:參與執(zhí)行(被管理者)
在上述例子中我們看到,boss是不需要跟隊(duì)員直接溝通達(dá)到執(zhí)行決策的目的的,也就是:1.管理者和被管理者是不需要直接溝通的
那既然管理者和別管理者不需要直接溝通,那怎么做到管理的呢?我們想像一下,如果IT公司的員工訂了一份外賣(mài),此時(shí)外賣(mài)小哥把外賣(mài)送到了員工的辦公桌上,那么他進(jìn)入了公司大樓,但他是公司的員工嗎?顯然不是,要被定義為公司員工,得在公司電腦上能查到該員工的信息才行,不是進(jìn)入公司大樓的就是該公司員工。同樣的,假如說(shuō)一個(gè)員工被炒魷魚(yú)了,他人離開(kāi)公司就行了嗎?顯然不是,該公司需要?jiǎng)h除這個(gè)員工的信息才行。所以說(shuō)管理的本質(zhì)是:2.對(duì)被管理對(duì)象的數(shù)據(jù)做管理
那么boss怎么拿到員工數(shù)據(jù)呢?這就需要每個(gè)團(tuán)隊(duì)的隊(duì)長(zhǎng)反饋隊(duì)員數(shù)據(jù)給boss,boss才能拿到員工數(shù)據(jù)。也就是3.管理者通過(guò)一種媒介(這里是隊(duì)長(zhǎng))拿到被管理者數(shù)據(jù)
所以說(shuō)我們操作系統(tǒng)也是如此:
操作系統(tǒng)通過(guò)硬件驅(qū)動(dòng)實(shí)現(xiàn)對(duì)硬件進(jìn)行管理。
??5.管理的本質(zhì)
正如我們上文所說(shuō),隊(duì)長(zhǎng)把隊(duì)員數(shù)據(jù)交給boss,那么boss怎么看呢,一個(gè)大的IT公司至少有幾百上千人,boss如果想查找業(yè)績(jī)最低的人員開(kāi)除,那豈不是得找很久?于是boss就想了一個(gè)辦法:把所有隊(duì)員的數(shù)據(jù)用一個(gè)類(lèi)描述出來(lái),比如叫Programmer,這個(gè)類(lèi)里面有成員姓名(name),年齡(age),業(yè)績(jī)(achievement)等基本信息,這就叫數(shù)據(jù)的描述然后每個(gè)人員的信息我們便可以清楚的看到:
如果我們要查找人員信息呢,我們得用一種數(shù)據(jù)結(jié)構(gòu)來(lái)組織每個(gè)人員的基本信息
比如boss想用二叉樹(shù)來(lái)組織:
此時(shí)我們只需要遍歷這棵二叉樹(shù)即可實(shí)現(xiàn)對(duì)員工信息的查找,操作系統(tǒng)也是,比如進(jìn)程管理,操作系統(tǒng)會(huì)用PCB來(lái)描述進(jìn)程的結(jié)構(gòu),又比如內(nèi)存管理,操作系統(tǒng)會(huì)用頁(yè)表來(lái)管理內(nèi)存
總之,管理就是先描述,在組織,這句話會(huì)貫穿我們Linux的整個(gè)學(xué)習(xí)過(guò)程
??6.系統(tǒng)調(diào)用
操作系統(tǒng)的作用是對(duì)下提供管理好軟硬件資源,、對(duì)上給用戶(hù)提供良好(安全,高效,穩(wěn)定,功能豐富)的良好環(huán)境,“系統(tǒng)調(diào)用”是操作系統(tǒng)提供給應(yīng)用程序(程序員/編程人員)使用的接口,可以理解為一種可供應(yīng)用程序調(diào)用的特殊函數(shù),應(yīng)用程序可以發(fā)出系統(tǒng)調(diào)用請(qǐng)求來(lái)獲得操作系統(tǒng)的服務(wù)。會(huì)使處理器從用戶(hù)態(tài)進(jìn)入核心態(tài)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-786853.html
我們所熟知的系統(tǒng)調(diào)用有:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-786853.html
- GUI(圖形化界面)
- shell和命令行
- C函數(shù)(stdio.h)
到了這里,關(guān)于【Linux】馮諾依曼體系結(jié)構(gòu)和操作系統(tǒng)概念的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!