操作系統(tǒng)設(shè)計與實現(xiàn)

出版時間:2010-2  出版社:清華大學(xué)出版社  作者:(美)基夫爾,(美)斯莫爾卡 著,王俊華 等譯  頁數(shù):128  譯者:王俊華  
Tag標(biāo)簽:無  

前言

OSP 2不僅是現(xiàn)代操作系統(tǒng)的一種實現(xiàn),同時也是開發(fā)實現(xiàn)項目的靈活環(huán)境,可用于操作系統(tǒng)設(shè)計的入門課程。本書的寫作意圖在于滿足操作系統(tǒng)入門教材的使用需求,書中包含了三個學(xué)期的設(shè)計項目。通過這些設(shè)計項目,向?qū)W生講解操作系統(tǒng)的諸多重要的本質(zhì)特性,同時,也使他們不必關(guān)心與機器相關(guān)的底層屬性。這樣,即便只學(xué)習(xí)一個學(xué)期,學(xué)生也能學(xué)會虛擬存儲管理的頁面替換策略、CPU調(diào)度策略、磁盤尋道時間優(yōu)化以及操作系統(tǒng)設(shè)計的其他問題。OSP 2是用Java程序設(shè)計語言編寫的,學(xué)生也將使用Java編寫其OSP 2項目。因此,作為使用OSP 2的先決條件,學(xué)生應(yīng)該具備扎實的Java編程能力和技巧;并深諳面向?qū)ο缶幊趟枷?,如類、對象、方法和繼承等;學(xué)過大學(xué)“計算機科學(xué)”課程的數(shù)據(jù)結(jié)構(gòu)部分;還必須具備Java編程環(huán)境的實用知識,即javac、java、文本編輯等;OSP 2是最初的OSP軟件的后繼版本,最初的OSP軟件發(fā)布于1990年,是用C語言編寫的。OSP 2由一系列的模塊組成,每一模塊執(zhí)行一項操作系統(tǒng)服務(wù),例如設(shè)備調(diào)度、CPU調(diào)度、中斷處理、文件管理、存儲管理、進(jìn)程管理、資源管理和進(jìn)程間通信??梢园凑障M捻樞騺斫M織項目,以便與課堂講義的內(nèi)容保持同步。OSP 2軟件在銷售時附帶了每一模塊的Java實現(xiàn)參考,該參考是提供給課程指導(dǎo)教師使用的。OSP 2項目都有清晰定義的API(應(yīng)用程序編程接口),學(xué)生必須實現(xiàn)它們才能成功完成項目。這樣,OSP 2就可以鍛煉學(xué)生在“開放”的環(huán)境下工作。在這種環(huán)境下,學(xué)生必須進(jìn)行程序設(shè)計,以滿足具體的項目需求,并使用API實現(xiàn)與其他子系統(tǒng)的接口。OSP 2項目由標(biāo)準(zhǔn)OSP 2模塊的“部分裝載模塊”(partial load module)組成,學(xué)生實現(xiàn)自己所分配到的模塊,然后將其與部分裝載模塊鏈接起來。最終的結(jié)果就是一個部分由學(xué)生實現(xiàn)的、新的、完整的操作系統(tǒng)。另外,每個項目還包括一個或多個“*.java”文件,其中存儲了各分配模塊用到的類和方法的聲明。

內(nèi)容概要

理解現(xiàn)代操作系統(tǒng)的基本原理和算法對于大學(xué)計算機科學(xué)至關(guān)重要。然而,由于這一課題的復(fù)雜性,掌握它需要豐富的實踐經(jīng)驗。本書就是為滿足這一要求而編寫的。通過讓學(xué)生親自動手使用0SP 2這一下一代高度流行的教學(xué)軟件,教授操作系統(tǒng)設(shè)計與實現(xiàn)中的入門級話題。    本書向?qū)W生展示了操作系統(tǒng)的許多重要特性,但同時又避免讓學(xué)生接觸底層的、與機器相關(guān)的問題。使用與本書配套的軟件,本書包含的項目設(shè)計足夠用作三個學(xué)期的課程,但每一學(xué)期的課程都足以覆蓋虛擬存儲管理中的頁面替換策略、CPU調(diào)度策略、磁盤尋道時間優(yōu)化,以及操作系統(tǒng)設(shè)計中的其他話題。    本書為剛接觸操作系統(tǒng)課程的大學(xué)生編寫。通過用戶友好型的、高度靈活的OSP 2教學(xué)軟件環(huán)境,本書提供了操作系統(tǒng)設(shè)計與實現(xiàn)的重要基礎(chǔ)。

作者簡介

作者:(美國)基夫爾(Michael Kifer) (美國)斯莫爾卡(Scott A.Smolka) 譯者:王俊華 等

書籍目錄

第1章 OSP 2的組織結(jié)構(gòu)  1.1 本章學(xué)習(xí)目標(biāo)  1.2 操作系統(tǒng)基礎(chǔ)  1.3 OSP 2的組織結(jié)構(gòu)  1.4 OSP 2中模擬的硬件  1.5 實用程序  1.6 OSP 2的事件  1.7 OSP 2的守護(hù)進(jìn)程  1.8 編譯和運行項目  1.9 編寫代碼的一般規(guī)則  1.10 系統(tǒng)日志、快照和統(tǒng)計數(shù)據(jù)  1.11 調(diào)試  1.12 項目提交第2章 綜合訓(xùn)練: OSP 2示例教程  2.1 本章學(xué)習(xí)目標(biāo)  2.2 OSP 2線程管理概覽  2.3 學(xué)生方法do_resume()  2.4 步驟1:  編譯和運行項目  2.5 步驟2:  檢查OSP.log文件  2.6 步驟3:  在do_resume()中引入錯誤操作系統(tǒng)設(shè)計與實現(xiàn)(OSP 2方法)目錄第3章 TASKS:  任務(wù)(進(jìn)程)管理37  3.1 本章學(xué)習(xí)目標(biāo)  3.2 概念背景  3.3 TaskCB類  3.4 TASKS包輸出的方法第4章 THREADS:  線程管理和調(diào)度  4.1 本章學(xué)習(xí)目標(biāo)  4.2 線程概覽  4.3 ThreadCB類  4.4 TimerInterruptHandler類  4.5 THREADS包輸出的方法第5章 MEMORY:  虛擬存儲管理  5.1 本章學(xué)習(xí)目標(biāo)  5.2 虛擬存儲管理概覽  5.3 FrameTableEntry類  5.4 PageTableEntry類  5.5 PageTable類  5.6 MMU類  5.7 PageFaultHandler類  5.8 MEMORY包輸出的方法第6章 DEVICES:  磁盤請求調(diào)度  6.1 本章學(xué)習(xí)目標(biāo)  6.2 I/O處理概覽  6.3 IORB類  6.4 Device類  6.5 DiskInterruptHandler類  6.6 DEVICES包輸出的方法第7章 FILESYS:  文件系統(tǒng)  7.1 本章學(xué)習(xí)目標(biāo)  7.2 文件系統(tǒng)設(shè)計目標(biāo)  7.3 OSP 2文件系統(tǒng)概覽  7.4 MoutTable類  7.5 INode類  7.6 DirectoryEntry類  7.7 OpenFile類  7.8 FileSys類  7.9 FileSys包輸出的方法第8章 PORTS:  進(jìn)程間通信  8.1 本章學(xué)習(xí)目標(biāo)  8.2 OSP 2中的進(jìn)程間通信  8.3 Message類  8.4 PortCB類  8.5 PORTS包輸出的方法第9章 RESOURCES: 資源管理  9.1 本章學(xué)習(xí)目標(biāo)  9.2 資源管理概述  9.3 OSP 2資源管理概述  9.4 ResourceTable類  9.5 RRB類  9.6 ResourceCB類  9.7 RESOURCES包輸出的方法

章節(jié)摘錄

插圖:另一種區(qū)分操作系統(tǒng)的方法,某種意義上說,也是區(qū)分新舊操作系統(tǒng)的方法,就是這些操作系統(tǒng)是否支持線程(thread)。在較舊的操作系統(tǒng)中,如Unix,正在執(zhí)行的程序是以進(jìn)程的形式組織起來的:操作系統(tǒng)的任務(wù)是調(diào)度CPU上的進(jìn)程,將CPU從一個進(jìn)程切換到另一個進(jìn)程,以實現(xiàn)多程序運行(multiprogramming)的目的。多程序運行是一種以最大化資源利用為目標(biāo)的技術(shù)。其基本思想是同時有多個進(jìn)程的存儲駐留,并將CPU從已經(jīng)進(jìn)入阻塞狀態(tài)而等待某個事件(例如,I/O操作完成)的進(jìn)程切換到已準(zhǔn)備好執(zhí)行的進(jìn)程。這樣,就可以讓CPU大部分時間保持在忙碌狀態(tài)進(jìn)行有用的工作,這正是資源管理器應(yīng)該爭取做到的。為給多程序運行下一個論斷,則要更細(xì)致地考慮一下將CPIU從一個進(jìn)程切換到另一個進(jìn)程意味著什么,這一操作通常稱為上下文切換(context switch)。其中牽涉到多個步驟。首先,當(dāng)前正在執(zhí)行的進(jìn)程必須從CPU移除,放人該進(jìn)程正在等待的事件的相關(guān)隊列中。然后,將CPU決定調(diào)度執(zhí)行的下一個進(jìn)程分派給(dispatch)CPU。這又牽涉到重設(shè)許多機器寄存器(例如,程序計數(shù)器、通用功能寄存器、存儲管理寄存器等),將這些寄存器的值設(shè)置為新分派的進(jìn)程上次運行時的值。此時,就可以恢復(fù)該進(jìn)程運行了。這是簡化了的關(guān)于上下文切換背后運行機制的公認(rèn)不誤的觀點;有關(guān)這一話題的更多內(nèi)容將在第4章進(jìn)一步講解。在較新型的系統(tǒng)中,例如Mac、Solaris和windows 2000/XP/Vista,調(diào)度和分派的執(zhí)行單元已經(jīng)不再是進(jìn)程了,而是線程;簡單地講,進(jìn)程是線程的容器,可以容納一個或多個線程。這種進(jìn)程通常又稱為任務(wù)(task),這也是本書約定采用的稱謂。那么,任務(wù)作為線程的“容器”又是什么意思呢?意思是作為任務(wù)組成要素的線程共享分配給任務(wù)的資源,這些資源包括存儲器、文件和通信端口。結(jié)果,將CPU從一個線程切換到另一個線程要比將CPU從一個進(jìn)程切換到另一個進(jìn)程簡單得多,而對于不支持線程的操作系統(tǒng),只能采用后一種方式。正如我們將看到的,OSP 2支持進(jìn)程和線程。操作系統(tǒng)是事件驅(qū)動的。操作系統(tǒng)是所謂的事件驅(qū)動系統(tǒng)(event-driyen system)的一個絕佳的例子。正如名稱所反映的,事件驅(qū)動系統(tǒng)響應(yīng)它所熟悉的某種事件而觸發(fā)動作。例如,GuI(圖形用戶界面)程序就是一個事件驅(qū)動系統(tǒng),它響應(yīng)用戶鼠標(biāo)的單擊;最終執(zhí)行哪塊代碼則取決于用戶所單擊的界面元素(工具欄項目、普通按鈕、單選按鈕等)。而對于操作系統(tǒng)的情況,OS所響應(yīng)的事件包括用戶(或事件系統(tǒng))程序所做的系統(tǒng)調(diào)用、硬件中斷和機器錯誤。典型的事件驅(qū)動系統(tǒng)是用包含在while循環(huán)中的大塊case語句構(gòu)造的,while循環(huán)“捕捉”系統(tǒng)打算響應(yīng)的各種事件。一旦捕捉到事件,則執(zhí)行與該事件相應(yīng)的case語句。這種事件循環(huán)結(jié)構(gòu)在操作系統(tǒng)中確實存在。例如,不妨考慮一下系統(tǒng)調(diào)用在一般的操作系統(tǒng)中是如何執(zhí)行起來的。調(diào)用系統(tǒng)調(diào)用的程序首先將系統(tǒng)調(diào)用的參數(shù)推入系統(tǒng)堆棧中。

編輯推薦

《操作系統(tǒng)設(shè)計與實現(xiàn)(OSP 2方法)》:計算機科學(xué)本科核心課程教材

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    操作系統(tǒng)設(shè)計與實現(xiàn) PDF格式下載


用戶評論 (總計5條)

 
 

  •   這本書是不是應(yīng)有有配套的軟件?。啃枰硗饣ㄥX買吧?多少錢?怎么買?
  •   不想想象中的那么好。。。
  •   內(nèi)容太復(fù)雜,太簡略,看不懂
  •   還可以接受吧,亞馬遜的正版書貌似都這質(zhì)量,蠻薄的
  •   拿到這本書后,看了半天,最后從官方網(wǎng)站的信息中證實:OSP 2是提供給授課老師的,并非開源軟件,暈!
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機版

京ICP備13047387號-7