现代操作系统初理解
1.現(xiàn)代操作系統(tǒng)是由中斷驅(qū)動(dòng)的:如果沒有進(jìn)程要執(zhí)行,沒有I/O 設(shè)備要服務(wù),也沒有用戶請(qǐng)求要響應(yīng),操作系統(tǒng)將會(huì)靜靜地等待某件事件的發(fā)生。
2.操作系統(tǒng)和用戶共享了計(jì)算機(jī)系統(tǒng)的硬件和軟件:既然是共享了,就可能會(huì)發(fā)生一些BUG,為什么呢,如果一個(gè)進(jìn)程陷入死循環(huán),那么會(huì)間接影響其他進(jìn)程的正確操作,甚至在多道程序設(shè)計(jì)中可能會(huì)發(fā)生更微妙的錯(cuò)誤像蝴蝶效應(yīng)一樣,一個(gè)錯(cuò)誤的程序修改另一個(gè)程序,然后一直循環(huán)。
3.為了避免蝴蝶效應(yīng),至少需要兩種獨(dú)立的操作模式:用戶模式和監(jiān)督程序模式(系統(tǒng)模式),這兩個(gè)模式位怎么使用呢?計(jì)算機(jī)硬件中增加一個(gè)稱為模式位 (mode bit)的位以表示當(dāng)前模式:監(jiān)督程序模式 (0) 和用戶模式 (1)?。有了模式位,就可區(qū)分為操作系統(tǒng)所執(zhí)行的任務(wù)和為用戶所執(zhí)行的任務(wù)。
4.當(dāng)系統(tǒng)處于用戶模式切換到內(nèi)核模式,需要通過調(diào)用系統(tǒng)調(diào)用使得模式位=0,然后來執(zhí)行系統(tǒng)調(diào)用 相當(dāng)于內(nèi)核模式獲得對(duì)計(jì)算機(jī)的控制,最后再?gòu)南到y(tǒng)調(diào)用返回模式位=1 系統(tǒng)將控制權(quán)交還給用戶程序時(shí)會(huì)切換到用戶模式。模式變化如圖:這就是雙重模式操作:
5.操作性和硬件是如何配合KILL掉錯(cuò)誤的程序:一旦硬件保護(hù)到位,硬件可檢測(cè)到違反模式的錯(cuò)誤。這些錯(cuò)誤通常由操作系統(tǒng)處理。 如果一個(gè)用戶程序出現(xiàn)失敗,如試圖執(zhí)行非法指令或者訪問不屬于自己地址空間的內(nèi)存, 那么硬件會(huì)向操作系統(tǒng)發(fā)出陷阱信號(hào)。陷阱如同中斷-樣,能通過中斷向量將控制轉(zhuǎn)交給 操作系統(tǒng)。只要一個(gè)程序出現(xiàn)錯(cuò)誤,操作系統(tǒng)就必須對(duì)它進(jìn)行異常終止。這種情況的處理代碼與用戶請(qǐng)求的異常終止的處理代碼一樣,會(huì)給出一個(gè)適當(dāng)?shù)某鲥e(cuò)信息,程序內(nèi)存會(huì)被轉(zhuǎn)儲(chǔ)。內(nèi)存信息轉(zhuǎn)儲(chǔ)通常寫到文件以便用戶或程序員能檢查它,糾正錯(cuò)誤,并重新啟動(dòng)程序。
6.使用定時(shí)器來防止用戶程序運(yùn)行時(shí)間過長(zhǎng):操作系統(tǒng)在將控制權(quán)交給用戶之前,應(yīng)確保設(shè)置好定時(shí)器以便產(chǎn)生中斷。如果定時(shí)器產(chǎn)生中斷,那么控制權(quán)會(huì)自動(dòng)交給操作系統(tǒng),而操作泵統(tǒng)可以將中斷作為致命錯(cuò)誤來處理,也可以給予用戶程序更多的時(shí)間。
7.進(jìn)程:處于執(zhí)行中的程序被稱為進(jìn)程,程序本身并不是進(jìn)程,程序是被動(dòng)的實(shí)體,如同存儲(chǔ)在磁盤上的文件內(nèi)容,而進(jìn)程是一個(gè)活動(dòng)的實(shí)體,一個(gè)是主動(dòng)在CPU中運(yùn)行,一個(gè)是通知它到來才去執(zhí)行。
操作系統(tǒng)負(fù)責(zé)下述與進(jìn)程管理相關(guān)的活動(dòng):
創(chuàng)建和刪除用戶進(jìn)程和系統(tǒng)進(jìn)程。
掛起和重啟進(jìn)程。
提供進(jìn)程同步機(jī)制。
提供進(jìn)程通信機(jī)制。
提供死鎖處理機(jī)制。
8.內(nèi)存管理:內(nèi)存是現(xiàn)代計(jì)算機(jī)系統(tǒng)操作的中心,如果一個(gè)程序要執(zhí)行,那么它必須先變換成絕對(duì)地址井裝入內(nèi)存。隨著程序的執(zhí)行,進(jìn)程可以通過產(chǎn)生絕對(duì)地址來訪問內(nèi)存中的程序指令和數(shù)據(jù) 。最后,程序終止,其內(nèi)存空間得以釋放,并且下一程序可以裝入并得以執(zhí)行。
操作系統(tǒng)負(fù)責(zé)下列有關(guān)內(nèi)存管理的活動(dòng):
記錄內(nèi)存的哪部分正在被使用及被誰使用。
當(dāng)有內(nèi)存空間時(shí),決定哪些進(jìn)程可以裝入內(nèi)存。
根據(jù)需要分配和釋放內(nèi)存空間。 9.文件管理:在我們電腦的硬盤或者磁盤介質(zhì)來說,需要用硬盤驅(qū)動(dòng)器或者磁盤驅(qū)動(dòng)器設(shè)備去控制,操作系統(tǒng)通過管理大容量存儲(chǔ)器,來實(shí)現(xiàn)文件這一抽象概念,而且,文件通常組成目錄以方便使用,而且還可以控制一些讀寫權(quán)限去訪問共享文件 操作系統(tǒng)負(fù)責(zé)下列有關(guān)文件管理的活動(dòng): 創(chuàng)建和刪除文件。 創(chuàng)建和刪除目錄來組織文件。 提供操作文件和|目錄的原語。 將文件映射到二級(jí)存儲(chǔ)上。 在穩(wěn)定存儲(chǔ)介質(zhì)上備份文件。?
?
?
?
?
?
總結(jié)
- 上一篇: 驱动api_消费者驱动契约已死?
- 下一篇: python网络爬虫资源库名_Pytho