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