- 相關(guān)推薦
操作系統是什么原理
我們每天都同操作系統打交道,了解一些操作系統原理上的知識是絕對有必要的,它可以讓你了解操作系統內部是怎么工作的,為什么會(huì )出現這樣那樣的問(wèn)題,為我們解決這些問(wèn)題提供思路。下面是小編為大家整理的操作系統原理的介紹,供大家參考。更多內容請關(guān)注應屆畢業(yè)生網(wǎng)!
Q:什么是中斷?
A:中斷嘛,舉個(gè)容易理解的例子吧。
比如蓮蓮和唐唐在下象棋,眼看蓮蓮就快招架不住了,正當此緊要關(guān)頭,唐唐的女友來(lái)了,非要唐唐陪她上街買(mǎi)衣服不可(唐唐暈倒:-) ),于是唐唐不得不同蓮蓮商量,先把棋盤(pán)封了,待買(mǎi)完衣服后繼續戰斗。掌燈時(shí)分,唐唐帶著(zhù)滿(mǎn)臉疲憊回到了棋盤(pán)前,結果蓮蓮不費吹灰只力便反敗為勝。
這就是整個(gè)中斷過(guò)程。我們來(lái)看看中斷過(guò)程是如何發(fā)生的:
1)中斷請求:唐唐的女友要他逛街
2)中斷響應:唐唐準備放下棋局陪女友逛街
3)現場(chǎng)保護:先把棋盤(pán)封了
4)中斷處理:唐唐陪女友逛街買(mǎi)衣服
5)恢復現場(chǎng):把棋盤(pán)解封
6)中斷返回:繼續戰斗
在計算機中,中斷機制是非常重要的,它用于協(xié)調系統對各種外部事件的響應和處理,并且是實(shí)現多任務(wù)的必要條件?梢赃@么說(shuō),如果沒(méi)有中斷機制,就沒(méi)有計算機。噢,對了,如果唐唐把棋移到密室中下,不讓他的女友打擾,這就叫“中斷屏蔽”。
Q:RING3、RING0是什么意思?
A:這得從CPU指令系統(用于控制CPU完成各種功能的命令)的特權級別說(shuō)起。
在CPU的所有指令中,有一些指令是非常危險的,如果錯用,將導致整個(gè)系統崩潰。比如:清內存、設置時(shí)鐘等。如果所有的程序都能使用這些指令,那么你的系統一天死機n回就不足為奇了。所以,CPU將指令分為特權指令和非特權指令,對于那些危險的指令,只允許操作系統及其相關(guān)模塊使用,普通的應用程序只能使用那些不會(huì )造成災難的指令。形象地說(shuō),特權指令就是那些兒童不宜的東東,而非特權指令則是老少皆宜。
Intel的CPU將特權級別分為4個(gè)級別:RING0,RING1,RING2,RING3。Windows只使用其中的兩個(gè)級別RING0和RING3,RING0只給操作系統用,RING3誰(shuí)都能用。
如果普通應用程序企圖執行RING0指令,則Windows會(huì )顯示“非法指令”錯誤信息。盡管有CPU的特權級別作保護,遺憾的是WINDOW98本身漏洞很多,使用Windows 98的系統一天死機n回也是正常的。
Q:為什么要有操作系統?
A:哈哈,難道你還沒(méi)感受到操作系統的魅力嗎?因為有了象Windows這樣優(yōu)秀的操作系統,我們的機器才一天到晚地出問(wèn)題——這個(gè)那個(gè)的問(wèn)題,我們才需要一天到晚地重裝Windows,這樣才使我們牢牢地記住了象微軟這樣的公司的名字,和象比爾蓋茨這樣優(yōu)秀的程序員兼老板的名字……好了,說(shuō)正經(jīng)的,盡管Windows不穩定,但絕對不能否認它是當今最優(yōu)秀的操作系統之一。操作系統在計算機中起著(zhù)重要作用,它為所有的應用程序提供一個(gè)運行環(huán)境,并將應用程序同具體硬件隔離。比如在機器中換一塊聲卡,只需要重新安裝一下聲卡驅動(dòng)程序就完事了,但如果沒(méi)有操作系統,你就必須為這塊新的聲卡重新購買(mǎi)所有的應用程序,以便這些應用程序能夠認識這塊聲卡并能夠使用它。
操作系統就象計算機的大管家,管理著(zhù)計算機的各種資源,比如內存、磁盤(pán)、CPU等。應用程序想使用這些資源,都必須經(jīng)過(guò)操作系統同意(資源申請),并且由操作系統統一安排使用時(shí)間(資源分配),應用程序用完后必須將資源還給操作系統(資源回收),以便其他應用程序使用。就這樣,計算機系統在操作系統的管理下以最可能高的效率有條不紊地工作著(zhù)。
Q:什么叫進(jìn)程?進(jìn)程同程序有什么區別?
A:進(jìn)程是程序在計算機上的一次執行活動(dòng)。當你運行一個(gè)程序,你就啟動(dòng)了一個(gè)進(jìn)程。顯然,程序是死的(靜態(tài)的),進(jìn)程是活的(動(dòng)態(tài)的)。
進(jìn)程可以分為系統進(jìn)程和用戶(hù)進(jìn)程。凡是用于完成操作系統的各種功能的進(jìn)程就是系統進(jìn)程,它們就是處于運行狀態(tài)下的操作系統本身;用戶(hù)進(jìn)程就不必我多講了吧,所有由你啟動(dòng)的進(jìn)程都是用戶(hù)進(jìn)程。
進(jìn)程是操作系統進(jìn)行資源分配的單位。在Windows下,進(jìn)程又被細化為線(xiàn)程,也就是一個(gè)進(jìn)程下有多個(gè)能獨立運行的更小的單位。
Q:什么是多任務(wù)?
A:在同一個(gè)時(shí)間里,同一個(gè)計算機系統中如果允許兩個(gè)或兩個(gè)以上的進(jìn)程處于運行狀態(tài),這便是多任務(wù),F代的操作系統幾乎都是多任務(wù)操作系統,能夠同時(shí)管理多個(gè)進(jìn)程的運行。多任務(wù)帶來(lái)的好處是明顯的,比如你可以邊聽(tīng)mp3邊上網(wǎng),與此同時(shí)甚至可以將下載的文檔打印出來(lái),而這些任務(wù)之間絲毫不會(huì )相互干擾。
Q:什么是“并發(fā)”?什么是“并行”?
A:俗話(huà)說(shuō),一心不能二用,這對計算機也一樣,原則上一個(gè)CPU只能分配給一個(gè)進(jìn)程,以便運行這個(gè)進(jìn)程。我們通常使用的計算機中只有一個(gè)CPU,也就是說(shuō)只有一顆心,要讓它一心多用,同時(shí)運行多個(gè)進(jìn)程,就必須使用并發(fā)技術(shù)。
實(shí)現并發(fā)技術(shù)相當復雜,最容易理解的是“時(shí)間片輪轉進(jìn)程調度算法”,它的思想簡(jiǎn)單介紹如下:
在操作系統的管理下,所有正在運行的進(jìn)程輪流使用CPU,每個(gè)進(jìn)程允許占用CPU的時(shí)間非常短(比如10毫秒),這樣用戶(hù)根本感覺(jué)不出來(lái)CPU是在輪流為多個(gè)進(jìn)程服務(wù),就好象所有的進(jìn)程都在不間斷地運行一樣。但實(shí)際上在任何一個(gè)時(shí)間內有且僅有一個(gè)進(jìn)程占有CPU。如果一臺計算機有多個(gè)CPU,情況就不同了,如果進(jìn)程數小于CPU數,則不同的進(jìn)程可以分配給不同的CPU來(lái)運行,這樣,多個(gè)進(jìn)程就是真正同時(shí)運行的,這便是并行。但如果進(jìn)程數大于CPU數,則仍然需要使用并發(fā)技術(shù)。在Windows中,進(jìn)行CPU分配是以線(xiàn)程為單位的,一個(gè)進(jìn)程可能由多個(gè)線(xiàn)程組成,這時(shí)情況更加復雜,但簡(jiǎn)單地說(shuō),有如下關(guān)系:
總線(xiàn)程數 <= CPU數量:并行運行
總線(xiàn)程數 > CPU數量:并發(fā)運行
并行運行的效率顯然高于并發(fā)運行,所以在多CPU的計算機中,多任務(wù)的效率比較高。但是,如果在多CPU計算機中只運行一個(gè)進(jìn)程(線(xiàn)程),就不能發(fā)揮多CPU的優(yōu)勢。值得注意的是,Windows 9x并不支持多CPU系統,如果在多CPU系統上安裝Windows 9x,有再多的CPU也是白搭。
Q:什么叫“可搶占式多任務(wù)”?
A:進(jìn)程是有優(yōu)先級的。如果即將被運行的進(jìn)程的優(yōu)先級比正在運行的進(jìn)程的優(yōu)先級高,則系統可以強行剝奪正在運行的進(jìn)程的CPU,讓優(yōu)先級高的進(jìn)程先運行。
可見(jiàn),人類(lèi)社會(huì )的特權思想在計算機世界中表現得多么淋漓盡致。:-)實(shí)際的操作系統一般將時(shí)間片思想同可強占思想結合起來(lái)進(jìn)行CPU分配。
可搶占式多任務(wù)的好處是很多的,比如當一個(gè)進(jìn)程發(fā)生意外無(wú)法運行時(shí),如果不能強行剝奪其CPU占有權,則整個(gè)系統都得癱瘓,由于早期的Windows 3.1不是可搶占式多任務(wù)系統,所以Windows 3.1非常不可靠。
Q:多個(gè)進(jìn)程在并發(fā)/并行運行過(guò)程中會(huì )產(chǎn)生沖突嗎?
A:如果沒(méi)有任何保護機制,肯定是會(huì )的。這種沖突一般發(fā)生在對資源的爭奪上。
顯然,如果一條馬路窄到只能通過(guò)一輛馬車(chē),則當有兩輛馬車(chē)想同時(shí)通過(guò)時(shí),某個(gè)馬車(chē)夫就必須發(fā)揚風(fēng)格,先讓一讓?zhuān)駝t結果肯定是人仰馬翻。
操作系統細心地管理著(zhù)這一切,以避免進(jìn)程間的沖突,程序員們也常常需要細心地按照某種既定規則編寫(xiě)程序,以便操作系統管理。
更具體的方法、原理已經(jīng)遠遠超過(guò)了初學(xué)者能接受的水平,我還是把它略去吧。
Q:什么是虛擬存儲器?
A:虛擬存儲技術(shù)是非常重要的存儲管理技術(shù),它的核心思想是利用巨大的硬盤(pán)空間來(lái)彌補不足的實(shí)際內存空間。在虛擬內存管理下,應用程序可以使用的存儲空間遠遠大于實(shí)際的內存大小。我們將一臺計算機實(shí)際安裝的內存稱(chēng)為物理存儲器,將通過(guò)虛擬存儲技術(shù)得到的比實(shí)際內存空間大得多的存儲空間成為虛擬存儲器。虛擬存儲技術(shù)的實(shí)現也是非常復雜,如果細講的話(huà)肯定又是吃力不討好,這里只提一提最簡(jiǎn)單的思想。內存單元在計算機中是有編號的,叫內存地址。如果你的計算機中有1M物理內存(天哪,286的說(shuō)?呵呵,舉例子方便嘛),則物理內存的地址范圍為0到1048575(1024 x 1024 - 1)。
如果想訪(fǎng)問(wèn)地址為1048576的單元,顯然是不可以的,因為最大只到1048575了。但是,如果這時(shí)我將物理內存中所有的東西先保存到硬盤(pán)上,然后通過(guò)某種方法將1048576映射到地址為0的物理存儲單元上,我不就又得到另外整整一個(gè)M的存儲空間了嗎,當程序要訪(fǎng)問(wèn)地址為0的單元時(shí),我把原先存儲在硬盤(pán)上的內容調回物理內存中就可以了。這個(gè)想法夠巧妙吧,它就是虛擬存儲技術(shù)的核心思想。于是我就可以得到n個(gè)1M空間了。真正的虛擬存儲管理比上面我所提的還要復雜、巧妙得多,它能夠實(shí)現讓不同的進(jìn)程在不同的地址空間上運行(即讓每個(gè)進(jìn)程認為自己占有所有的存儲空間,可以任意使用,不必在乎系統中的其他進(jìn)程是如何使用存儲空間的。這猶如讓不同的進(jìn)程運行在不同的計算機上),并且要考慮最優(yōu)的內存使用效率。
Q:如果一個(gè)進(jìn)程訪(fǎng)問(wèn)了不屬于自己地址空間內的存儲單元,會(huì )發(fā)生什么情況?
A:在Windows下你肯定會(huì )看到一個(gè)“該程序執行了非法操作,即將被關(guān)閉……”
之類(lèi)的對話(huà)框?吹竭@樣的對話(huà)框常令我們無(wú)比沮喪,但這是操作系統必須做的事,我們稱(chēng)它為“存儲保護”。存儲保護的目的是保護系統進(jìn)程不被用戶(hù)進(jìn)程破壞,不允許進(jìn)程讀寫(xiě)不屬于自己的區域。道理是很簡(jiǎn)單的:考試的時(shí)候,你只被允許在自己的試卷上面作答,如果你想看別人的試卷,甚至想改別人試卷上的內容,你就“執行了非法操作”,肯定是要被監考“關(guān)閉”
的(前提是監考人員工作正常,否則就亂了套了,會(huì )有很?chē)乐氐暮蠊?。
注意:在Windows中引起系統關(guān)閉一個(gè)進(jìn)程的原因很多,除了非法讀寫(xiě)其他進(jìn)程存儲區(地址越界)外,還有如執行了只有操作系統才能執行的ring0指令、程序中出現除數為0的情況等等。
Q:什么是硬盤(pán)分區?
A:最早的時(shí)候,操作系統無(wú)法管理較大的硬盤(pán)空間,所以將一個(gè)大的硬盤(pán)空間分為多個(gè)較小的區域以便于管理。另外,有時(shí)需要在系統中安裝多個(gè)操作系統,也需要將硬盤(pán)分為不同的區域,讓不同的操作系統分別管理,互不干擾。
現在已經(jīng)沒(méi)有因為操作系統無(wú)法管理大硬盤(pán)而需要對硬盤(pán)進(jìn)行分區的可能性了,但我們仍然對硬盤(pán)進(jìn)行分區,除了安裝多個(gè)操作系統外,主要的還是為了對各種文件進(jìn)行管理比較方便。
操作系統為不同的硬盤(pán)分區賦予不同的盤(pán)符,這樣就在邏輯上把一個(gè)大硬盤(pán)分割成了多個(gè)小硬盤(pán)。
Q:什么是硬盤(pán)分區的主引導記錄?
A:主引導記錄是每個(gè)硬盤(pán)分區的命根子,上面記錄著(zhù)一個(gè)分區所占用的硬盤(pán)空間的位置等重要信息。如果一個(gè)分區的主引導記錄被破壞,這個(gè)分區就算玩完了。
Q:什么是活動(dòng)分區?
A:活動(dòng)分區是在系統加電后具有自舉(引導系統)能力的分區,在活動(dòng)分區上的主引導記錄中有一段主引導程序,每當系統啟動(dòng)后,這段程序被調入內存運行,以引導(啟動(dòng))保存在硬盤(pán)上的操作系統。不同的操作系統引導的方法是不同的,所以這段主引導程序隨著(zhù)系統上安裝的操作系統的不同而不同。
Q:Windows是怎樣儲存磁盤(pán)文件的?
A:首先,Windows以“簇”為單位使用硬盤(pán)上的空間。根據硬盤(pán)空間的大小,一個(gè)簇的大小是不一樣的。一般說(shuō),簇越小,硬盤(pán)空間的利用率越大,簇越大,存儲速度越快。每個(gè)文件必須被分成以簇的大小為單位的多個(gè)塊,然后儲存在硬盤(pán)上。為此,需要一個(gè)表格來(lái)記錄一個(gè)文件被分成的塊都儲存在硬盤(pán)的哪些簇上,這個(gè)表格在Win9x中就是FAT表。FAT表也儲存在硬盤(pán)上。所以,FAT表是文件系統的命根子,破壞了它,一個(gè)磁盤(pán)所有的文件就玩完了。于是,Windows除了使用一個(gè)FAT表外,還會(huì )備份一個(gè)。
Q:什么是文件目錄表?
A:文件目錄表同FAT表一樣是非常重要的,它記錄著(zhù)所有文件的文件名、屬性和在FAT表中的起始位置。當你需要讀寫(xiě)一個(gè)文件時(shí),Windows就從文件目錄表中找這個(gè)文件,如果找到,按照文件目錄表中所指示的該文件在FAT表中的起始位置讀出FAT表中與這個(gè)文件有關(guān)的存儲信息,就可以讀寫(xiě)這個(gè)文件了。
Q:什么叫虛擬設備?
A:不同的I/O設備速度有快有慢。在操作系統中,為了有效地利用各種設備,可以使用高速設備來(lái)模擬低速設備,從而得到的就是虛擬設備。
在Windows中典型的例子就是打印機。我們不難發(fā)現在啟動(dòng)打印時(shí)打印機并沒(méi)有工作,而是硬盤(pán)在響,然后所有的打印文檔都進(jìn)入打印隊列,排隊打印。在前一個(gè)文檔還在打印機上打印的時(shí)候,下一個(gè)文檔已經(jīng)進(jìn)入打印隊列,提交這個(gè)文檔的進(jìn)程無(wú)須等待打印機將這個(gè)文檔打印完畢,就可以繼續處理別的事情了。
這是由于Windows使用硬盤(pán)模擬打印機。所有的打印工作實(shí)際上都“打印”到了硬盤(pán)上。硬盤(pán)速度比打印機快得多,所以一下子就完成了。此時(shí)有另一個(gè)進(jìn)程負責從硬盤(pán)上讀出打印數據,打印到實(shí)際的打印機上,這個(gè)進(jìn)程在后臺工作,不影響前臺的其他進(jìn)程。
Q:什么是與設備無(wú)關(guān)性(設備獨立性)?
A:計算機的外部設備很多,同種類(lèi)型的設備又有不同廠(chǎng)家、不同型號的產(chǎn)品。這些產(chǎn)品總會(huì )有些細微的差別。這就給應用程序的編寫(xiě)帶來(lái)很大的困難,因為一個(gè)應用程序不可能顧及到所有硬件的兼容性。為此,操作系統將具體的硬件設備同整個(gè)系統隔離開(kāi)來(lái),對硬件的具體操作、與硬件有關(guān)的兼容性問(wèn)題等統統由設備驅動(dòng)程序來(lái)解決,同時(shí)操作系統向應用程序提供統一的操縱設備的方法,應用程序只需要按套路調用操作系統提供的功能即可,無(wú)須關(guān)心實(shí)際的設備是什么,這就是與設備無(wú)關(guān)性。
這樣,每增添或改動(dòng)一個(gè)系統上的硬件,只需要安裝相應的驅動(dòng)程序即可。
Q:什么是緩沖(buffering)技術(shù)?
A:在數據到達與離去速度不匹配的地方,就應該使用緩沖技術(shù)。緩沖技術(shù)好比是一個(gè)水庫,如果上游來(lái)的水太多,下游來(lái)不及排走,水庫就起到“緩沖”作用,先讓水在水庫中停一些時(shí)候,等下游能繼續排水,再把水送往下游。
通常CPU的速度要比I/O設備的速度快得多得多,所以可以設置緩沖區,對于從CPU來(lái)的數據,先放在緩沖區中,然后設備可以慢慢地從緩沖區中讀出數據。
【操作系統是什么原理】相關(guān)文章:
操作系統原理12-06
操作系統原理相關(guān)介紹08-08
linux操作系統原理知識01-24
linux操作系統原理知識06-12
天大15春《操作系統原理》作業(yè)07-04
實(shí)時(shí)操作系統是什么03-31
開(kāi)源操作系統是什么05-17
操作系統是什么知識03-20
桌面操作系統是什么12-27