本書主要內(nèi)容包括: 操作系統(tǒng)概述、進程管理、用戶界面管理、存儲管理、文件管理, 設備管理、Linux網(wǎng)絡及服務器配置等七大部分的內(nèi)容。課程以LINUX操作系統(tǒng)為原型, 實例化相關內(nèi)容, 在學習原理的同時也能一窺操作系統(tǒng)的實際應用。
本書既可作為高等院校計算機及相關專業(yè)本科、?频慕滩, 也可供從事計算機科學、工程、應用等方面工作的科技人員參考使用
前言
操作系統(tǒng)是計算機系統(tǒng)中較為重要的系統(tǒng)軟件,在計算機學科的課程體系中占有重要的地位,是計算機及相關專業(yè)的一門基礎必修課,也是計算機專業(yè)從業(yè)者必須掌握的知識。一本適用的教材對于操作系統(tǒng)的學習尤為重要。因此,作者在多年教學工作的基礎上,結合Linux2.4內(nèi)核相關內(nèi)容編寫了此書。
考慮到課程學習的有限課時數(shù),我們對內(nèi)容進行了精選,著重于操作系統(tǒng)基本概念、基本原理、實現(xiàn)策略、基本算法原理的闡述,力圖從兩個主線――操作系統(tǒng)的資源管理角度和面向用戶的角度將操作系統(tǒng)內(nèi)容組織成一個邏輯清晰的整體。
全書共分7章。從操作系統(tǒng)的資源管理角度分別介紹了相關軟硬件資源管理的內(nèi)容,并在其中引入Linux2.4相關的內(nèi)容進行實例說明。
第1章概述介紹操作系統(tǒng)的基本知識、操作系統(tǒng)的歷史與發(fā)展、操作系統(tǒng)的分類,簡要介紹了計算機系統(tǒng)相關部件,并引入系統(tǒng)調(diào)用的概念,說明了操作系統(tǒng)的特征及發(fā)展趨勢,并對Linux操作系統(tǒng)的產(chǎn)生及發(fā)展特征做了簡要說明。
第2章進程控制介紹進程的概念,對進程控制、進程互斥、同步、通信、進程死鎖、管程、線程的概念等問題進行了分析和討論,并介紹了Linux進程控制、Linux進程通信的內(nèi)容,設計了兩次實驗。
第3章處理機調(diào)度介紹作業(yè)的概念、作業(yè)與進程的關系、多級調(diào)度的概念、作業(yè)及進程調(diào)度算法、Linux進程調(diào)度等相關內(nèi)容。
第4章存儲管理介紹存儲管理功能、單一連續(xù)存儲管理、分區(qū)式管理、分頁式管理、分段式管理、段頁式管理、虛擬存儲技術、Linux存儲管理等知識。
第5章設備管理介紹設備管理概述、設備控制器、設備的數(shù)據(jù)傳輸控制方式、中斷技術、緩沖技術、設備獨立性、設備分配、SPOOLing技術等內(nèi)容。
第6章文件系統(tǒng)介紹文件的基本概念、文件組織形式、文件存儲空間管理方法、文件目錄管理、文件操作、文件系統(tǒng)的層次模型、Linux文件系統(tǒng)概述等內(nèi)容。
第7章Linux網(wǎng)絡及服務器配置實例介紹Linux網(wǎng)絡基礎知識、網(wǎng)卡配置、Linux網(wǎng)絡服務、samba服務器配置、DNS服務器配置、FTP服務器配置等相關內(nèi)容。
本書主要由福建工程學院陳敏、許雪林、湯龍梅、王璇、楊海燕等教師合作編寫,在本書的編寫過程中參考了大量的相關技術資料及經(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設備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
本章小結23
習題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哲學家進餐問題63
2.4.3讀者-寫者問題65
2.5線程66
2.5.1線程的引入及定義66
2.5.2線程與進程的關系67
2.5.3線程的實現(xiàn)方法68
2.5.4Linux的線程管理68
2.5.5Linux線程管理相關函數(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小型案例實訓77
本章小結78
習題78
第3章處理機調(diào)度81
3.1作業(yè)的概念82
3.2作業(yè)與進程的關系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)度的目標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小型案例實訓95
本章小結103
習題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)存擴充
技術117
4.4分頁存儲管理119
4.4.1分頁存儲管理的基本原理119
4.4.2分頁存儲管理的數(shù)據(jù)結構120
4.4.3頁式地址結構及轉換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ù)結構128
4.5.3分段存儲管理的地址結構及
轉換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體系結構下的內(nèi)存管理機制139
4.8.2Linux地址轉換機制142
4.8.3Linux內(nèi)存分配和釋放143
4.8.4Linux進程虛擬內(nèi)存地址145
4.8.5Linux頁面操作147
4.9小型案例實訓149
本章小結153
習題153
57
第2章進程控制
本章要點
*進程的概念。
*進程與程序間的區(qū)別。
*進程控制。
*原語。
*臨界區(qū)、臨界資源。
*進程互斥、進程同步、進程通信。
*信號量機制。
*LinuxIPC種類。
*Linux管道通信。
*Linux軟中斷通信。
*線程的概念。
*管程。
*死鎖的概念。
學習目標
*理解并掌握進程的概念。
*理解進程與程序的區(qū)別。
*熟悉進程狀態(tài)及轉換。
*理解Linux進程狀態(tài)及轉換。
*理解并掌握進程控制塊的概念。
*理解原語的概念。
*掌握臨界區(qū)、臨界資源的概念。
*理解并掌握進程互斥、進程同步的概念。
*理解并掌握信號量機制。
*理解排除死鎖的三種方法。
*理解并掌握銀行家算法。
*了解線程、管程的概念。
*理解并掌握Linux管道通信及軟中斷通信方式。
計算機開機后就一直在運行各種各樣的程序,而操作系統(tǒng)的核心任務就是管理好這些程序,確保它們正確、高效地運行。如果任何時刻,計算機系統(tǒng)中只有一個程序,則該程序將獨占計算機系統(tǒng)中的所有資源,整個程序的運行過程就非常簡單,管理起來也很容易。為提高計算機系統(tǒng)中各種資源的利用率,現(xiàn)代操作系統(tǒng)都采用了多道程序設計技術,多道程序的創(chuàng)建都圍繞著進程的概念。因此,操作系統(tǒng)的程序管理也就轉變成了進程管理。
進程是操作系統(tǒng)最基礎和最重要的概念。進程是執(zhí)行中的程序,想要了解程序在系統(tǒng)中的執(zhí)行情況,只有通過進程才能夠了解其中的細節(jié)。進程涉及操作系統(tǒng)中的很多內(nèi)容,因此通過進程的學習,可以了解操作系統(tǒng)內(nèi)部的工作機制,對于操作系統(tǒng)設計者及學生來說,這是至關重要的。
進程是操作系統(tǒng)中最為抽象的概念之一。單CPU系統(tǒng)中程序是以并發(fā)方式執(zhí)行的,對進程而言,這也就是將CPU虛擬成多個。這種抽象是現(xiàn)代計算機操作環(huán)境下的應用基礎。本書內(nèi)容是以單CPU環(huán)境作為實例。
……