本書系統地闡述了現代操作系統的基本原理、主要功能及實現技術;討論了現代操作系統的虛擬技術及用戶界面;重點介紹了多用戶、多任務的運行機制及操作系統資源管理策略和方法;以UNIX系統為例,介紹了操作系統的實現技術。書中還增加了分布式系統內容,并就分布式系統的定義、特征、模型,以及資源管理與一致性問題進行了討論。
操作系統是計算機系統中的核心系統軟件,它負責控制和管理整個系統資源并協調用戶有效地使用這些資源,使計算機系統高效地工作。操作系統是計算機科學與技術專業(yè)的核心課程。隨著計算機技術的應用越來越廣泛,其他相關專業(yè)也相繼把操作系統作為必修課程或選修課程。
近年來,隨著計算機網絡、多媒體應用以及嵌入式系統的廣泛應用,操作系統在概念和技術上都有了很快的發(fā)展。例如,網絡終端、圖形用戶界面、電源管理、多處理機操作系統、分布式操作系統等。操作系統的教材當然也應該及時反映這種發(fā)展,本書正是作者這種努力的成果。它自1988年出版以來,經過多次修訂,及時地反映了操作系統的新技術和新成果。這次修訂主要增加了分布式系統的內容,是作者在分布式計算機系統的教學和科研方面多年積累的結果。
現代操作系統是一個十分龐大且復雜的系統,操作系統的設計對整個計算機系統的總體功能和性能都有著重要的影響。理解操作系統的基本設計原理,了解這些原理是如何在真正的操作系統中被實際運用的,無論對計算機系統的設計者還是使用者都是十分重要的,F代操作系統中最基礎、最本質、最核心的內容是什么?如何能形成邏輯體系完整的操作系統概念?如何能清晰地給出現代操作系統的基本原理、主要功能及實現技術等,這些都是寫好操作系統教材的關鍵問題。本書作者長期工作在操作系統教學第一線,從事操作系統及分布式計算機系統的研究工作,在教學實踐和科研工作中,深感學生不易掌握操作系統的實質、不易形成整體的概念。為此,本教材在內容的選取上注重基礎性和先進性;在內容的組織上注重邏輯性、完整性和關聯性;在講解上深入淺出,具有易讀、易懂的特點。
希望本書的出版能像第三版一樣,受到廣大師生和讀者的歡迎。
第1章 緒論
1.1 存儲程序式計算機
1.1.1 存儲程序式計算機的結構和特點
1.1.2 計算機系統結構與操作系統的關系
1.2 操作系統的發(fā)展歷程
1.2.1 手工操作階段
1.2.2 批處理
1.2.3 多道程序設計技術和分時技術
1.2.4 實時處理
1.2.5 現代操作系統
1.3 操作系統的基本概念
1.3.1 操作系統的定義及其在計算機系統中的地位
1.3.2 操作系統的資源管理功能
1.3.3 操作系統的特性
1.3.4 操作系統應解決的基本問題
1.4 操作系統的基本類型
1.4.1 批量操作系統
1.4.2 分時操作系統
1.4.3 實時操作系統
1.4.4 個人計算機操作系統
1.4.5 網絡操作系統
1.4.6 分布式系統
1.5 UNIX操作系統
1.5.1 UNIX操作系統的發(fā)展
1.5.2 UNIX操作系統的類型及特點
習題1
第2章 操作系統的組織結構
2.1 操作系統虛擬機
2.2 操作系統的組織結構
2.2.1 結構化組織
2.2.2 操作系統的接口
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系統結構
2.5.1 UNIX系統的體系結構
2.5.2 UNIX系統的核心結構
習題2
第3章 用戶界面
3.1 用戶工作環(huán)境
3.1.1 用戶環(huán)境
3.1.2 系統生成和系統啟動
3.1.3 運行一個用戶程序的過程
3.2 操作系統的用戶界面
3.2.1 什么是用戶界面
3.2.2 操作系統提供的用戶界面
3.3 系統功能調用
3.3.1 什么是系統功能調用
3.3.2 系統調用的實現
3.4 UNIX系統調用
3.4.1 uNIX系統調用的分類
3.4.2 UNIX系統調用的實現
習題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 進程互斥與同步的實現
4.6.1 使用上鎖原語和開鎖原語實現進程互斥
4.6.2 使用信號燈實現進程互斥
4.6.3 進程同步的實現
4.6.4 生產者一消費者問題
4.7 進程通信
4.7.1 進程間通信的概念
4.7.2 信箱通信
4.7.3 send和receive原語
4.8 UNIX系統的進程管理
4.8.1 UNIX系統的進程及映像
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 產生死鎖的原因和必要條件
5.4.3 系統模型
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)先數調度算法
6.3.5 循環(huán)輪轉調度
6.3.6 多級反饋隊列調度
第7章 主存管理
第8章 輸入/輸出管理
第9章 文件系統
第10章 分布式系統
參考文獻
3.2 操作系統的用戶界面
3.2.1 什么是用戶界面
當今,計算機的應用越來越廣泛,科學計算、數據處理,人們的生產、生活、各種事務活動都可借助于計算機,這些活動包含編輯書稿,編輯新聞節(jié)目,編制人事檔案資料;或針對某個科學計算任務,通過選定某種語言,編輯源程序,計算出結果;或針對一個企業(yè)管理的任務,借助于數據庫管理系統,形成一個應用軟件,完成對某企業(yè)的人事、工資、生產、物質等管理。
用戶要把某一任務交給計算機去完成,最關心的問題是:系統提供什么手段使用戶能方便地描述和解決自己的問題。比如,一個排序算法要在計算機上解決,對于這樣一個任務,用戶先要干什么,然后進行怎樣的處理,最后如何得到結果,系統能提供什么手段和方法,讓用戶方便地描述,并能在計算機上一步一步去處理。在現代計算機系統中,用戶是通過操作系統提供的用戶界面(接口)來使用計算機的。
操作系統的用戶界面(或稱接口)是操作系統提供給用戶與計算機打交道的外部機制。用戶能夠借助這種機制和系統提供的手段來控制用戶所在的系統。
操作系統的用戶界面分為兩個方面:其一,是操作界面,用戶通過這個操作界面來組織自己的工作流程和控制程序的運行;其二,是程序界面,任何一個用戶程序在其運行過程中,可以使用操作系統提供的功能調用來請求操作系統的服務(如申請主存、使用各種外設、創(chuàng)建進程或線程等)。