《21世紀高等學校規劃教材·計算機科學與技術:操作系統原理及應用(Linux)》系統地介紹了操作系統的基本概念和基本原理,并在各章中結合Linux實例加以講解!21世紀高等學校規劃教材·計算機科學與技術:操作系統原理及應用(Linux)》主要內容包括:操作系統概論、進程管理、處理機調度與死鎖、內存管理、文件管理、設備管理、現代操作系統實例,以及操作系統的安全性。
《21世紀高等學校規劃教材·計算機科學與技術:操作系統原理及應用(Linux)》是結合作者多年從事操作系統教學及科研工作的實踐,根據操作系統課程的特點編寫而成!21世紀高等學校規劃教材·計算機科學與技術:操作系統原理及應用(Linux)》概念準確,層次清晰,重點突出,系統性強,算法采用C語言描述。書中提供的例題典型部分,便于初學者對操作系統原理進行理解、掌握和運用。
《21世紀高等學校規劃教材·計算機科學與技術:操作系統原理及應用(Linux)》可以作為高等學校及應用型本科、成人高教、高職高專等院校計算機類專業的教材,也可以作為從事計算機和信息科學類相關工作人員的參考用書。
操作系統在計算機系統中起著舉足輕重的作用。操作系統課程是計算機科學與技術、計算機網絡、通信等專業的必修課,也是計算機類考研的四門通考課程之一。掌握操作系統原理,并在此基礎上提高實踐能力,是操作系統課程教學需要完成的主要任務。為提高教學質量,保證教學效果,本書總結作者多年從事操作系統課程教學與科研的經驗,依據新的操作系統課程本科教學大綱,在寫作過程中注重突出以下特色:
。1) 提出問題,由淺入深。在寫作過程中對一些典型的概念及原理,從提出問題入手,由淺入深地對操作系統的原理進行闡述,使初學者盡快進入操作系統的學習研究狀態,更好地掌握操作系統原理。
(2) 突出重點,強化理解。操作系統課程的一個特點是內容寬泛,知識的廣度和深度都比較高。本書針對應用型本科的教學要求和學生的特點,做到對重要知識點加以強調突出,注重對這些知識的深入理解; 同時內容方面也兼顧知識的系統化要求。
。3) 注重理論,聯系實際。操作系統課程的另一個特點是理論性較強,對于一些概念和原理,學生在學習過程中不太容易理解。本書對重要的知識點都寫了一些典型的例題,便于老師上課使用和同學們對知識的掌握; 本書以Linux系統作為操作系統實例對操作系統原理進行了講解,算法使用了C語言描述。
。4) 資源開放,方便教學。作者配合本書制作了PPT教學課件,方便教學使用。
本書內容共有8章,第1章操作系統概述,介紹操作系統的概念、分類、結構及操作系統的發展方向; 第2章進程管理,介紹進程的概念、控制及進程同步; 第3章處理機調度與死鎖,介紹調度的概念、過程、算法、死鎖的概念及死鎖的解決方案; 第4章內存管理,介紹內存管理的概念、基本內存管理方法和虛擬內存管理方法; 第5章文件管理,介紹文件的概念、邏輯結構、物理結構,以及文件系統實現按名存取的方法; 第6章設備管理,介紹設備管理的方法,以及在設備管理中如何提高進程的并發性,進而提高系統的效率; 第7章現代操作系統實例,以目前較為流行的Windows系統、經典的UNIX系統,以及分布式系統作為實例,闡述對操作系統原理的運用; 第8章操作系統的安全性,論述操作系統安全性的概念及實現方案。
本書由王紅任主編。在本書的編寫過程中,侯剛、張鳳云、楊德芳提供了很多幫助,在此表示感謝。
由于作者水平有限,疏漏之處在所難免,敬請廣大讀者批評指正。
編者
2012年12月
第1章 操作系統概論
1.1 操作系統的地位
1.2 操作系統的功能
1.2.1 提供人機接口
1.2.2 管理計算機資源
1.3 操作系統的發展過程
1.3.1 推動操作系統發展的主要動力
1.3.2 操作系統發展的初級階段
1.3.3 單道批處理系統
1.3.4 多道批處理系統
1.3.5 分時系統
1.3.6 實時系統
1.3.7 微機操作系統
1.3.8 網絡操作系統
1.3.9 分布式操作系統
1.4 操作系統的特性
1.5 操作系統的體系結構
1.5.1 層次結構
1.5.2 微內核結構
1.6 Linux簡介
1.6.1 Linux簡介
1.6.2 Linux的內核特征
1.6.3 Linux的發展及展望
本章小結
習題1
第2章 進程管理
2.1 進程的引入
2.1.1 程序的順序執行
2.1.2 程序的并發執行及其特征
2.1.3 進程的定義與特征
2.1.4 進程的基本狀態及轉換
2.1.5 Lnux進程的狀態
2.2 進程的描述
2.2.1 進程控制塊PCB
2.2.2 進程控制塊的組織方式
2.2.3 Linux進程的PCB
2.3 進程控制
2.3.1 進程的家族關系
2.3.2 進程的創建與終止
2.3.3 進程的阻塞與喚醒
2.3.4 Linux系統調用
2.4 進程的同步與互斥
2.4.1 臨界資源的概念
2.4.2 進程的互斥與同步
2.4.3 鎖機制
2.4.4 信號量機制
2.5 進程同步問題舉例
2.5.1 兩個簡單的例子
2.5.2 生產者-消費者問題
2.5.3 讀者寫者問題
2.5.4 哲學家進餐問題
2.6 進程通信
2.6.1 共享存儲器系統
2.6.2 消息傳遞系統
2.6.3 管道通信系統
2.7 信號通信機制
2.8 線程
2.8.1 線程的基本概念
2.8.2 線程的狀態與轉換操作
2.8.3 引入線程的好處
2.8.4 多線程的實現
2.8.5 Linux系統的線程
本章小結
習題2
第3章 處理機調度與死鎖
3.1 作業管理
3.1.1 作業的概念及分類
3.1.2 作業的狀態
3.1.3 作業管理的功能
3.11.1 死鎖檢測的時機
3.11.2 死鎖的檢測
3.11.3 死鎖的解除
本章小結
習題3
第4章 內存管理
第5章 文件管理
第6章 設備管理
第7章 現代操作系統實例
第8章 操作系統的安全性
參考文獻
進程間的信息交換稱為進程通信。上一節介紹的進程互斥與同步就是一種進程間的通信方式。操作系統可以被看做是由各種進程組成的,如用戶進程、系統進程、計算進程、打印進程等,這些進程都具有各自的獨立功能,且大多數由于外部需要而產生并執行。通常,進程間的通信分為控制信息的傳送與大量信息的傳送兩種。有時,將進程間控制信息的交換稱為低級通信,而把進程之間大批量數據的交換稱為高級通信。由于進程的互斥與同步交換的信息量較少且效率較低,因此稱這種通信方式為低級通信方式,相應地,也稱wait和signal操作為低級的通信原語。低級通信通常傳送一個或幾個字節的信息,以達到控制進程執行速度的作用。高級通信要傳送大量的信息,因此,僅通過P、V操作或鎖的方法無法實現進程的高級通信。
高級通信方式可分為共享存儲器系統、消息傳遞系統和管道通信系統。在共享存儲器系統中,相互通信的進程共享某些數據結構或共享存儲區;在進程之間的消息傳遞系統中,進程間的數據交換以消息為單位,用戶直接利用系統提供的一組通信原語來實現通信,消息傳遞系統可分為消息緩沖通信和信箱通信;管道是用于連接讀進程和寫進程,以實現它們之間通信的共享文件,向管道提供輸入的發送進程以字符流形式將大量數據送入管道,而接受管道輸出的接收進程可從管道中接收數據。
2.6.1 共享存儲器系統
1.共享存儲器系統的類型
在共享存儲器系統中,相互通信的進程共享某些數據結構或共享存儲區,進程之間能通過這些空間進行通信。通常,根據進程之間共享對象的類型將共享存儲器系統通信分為如下兩種類型。
。1)基于共享數據結構的通信方式。在這種通信方式中,要使各進程共用某些數據結構,以實現各進程間的信息交換。如在生產者消費者問題中,就是用有界緩沖區這種數據結構來實現通信的。在這里,公用數據結構的設置及對進程間同步的處理,都是程序員的職責,這無疑增加了程序員的負擔,而操作系統只需提供共享存儲器,因此這種通信方式效率低,只適用于傳遞相對少量的數據。
……