本書系統(tǒng)地闡述了現(xiàn)代操作系統(tǒng)的基本原理、主要功能及實現(xiàn)技術(shù);討論了現(xiàn)代操作系統(tǒng)的虛擬技術(shù)及用戶界面;重點介紹了多用戶、多任務(wù)的運行機制及操作系統(tǒng)資源管理策略和方法;以UNIX系統(tǒng)為例,介紹了操作系統(tǒng)的實現(xiàn)技術(shù)。書中還增加了分布式系統(tǒng)內(nèi)容,并就分布式系統(tǒng)的定義、特征、模型,以及資源管理與一致性問題進行了討論。
操作系統(tǒng)是計算機系統(tǒng)中的核心系統(tǒng)軟件,它負責(zé)控制和管理整個系統(tǒng)資源并協(xié)調(diào)用戶有效地使用這些資源,使計算機系統(tǒng)高效地工作。操作系統(tǒng)是計算機科學(xué)與技術(shù)專業(yè)的核心課程。隨著計算機技術(shù)的應(yīng)用越來越廣泛,其他相關(guān)專業(yè)也相繼把操作系統(tǒng)作為必修課程或選修課程。
近年來,隨著計算機網(wǎng)絡(luò)、多媒體應(yīng)用以及嵌入式系統(tǒng)的廣泛應(yīng)用,操作系統(tǒng)在概念和技術(shù)上都有了很快的發(fā)展。例如,網(wǎng)絡(luò)終端、圖形用戶界面、電源管理、多處理機操作系統(tǒng)、分布式操作系統(tǒng)等。操作系統(tǒng)的教材當然也應(yīng)該及時反映這種發(fā)展,本書正是作者這種努力的成果。它自1988年出版以來,經(jīng)過多次修訂,及時地反映了操作系統(tǒng)的新技術(shù)和新成果。這次修訂主要增加了分布式系統(tǒng)的內(nèi)容,是作者在分布式計算機系統(tǒng)的教學(xué)和科研方面多年積累的結(jié)果。
現(xiàn)代操作系統(tǒng)是一個十分龐大且復(fù)雜的系統(tǒng),操作系統(tǒng)的設(shè)計對整個計算機系統(tǒng)的總體功能和性能都有著重要的影響。理解操作系統(tǒng)的基本設(shè)計原理,了解這些原理是如何在真正的操作系統(tǒng)中被實際運用的,無論對計算機系統(tǒng)的設(shè)計者還是使用者都是十分重要的。現(xiàn)代操作系統(tǒng)中最基礎(chǔ)、最本質(zhì)、最核心的內(nèi)容是什么?如何能形成邏輯體系完整的操作系統(tǒng)概念?如何能清晰地給出現(xiàn)代操作系統(tǒng)的基本原理、主要功能及實現(xiàn)技術(shù)等,這些都是寫好操作系統(tǒng)教材的關(guān)鍵問題。本書作者長期工作在操作系統(tǒng)教學(xué)第一線,從事操作系統(tǒng)及分布式計算機系統(tǒng)的研究工作,在教學(xué)實踐和科研工作中,深感學(xué)生不易掌握操作系統(tǒng)的實質(zhì)、不易形成整體的概念。為此,本教材在內(nèi)容的選取上注重基礎(chǔ)性和先進性;在內(nèi)容的組織上注重邏輯性、完整性和關(guān)聯(lián)性;在講解上深入淺出,具有易讀、易懂的特點。
希望本書的出版能像第三版一樣,受到廣大師生和讀者的歡迎。
第1章 緒論
1.1 存儲程序式計算機
1.1.1 存儲程序式計算機的結(jié)構(gòu)和特點
1.1.2 計算機系統(tǒng)結(jié)構(gòu)與操作系統(tǒng)的關(guān)系
1.2 操作系統(tǒng)的發(fā)展歷程
1.2.1 手工操作階段
1.2.2 批處理
1.2.3 多道程序設(shè)計技術(shù)和分時技術(shù)
1.2.4 實時處理
1.2.5 現(xiàn)代操作系統(tǒng)
1.3 操作系統(tǒng)的基本概念
1.3.1 操作系統(tǒng)的定義及其在計算機系統(tǒng)中的地位
1.3.2 操作系統(tǒng)的資源管理功能
1.3.3 操作系統(tǒng)的特性
1.3.4 操作系統(tǒng)應(yīng)解決的基本問題
1.4 操作系統(tǒng)的基本類型
1.4.1 批量操作系統(tǒng)
1.4.2 分時操作系統(tǒng)
1.4.3 實時操作系統(tǒng)
1.4.4 個人計算機操作系統(tǒng)
1.4.5 網(wǎng)絡(luò)操作系統(tǒng)
1.4.6 分布式系統(tǒng)
1.5 UNIX操作系統(tǒng)
1.5.1 UNIX操作系統(tǒng)的發(fā)展
1.5.2 UNIX操作系統(tǒng)的類型及特點
習(xí)題1
第2章 操作系統(tǒng)的組織結(jié)構(gòu)
2.1 操作系統(tǒng)虛擬機
2.2 操作系統(tǒng)的組織結(jié)構(gòu)
2.2.1 結(jié)構(gòu)化組織
2.2.2 操作系統(tǒng)的接口
2.2.3 運行時的組織結(jié)構(gòu)
2.3 處理機的狀態(tài)
2.3.1 處理機狀態(tài)及分類
2.3.2 特權(quán)指令
2.4 中斷機制
2.4.1 中斷概念
2.4.2 中斷類型
2.4.3 中斷進入
2.4.4 向量中斷
2.4.5 軟件中斷處理過程
2.5 UNIX系統(tǒng)結(jié)構(gòu)
2.5.1 UNIX系統(tǒng)的體系結(jié)構(gòu)
2.5.2 UNIX系統(tǒng)的核心結(jié)構(gòu)
習(xí)題2
第3章 用戶界面
3.1 用戶工作環(huán)境
3.1.1 用戶環(huán)境
3.1.2 系統(tǒng)生成和系統(tǒng)啟動
3.1.3 運行一個用戶程序的過程
3.2 操作系統(tǒng)的用戶界面
3.2.1 什么是用戶界面
3.2.2 操作系統(tǒng)提供的用戶界面
3.3 系統(tǒng)功能調(diào)用
3.3.1 什么是系統(tǒng)功能調(diào)用
3.3.2 系統(tǒng)調(diào)用的實現(xiàn)
3.4 UNIX系統(tǒng)調(diào)用
3.4.1 uNIX系統(tǒng)調(diào)用的分類
3.4.2 UNIX系統(tǒng)調(diào)用的實現(xiàn)
習(xí)題3
第4章 并發(fā)處理
4.1 并發(fā)活動——進程的引入
4.1.1 程序的順序執(zhí)行
4.1.2 程序的并發(fā)執(zhí)行
4.1.3 并發(fā)執(zhí)行實例——謄抄
4.1.4 與時間有關(guān)的錯誤
4.1.5 并發(fā)程序的特點
4.2 進程概念
4.2.1 進程的定義
4.2.2 進程的類型
4.2.3 進程的狀態(tài)
4.2.4 進程的描述——進程控制塊
4.2.5 線程概念及特點
4.3 進程控制
4.3.1 進程控制的概念
4.3.2 進程創(chuàng)建
4.3.3 進程撤銷
4.3.4 進程阻塞
4.3.5 進程喚醒
4.3.6 進程延遲
4.4 進程的相互制約關(guān)系
4.4.1 進程競爭與合作
4.4.2 進程互斥的概念
4.4.3 進程同步的概念
4.5 同步機構(gòu)
4.5.1 鎖和上鎖、開鎖操作
4.5.2 信號燈和P、V操作
4.6 進程互斥與同步的實現(xiàn)
4.6.1 使用上鎖原語和開鎖原語實現(xiàn)進程互斥
4.6.2 使用信號燈實現(xiàn)進程互斥
4.6.3 進程同步的實現(xiàn)
4.6.4 生產(chǎn)者一消費者問題
4.7 進程通信
4.7.1 進程間通信的概念
4.7.2 信箱通信
4.7.3 send和receive原語
4.8 UNIX系統(tǒng)的進程管理
4.8.1 UNIX系統(tǒng)的進程及映像
4.8.2 UNIX進程的狀態(tài)及變遷
4.8.3 進程的創(chuàng)建
4.8.4 進程終止與等待
4.8.5 進程的睡眠與喚醒
習(xí)題4
第5章 資源分配與調(diào)度
5.1 資源管理概述
5.1.1 資源管理的目的和任務(wù)
5.1.2 資源的分類方法
5.1.3 資源管理的機制和策略
5.2 資源分配機制
5.2.1 資源描述器
5.2.2 資源信息塊
5.3 資源分配策略
5.3.1 概述
5.3.2 先請求先服務(wù)
5.3.3 優(yōu)先調(diào)度
5.3.4 針對設(shè)備特性的調(diào)度
5.4 死鎖
5.4.1 死鎖的概念
5.4.2 產(chǎn)生死鎖的原因和必要條件
5.4.3 系統(tǒng)模型
5.4.4 解決死鎖問題的策略
5.4.5 死鎖的預(yù)防
5.4.6 死鎖的避免
5.4.7 死鎖的檢測與忽略
習(xí)題5
第6章處理機調(diào)度
6.1 處理機的多級調(diào)度
6.2 作業(yè)調(diào)度
6.2.1 作業(yè)的狀態(tài)
6.2.2 作業(yè)調(diào)度的功能
6.2.3 作業(yè)控制塊
6.2.4 調(diào)度算法性能的衡量
6.2.5 作業(yè)調(diào)度算法
6.3 進程調(diào)度
6.3.1 調(diào)度/分派結(jié)構(gòu)
6.3.2 進程調(diào)度的功能和調(diào)度準則
6.3.3 調(diào)度方式
6.3.4 進程優(yōu)先數(shù)調(diào)度算法
6.3.5 循環(huán)輪轉(zhuǎn)調(diào)度
6.3.6 多級反饋隊列調(diào)度
第7章 主存管理
第8章 輸入/輸出管理
第9章 文件系統(tǒng)
第10章 分布式系統(tǒng)
參考文獻
3.2 操作系統(tǒng)的用戶界面
3.2.1 什么是用戶界面
當今,計算機的應(yīng)用越來越廣泛,科學(xué)計算、數(shù)據(jù)處理,人們的生產(chǎn)、生活、各種事務(wù)活動都可借助于計算機,這些活動包含編輯書稿,編輯新聞節(jié)目,編制人事檔案資料;或針對某個科學(xué)計算任務(wù),通過選定某種語言,編輯源程序,計算出結(jié)果;或針對一個企業(yè)管理的任務(wù),借助于數(shù)據(jù)庫管理系統(tǒng),形成一個應(yīng)用軟件,完成對某企業(yè)的人事、工資、生產(chǎn)、物質(zhì)等管理。
用戶要把某一任務(wù)交給計算機去完成,最關(guān)心的問題是:系統(tǒng)提供什么手段使用戶能方便地描述和解決自己的問題。比如,一個排序算法要在計算機上解決,對于這樣一個任務(wù),用戶先要干什么,然后進行怎樣的處理,最后如何得到結(jié)果,系統(tǒng)能提供什么手段和方法,讓用戶方便地描述,并能在計算機上一步一步去處理。在現(xiàn)代計算機系統(tǒng)中,用戶是通過操作系統(tǒng)提供的用戶界面(接口)來使用計算機的。
操作系統(tǒng)的用戶界面(或稱接口)是操作系統(tǒng)提供給用戶與計算機打交道的外部機制。用戶能夠借助這種機制和系統(tǒng)提供的手段來控制用戶所在的系統(tǒng)。
操作系統(tǒng)的用戶界面分為兩個方面:其一,是操作界面,用戶通過這個操作界面來組織自己的工作流程和控制程序的運行;其二,是程序界面,任何一個用戶程序在其運行過程中,可以使用操作系統(tǒng)提供的功能調(diào)用來請求操作系統(tǒng)的服務(wù)(如申請主存、使用各種外設(shè)、創(chuàng)建進程或線程等)。