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