哪里做網(wǎng)站最好小時seo加盟
操作系統(tǒng)
- 1. 馮諾依曼體系結(jié)構(gòu)
- 2. 操作系統(tǒng)
1. 馮諾依曼體系結(jié)構(gòu)
- 馮諾依曼體系結(jié)構(gòu)的介紹
馮.諾依曼結(jié)構(gòu)消除了原始計算機體系中,只能依靠硬件控制程序的狀況(程序作為控制器的一部分,作為硬件存在),將程序編碼存儲在存儲器中,實現(xiàn)了可編程的計算機功能,實現(xiàn)了硬件設計和程序設計的分離,大大促進了計算機的發(fā)展。所以我們現(xiàn)在常用的計算機大多遵循馮諾依曼體系結(jié)構(gòu)。
- 理解馮諾依曼體系結(jié)構(gòu)
(1)現(xiàn)在計算機由五大基本硬件組成:
存儲器:就是內(nèi)存
輸入設備:鍵盤、攝像頭、話筒、磁盤、網(wǎng)卡和鼠標等
輸出設備:顯示器、播放器、磁盤、網(wǎng)卡等
運算器:對我們輸入的數(shù)據(jù)進行運算(算術(shù)運算和邏輯運算)
控制器:讀取內(nèi)存中的指令,翻譯解析后向有關硬件發(fā)送控制命令
注意
a. 外設是輸入設備和輸出設備,CPU包括運算器和控制器。
b. 有的設備是純輸入,有的設備是純輸出,有的則是既輸入又輸出,例如磁盤和網(wǎng)卡。
c. U盤和磁盤是外存(用來存放內(nèi)存暫時用不著的程序和數(shù)據(jù))。
d. 不考慮緩存情況,這里的CPU能且只能對內(nèi)存進行讀寫,不能訪問外設;外設要輸入或者輸出數(shù)據(jù),也只能寫入內(nèi)存或者從內(nèi)存中讀取。所有設備都只能直接和內(nèi)存打交道。
問題1
為什么要有內(nèi)存?CPU不能直接從外設進行讀取,再輸出到外設嗎?
a. 從存儲的結(jié)構(gòu)就可以知道,外設離CPU遠,輸出設備和輸入設備與CPU的速度差距太大,當輸入設備還在慢吞吞輸入數(shù)據(jù)時,CPU早將數(shù)據(jù)處理輸出到輸出設備,輸出設備再慢吞吞輸出數(shù)據(jù),CPU有太多空閑,嚴重拖累了計算機的執(zhí)行速度。
b. 內(nèi)存的速度不也比CPU慢,為什么還要鏈接內(nèi)存?內(nèi)存的速度確實慢于CPU,但兩者間的速度差距遠小于外設與CPU的速度差距。也就是說內(nèi)存容量適中、速度適中,是最優(yōu)解。
c. 內(nèi)存具有預加載的功能,會預先將輸入設備的數(shù)據(jù)加載到內(nèi)存,且當CPU在運算時,內(nèi)存也會不斷地存儲數(shù)據(jù)。這樣CPU就會不斷地從內(nèi)存中讀取和輸出數(shù)據(jù),提高了計算機的執(zhí)行速度。此時的內(nèi)存就是硬件級別的緩存空間。
下面是計算機的存儲金字塔。
問題2
一個程序要運行,必須先加載到內(nèi)存。為什么?
簡單回答
因為馮諾依曼體系結(jié)構(gòu)規(guī)定。
詳細回答
因為CPU只能從內(nèi)存中讀取數(shù)據(jù),不能直接從外設中讀取數(shù)據(jù)。
(2)上面五大設備都是獨立個體,各個硬件單元必須用“線”鏈接起來,這個線就是系統(tǒng)總線和IO總線。CPU與內(nèi)存之間的是系統(tǒng)總線,內(nèi)存與外設之間的是IO總線。
(3)場景
請解釋,從登錄上qq開始和某位朋友聊天開始,數(shù)據(jù)的流動過程。
如果我想要傳一個文件(比如文檔)給我的朋友,請畫出數(shù)據(jù)流動的過程。
2. 操作系統(tǒng)
由馮諾依曼體系結(jié)構(gòu),我們可以知道計算機有很多硬件,這些硬件各有各的功能。這些功能什么時候執(zhí)行,誰先執(zhí)行,就需要一個邏輯來管理,所以就有了操作系統(tǒng)。
- 什么是操作系統(tǒng)
操作系統(tǒng)是一組主管并控制計算機操作、運用和運行硬件、軟件資源和提供公共服務來組織用戶交互的相互關聯(lián)的系統(tǒng)軟件程序。
簡單講,操作系統(tǒng)是一款進行管理(硬件和軟件)的軟件。
操作系統(tǒng)包括內(nèi)核(進程管理、內(nèi)存管理、文件管理、驅(qū)動管理)和其他程序(例如函數(shù)庫,shell程序等等)。
- 為什么要有操作系統(tǒng)
(1)操作系統(tǒng)幫助用戶管理好下面的軟硬件資源(驅(qū)動和底層硬件)。
(2)為了給用戶提供良好(穩(wěn)定、高效、安全)的運行環(huán)境。
注意
這里的用戶是程序員,而不是普通用戶。因為普通用戶不是直接使用操作系統(tǒng),而是使用程序員開發(fā)出來的軟件。只要保證良好的運行環(huán)境,程序員才能為普通用戶創(chuàng)建更多的軟件。
- 用戶可以直接訪問操作系統(tǒng)嗎
操作系統(tǒng)是軟件,有大量數(shù)據(jù),但用戶不能直接訪問操作系統(tǒng),操作系統(tǒng)不相信任何用戶??墒遣僮飨到y(tǒng)又要為用戶提供各種服務,所以操作系統(tǒng)就得提供接口讓用戶訪問內(nèi)部數(shù)據(jù)。這是怎么做到的?
操作系統(tǒng)為了保證自己的數(shù)據(jù)安全,又為了保證給用戶提供服務,操作系統(tǒng)以接口的方式給用戶提供調(diào)用的入口,來獲取操作系統(tǒng)內(nèi)部的數(shù)據(jù)。
拓展
操作系統(tǒng)是用C語言寫的,接口就是操作系統(tǒng)提供的、用C實現(xiàn)的函數(shù)調(diào)用,這就是系統(tǒng)調(diào)用。
總結(jié)
所有訪問操作系統(tǒng)的行為,都只能通過系統(tǒng)調(diào)用完成。
計算機的層狀結(jié)構(gòu)
- 操作系統(tǒng)是如何進行管理底層的軟硬件資源?
(1)操作系統(tǒng)不直接訪問底層的硬件,而是通過驅(qū)動程序進行管理的。
(2)操作系統(tǒng)是管理者,而硬件是被管理者。只要有被管理者的信息,就能對被管理者做管理。就像在大學,校長是管理者,而學生則是被管理者,校長不需要見學生就能對學生進行管理,他是通過學生的學號等各種信息進行管理的。同樣,操作系統(tǒng)是對硬件的各種信息管理。
所以管理的本質(zhì)是通過對數(shù)據(jù)的管理,而不是對人(硬件)的管理。
(3)操作系統(tǒng)中是有大量的數(shù)據(jù),要如何對每份數(shù)據(jù)都進行管理?比如在大學中,要在整個年級中找出幾名學生、新轉(zhuǎn)學幾名學生、退學幾名學生,我們可以將每個學生描述成一個結(jié)構(gòu)體,這個結(jié)構(gòu)體中有學生的各種信息(如姓名,性別,學號,成績等),然后用一個鏈表把每個結(jié)構(gòu)體鏈接起來。這樣,成功地將學生的管理工作轉(zhuǎn)換成對鏈表的增刪查改。
所以我們可以將底層設備構(gòu)建成結(jié)構(gòu)體(先描述),再用鏈表和其他數(shù)據(jù)結(jié)構(gòu)鏈接起來(再組織)。
(4)操作系統(tǒng)中,管理任何對象最終都可以轉(zhuǎn)化成對某種數(shù)據(jù)結(jié)構(gòu)的增刪查改。
(5)最終答案:先描述,再組織。