封底文字
本書是一本關於操作繫統概念、結構和機制的教材,目的是盡可能清楚和全面地展示現代操作繫統的本質與特點。第八版在反映操作繫統領域的變化的同時,保持了操作繫統領域的廣泛性,同時得到了許多教授和研究人員的審閱,敘述更清晰、緊湊。
本書新增內容
◆ Windows 8:詳細介紹了Windows 8內核的各種關鍵技術。
◆ Android操作繫統:詳細介紹了Android移動平臺的限制和運行環境。
◆ 嵌入式Linux:詳細介紹了嵌入式Linux的關鍵要素。
◆ 虛擬機:新增了虛擬機操作繫統設計問題的一章。
◆ 多核設計問題:增加了關於操作繫統設計問題的討論。
◆ I/O標準化:更新了相應的接口內容。
◆ 存儲硬件:更新了存儲硬件部分,包含了固態硬盤驅動器。
◆ 容錯性:新增了介紹容錯機制的一節。
本書特點
◆ 本書選擇Windows 8、Android、UNIX 和Linux四個有代表性的操作繫統作為實例講解。
◆ 支持ACM/IEEE計算機科學課程體繫2013。
◆ 適用於教學,書中含有大量的動畫、視頻和圖表,每章末尾給出了關鍵術語、復習題、習題、深入閱讀建議和相關網站的鏈接;書末給出了常用的縮略詞和參考文獻。
◆ 提供教學資源,包括參考答案、項目手冊、PPT、PDF文件、教學大綱等,請參考書中的“教學支持說明”。
◆ 提供操作繫統項目和其他學生練習。
◆ 提供操作繫統教學平臺OS/161、模擬項目和編輯項目。
譯 者 序
操作繫統領域一直在不斷地發展和變化,計算機科學與技術專業、軟件工程專業和信息安全專業的學生要如何全面且深入地理解操作繫統呢?William Stallings博士的這本教材給出了答案。William Stallings博士撰寫了很多有關計算機領域的教材,曾12次獲得美國年度計算機科學教科書獎和學術作者協會獎。他的這本教材已更新到了第八版,並被全球的很多大學采用為操作繫統課程的教材或參考書。本書內容豐富、布局合理、概念清晰、舉例恰當、文字簡潔,是一本不可多得的優秀教材。
本書在保持第七版的眾多特色的基礎上,緊跟操作繫統領域的發展,增加了許多新內容,包括Windows 8的各種關鍵技術、Android操作繫統、嵌入式Linux、虛擬機技術、多核設計問題、I/O標準化問題、存儲硬件,以及“ACM/IEEE計算機科學課程體繫2013”中的核心專題——容錯機制。
特別值得一提的是,本書的配套資源可為教師和學生提供很大的幫助,這些資源包括每章末尾的習題、習題參考答案、項目安排建議、課堂教學課件、測試題、關於並發的教學視頻、教學大綱樣例等。這些資源非常寶貴,可為中國各高等學校開設操作繫統課程的教師提高教學質量提供有力的支持。即便是在課堂上帶領學生認真討論每章後面精心提煉的關鍵術語,對學生順利完成操作繫統課程的學習也是非常有意義的。
本書主要由陳向群、陳渝翻譯。參加翻譯、審閱和校對工作的還有王承珂、諶國風、申鵬、張大衛、劉璨、栗階、劉波、楊立群、騰芸、潘偉民、金鑫、劉滿、周晴漪等,在此對他們的貢獻表示真誠的感謝。
由於譯者水平有限,本書的譯文中必定會存在一些不足或錯誤之處,歡迎各位專家和廣大讀者們批評指正。
前 言
第八版新增內容
自本書第七版出版以來,操作繫統領域一直在不斷地發展著。本書的新版試圖在反映這些變化的同時,保持操作繫統領域的廣泛性。修訂本書時,第七版得到了從事教學和研究的許多教授的審閱,因此新版中許多地方的敘述更加清晰、緊湊。
除了有利於教學和閱讀方便外,書中的內容也因應操作繫統領域的進展做了整體更新。主要變化如下:
◆ Windows 8:Windows 8是微軟公司面向個人計算機、工作站和服務器的操作繫統,其內部架構出現了很多變化。新版詳細介紹了Windows 8內核的各種關鍵技術,包括進程/線程管理、調度、內存管理、安全、文件繫統和I/O。
◆ Android操作繫統:Android是一個快速發展的移動平臺。移動設備在現實世界中的限制和運行環境,與傳統桌面計算機和服務器相比有很大的不同。因此學習這個新環境很重要。
◆ 嵌入式Linux:在嵌入式繫統中使用小版本的Linux已日益流行,新版中介紹了嵌入式Linux的關鍵要素。
◆ 虛擬機:服務器虛擬化及其他各種形式的虛擬機得到了廣泛應用,因此本書新增了介紹面向虛擬機的操作繫統的設計問題的一章。
◆ 多核設計問題:現在的主流體繫結構是多核架構,因此新版中增加了相關操作繫統設計問題的討論。
◆ I/O標準化:考慮到技術的發展,本書進行了相應的更新,包括雷電接口。
◆ 存儲硬件:書中的存儲硬件部分進行了更新,現在已包含對固態硬盤驅動器的討論。
◆ 容錯:“ACM/IEEE計算機科學課程體繫2013”已將容錯列為操作繫統課程的核心專題,因此新增了介紹容錯機制的一節。
目標
本書是一本關於操作繫統概念、結構和機制的教材,目的是盡可能清楚和全面地展示現代操作繫統的本質與特點。
這是一項具有挑戰性的任務。首先,需要為各種各樣的計算機繫統設計操作繫統,包括嵌入式繫統、智能手機、單用戶工作站和個人計算機、中等規模的共享繫統、大型計算機和超級計算機,以及諸如實時繫統之類的專用機器。多樣性不僅體現在機器的容量和速度上,而且體現在具體應用和繫統支持的需求上;其次,計算機繫統正以日新月異的速度發展變化,操作繫統設計中的許多重要領域都是近纔開始研究的,並且關於這些領域及其他新領域的研究工作仍在進行。
盡管存在著多樣性和變化快等問題,但一些基本概念仍然貫穿始終。當然,這些概念的應用依賴於當前的技術狀況和特定的應用需求。本書的目的是全面討論操作繫統設計的基本原理,並將現代流行的設計問題與當前操作繫統的發展方向相關聯。
實例繫統
本書的目的是使讀者熟悉現代操作繫統的設計原理和實現問題,因此單純講述概念和理論遠遠不夠。為說明這些概念,同時將它們與真實世界中不得不做出的設計選擇相關聯,本書選擇了4個操作繫統作為實例:
◆ Windows 8:用於個人計算機、工作站和服務器的多任務操作繫統。它融入了很多操作繫統發展的技術。此外,Windows是早采用面向對像原理進行設計的重要商業操作繫統之一。本書涵蓋了Windows版本所采用的技術,包括Windows 8。
◆ Android:Android是為嵌入式設備特別是手機量身定做的,主要是為了滿足嵌入式環境的獨特需求。本書介紹了Android的內核信息。
◆ UNIX:初是為小型計算機設計的多用戶操作繫統,但後來廣泛用於從微機到超級計算機的各種機器中。本書采用若干版本的UNIX作為實例。FreeBSD融合了很多的現代特征,是一個廣泛應用的操作繫統;Solaris是一個廣泛應用的商業版UNIX繫統。
◆ Linux:一個非常普及且源代碼開放的UNIX版本。
選擇這些操作繫統的原因是它們之間存在相關性,同時它們也具有代表性。關於這些實例操作繫統的討論貫穿全書,而非集中於某一章或附錄部分。因此在討論並發性時,會描述每個實例操作繫統的並發機制,並探討各種設計選擇的動機。采用真實的例子可加深讀者對相關章節中設計概念的理解。為方便起見,讀者也可在在線文檔中查閱所有實例操作繫統的資料。
對“ACM/IEEE計算機科學課程體繫2013”的支持
本書的讀者是大學學生和專業技術人員,可作為計算機科學、計算機工程和電氣工程專業本科生一學期或兩學期的操作繫統課程教材。新版符合“ACM/IEEE計算機科學課程體繫2013”(CS2013)草案版(2013年2月)的要求。在CS2013推薦的課程體繫中,操作繫統(OS)是計算機科學的主干課程。CS2013將所有課程內容分為三類,即核心類1(含課程體繫中的所有專題)、核心類2(含所有或幾乎所有專題)、選修類(提供深度和廣度)。在操作繫統領域,CS2013含有核心類1的2個專題、核心類2的4個專題及選修類的6個可選專題,每個專題下都含有一些子專題。本書涵蓋了CS2013列出的三類課程中的所有專題和子專題。
表P.1中給出了本書對操作繫統知識領域的支持情況。每個專題下的子專題清單,讀者可參閱文件box.com/OS8e/CS2013-OS.pdf。
表P.1 本書對CS2013中操作繫統知識領域的覆蓋情況
專 題 本書中的覆蓋情況
操作繫統概述(類1) 第2章:操作繫統概述
操作繫統原理(類1) 第1章:計算機繫統概述
第2章:操作繫統概述
並發(類2) 第5章:並發性:互斥和同步
第6章:並發:死鎖和饑餓
附錄A:並發主題
第18章:分布式進程管理
第9章:單處理器調度
第10章:多處理器和實時調度
存儲管理(類2) 第7章:內存管理
第8章:虛擬內存
安全與保護(類2) 第15章:計算機安全技術
虛擬機(選修) 第14章:虛擬機
設備管理(選修) 第11章:I/O管理和磁盤調度
文件繫統(選修) 第12章:文件管理
實時與嵌入式繫統(選修) 第10章:多處理器和實時調度
第13章:嵌入式操作繫統
書中與Android相關的例子
容錯(選修) 2.5節:容錯性
繫統性能評估(選修) 書中與存儲管理、調度及其他領域相關的性能問題
本書結構
本書分為六部分(參見第0章的綜述):
◆ 背景知識
◆ 進程
◆ 內存
◆ 調度
◆ 嵌入式繫統
◆ 輸入/輸出和文件
本書適用於教學。書中含有大量的動畫、視頻和圖表,每章末尾給出了關鍵術語、復習題、習題、深入閱讀建議和相關網站的鏈接;書末給出了常用的縮略詞和參考文獻。此外,本書可為教師提供題庫。
教師支持資源
本書的主要目的是成為操作繫統這門課程的有效教學工具,這在本書的結構和補充材料中得到了反映。以下是便於教師教學的補充材料: