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