本書主要內(nèi)容包括: 操作系統(tǒng)概述、進程管理、用戶界面管理、存儲管理、文件管理, 設(shè)備管理、Linux網(wǎng)絡(luò)及服務(wù)器配置等七大部分的內(nèi)容。課程以LINUX操作系統(tǒng)為原型, 實例化相關(guān)內(nèi)容, 在學(xué)習(xí)原理的同時也能一窺操作系統(tǒng)的實際應(yīng)用。
本書既可作為高等院校計算機及相關(guān)專業(yè)本科、?频慕滩, 也可供從事計算機科學(xué)、工程、應(yīng)用等方面工作的科技人員參考使用
前言
操作系統(tǒng)是計算機系統(tǒng)中較為重要的系統(tǒng)軟件,在計算機學(xué)科的課程體系中占有重要的地位,是計算機及相關(guān)專業(yè)的一門基礎(chǔ)必修課,也是計算機專業(yè)從業(yè)者必須掌握的知識。一本適用的教材對于操作系統(tǒng)的學(xué)習(xí)尤為重要。因此,作者在多年教學(xué)工作的基礎(chǔ)上,結(jié)合Linux2.4內(nèi)核相關(guān)內(nèi)容編寫了此書。
考慮到課程學(xué)習(xí)的有限課時數(shù),我們對內(nèi)容進行了精選,著重于操作系統(tǒng)基本概念、基本原理、實現(xiàn)策略、基本算法原理的闡述,力圖從兩個主線――操作系統(tǒng)的資源管理角度和面向用戶的角度將操作系統(tǒng)內(nèi)容組織成一個邏輯清晰的整體。
全書共分7章。從操作系統(tǒng)的資源管理角度分別介紹了相關(guān)軟硬件資源管理的內(nèi)容,并在其中引入Linux2.4相關(guān)的內(nèi)容進行實例說明。
第1章概述介紹操作系統(tǒng)的基本知識、操作系統(tǒng)的歷史與發(fā)展、操作系統(tǒng)的分類,簡要介紹了計算機系統(tǒng)相關(guān)部件,并引入系統(tǒng)調(diào)用的概念,說明了操作系統(tǒng)的特征及發(fā)展趨勢,并對Linux操作系統(tǒng)的產(chǎn)生及發(fā)展特征做了簡要說明。
第2章進程控制介紹進程的概念,對進程控制、進程互斥、同步、通信、進程死鎖、管程、線程的概念等問題進行了分析和討論,并介紹了Linux進程控制、Linux進程通信的內(nèi)容,設(shè)計了兩次實驗。
第3章處理機調(diào)度介紹作業(yè)的概念、作業(yè)與進程的關(guān)系、多級調(diào)度的概念、作業(yè)及進程調(diào)度算法、Linux進程調(diào)度等相關(guān)內(nèi)容。
第4章存儲管理介紹存儲管理功能、單一連續(xù)存儲管理、分區(qū)式管理、分頁式管理、分段式管理、段頁式管理、虛擬存儲技術(shù)、Linux存儲管理等知識。
第5章設(shè)備管理介紹設(shè)備管理概述、設(shè)備控制器、設(shè)備的數(shù)據(jù)傳輸控制方式、中斷技術(shù)、緩沖技術(shù)、設(shè)備獨立性、設(shè)備分配、SPOOLing技術(shù)等內(nèi)容。
第6章文件系統(tǒng)介紹文件的基本概念、文件組織形式、文件存儲空間管理方法、文件目錄管理、文件操作、文件系統(tǒng)的層次模型、Linux文件系統(tǒng)概述等內(nèi)容。
第7章Linux網(wǎng)絡(luò)及服務(wù)器配置實例介紹Linux網(wǎng)絡(luò)基礎(chǔ)知識、網(wǎng)卡配置、Linux網(wǎng)絡(luò)服務(wù)、samba服務(wù)器配置、DNS服務(wù)器配置、FTP服務(wù)器配置等相關(guān)內(nèi)容。
本書主要由福建工程學(xué)院陳敏、許雪林、湯龍梅、王璇、楊海燕等教師合作編寫,在本書的編寫過程中參考了大量的相關(guān)技術(shù)資料及經(jīng)典案例,吸取了許多寶貴經(jīng)驗,在此一并表示謝意!
由于編者水平有限,書中難免會有疏漏和不妥之處,希望讀者批評指正。作者E-mail:chenmin@fjut.edu.cn。
編者
目錄
第1章概述1
1.1操作系統(tǒng)的定義3
1.1.1面向用戶的操作系統(tǒng)3
1.1.2面向系統(tǒng)資源的操作系統(tǒng)4
1.1.3操作系統(tǒng)的定義4
1.2操作系統(tǒng)的發(fā)展簡史5
1.2.1手工操作階段5
1.2.2監(jiān)督程序階段5
1.2.3執(zhí)行系統(tǒng)階段5
1.2.4多道程序系統(tǒng)階段6
1.2.5操作系統(tǒng)的形成7
1.3操作系統(tǒng)的分類7
1.4計算機系統(tǒng)硬件簡介11
1.4.1中央處理器11
1.4.2存儲器11
1.4.3磁盤12
1.4.4I/O設(shè)備12
1.4.5總線13
1.4.6操作系統(tǒng)的工作過程13
1.5系統(tǒng)調(diào)用15
1.5.1系統(tǒng)調(diào)用的基本類型16
1.5.2系統(tǒng)調(diào)用的實現(xiàn)16
1.6現(xiàn)代操作系統(tǒng)的特征17
1.7操作系統(tǒng)的發(fā)展趨勢19
1.8Linux操作系統(tǒng)簡介20
1.8.1Linux的產(chǎn)生20
1.8.2Linux的特性20
1.8.3Linux與Windows操作系統(tǒng)
之間的差別21
1.8.4Linux的用戶界面22
本章小結(jié)23
習(xí)題24
第2章進程控制25
2.1進程的概念27
2.1.1程序的順序執(zhí)行27
2.1.2程序的并發(fā)執(zhí)行28
2.1.3進程的引入原因31
2.2進程控制38
2.2.1進程創(chuàng)建38
2.2.2進程撤銷40
2.2.3進程阻塞41
2.2.4進程喚醒42
2.2.5Linux進程創(chuàng)建及執(zhí)行實例43
2.3進程間通信45
2.3.1臨界區(qū)與臨界資源46
2.3.2忙等的互斥46
2.3.3用信號量機制實現(xiàn)互斥與
同步50
2.3.4進程通信56
2.3.5LinuxIPC概述57
2.3.6Linux管道通信58
2.3.7Linux軟中斷通信60
2.4經(jīng)典的IPC問題63
2.4.1生產(chǎn)者與消費者問題63
2.4.2哲學(xué)家進餐問題63
2.4.3讀者-寫者問題65
2.5線程66
2.5.1線程的引入及定義66
2.5.2線程與進程的關(guān)系67
2.5.3線程的實現(xiàn)方法68
2.5.4Linux的線程管理68
2.5.5Linux線程管理相關(guān)函數(shù)69
2.5.6Linux線程管理舉例70
2.6管程71
2.6.1管程的提出71
2.6.2管程概念71
2.6.3管程的組成71
2.6.4管程的形式72
2.6.5管程的三個主要特性73
2.7死鎖73
2.7.1死鎖的定義和起因73
2.7.2規(guī)避死鎖的方法74
2.8小型案例實訓(xùn)77
本章小結(jié)78
習(xí)題78
第3章處理機調(diào)度81
3.1作業(yè)的概念82
3.2作業(yè)與進程的關(guān)系83
3.3多級調(diào)度的概念84
3.3.1高級調(diào)度84
3.3.2中級調(diào)度85
3.3.3低級調(diào)度85
3.3.4線程調(diào)度85
3.4調(diào)度算法85
3.4.1作業(yè)調(diào)度算法86
3.4.2進程調(diào)度算法87
3.5進程調(diào)度的時機91
3.6Linux進程調(diào)度91
3.6.1Linux進程調(diào)度的目標(biāo)91
3.6.2Linux進程分類92
3.6.3Linux進程優(yōu)先級92
3.6.4Linux進程調(diào)度程序93
3.6.5進程調(diào)度策略94
3.6.6可變優(yōu)先級94
3.6.7可變時間片94
3.6.8Linux進程調(diào)度實現(xiàn)95
3.7小型案例實訓(xùn)95
本章小結(jié)103
習(xí)題103
第4章存儲管理106
4.1存儲管理概述107
4.1.1計算機系統(tǒng)的存儲體系108
4.1.2存儲器的組織方式109
4.2單一連續(xù)存儲管理112
4.3分區(qū)存儲管理112
4.3.1固定分區(qū)方式112
4.3.2可變分區(qū)方式114
4.3.3分區(qū)式存儲管理的特點116
4.3.4分區(qū)式存儲管理的內(nèi)存擴充
技術(shù)117
4.4分頁存儲管理119
4.4.1分頁存儲管理的基本原理119
4.4.2分頁存儲管理的數(shù)據(jù)結(jié)構(gòu)120
4.4.3頁式地址結(jié)構(gòu)及轉(zhuǎn)換122
4.4.4相聯(lián)存儲器和快表124
4.4.5分頁存儲管理的內(nèi)存分配與
回收125
4.4.6分頁存儲管理的內(nèi)存共享與
保護126
4.4.7分頁存儲管理的特點127
4.5分段存儲管理127
4.5.1分段存儲管理的基本原理127
4.5.2分段存儲管理的數(shù)據(jù)結(jié)構(gòu)128
4.5.3分段存儲管理的地址結(jié)構(gòu)及
轉(zhuǎn)換128
4.5.4內(nèi)存分配與回收129
4.5.5段共享與保護130
4.5.6分段存儲管理的特點131
4.5.7分頁存儲管理和分段存儲管理
的區(qū)別131
4.6段分頁存儲管理131
4.7虛擬存儲管理系統(tǒng)131
4.7.1虛擬存儲概述131
4.7.2請求分頁虛擬存儲管理133
4.7.3請求分段虛擬存儲管理138
4.7.4段頁式虛擬存儲管理138
4.8Linux的存儲管理139
4.8.1Intel80386體系結(jié)構(gòu)下的內(nèi)存管理機制139
4.8.2Linux地址轉(zhuǎn)換機制142
4.8.3Linux內(nèi)存分配和釋放143
4.8.4Linux進程虛擬內(nèi)存地址145
4.8.5Linux頁面操作147
4.9小型案例實訓(xùn)149
本章小結(jié)153
習(xí)題153
57
第2章進程控制
本章要點
*進程的概念。
*進程與程序間的區(qū)別。
*進程控制。
*原語。
*臨界區(qū)、臨界資源。
*進程互斥、進程同步、進程通信。
*信號量機制。
*LinuxIPC種類。
*Linux管道通信。
*Linux軟中斷通信。
*線程的概念。
*管程。
*死鎖的概念。
學(xué)習(xí)目標(biāo)
*理解并掌握進程的概念。
*理解進程與程序的區(qū)別。
*熟悉進程狀態(tài)及轉(zhuǎn)換。
*理解Linux進程狀態(tài)及轉(zhuǎn)換。
*理解并掌握進程控制塊的概念。
*理解原語的概念。
*掌握臨界區(qū)、臨界資源的概念。
*理解并掌握進程互斥、進程同步的概念。
*理解并掌握信號量機制。
*理解排除死鎖的三種方法。
*理解并掌握銀行家算法。
*了解線程、管程的概念。
*理解并掌握Linux管道通信及軟中斷通信方式。
計算機開機后就一直在運行各種各樣的程序,而操作系統(tǒng)的核心任務(wù)就是管理好這些程序,確保它們正確、高效地運行。如果任何時刻,計算機系統(tǒng)中只有一個程序,則該程序?qū)ⅹ氄加嬎銠C系統(tǒng)中的所有資源,整個程序的運行過程就非常簡單,管理起來也很容易。為提高計算機系統(tǒng)中各種資源的利用率,現(xiàn)代操作系統(tǒng)都采用了多道程序設(shè)計技術(shù),多道程序的創(chuàng)建都圍繞著進程的概念。因此,操作系統(tǒng)的程序管理也就轉(zhuǎn)變成了進程管理。
進程是操作系統(tǒng)最基礎(chǔ)和最重要的概念。進程是執(zhí)行中的程序,想要了解程序在系統(tǒng)中的執(zhí)行情況,只有通過進程才能夠了解其中的細節(jié)。進程涉及操作系統(tǒng)中的很多內(nèi)容,因此通過進程的學(xué)習(xí),可以了解操作系統(tǒng)內(nèi)部的工作機制,對于操作系統(tǒng)設(shè)計者及學(xué)生來說,這是至關(guān)重要的。
進程是操作系統(tǒng)中最為抽象的概念之一。單CPU系統(tǒng)中程序是以并發(fā)方式執(zhí)行的,對進程而言,這也就是將CPU虛擬成多個。這種抽象是現(xiàn)代計算機操作環(huán)境下的應(yīng)用基礎(chǔ)。本書內(nèi)容是以單CPU環(huán)境作為實例。
……