現代操作系統, 4/e (Modern operating systems, 4/e)

安德魯 S.塔嫩鮑姆 (Andrew S.Tanenbaum), 郝伯特·博斯 (Herbert Bos)

買這商品的人也買了...

商品描述

本書是操作系統領域的經典教材,主要內容包括進程與線程、內存管理、文件系統、輸入/輸出、死鎖、虛擬化和雲、多處理機系統、安全,以及關於UNIX、Linux、Android和Windows的實例研究等。第4版對知識點進行了全面更新,反映了當代操作系統的發展與動向。本書適合作為高等院校電腦專業的操作系統課程教材,也適合相關技術人員參考。

作者簡介

Andrew S.Tanenbaum

阿姆斯特丹自由大學教授,荷蘭皇家藝術與科學院教授。他撰寫的計算機教材享譽全球,被翻譯為20種語言在各國大學中使用。他開發的MINIX操作系統是一個開源項目,專注於高可靠性、靈活性及安全性。他曾贏得享有盛名的歐洲研究理事會卓越貢獻獎,以及ACM和IEEE的諸多獎項。

Herbert Bos

阿姆斯特丹自由大學教授。他是一名全方位的系統專家,尤其是在安全和UNIX方面。目前致力於系統與網絡安全領域的研究,2011年因在惡意軟件反向工程方面的貢獻而獲得ERC獎。

目錄大綱

出版者的話
譯者序
前言
作者簡介

第1章引論1 
1.1什麼是操作系統2 
1.1.1作為擴展機器的操作系統2 
1.1.2作為資源管理者的操作系統3 
1.2操作系統的歷史4 
1.2. 1第一代(1945~1955):真空管和穿孔卡片4 
1.2.2第二代(1955~1965):晶體管和批處理系統4 
1.2.3第三代(1965~1980):集成電路和多道程序設計6 
1.2.4第四代(1980年至今):個人計算機8 
1.2.5第五代(1990年至今):移動計算機10 
1.3計算機硬件簡介11 
1.3.1處理器12 
1.3.2存儲器14 
1.3 .3磁盤15 
1.3.4I/O設備16 
1.3.5總線18 
1.3.6啟動計算機19 
1.4操作系統大觀園20 
1.4.1大型機操作系統20 
1.4.2服務器操作系統20 
1.4.3多處理器操作系統20 
1.4.4個人計算機操作系統20 
1.4.5掌上計算機操作系統21 
1.4.6嵌入式操作系統21 
1.4.7傳感器節點操作系統21 
1.4.8實時操作系統21
1.4.9智能卡操作系統21 
1.5操作系統概念22 
1.5.1進程22 
1.5.2地址空間23 
1.5.3文件23 
1.5.4輸入/輸出25 
1.5.5保護25 
1.5.6shell25 
1.5.7個體重複系統發育26 
1.6系統調用28 
1.6.1用於進程管理的系統調用31 
1.6.2用於文件管理的系統調用32 
1.6.3用於目錄管理的系統調用32 
1.6.4各種系統調用34 
1.6.5WindowsWin32API34 
1.7操作系統結構35 
1.7.1單體系統36 
1.7.2層次式系統36 
1.7.3微內核37 
1.7.4客戶端–服務器模式38 
1.7.5虛擬機39 
1.7.6外核41 
1.8依靠C的世界41 
1.8.1C語言41 
1.8.2頭文件41 
1.8.3大型編程項目43 
1.8.4運行模型43 
1.9有關操作系統的研究44 
1.10本書其他部分概要45 
1.11公制單位45 
1.12小結46 
習題46 

第2章進程與線程48 
2.1進程48
2.1.1進程模型48 
2.1.2進程的創建49 
2.1.3進程的終止51 
2.1.4進程的層次結構51 
2.1.5進程的狀態51 
2.1.6進程的實現53 
2.1.7多道程序設計模型54 
2.2線程54 
2.2.1線程的使用54 
2.2.2經典的線程模型57 
2.2.3POSIX線程60 
2.2.4在用戶空間中實現線程60 
2.2.5在內核中實現線程63 
2.2.6混合實現63 
2.2 .7調度程序激活機制64 
2.2.8彈出式線程64 
2.2.9使單線程代碼多線程化65 
2.3進程間通信67 
2.3.1競爭條件67 
2.3.2臨界區68 
2.3.3忙等待的互斥68 
2.3.4睡眠與喚醒71 
2.3.5信號量73 
2.3.6互斥量74 
2.3.7管程78 
2.3.8消息傳遞81 
2.3.9屏障82 
2.3.10避免鎖:讀–複製–更新83 
2.4調度84 
2.4.1調度簡介84 
2.4.2批處理系統中的調度88 
2.4.3交互式系統中的調度89 
2.4.4實時系統中的調度92
2.4.5策略和機制93 
2.4.6線程調度93 
2.5經典的IPC問題94 
2.5.1哲學家就餐問題94 
2.5.2讀者–寫者問題96 
2.6有關進程與線程的研究97 
2.7小結97 
習題98 

第3章內存管理102 
3.1無存儲器抽象102 
3.2一種存儲器抽象:地址空間104 
3.2.1地址空間的概念104 
3.2.2交換技術106 
3.2.3空閒內存管理107 
3.3虛擬內存109 
3.3.1分頁110 
3.3 .2頁表112 
3.3.3加速分頁過程112 
3.3.4針對大內存的頁表114 
3.4頁面置換算法117 
3.4.1最優頁面置換算法117 
3.4.2最近未使用頁面置換算法118 
3.4.3先進先出頁面置換算法118 
3.4.4第二次機會頁面置換算法118 
3.4.5時鐘頁面置換算法119 
3.4.6最近最少使用頁面置換算法119 
3.4.7用軟件模擬LRU120 
3.4.8工作集頁面置換算法121 
3.4.9工作集時鐘頁面置換算法123 
3.4.10頁面置換算法小結124 
3.5分頁系統中的設計問題124
3.5.1局部分配策略與全局分配策略124 
3.5.2負載控制126 
3.5.3頁面大小126 
3.5.4分離的指令空間和數據空間127 
3.5.5共享頁面128 
3.5.6共享庫128 
3.5.7內存映射文件130 
3.5.8清除策略130 
3.5.9虛擬內存接口130 
3.6有關實現的問題131 
3.6.1與分頁有關的工作131 
3.6.2缺頁中斷處理131 
3.6.3指令備份132 
3.6.4鎖定內存中的頁面132 
3.6.5後備存儲133 
3.6.6策略和機制的分離134 
3.7分段134 
3.7.1純分段的實現136 
3.7.2分段和分頁結合:MULTICS136 
3.7.3分段和分頁結合:Intelx86138 
3.8有關內存管理的研究141 
3.9小結141 
習題142 

第4章文件系統147 
4.1文件148 
4.1.1文件命名148 
4.1.2文件結構149 
4.1.3文件類型149 
4.1.4文件訪問151 
4.1.5文件屬性151 
4.1.6文件操作152 
4.1.7使用文件系統調用的一個示例程序152
4.2目錄154 
4.2.1一級目錄系統154 
4.2.2層次目錄系統154 
4.2.3路徑名154 
4.2.4目錄操作156 
4.3文件系統的實現157 
4.3.1文件系統佈局157 
4.3.2文件的實現157 
4.3.3目錄的實現160 
4.3.4共享文件162 
4.3.5日誌結構文件系統163 
4.3.6日誌文件系統164 
4.3.7虛擬文件系統165 
4.4文件系統管理和優化167 
4.4.1磁盤空間管理167 
4.4 .2文件系統備份171 
4.4.3文件系統的一致性174 
4.4.4文件系統性能
4.4.5磁盤碎片整理
4.5文件系統實例
4.5.1MS—DOS文件系統
4.5.2UNIXV7文件系統
4.5.3CD—ROM文件系統
4.6有關文件系統的研究
4.7小結
習題

第5章輸入,輸出
5.1I/O硬件原理
5.1.1I/O設備
5.1.2設備控制器
5.1.3內存映射I/O 
5.1.4直接存儲器存取
5.1. 5重溫中斷
5.2I/O軟件原理
5.2.1I/O軟件的目標
5.2.2程序控制I/O 
5.2.3中斷驅動I/O 
5.2.4使用DMA的I/O 
5.3I/O軟件層次
5.3.1中斷處理程序
5.3.2設備驅動程序
5.3.3與設備無關的I/O軟件
5.3.4用戶空間的I/O軟件
5.4盤
5.4.1盤的硬件
5.4.2磁盤格式化
5.4.3磁盤臂調度算法
5.4.4錯誤處理
5.4. 5穩定存儲器
5.5時鐘
5.5.1時鐘硬件
5.5.2時鐘軟件
5.5.3軟定時器
5.6用戶界面:鍵盤、鼠標和監視器
5.6.1輸八軟件
5.6.2輸出軟件
5.7瘦客戶機
5.8電源管理
5.8 .1硬件問題
5.8.2操作系統問題
5.8.3應用程序問題
5.9有關輸入/輸出的研究
5.10小結
習題

第6章死鎖
6.1資源
6.1.1可搶占資源和不可搶占資源
6.1.2資源獲取
6.2死鎖簡介
6.2.1資源死鎖的條件
6.2.2死鎖建模
6.3鴕鳥算法
6.4死鎖檢測和死鎖恢復
6.4.1每種類型一個資源的死鎖檢測
6.4.2每種類型多個資源的死鎖檢測
6.4.3從死鎖中恢復
6.5死鎖避免
6.5. 1資源軌跡圖
6.5.2安全狀態和不安全狀態
6.5.3單個資源的銀行家算法
6.5.4多個資源的銀行家算法
6.6死鎖預防
6.6.1破壞互斥條件
6.6.2破壞佔有並等待條件
6.6.3破壞不可搶占條件
6.6.4破壞環路等待條件
6.7其他問題
6.7.1兩階段加鎖
6.7.2通信死鎖
6.7.3活鎖
6.7.4飢餓
6.8有關死鎖的研究
6.9小結
習題

第7章虛擬化和雲
7.1歷史
7.2虛擬化的必要條件
7.3第一類和第二類虛擬機管理程序
7.4高效虛擬化技術
7.4.1在不支持虛擬化的平台上實現虛擬化
7.4.2虛擬化的開銷
7.5虛擬機管理程序是正確的微內核嗎
7.6內存虛擬化
7.7I/O虛擬化
7.8虛擬裝置
7.9多核CPU上的虛擬機
7.10授權問題
7.11雲
7.11.1雲即服務
7.11.2虛擬機遷移
7.11.3檢查點
7.12案例研究:VMware 
7.12.1VMware的早期歷史
7.12.2VMwareWorkstation 
7.12.3將虛擬化引入x86的挑戰
7.12.4VMwareWorkstation解決方案概覽
7.12 .5VMwareWorkstation的演變
7.12.6VMware的第一類虛擬機管理程序ESXServer 
7.13有關虛擬化和雲的研究
習題

第8章多處理機系統
8.1多處理機
8.1.1多處理機硬件
8.1.2多處理機操作系統類型
8.1.3多處理機同步
8.1.4多處理機調度
8.2多計算機
8.2.1多計算機硬件
8.2.2低層通信軟件
8.2.3用戶層通信軟件
8.2.4遠程過程調用
8.2.5分佈式共享存儲器
8.2.6多計算機調度
8.2.7負載平衡
8.3分佈式系統
8.3.1網絡硬件
8.3.2網絡服務和協議
8.3.3基於文檔的中間件
8.3.4基於文件系統的中間件
8.3.5基於對象的中間件
8.3.6基於協作的中間件
8.4有關多處理機系統的研究
8.5小結
習題

第9章安全
9.1環境安全
9.1.1威脅
9.1.2入侵者
9.2操作系統完全
9.2.1可信系統
9.2.2可信計算基
9.3保護機制
9.3.1保護域
9.3.2訪問控制列表
9.3.3權能字
9.4安全系統的形式化模型
9.4.1多級安全
9.4.2隱蔽信道
9.5密碼學原理
9.5.1私鑰加密技術
9.5.2公鑰加密技術
9.5.3單向函數
9.5.4數字簽名
9.5.5可信平台模塊
9.6認證
9.6.1使用物理識剮的認證方式
9.6.2使用生物識別的認證方式
9.7軟件漏洞
9.7 .1緩衝區溢出攻擊
9.7.2格式化字符串攻擊
9.7.3懸垂指針
9.7.4空指針間接引用攻擊
9.7.5整數溢出攻擊
9.7.6命令注入攻擊
9.7.7檢查時間/使用時間攻擊
9.8內部攻擊
9.8.1邏輯炸彈
9.8.2後門陷阱
9.8.3登錄欺騙
9.9惡意軟件
9.9.1特洛伊木馬
9.9.2病毒
9.9.3蠕蟲
9.9.4間諜軟件
9.9.5rootkit 
9.10防禦
9.10.1防火牆
9.10.2反病毒和抑制反病毒技術
9.10.3代碼簽名
9.10.4囚禁
9.10.5基於模型的入侵檢測
9.10.6封裝移動代碼
9.10.7Java安全性
9.11有關安全的研究
9.12小結
習題
…… 
第10章實例研究1:UNIX、Linux和Androd 
第11章實例研究2:Windows8 
第12章操作系統設計
第13章參考書目與文獻