操作系統(tǒng)教程注釋一章_第1頁
操作系統(tǒng)教程注釋一章_第2頁
操作系統(tǒng)教程注釋一章_第3頁
操作系統(tǒng)教程注釋一章_第4頁
操作系統(tǒng)教程注釋一章_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

《孫鐘.《孫鐘.操作系程教程》注(稿(第一章操作系統(tǒng)概論校注:陳懷臨[注釋([注釋(7)]在經(jīng)典OS設(shè)計中,例如Uix“Everytingisafil”一個外設(shè),最后都通過文件系統(tǒng)來表達。一個通過open得到的文件句柄可以唯一的定位一個設(shè)備,并可以通過文件的read/ite來操作。[注釋([注釋(8)]初學(xué)操作系統(tǒng)的大學(xué)生通常會對文件句柄(FileHanler)解。就是open()的時候,操作系統(tǒng)為你構(gòu)建一個表項的數(shù)組的下標(biāo)。這樣也就理解了一個進程可以打開的文件數(shù)目是有上限的。為什么?數(shù)組的大小是固定的,除非改參數(shù)。[注釋([注釋(9)]OS最重要的概念就是進程(Prcess)??梢岳斫鉃槭遣僮飨到y(tǒng)“管理”的最小單位。虛存(VM),文件(File)都屬于(Blongto)這個進程的domin的。進程就是一個在運行中的程序,通常是一個ELF的加載。[注釋(10[注釋(10)]白從幼兒園開始的情史,是大家彼此過不去。要學(xué)會“透明”。概念到文件系統(tǒng),就剎住。否則,為了理解文件系統(tǒng),非要把 13通讀,是沒有必要的。文件就是文件[注釋(11)]文件系統(tǒng)最重要的是控制塊(CorlBlck)。要知道數(shù)據(jù)(例如,512B)在硬盤哪個地方。而且要靠指針串起來。例如,早期DOS的FAT表都是這個目的。在現(xiàn)在分布式文件系統(tǒng)中,稱為metadta。目的都一樣:在哪里。metadta或者cotrllk定位了。[注[注釋(12)]基礎(chǔ)教材通常會有意識的凸顯概念。其實任何概念本身就是抽象和總結(jié)出來的。什么是虛擬處理器”。說白了,就是每個進程數(shù)據(jù)結(jié)構(gòu)里的CPU相關(guān)寄存器的值。那就是[注釋([注釋(13)]初學(xué)OS的同學(xué)不要去過分理解虛擬處理器這個概念。還是應(yīng)該從經(jīng)典分時系統(tǒng)出發(fā)?,F(xiàn)代OS候要保存一些狀態(tài)。等下次輪到時,從上次斷的地方重新來。[注釋([注釋(14)]輸入輸出I/O)的訪問必須串行化(Silization),否則就亂了套。wy驅(qū)動就知道,控制設(shè)備的那些cotrlreistr(控制寄存器)還沒有完成一個操作,如果被覆蓋,設(shè)備就死機或者reset了。并發(fā)是CS許多算法的目標(biāo),但底線是:和串行語義要一[注釋([注釋(15)]操作系統(tǒng)另外一個重要任務(wù)是參與和指導(dǎo)CPU設(shè)計。現(xiàn)代silicondesignco-design。否則,硬件工程師都不知道在干嘛。不能畫電路圖玩吧。真正懂一個silicon的必須包括OSarcitect。這也是為什么OS是計算機科學(xué)r/and工程的美麗之花。[注釋([注釋(16)]在單CPU的年代,除了中斷(時鐘,外設(shè)),一個計算環(huán)境不存在并發(fā)。OS調(diào)度也是在幾個固定的點,例如,timersyscll,witforI/O等。[注釋([注釋(17)]MltiTsking的本質(zhì)就是大家共享資源例如,CPU動退讓(Yield)。[注釋(18)]多道(MultiTasking)和多重(MultiProcessing)處理的區(qū)別是:multitasking就是一個CPU,例如。multitasking是多個CPU。現(xiàn)在的多核,多(硬件)線程都屬于這個范疇。MultiTasking/SingleCPU本質(zhì)上還是串行化的(Serialized)。[注釋([注釋(19)#在學(xué)習(xí)操作系統(tǒng)的時候,一個重要的概念是傳統(tǒng)操作系統(tǒng)內(nèi)核是獨占,不可的,Kernelisnotpreemptive。這個概念的理解把握對閱讀源碼,理解Unix/Linux的演化是至關(guān)[注釋[注釋(20)#用戶態(tài)/核心態(tài)的本質(zhì)是:保護。保護什么?Kernel的全局變量。為什么?Kernel是共享的。每個進程,例如,32位系統(tǒng)Linux,是4G空間。3G用戶+1G=進程。因[注釋(21)#理解kernel空間是PARTOF之一。例如,經(jīng)典OS有一個重要的sttement:kernl是沒有coext的。什么意思?krnl不存在生命。是屬于一個進程的,而且是共享的。[注釋([注釋(22)#系統(tǒng)調(diào)用是操作系統(tǒng)里略微難理解的一個概念。其實就是通過一個特殊指令,使得CPU挑戰(zhàn)到異常處理,然后通過查表(事先填好),最后調(diào)用相應(yīng)的krnl庫函數(shù)。(典os里),kernl就是全局變量+函數(shù)。寫系統(tǒng)調(diào)用時,要注意的是對參數(shù)傳遞的約定要比較清楚。[注[注釋(23)操作系統(tǒng)的發(fā)展經(jīng)歷了單一內(nèi)核(MonolithicKernel)和微內(nèi)核(MicroKernel)的學(xué)術(shù)爭論。最經(jīng)典的是Linus和操作系統(tǒng)泰斗AndresT1992年的辯論(/S4dT62–Torvalds_debate)。現(xiàn)在基本上是convergence,融合了。特別是在虛擬化技術(shù)的今天。[注[注釋(24)#進程是最小管理單位;(SystemScope)線程是最小調(diào)度單位。同一個進程的線程序共享內(nèi)存,例如全局變量。通常說的線程在kernel里對應(yīng)一個調(diào)度object,通常稱呼這樣的thread叫做SystemScope。如果是AppliacationScope,叫做用戶線程,在kernel里不存在entry。[注[注釋(25)在理解操作系統(tǒng)的時候,內(nèi)核(Kernel)是屬于一個進程(Process)空間的一部分是一個重要的概念。你編的代碼

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論