Halo,這里是Ppeua。平時主要更新C語言,C++,數(shù)據(jù)結(jié)構(gòu)算法…感興趣就關(guān)注我吧!你定不會失望。

計算機是由兩部分組成的:硬件+軟件.與硬件相關(guān)的為馮諾依曼體系結(jié)構(gòu),與軟件相關(guān)的為:操作系統(tǒng).
1. 馮諾依曼體系結(jié)構(gòu)
如今大多數(shù)計算機(筆記本,服務(wù)器等)大多數(shù)都遵守馮諾依曼體系結(jié)構(gòu).實際中的模型細節(jié)較為復(fù)雜.這是抽象后的簡單模型.其結(jié)構(gòu)模型為:
在這張圖中,紅色為數(shù)據(jù)傳輸信號,而黑色則為控制信號
其中輸入設(shè)備為:鍵盤,鼠標,硬盤等設(shè)備
輸出設(shè)備為:顯示器,打印機,硬盤等設(shè)備
運算器與控制器我們統(tǒng)稱為CPU
這里的存儲器是指內(nèi)存,而不是硬盤.
為什么這樣設(shè)計?
輸入設(shè)備,輸出設(shè)備的速度遠遠慢于CPU的速度.而存儲器的速度在這二者之間.
由木桶效應(yīng)可知.性能往往由短板決定.
若直接由CPU對接輸入輸出設(shè)備,則會造成CPU大多時候都在等待IO設(shè)備,CPU并不能被很有效的利用起來.
而加入了存儲器這個介質(zhì),可以較大程度上解決這個問題.提高CPU的利用率.
那么為什么不選擇最快的cache呢?
根據(jù)存儲金字塔來看,越往上的價格越高,且速度越快.若全部采用最快的cache.計算機就會因為造價昂貴而無法普及了
一句話說:所有的設(shè)備都只能跟內(nèi)存打交道
關(guān)于馮諾依曼體系結(jié)構(gòu),我們可以試著從以下這兩個例子來理解
-
你登上qq后跟你的朋友進行聊天.(不涉及網(wǎng)絡(luò)傳輸層面)
首先鍵盤作為輸入設(shè)備,我們輸入數(shù)據(jù),接著這些數(shù)據(jù)被放入到內(nèi)存當中由CPU進行處理.處理完后被放入到輸出設(shè)備,此時為 網(wǎng)卡.
發(fā)送給你的朋友的電腦.
同樣,他的電腦也滿足這個體系結(jié)構(gòu).網(wǎng)卡作為輸入設(shè)備,收到消息后將消息放到內(nèi)存中,cpu對消息進行處理后,顯示在輸出設(shè)備 屏幕
-
通過qq來傳輸文件
首先硬盤作為輸入設(shè)備,我們輸入數(shù)據(jù),接著這些數(shù)據(jù)被放入到內(nèi)存當中由CPU進行處理.處理完后被放入到輸出設(shè)備,此時為 網(wǎng)卡.
發(fā)送給你的朋友的電腦.
同樣,他的電腦也滿足這個體系結(jié)構(gòu).網(wǎng)卡作為輸入設(shè)備,收到文件數(shù)據(jù)后將文件數(shù)據(jù)放到內(nèi)存中,cpu對文件數(shù)據(jù)進行處理后,存儲在輸出設(shè)備 硬盤
2. 操作系統(tǒng)概念
操作系統(tǒng)是一款管理的軟件,上面的馮諾依曼體系結(jié)構(gòu)展現(xiàn)的是硬件層面.但一個個硬件如何進行協(xié)同工作的呢?這就是操作系統(tǒng)的意義所在.
為什么我們需要操作系統(tǒng)呢?
- 幫助用戶管理好軟硬件資源
- 為了給用戶提供一個高效的運行環(huán)境.使用電腦的可以粗略的分為兩類人,一類是普通用戶,一類是程序員.前者使用的大多為程序員開發(fā)的軟甲.而程序員才是真正使用操作系統(tǒng)的那一部分人.
因為操作系統(tǒng)不相信用戶,對自己進行了封裝,我們大多時候無法看見它的細節(jié).為了能維護自身安全,也能給用戶提供服務(wù),用戶只能通過其提供的接口去訪問.也就是 系統(tǒng)調(diào)用接口
也就是說:**任何訪問操作系統(tǒng)的行為,都只能通過系統(tǒng)調(diào)用去完成.**這樣保證了系統(tǒng)的安全穩(wěn)定.
操作系統(tǒng)怎么進行管理?
我們先設(shè)想一個場景:
在學校中,校長如何管理每一個學生呢?
首先,先描述數(shù)據(jù),將每一個學生的信息按照某種特定的格式記錄,之后組織數(shù)據(jù),將其放入excel表方便管理.之后想要找到某位學生,只要按照特定屬性進行尋找即可.
在操作系統(tǒng)中也是一樣的,將每一個需要管理的對象先按照特定的格式進行 描述數(shù)據(jù),之后通過數(shù)據(jù)結(jié)構(gòu)在進行組織即可.
所以**,在操作系統(tǒng)中,管理任何對象都可以將其轉(zhuǎn)換為對某類數(shù)據(jù)結(jié)構(gòu)的增刪查改.**
具體怎么做的我們之后再說.
我們之前寫過的通訊錄不就是,先將每個人描述,在組織起來的過程嘛.其在某種方面上,與操作系統(tǒng)是相同的
//描述
struct Person{
int age;
int tel;
string address;
};
//組織
struct Contact
{
Person p[100];
};
當我們在調(diào)用printf()函數(shù)的時候,在做什么呢?文章來源:http://www.zghlxwxcb.cn/news/detail-705472.html
每一個調(diào)用硬件的函數(shù),其內(nèi)部封裝了系統(tǒng)調(diào)用的接口,所以也是通過系統(tǒng)調(diào)用的接口去訪問驅(qū)動程序,硬件,最終顯示在屏幕上.文章來源地址http://www.zghlxwxcb.cn/news/detail-705472.html
到了這里,關(guān)于【Linux】進程概念I(lǐng) --操作系統(tǒng)概念與馮諾依曼體系結(jié)構(gòu)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!