內容簡介
《國外計算機科學教材係列:操作係統設計與實現(上冊 第三版)》是操作係統領域的教材之一。全書詳細介紹瞭操作係統的基本原理,包括進程、進程間通信、信號量、管程、消息傳遞、調度算法、輸入/輸齣、死鎖、設備驅動程序、存儲管理、調頁算法、文件係統設計、安全和保護機製等,並深入討論瞭MINIX 3操作係統。這種安排不僅可讓讀者瞭解操作係統的基本原理,而且可讓讀者瞭解如何將基本原理應用到真實的操作係統中去。
作者簡介
陳渝,國防科學技術大學計算機係 學士、碩士、博士,清華大學計算機係副教授,研究方嚮為操作係統、普適計算和嵌入式係統。
目錄
第1章 引言
1.1 什麼是操作係統
1.1.1 操作係統作為擴展機
1.1.2 操作係統作為資源管理器
1.2 操作係統的發展曆史
1.2.1 第一代計算機(1945-1955):真空管和插接闆
1.2.2 第二代計算機(1955-1965):晶體管和批處理係統
1.2.3 第三代計算機(1965-1980):集成電路和多道程序
1.2.4 第四代計算機(1980-):個人計算機
1.2.5 MINIX3的曆史
1.3 操作係統概念
1.3.1 進程
1.3.2 文件
1.3.3 命令解釋器
1.4 係統調用
1.4.1 進程管理的係統調用
1.4.2 信號管理的係統調用
1.4.3 文件管理的係統調用
1.4.4 目錄管理的係統調用
1.4.5 保護的係統調用
1.4.6 時間管理的係統調用
1.5 操作係統結構
1.5.1 整體結構
1.5.2 分層結構
1.5.3 虛擬機
1.5.4 外核
1.5.5 客戶-服務器模型
1.6 剩餘各章內容簡介
1.7 小結
習題
第2章 進程
2.1 進程介紹
2.1.1 進程模型
2.1.2 進程的創建
2.1.3 進程的終止
2.1.4 進程的層次結構
2.1.5 進程的狀態
2.1.6 進程的實現
2.1.7 綫程
2.2 進程間通信
2.2.1 競爭條件
2.2.2 臨界區
2.2.3 忙等待形式的互斥
2.2.4 睡眠和喚醒
2.2.5 信號量
2.2.6 互斥
2.2.7 管程
2.2.8 消息傳遞
2_3經典IPC問題
2.3.1 哲學傢進餐問題
2.3.2 讀者一寫者問題
2.4 進程調度
2.4.1 調度介紹
2.4.2 批處理係統中的調度
2.4.3 交互式係統中的調度
2.4.4 實時係統調度
2.4.5 策略與機製
2.4.6 綫程調度
2.5 MINIX3進程概述
2.5.1 MINIX3的內部結構
2.5.2 MINIX3中的進程管理
2.5.3 MINIX3中的進程間通信
2.5.4 MINIX3中的進程調度
2.6 MINIX3中進程的實現
2.6.1 MINIX3源代碼的組織
2.6.2 編譯及運行MINIX3
2.6.3 公共頭文件
2.6.4 MINIX3頭文件
2.6.5 進程數據結構和頭文件
2.6.6 引導MINIX3
2.6.7 係統初始化
2.6.8 MINIX的中斷處理
2.6.9 MINIX3的進程間通信
2.6.10 MINIX的進程調度
……
第3章 輸入/輸齣係統
第4章 存儲管理
第5章 文件係統
第6章 閱讀材料和參考文獻
索引
精彩書摘
《國外計算機科學教材係列:操作係統設計與實現(上冊 第三版)》:
第1層的主要功能是為上層驅動程序和服務器提供一組特權內核調用。這包括讀寫I/O端口、跨地址空間復製數據等。這些調用由係統任務(systemtask)實現。盡管係統任務和時鍾任務被編譯進瞭內核地址空間,但它們作為單獨的進程調用,並有自己的調用堆棧。
大部分內核程序和所有的時鍾任務及係統任務程序用C語言編寫。內核中有一小部分程序是用匯編語言編寫的。匯編語言編寫的部分負責中斷處理、進程切換的底層上下文管理機製(保存和恢復寄存器等)、MMU硬件的底層操作部分。總體上講,匯編語言負責內核直接與硬件交互的最底層部分,這部分不能用C實現。如果把MINIX3移植到新的體係結構上,那麼這部分代碼需要重寫。
內核以上的其他三層也可以視為一層,因為內核從根本上同樣對待它們。每一層隻限於使用用戶模式指令,並且每一層由內核調度執行。它們都不能直接對I/O端口進行操作。此外,它們也不能訪問分配給它們之外的內存。
然而,進程都潛在具有一定的特權(例如進行係統調用的能力)。這是第2層、第3層和第4層內的進程的真正不同之處。第2層內的進程擁有最多的特權,第3層內的進程的特權少一些,而第4層內的進程沒有特權。例如,處於第2層內的稱為設備驅動程序(devicedrivers)的進程,可以請求係統任務代錶它們從I/O端口讀數據或嚮I/O端口寫數據。每種類型的設備,包括磁盤、打印機、終端和網絡接口,都需要一個設備驅動程序。如果還有其他類型的I/O設備,每種也都需要一個驅動程序。設備驅動程序也可能發齣其他內核調用,例如請求剛剛讀取的數據副本到另一個進程的地址空間。
第3層包含瞭服務器,即嚮用戶進程提供有用服務的進程。有兩個服務器是必不可少的。進程管理器(ProcessManager,PM)執行所有涉及啓動或終止進程的MINIX3係統調用,例如fork,exec和wait等,還負責執行與信號有關的係統調用,例如alarm和kill等,這些調用能夠改變進程的執行狀態。進程管理器還負責管理內存,例如發齣brk係統調用。文件係統(FileSystem,FS)負責執行文件係統的調用,如read,mount和chdir等。
理解內核調用(kernelcall)和POSIX係統調用(systemcall)的區彆非常重要。內核調用是由係統服務提供的以使驅動程序和服務器完成工作的低層函數。一個典型的內核調用是讀硬件的I/O端口。相反,POSIX係統調用是由POSIX規範定義的高層調用,如read,fork和unlink等,這些調用供第4層的用戶程序使用。用戶程序內包含瞭許多POSIX調用,但不包含內核調用。實現這些調用的機製是相似的,並且內核調用可以視為係統調用的一個子集。
在第3層中除瞭進程管理器和文件係統外,還有其他一些服務。它們執行MINIX3特定的功能。有把握認為進程管理器和文件係統的功能在其他任何操作係統上都可以找到。信息服務器(informationserver,IS)負責提供其他驅動程序和服務器的調試和狀態信息的工作,而這一工作在像MINIX3這樣的專門為實驗而設計的係統中是非常重要的,而在用戶不能修改的商業操作係統中,這一工作沒那麼重要。再生服務器(reincarnationserver,RS)啓動或重啓那些不與內核一起加載到內存的設備驅動程序。另外,如果驅動程序在操作過程中失敗,那麼再生服務器檢測到這個失敗,並殺死這個驅動程序(如果它沒有死的話),重啓一個驅動程序的新的副本,從而使整個係統具有更好的容錯能力。這一功能在大多數操作係統中是沒有的。在一個網絡操作係統上,第3層中還可能有網絡服務器(networkserver.inet)。服務器不能直接進行I/O操作,但它們可以通過驅動程序來請求I/O。服務器也可以通過係統任務與內核通信。
就像在第1章開始講到的那樣,操作係統負責兩件事情:管理資源和通過實現係統調用提供一個擴展的計算機。在MINIX3操作係統中,資源管理主要由第2層的驅動程序來做,當需要操作I/O或係統中斷時,還可以得到內核層的幫助。係統調用的解釋由第3層的進程管理器和文件係統來做。文件係統作為一個文件服務器設計仔細,改動很少就可以移到一個遠程的計算機上。
……
前言/序言
國外計算機科學教材係列:操作係統設計與實現(上冊 第三版) [Operating Systems:Design and Implementation, Third Edition] 下載 mobi epub pdf txt 電子書 格式
國外計算機科學教材係列:操作係統設計與實現(上冊 第三版) [Operating Systems:Design and Implementation, Third Edition] 下載 mobi pdf epub txt 電子書 格式 2024
國外計算機科學教材係列:操作係統設計與實現(上冊 第三版) [Operating Systems:Design and Implementation, Third Edition] 下載 mobi epub pdf 電子書
國外計算機科學教材係列:操作係統設計與實現(上冊 第三版) [Operating Systems:Design and Implementation, Third Edition] mobi epub pdf txt 電子書 格式下載 2024