出版時(shí)間:2012-1 出版社:東軟電子出版社 作者:董祥千 編 頁(yè)數(shù):343 字?jǐn)?shù):564
內(nèi)容概要
本教材以Linux操作系統(tǒng)內(nèi)核為基礎(chǔ),本著循序漸進(jìn)的原則,采用通俗易懂的語(yǔ)言和豐富的實(shí)例,闡述操作系統(tǒng)的基本概念、原理及方法。全教材共9章:第1章緒論;第2章操作系統(tǒng)的導(dǎo)引;第3章存儲(chǔ)管理;第4章進(jìn)程管理;第5章處理機(jī)管理;第6章操作系統(tǒng)用戶接口;第7章設(shè)備管理;第8章文件管理;第9章Linux內(nèi)核分析。本教材適用于計(jì)算機(jī)專業(yè)本、??啤队?jì)算機(jī)操作系統(tǒng)》相關(guān)課程的教學(xué)。
書籍目錄
第1章緒論
1.1學(xué)習(xí)引導(dǎo)
1.2操作系統(tǒng)的概念
1.2.1什么是操作系統(tǒng)
1.2.2操作系統(tǒng)的發(fā)展
1.3操作系統(tǒng)的功能
1.3.1處理機(jī)管理
1.3.2存儲(chǔ)器管理
1.3.3設(shè)備管理
1.3.4文件管理
1.3.5用戶接口
1.4操作系統(tǒng)的分類
1.4.1單用戶操作系統(tǒng)
1.4.2多道批處理系統(tǒng)
1.4.3分時(shí)系統(tǒng)
1.4.4實(shí)時(shí)系統(tǒng)
1.4.5網(wǎng)絡(luò)操作系統(tǒng)
1.4.6分布式操作系統(tǒng)
1.4.7嵌入式操作系統(tǒng)
1.5操作系統(tǒng)的特征和性能指標(biāo)
1.5.1操作系統(tǒng)的特征
1.5.2操作系統(tǒng)性能指標(biāo)
1.6Linux系統(tǒng)概述
1.6.1Linux系統(tǒng)形成和發(fā)展的基礎(chǔ)
1.6.2Linux系統(tǒng)的特點(diǎn)
1.7單元項(xiàng)目:Linux內(nèi)核結(jié)構(gòu)
1.8擴(kuò)展閱讀
1.9本章小結(jié)
1.10習(xí)題
第2章操作系統(tǒng)的引導(dǎo)
2.1學(xué)習(xí)引導(dǎo)
2.2系統(tǒng)啟動(dòng)硬件基礎(chǔ)
2.2.1主板與內(nèi)存映射
2.2.2加電自檢(POST)過(guò)程
2.3根文件系統(tǒng)
2.3.1根文件系統(tǒng)
2.3.2Busybox文件系統(tǒng)簡(jiǎn)介
2.4操作系統(tǒng)啟動(dòng)過(guò)程
2.4.1引導(dǎo)程序BootLoader的加載
2.4.2操作系統(tǒng)內(nèi)核的加載
2.4.3計(jì)算機(jī)啟動(dòng)過(guò)程
2.5GDB調(diào)試
2.5.1GDB簡(jiǎn)介
2.5.2GDB命令
2.6單元項(xiàng)目
2.6.1Linux內(nèi)核的編譯
2.6.2制作帶根文件系統(tǒng)的磁盤映像
2.6.3制作帶引導(dǎo)功能的啟動(dòng)磁盤
2.6.4Linux內(nèi)核調(diào)試
2.7本章小結(jié)
2.8習(xí)題
第3章存儲(chǔ)管理
3.1學(xué)習(xí)引導(dǎo)
3.2存儲(chǔ)管理的基本概念
3.2.1存儲(chǔ)管理的目的和功能
3.2.2存儲(chǔ)管理的方式
3.3連續(xù)分配方式
3.3.1單一連續(xù)分配
3.3.2固定分區(qū)存儲(chǔ)管理
3.3.3動(dòng)態(tài)分區(qū)存儲(chǔ)管理
3.3.4交換技術(shù)
3.4離散分配方式
3.4.1基本分頁(yè)存儲(chǔ)管理
3.4.2基本分段存儲(chǔ)管理方式
3.4.3段頁(yè)式存儲(chǔ)管理方式
3.5虛擬存儲(chǔ)器
3.5.1虛擬存儲(chǔ)器的引入
3.5.2虛擬存儲(chǔ)器的實(shí)現(xiàn)
3.5.3虛擬存儲(chǔ)器的特征
3.6請(qǐng)求分頁(yè)存儲(chǔ)管理
3.6.1請(qǐng)求分頁(yè)中的硬件支持
3.6.2內(nèi)存的分配
3.6.3頁(yè)面置換算法
3.6.4頁(yè)面抖動(dòng)現(xiàn)象
3.7請(qǐng)求分段存儲(chǔ)管理
3.7.1段表機(jī)制
3.7.2缺段中斷機(jī)構(gòu)
3.7.3地址變換機(jī)構(gòu)
3.8Linux內(nèi)存管理
3.8.1Linux存儲(chǔ)管理的重要數(shù)據(jù)結(jié)構(gòu)
3.8.2頁(yè)表的管理
3.8.3頁(yè)面分配和回收
3.8.4Linux頁(yè)面置換
3.9單元項(xiàng)目
3.9.1動(dòng)態(tài)分區(qū)分配模擬項(xiàng)目
3.9.2頁(yè)面置換算法模擬項(xiàng)目
3.10本章小結(jié)
3.11習(xí)題
第4章進(jìn)程管理
4.1學(xué)習(xí)引導(dǎo)
4.2進(jìn)程管理
4.2.1程序、程序的順序執(zhí)行及其特征
4.2.2程序的并發(fā)執(zhí)行及其特征
4.2.3進(jìn)程的定義及其特征
4.2.4進(jìn)程的基本狀態(tài)及其轉(zhuǎn)換
4.2.5進(jìn)程切換
4.2.6進(jìn)程控制塊PCB
4.2.7進(jìn)程控制塊的組織方式
4.2.8進(jìn)程控制
4.3進(jìn)程互斥與同步及信號(hào)量機(jī)制
4.3.1臨界資源和臨界區(qū)
4.3.2進(jìn)程互斥與同步的概念
4.3.3信號(hào)量機(jī)制
4.3.4信號(hào)量集機(jī)制
4.4進(jìn)程間通信
4.4.1進(jìn)程間通信的方式
4.4.2進(jìn)程地址空間
4.4.3Linux進(jìn)程間通信
4.4.4System V共享內(nèi)存實(shí)現(xiàn)
4.4.5System V共享內(nèi)存編程接口
4.4.6System V信號(hào)量機(jī)制
4.5死鎖
4.5.1死鎖產(chǎn)生的原因和必要條件
4.5.2解決死鎖的基本方法
4.6Linux進(jìn)程的實(shí)現(xiàn)
4.6.1Linux進(jìn)程描述符
4.6.2Linux進(jìn)程的狀態(tài)
4.6.3Linux進(jìn)程的虛擬內(nèi)存布局
4.6.4Linux進(jìn)程的內(nèi)核堆棧
4.6.5Linux的init進(jìn)程
4.6.7Linux用戶進(jìn)程的創(chuàng)建
4.7線程
4.7.1線程的基本概念
4.7.2用戶級(jí)線程與內(nèi)核級(jí)線程
4.7.3多線程模型
4.7.4Linux線程技術(shù)
4.7.5Glibc中的NTPL庫(kù)編程接口
4.7.6POSIX信號(hào)量
4.8單元項(xiàng)目
4.8.1進(jìn)程管理的模擬實(shí)現(xiàn)
4.8.2生產(chǎn)者-消費(fèi)者問(wèn)題
4.8.3利用共享內(nèi)存實(shí)現(xiàn)讀者寫者問(wèn)題
4.8.4哲學(xué)家就餐問(wèn)題
4.8.5司機(jī)與售票員問(wèn)題
4.9本章小結(jié)
4.10習(xí)題
第5章處理機(jī)管理
5.1學(xué)習(xí)引導(dǎo)
5.2基本知識(shí)
5.2.1調(diào)度程序
5.2.2分派程序
5.2.3調(diào)度算法的若干準(zhǔn)則
5.2.4進(jìn)程優(yōu)先級(jí)
5.2.5調(diào)度策略
5.2.6進(jìn)程調(diào)度層次
5.2.7進(jìn)程調(diào)度的功能
5.2.8進(jìn)程調(diào)度時(shí)機(jī)
5.2.9作業(yè)的狀態(tài)及其轉(zhuǎn)換
5.3常用的調(diào)度隊(duì)列模型
5.3.1只有進(jìn)程調(diào)度的調(diào)度隊(duì)列模型
5.3.2具有高級(jí)和低級(jí)調(diào)度的調(diào)度隊(duì)列模型
5.3.3同時(shí)具有三級(jí)調(diào)度的調(diào)度隊(duì)列模型
5.4常用調(diào)度算法
5.4.1先來(lái)先服務(wù)調(diào)度算法
5.4.2短作業(yè)調(diào)度算法(SJF)或短進(jìn)程調(diào)度算法(SPF)
5.4.3高響應(yīng)比優(yōu)先調(diào)度算法(HRN)
5.4.4最高優(yōu)先級(jí)(FPF)優(yōu)先調(diào)度算法
5.4.5基于時(shí)間片輪轉(zhuǎn)的調(diào)度算法
5.5Linux進(jìn)程調(diào)度框架
5.5.1Linux進(jìn)程的分類
5.5.2時(shí)間片的選擇
5.5.3Linux2.6.26的兩種主流調(diào)度器
5.6單元項(xiàng)目
5.6.1作業(yè)調(diào)度算法模擬
5.6.2進(jìn)程調(diào)度算法模擬
5.6.3CFS算法在Linux上的實(shí)現(xiàn)分析
5.7本章小結(jié)
5.8習(xí)題
第6章操作系統(tǒng)用戶接口
6.1學(xué)習(xí)引導(dǎo)
6.2操作系統(tǒng)的接口
6.2.1程序接口
6.2.2命令接口
6.2.3作業(yè)控制級(jí)接口
6.3Linux的用戶接口
6.3.1常用Shell命令
6.3.2Shell編程
6.4單元項(xiàng)目
6.4.1“Hello world”項(xiàng)目
6.4.2Shell變量項(xiàng)目
6.4.3Shell程序設(shè)計(jì)的流程控制項(xiàng)目
6.5擴(kuò)展閱讀
6.6本章小結(jié)
6.7習(xí)題
第7章設(shè)備管理
7.1學(xué)習(xí)引導(dǎo)
7.2設(shè)備管理概述
7.2.1設(shè)備管理的目的和功能
7.2.2設(shè)備的分類
7.3I/O系統(tǒng)
7.3.1設(shè)備控制器
7.3.2I/O通道
7.3.3總線系統(tǒng)
7.4I/O數(shù)據(jù)傳輸方式
7.4.1程序循環(huán)測(cè)試方式
7.4.2中斷驅(qū)動(dòng)I/O控制方式
7.4.3直接存儲(chǔ)器存?。―MA)方式
7.4.4I/O通道方式
7.5緩沖技術(shù)
7.5.1緩沖的引入
7.5.2緩沖的類型
7.6設(shè)備分配
7.6.1設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)
7.6.2設(shè)備的獨(dú)立性
7.6.3分配中應(yīng)考慮的因素
7.6.4獨(dú)占設(shè)備的分配程序
7.7I/O處理
7.7.1中斷處理程序
7.7.2設(shè)備驅(qū)動(dòng)程序
7.8虛擬設(shè)備
7.8.1Spooling技術(shù)
7.8.2共享打印機(jī)
7.9磁盤管理
7.9.1磁盤概述
7.9.2磁盤調(diào)度
7.9.3廉價(jià)磁盤冗余陣列
7.10Linux設(shè)備管理
7.10.1Linux中的設(shè)備文件
7.10.2Linux的設(shè)備驅(qū)動(dòng)程序
7.10.3Linux的中斷處理
7.11單元項(xiàng)目:磁盤調(diào)度算法模擬實(shí)驗(yàn)
7.12本章小結(jié)
7.13習(xí)題
第8章文件管理
8.1學(xué)習(xí)引導(dǎo)
8.2文件的基本概念
8.2.1文件屬性
8.2.2文件操作
8.2.3文件格式
8.2.4文件結(jié)構(gòu)
8.3文件存取方法
8.3.1順序存取
8.3.2直接存?。S機(jī)存取)
8.3.3按鍵存取
8.4文件目錄
8.4.1文件目錄結(jié)構(gòu)
8.4.2文件目錄的實(shí)現(xiàn)
8.5文件系統(tǒng)
8.5.1文件系統(tǒng)的功能
8.5.2文件系統(tǒng)的層次結(jié)構(gòu)
8.6空閑存儲(chǔ)空間的管理
8.6.1空閑空間表法
8.6.2空閑塊鏈法
8.6.3位示圖法
8.6.4成組鏈接法
8.7磁盤空間分配方式
8.7.1連續(xù)分配方式
8.7.2鏈接分配方式
8.7.3索引分配方式
8.8文件共享
8.8.1早期文件共享的方法
8.8.2基于索引結(jié)點(diǎn)的共享方式(硬鏈接)
8.8.3利用符號(hào)鏈實(shí)現(xiàn)文件共享(軟鏈接)
8.9文件保護(hù)
8.9.1保護(hù)域
8.9.2訪問(wèn)矩陣
8.9.3訪問(wèn)矩陣的修改
8.9.4訪問(wèn)矩陣的實(shí)現(xiàn)
8.9.5分級(jí)安全管理
8.10Linux文件系統(tǒng)分析
8.10.1Linux文件系統(tǒng)體系結(jié)構(gòu)
8.10.2VFS文件系統(tǒng)
8.10.3ext2文件系統(tǒng)
8.10.4文件系統(tǒng)的掛載
8.11單元項(xiàng)目
8.11.1Linux文件系統(tǒng)模擬
8.11.2給Linux系統(tǒng)添加新硬盤
8.12本章小結(jié)
8.13習(xí)題
第9章Linux內(nèi)核分析
9.1學(xué)習(xí)引導(dǎo)
9.2Linux內(nèi)核代碼組織
9.2.1微內(nèi)核與單內(nèi)核
9.2.2Linux內(nèi)核源代碼結(jié)構(gòu)
9.3Linux內(nèi)核分析方法
9.4單元項(xiàng)目
9.4.1Linux中的時(shí)鐘和定時(shí)測(cè)量的初始化
9.4.2Linux內(nèi)核編譯過(guò)程分析
9.4.3Linux操作系統(tǒng)啟動(dòng)過(guò)程分析
9.5本章小結(jié)
9.6習(xí)題
參考文獻(xiàn)
章節(jié)摘錄
版權(quán)頁(yè): 插圖: 4.4.3 Linux進(jìn)程間通信 Linux下的進(jìn)程通信手段基本上是從UNIX平臺(tái)上的進(jìn)程通信手段繼承而來(lái)的。而對(duì)UNIX發(fā)展做出重大貢獻(xiàn)的兩大主力AT&T的貝爾實(shí)驗(yàn)室及BSD(加州大學(xué)伯克利分校的伯克利軟件發(fā)布中心在進(jìn)程間通信方面的側(cè)重點(diǎn)有所不同。前者對(duì)UNIX早期的進(jìn)程間通信手段進(jìn)行了系統(tǒng)的改進(jìn)和擴(kuò)充,形成了“system V IPC”,通信進(jìn)程局限在單個(gè)計(jì)算機(jī)內(nèi);后者則跳過(guò)了該限制,形成了基于套接口(socket)的進(jìn)程間通信機(jī)制。Linux則把兩者繼承了下來(lái),如圖4.15所示。 其中,最初UNIX IPC包括:管道、FIFO、信號(hào);System V IPC包括:System V消息隊(duì)列、System V信號(hào)燈、System V共享內(nèi)存區(qū);Posix IPC包括:Posix消息隊(duì)列、Posix信號(hào)燈、Posix共享內(nèi)存區(qū)。這里有有兩點(diǎn)需要簡(jiǎn)單說(shuō)明: (1)由于UNIX版本的多樣性,電子電氣工程協(xié)會(huì)(IEEE)開(kāi)發(fā)了一個(gè)獨(dú)立的UNIX標(biāo)準(zhǔn),這個(gè)新的ANSI UNIX標(biāo)準(zhǔn)被稱為計(jì)算機(jī)環(huán)境的可移植性操作系統(tǒng)界面(PSOIX)?,F(xiàn)有大部分Unix和流行版本都是遵循POSIX標(biāo)準(zhǔn)的,而Linux從一開(kāi)始就遵循POSIX標(biāo)準(zhǔn)。 (2)BSD并不是沒(méi)有涉足單機(jī)內(nèi)的進(jìn)程間通信(socket本身就可以用于單機(jī)內(nèi)的進(jìn)程間通信)。事實(shí)上,很多UNIX版本的單機(jī)IPC留有BSD的痕跡,如4.4BSD支持的匿名內(nèi)存映射、4.3+BSD對(duì)可靠信號(hào)語(yǔ)義的實(shí)現(xiàn)等。 圖4.15表示出了Linux所支持的各種IPC手段,在本文接下來(lái)的討論中,為了避免概念上的混淆,在盡可能少提及UNIX的各個(gè)版本的情況下,所有問(wèn)題的討論最終都會(huì)歸結(jié)到Linux環(huán)境下的進(jìn)程間通信上來(lái)。對(duì)于Linux所支持通信手段的不同實(shí)現(xiàn)版本(如對(duì)于共享內(nèi)存來(lái)說(shuō),有Posix共享內(nèi)存區(qū)以及System V共享內(nèi)存區(qū)兩個(gè)實(shí)現(xiàn)版本),將主要介紹System VAPI,在4.5節(jié)將介紹Posix的信號(hào)量機(jī)制。 至此,可以總結(jié)出Linux下進(jìn)程間通信的幾種主要方式: (1)管道(Pipe)及有名管道(named pipe):管道可用于具有親緣關(guān)系進(jìn)程間的通信,有名管道克服了管道沒(méi)有名字的限制,因此,除具有管道所具有的功能外,它還允許無(wú)親緣關(guān)系進(jìn)程間的通信。
編輯推薦
《CDIO工程教育系列教程?計(jì)算機(jī)專業(yè)基礎(chǔ)類:計(jì)算機(jī)操作系統(tǒng)(Linux)教程》是由東軟電子出版社出版。
圖書封面
評(píng)論、評(píng)分、閱讀與下載
CDIO工程教育系列教程·計(jì)算機(jī)專業(yè)基礎(chǔ)類 PDF格式下載