出版時(shí)間:2008-7 出版社:清華大學(xué)出版社 作者:任哲 頁數(shù):318
Tag標(biāo)簽:無
前言
毋庸置疑,操作系統(tǒng)是計(jì)算機(jī)專業(yè)的重要課程之一,同時(shí)也是比較難處理的課程之一。因此,在高等教育的教學(xué)改革活動(dòng)中,這門課程一直是改革的重點(diǎn),其核心就是課程的定位和教學(xué)內(nèi)容的選擇與編排。特別是在操作系統(tǒng)課程的教材上,這個(gè)問題顯得尤為突出。歷史上,由于操作系統(tǒng)的多樣性和廣泛性,使得相當(dāng)一部分教材都具有總結(jié)性、綜述性和理論性的特點(diǎn)。雖然這是一個(gè)優(yōu)點(diǎn),但是由于過多地顧及知識(shí)的系統(tǒng)性和全面性而導(dǎo)致了教材龐大,難以在課時(shí)有限的教學(xué)中使用。近年來,在廣大教師的努力下涌現(xiàn)出一批比較精煉的教材,在某種程度上滿足了教學(xué)的需要。但由于歷史條件的限制,加之教學(xué)思路沒有發(fā)生根本改變,所以有相當(dāng)一部分是上述那種大教材的縮寫版,從而使操作系統(tǒng)課程蛻變成了科普知識(shí)介紹,其后果就是學(xué)了這門課之后,學(xué)生的普遍感覺是:“說明白,似乎也明白,但總是云里霧里的不得要領(lǐng)”。目前,這種后果已嚴(yán)重地影響了計(jì)算機(jī)專業(yè)畢業(yè)生的質(zhì)量以及他們后期的發(fā)展。近年來,結(jié)合教學(xué)實(shí)踐,本書作者對(duì)上述問題與同行及一些企業(yè)界的朋友進(jìn)行了廣泛的探討和研究,形成了以下幾點(diǎn)基本認(rèn)識(shí):(1)由于數(shù)字計(jì)算機(jī)是一種強(qiáng)非線性系統(tǒng),現(xiàn)有的數(shù)學(xué)工具尚不能為這種系統(tǒng)提供強(qiáng)有力的支持,因此,計(jì)算機(jī)學(xué)科基本還處于技藝和經(jīng)驗(yàn)階段,其經(jīng)驗(yàn)性、實(shí)踐性極強(qiáng)。因而導(dǎo)致同是操作系統(tǒng),但其實(shí)現(xiàn)方法卻差異極大,這一點(diǎn)在早期的操作系統(tǒng)中反映得尤為明顯,如果在教材內(nèi)容上不做適當(dāng)?shù)膭h減,過于追求知識(shí)的完整性和系統(tǒng)性,勢必會(huì)使教材內(nèi)容成為一些實(shí)用技術(shù)的羅列,從而導(dǎo)致教材內(nèi)容龐雜、體量巨大。所以,鑒于本科教學(xué)時(shí)數(shù)的限制及學(xué)生特點(diǎn),本科階段的操作系統(tǒng)課程應(yīng)該以實(shí)際應(yīng)用為目標(biāo),以一個(gè)源碼開放的實(shí)際系統(tǒng)為背景,在重點(diǎn)介紹操作系統(tǒng)與硬件以及與應(yīng)用程序之間的關(guān)系之后,有重點(diǎn)地介紹其各個(gè)部分的實(shí)現(xiàn)技術(shù)。
內(nèi)容概要
本書以源碼開放的Linux操作系統(tǒng)為背景,以其關(guān)鍵數(shù)據(jù)結(jié)構(gòu)為切入點(diǎn),介紹了微型計(jì)算機(jī)操作系統(tǒng)的基本概念、原理、設(shè)計(jì)思想、技術(shù)及實(shí)現(xiàn)方法。同時(shí)通過介紹i386處理器對(duì)操作系統(tǒng)的支持,使讀者對(duì)操作系統(tǒng)與硬件平臺(tái)之間的關(guān)系建立起一個(gè)基本概念。另外,鑒于嵌入式系統(tǒng)的興起及Linux在這方面的突出表現(xiàn),本書還用一章的篇幅專門介紹了嵌入式操作系統(tǒng)的基本概念和特點(diǎn)。 本書選材得當(dāng)、概念清楚、文字通俗易懂,既可作為高等院校計(jì)算機(jī)科學(xué)及其相關(guān)專業(yè)的本科生教材,也可作為從事計(jì)算機(jī)工作的廣大科技工作者學(xué)習(xí)操作系統(tǒng)基本理論和了解Linux技術(shù)的參考書。
書籍目錄
第1章 操作系統(tǒng)及Linux簡介 1.1 概述 1.1.1 什么是計(jì)算機(jī)操作系統(tǒng) 1.1.2 操作系統(tǒng)的作用 1.1.3 操作系統(tǒng)的管理功能 1.1.4 操作系統(tǒng)管理用表 1.1.5 操作系統(tǒng)的應(yīng)用程序接口 1.1.6 操作系統(tǒng)的特性 1.2 操作系統(tǒng)與應(yīng)用程序的關(guān)系 1.3 操作系統(tǒng)結(jié)構(gòu) 1.3.1 內(nèi)核 1.3.2 內(nèi)核結(jié)構(gòu) 1.4 操作系統(tǒng)的演變與發(fā)展 1.4.1 人工操作階段 1.4.2 管理程序階段 1.4.3 多道程序設(shè)計(jì)與操作系統(tǒng)的形成 1.4.4 操作系統(tǒng)的發(fā)展 1.5 Linux基礎(chǔ)知識(shí) 1.5.1 Linux的發(fā)展 1.5.2 Linux系統(tǒng)的結(jié)構(gòu) 1.5.3 Linux系統(tǒng)的特點(diǎn) 1.5.4 Linux內(nèi)核的版本號(hào) 1.5.5 Linux的一些商業(yè)版 1.5.6 Linux中的C語言 1.5.7 Linux中的匯編語言 1.5.8 Linux的鏈表 本章小結(jié) 習(xí)題第2章 存儲(chǔ)管理 2.1 存儲(chǔ)管理的任務(wù) 2.1.1 存儲(chǔ)管理目標(biāo) 2.1.2 存儲(chǔ)管理任務(wù) 2.2 存儲(chǔ)空間組織 2.2.1 主存與輔存存儲(chǔ)空間邏輯組織 2.2.2 存儲(chǔ)空間分區(qū) 2.2.3 段分區(qū)實(shí)例--i386實(shí)模式下的存儲(chǔ)管理 2.3 虛擬存儲(chǔ) 2.3.1 實(shí)模式的問題及虛擬空間的概念 2.3.2 MMU和地址映射表 2.4 存儲(chǔ)空間的頁式管理 2.4.1 頁、頁框及頁表 2.4.2 虛擬空間、物理空間和頁表之間的關(guān)系 2.4.3 請(qǐng)頁與交換 2.4.4 保護(hù) 2.4.5 頁面共享 2.4.6 多級(jí)頁表 2.4.7 快表 2.5 段及段管理 2.5.1 段的概念 2.5.2 i386對(duì)段管理的支持 2.5.3 段保護(hù) 2.5.4 i386處理器對(duì)分頁的支持 2.6 Linux的頁表 2.7 Linux程序虛擬空間5 2.7.1 Linux的用戶虛擬空間 2.7.2 Linux的系統(tǒng)虛擬空間 2.8 Linux物理內(nèi)存管理 2.8.1 Linux物理內(nèi)存的布局 2.8.2 Linux物理內(nèi)存數(shù)據(jù)結(jié)構(gòu) 2.8.3 Linux對(duì)物理內(nèi)存的分配與回收 2.8.4 交換空間與守護(hù)進(jìn)程 2.9 slab分配模式簡介 2.10 mmap函數(shù)簡介 2.11 Linux內(nèi)存管理模塊總貌 2.12 Linux內(nèi)存初始化 2.12.1 實(shí)模式下系統(tǒng)初始化的setup( )函數(shù) 2.12.2 保護(hù)模式下系統(tǒng)初始化的startup_32( )函數(shù) 2.12.3 內(nèi)核啟動(dòng)函數(shù)start_kernel( ) 本章小結(jié) 習(xí)題第3章 進(jìn)程第4章 文件管理第5章 進(jìn)程互斥和同步第6章 進(jìn)程通信第7章 中斷/異常和系統(tǒng)調(diào)用第8章 設(shè)備第9章 嵌入式操作系統(tǒng)附錄A i386保護(hù)模式的特權(quán)級(jí)附錄B 進(jìn)程控制塊附錄C 創(chuàng)建子進(jìn)程系統(tǒng)調(diào)用附錄D Linux守護(hù)進(jìn)程介紹附錄E Linux的引導(dǎo)、裝載和啟動(dòng)附錄F Linux Shell簡介參考文獻(xiàn)
章節(jié)摘錄
插圖:第2章存儲(chǔ)管理2.4存儲(chǔ)空間的頁式管理2.4.3請(qǐng)頁與交換上面盡管把圖2—16(略)所示的這個(gè)虛擬空間表比喻成了需求清單,但它屬于一種訂單性質(zhì)的清單,系統(tǒng)并不馬上按其要求為它分配物理頁框。也就是說,當(dāng)一個(gè)可執(zhí)行程序文件被打開之初,頁表的各個(gè)表項(xiàng)的內(nèi)容仍然為NULL,而沒有對(duì)應(yīng)任何有效頁框碼,只有等到處理器真正用一個(gè)虛擬地址來訪問一個(gè)虛擬空間時(shí),系統(tǒng)才會(huì)為該虛擬空間的所有虛擬頁分配物理頁框。這就是現(xiàn)代操作系統(tǒng)的“即用即配”原則,以防止出現(xiàn)那種無效分配的現(xiàn)象,即系統(tǒng)事先根據(jù)訂單為程序分配了空間,但到后來卻因某種原因并沒使用這個(gè)空間。不僅如此,系統(tǒng)內(nèi)存管理模塊在整個(gè)的系統(tǒng)運(yùn)行期間還要隨著物理空間需求的不斷變化,而不斷地對(duì)原來的分配結(jié)果進(jìn)行調(diào)整和更新,以使系統(tǒng)隨時(shí)都處在最佳工作狀態(tài)。其中最重要的工作就是應(yīng)程序運(yùn)行的需要,為虛擬頁分配物理頁框,以及把頁面復(fù)制到物理頁框中,這項(xiàng)工作叫做頁面的加載或請(qǐng)頁;而當(dāng)系統(tǒng)空閑物理頁框的數(shù)量不能滿足新的需求時(shí),還要在所有程序的頁表中淘汰已不再使用或目前不再使用的頁面,以騰出頁框來容納新的頁面,這項(xiàng)工作叫做頁交換。但不管內(nèi)存管理模塊做什么操作,操作的最終結(jié)果都反映在程序頁表上,所以可以這樣說,內(nèi)存管理的工作是以頁表為中心而展開的。1.請(qǐng)頁當(dāng)處理器以邏輯地址訪問一個(gè)虛擬頁面時(shí),MMU首先到頁表中去查詢?cè)擁摰捻撁媸欠褚汛嬖谟谖锢眄摽蛑?,如果在,則MMU會(huì)把頁框碼與邏輯地址提供的頁內(nèi)偏移量拼接成物理地址去訪問物理內(nèi)存;如果不在,則意味著該頁面還沒有被載入內(nèi)存,這時(shí)MMU就會(huì)以一個(gè)異常(頁面錯(cuò)誤)通知系統(tǒng),系統(tǒng)調(diào)用異常處理程序調(diào)用相應(yīng)的系統(tǒng)函數(shù),該函數(shù)在判斷了該虛擬地址是有效地址(即該虛擬地址指向的不是空洞)后,就從虛擬空間中將該地址指向的頁面讀人到內(nèi)存中的一個(gè)空閑頁框,并把頁框碼填寫在頁表的對(duì)應(yīng)項(xiàng)中,最后處理器去訪問該頁框。人們把MMU發(fā)現(xiàn)頁面尚未在物理頁框,而以一個(gè)頁面錯(cuò)誤異常請(qǐng)求系統(tǒng)調(diào)用軟件來裝載頁面的行為稱作“請(qǐng)頁”,請(qǐng)頁工作是由操作系統(tǒng)來完成的。
編輯推薦
《微型計(jì)算機(jī)操作系統(tǒng)基礎(chǔ):基于Linux/i386》特色:突破了以往操作系統(tǒng)教材內(nèi)容龐雜、體量巨大的缺陷,以實(shí)際應(yīng)用為目標(biāo),以基于i386平臺(tái)的Linux為實(shí)例,介紹操作系統(tǒng)的具體實(shí)現(xiàn)方法。通過對(duì)i386處理器對(duì)操作系統(tǒng)支持的介紹,使讀者加深對(duì)操作系統(tǒng)與硬件平臺(tái)之間關(guān)系的理解。鑒于Linux在嵌入式系統(tǒng)方面的突出表現(xiàn),專門介紹嵌入式操作系統(tǒng)的基本概念和特點(diǎn)。除介紹操作系統(tǒng)本身的概念和實(shí)現(xiàn)外,還依托它介紹數(shù)據(jù)結(jié)構(gòu)、面向?qū)ο笏枷敕椒ㄒ约败浖こ谭椒ㄔ诠こ虒?shí)踐中的應(yīng)用,達(dá)到觸類旁通的效果。編寫原則上以說理為主,以代碼分析為輔,重在概念的闡述和剖析。文字簡練,層次清楚,滿足不同水平讀者的需要。
圖書封面
圖書標(biāo)簽Tags
無
評(píng)論、評(píng)分、閱讀與下載
微型計(jì)算機(jī)操作系統(tǒng)基礎(chǔ) PDF格式下載