《操作系統原理與Linux系統實驗》全面、系統地闡述了現代操作系統的基本原理、主要功能及實現技術,重點論述多用戶、多任務操作系統的運行機制,系統資源管理的策略和方法,操作系統提供的用戶界面。《操作系統原理與Linux系統實驗》給出了一個操作系統實驗體系。該實驗體系涉及操作系統的核心實現技術和一些重要的實際應用,包括進程控制、增加新的系統功能調用、增加新的設備驅動程序等操作系統功能模塊的實現方法;還包括Linux文件系統、服務器配置與應用的范例。每個實驗都是一個完整的小體系,包括:預備知識、實驗指導、實驗目的和內容以及實驗中的程序范例。
《操作系統原理與Linux系統實驗》既可作為高等院校計算機和信息類本科、專科各專業和其他相關專業的教材,亦可供從事計算機科學、工程和應用等方面工作的科技人員參考。
龐麗萍,華中科技大學教授,博士生導師,1967年畢業于北京郵電學院(現北京郵電大學)無線電通信專業。曾任國家教育部工科計算機基礎課程教學指導委員會委員、中國計算機學會教育與培訓專業委員會委員。長期從事計算機操作系統、分布式計算機系統的研究和教學工作;主要研究方向為并行分布式系統。編著的《操作系統原理》(第三版)2002年獲全國普通高等學校優秀教材二等獎;主持的“操作系統原理”課程獲2007年國家級精品課程;編著了《操作系統原理》等11本教材:1995年獲首屆“孺子牛金球獎”[香港柏寧頓(中國)教育基金會頒發];2003年獲湖北省科技進步一等獎1項;獲2004年度寶鋼教育獎優秀教師獎。
鄭然,華中科技大學博士,副教授。主要從事操作系統原理、多核操作系統實踐等課程的講授,主要研究方向為高性能計算、圖像處理應用、計算系統虛擬化。在國內外學術刊物和國際會議上發表論文30余篇,主持并參與多個國家項目。2003年獲湖北省科技進步一等獎1項,2008年獲湖北省科技進步二等獎1項;獲得國家發明專利3項,軟件著作版權5項。
前言
教學建議
第一篇 操作系統原理
第1章 緒論
1.1 操作系統與計算機系統的關系
1.1.1 計算機系統的組成
1.1.2 操作系統在計算機系統中的位置
1.1.3 操作系統與計算機體系結構的關系
1.2 操作系統的發展歷程_
1.2.1 操作系統的發展階段
1.2.2 多道程序設計技術與分時技術
1.3.操作系統的基本概念
1.3.1 操作系統的定義和特性
1.3.2 操作系統的資源管理功能
1.4 操作系統的基本類型
I.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
第2章 操作系統的運行基礎與結構
2.1 操作系統的運行基礎
2.1.1 處理機的態
2.1.2 特權指令
2.1.3 中斷概念及類型
2.1.4 國斷進入
2.1.5 軟件中斷處理過程
2.1.6 向量中斷
2.2 操作系統虛擬機
2.3 操作系統的邏輯結構
2.3.1 操作系統的四種組織結構
2.3.2 Linux操作系統的邏輯結構
2.4 操作系統運行時的調用方式
習題2
第3章 操作系統的用戶界面
3.1 操作系統提供的環境
3.1.1 操作系統的生成和系統引導
3.1.2 應用程序的處理
3.2 用戶界面
3.2.1 用戶界面概述
3.2.2 操作系統提供的用戶界面
3.3 系統功能調用
3.3.1 系統功能調用的定義
3.3.2 系統功能調用的實現
3.3.3 應用編程接口
習題3
第4章 進程及進程管理
4.1 進程的引入
4.1.1 程序的順序執行
4.1.2 程序的并發執行
4.2 進程的相關概念
4.2.1 進程的定義
4.2.2 進程的狀態與變遷
4.2.3 進程描述
4.2.4 線程的定義與狀態
4.3 進程控制
4.3.1 進程控制的概念
4.3.2 進程創建與撤銷
4.3.3 進程等待與喚醒
4.4 進程協作與系統的支持
4.4.1 進程競爭與合作
4.4.2 進程互斥的概念
4.4.3 進程同步的概念
4.4.4 鎖和上鎖、開鎖操作
4.4.5 信號燈和P、V操作
4.5 進程互斥與同步的實現
4.5.1 用鎖機制實現進程互斥
4.5.2 用信號燈機制實現進程互斥
4.5.3 進程同步的實現
4.5.4 生產者-消費者問題
4.6 進程通信
4.6.1 進程通信的概念
4.6.2 進程通信方式
習題4
第5章 操作系統的資源管理
5.1 資源管理的機制與策略
5.1.1 資源管理任務
5.1.2 虛擬資源
5.1.3 資源分配機制
5.1.4 資源分配策略
5.2 死鎖及其解決方法
5.2.1 死鎖的定義與例子
5.2.2 產生死鎖的原因和必要條件
5.2.3 解決死鎖問題的策略
5.2.4 鎖的預防
5.2.5 死鎖的避免
5.3 處理機管理
5.3.1 處理機的多級調度
5.3.2 作業調度
5.3.3 進程調度的功能
5.3.4 調度方式
5.3.5 進程調度算法
5.3.6 調度用的進程狀態變遷圖
5.4 主存管理
5.4.1 主存管理的功能
5.4.2 分區存儲管理及其存在的問題
5.4.3 分頁存儲管理的基本概念
5.4.4 頁式地址變換
5.4.5 請求頁面的機制
5.4.6 淘汰機制與策略
5.4.7 段頁式存儲管理
5.5 設備管理
5.5.1 設備管理的功能
5.5.2 設備獨立性與設備控制塊
5.5.3 緩沖技術
5.5.4 設備分配技術
5.5.5 輸入/輸出控制
5.6 文件系統
5.6.1 文件與文件系統
5.6.2 文件的邏輯結構和存取方法
5.6.3 文件的物理結構
5.6.4 文件目錄
5.6.5 文件共享與安全
5.6.6 文件操作與文件備份
習題5
第6章 Linux系統簡介
6.1 Linux的發展歷程
6.2 Linux的基本特性
6.3 Linux的發行版本
……
第二篇 Linux系統實驗
3)微觀上串行。從微觀上看,主存中的多道程序輪流或分時地占有CPU,交替執行。
如何理解宏觀上并行這一特征?在單處理機系統中只有一個指令計數器。CPU嚴格地按照指令計數器的內容順序地執行每一個操作,即一個時刻只能有一個程序在CPU上運行。那么,多道程序如何并行執行呢?由于計算機系統有多個物理部件(如CPU、輸入機、打印機等),進入主存的多道程序可以在不同的部件上進行操作。例如某時刻程序A正在CPU上運行,程序B在打印輸出,程序C正在輸入數據,從宏觀上看,這幾道程序的工作都在向前推進,它們都處于執行狀態。微觀上串行這一特征表現在同時被接收進入計算機的多道程序在CPU上是相互穿插地運行,當正在CPU上運行的程序因為輸入或輸出等原因而不能繼續運行下去時,就將CPU分配給另一道程序。所以從微觀上看,一個時刻只有一個程序在CPU上運行。
多道程序同時進入系統進行成批處理,形成了批處理系統。在這樣的系統中,大量的用戶程序以作業為單位成批進入系統。用戶以脫機操作方式使用計算機,即用戶事先把自己的算題程序和數據以及操作說明書(包含了用戶對作業的控制意圖和對系統資源的需求)交給操作員后,他就完全脫離了自己的作業,待處理結束后,用戶才能拿到計算結果,根據結果分析下一步方案。脫機工作方式使計算機的效率提高了,但卻給用戶使用計算機帶來了麻煩。
2.分時技術
由用戶通過終端設備直接操作、控制自己程序的運行,這種操作方式稱為聯機工作方式。在這種方式下,用戶可以通過終端向計算機發出各種控制命令,使系統按自己的意圖控制程序的運行;另一方面,系統在運行過程中輸出一些必要的信息,例如給出提示符,報告運行情況和操作結果,以便讓用戶根據此信息決定下一步的工作。這樣,用戶和計算機可采用直接的問答方式來處理用戶的程序。人們希望能直接控制自己程序的運行,隨時了解其運行情況,也就是希望和計算機“會話”。
……