本書是依據(jù)教育部高等學(xué)校計算機科學(xué)與技術(shù)教學(xué)指導(dǎo)委員會2006年編制的《高等學(xué)校計算機科學(xué)與技術(shù)專業(yè)規(guī)范(信息技術(shù)方向)》,為計算機系統(tǒng)平臺課程編寫的。力圖幫助學(xué)生建立系統(tǒng)平臺的理念,形成總體認(rèn)識,從底層到頂層了解和掌握計算機系統(tǒng)的層次結(jié)構(gòu)及軟硬件系統(tǒng)的工作原理。全書共分為12章,包括計算機系統(tǒng)概述、指令系統(tǒng)與匯編程序設(shè)計、計算機信息表示、計算機組成原理、計算機操作系統(tǒng)、Shell編程、應(yīng)用開發(fā)平臺等內(nèi)容。本教材可作為計算機科學(xué)與技術(shù)專業(yè)教材,也可作為其他相關(guān)專業(yè)的學(xué)生學(xué)習(xí)計算機系統(tǒng)基礎(chǔ)知識的教材。
介紹計算機組成原理和計算機操作系統(tǒng),包括計算機系統(tǒng)硬件與操作系統(tǒng)平臺,內(nèi)容涉及計算機性能分析、系統(tǒng)體系結(jié)構(gòu)、CPU、高速緩存、存儲器、外部設(shè)備,以及匯編語言程序設(shè)計、BIOS和操作系統(tǒng)等。
隨著信息技術(shù)的飛速發(fā)展,計算機應(yīng)用技術(shù)已經(jīng)向各行各業(yè)滲透,并衍生了不少與信息技術(shù)相關(guān)的交叉學(xué)科,計算機知識與技能已經(jīng)成為當(dāng)代具有創(chuàng)新能力的復(fù)合型人才必須具備的基本素質(zhì)之一。如何做好計算機專業(yè)的基礎(chǔ)教學(xué)工作和計算機專業(yè)人才培養(yǎng)工作等,已經(jīng)成為教育部門關(guān)注的熱點問題之一。
針對近年來社會對信息化技術(shù)應(yīng)用型人才需求的不斷提高,結(jié)合西部經(jīng)濟建設(shè)發(fā)展的需求與特點,以及國家西部大開發(fā)戰(zhàn)略,青海大學(xué)在教育部對口支援政策的指導(dǎo)下,在教育部、青海省人民政府的支持和清華大學(xué)的幫助下,于2007年5月正式成立了計算機技術(shù)與應(yīng)用系,并率先在青海省實現(xiàn)本科第一批次錄取零的突破,成為省內(nèi)高校第一個一本招生的專業(yè)。青海大學(xué)計算機系培養(yǎng)計劃中的課程體系由清華大學(xué)專家精心設(shè)計,課程內(nèi)容緊扣教育部最新制訂的信息技術(shù)與應(yīng)用培養(yǎng)方向,滿足應(yīng)用型人才的培養(yǎng)需求。
青海大學(xué)計算機技術(shù)與應(yīng)用系(以下簡稱本系)根據(jù)青海大學(xué)的實際情況,將專業(yè)方向設(shè)定成2006年計算機專業(yè)教指委提出的信息技術(shù)方向,目標(biāo)是培養(yǎng)應(yīng)用型計算機人才。這一方向是計算機科學(xué)與技術(shù)教學(xué)指導(dǎo)委員會積極倡導(dǎo)和推動的新專業(yè)方向,教育部也擬就這一方向展開專業(yè)試點工作。針對此現(xiàn)狀,本系希望能夠開辦一系列面向培養(yǎng)應(yīng)用性人才的特色課程,開辟一條具有挑戰(zhàn)性的課程探索與建設(shè)之路。
為了深入對計算機科學(xué)與技術(shù)專業(yè)信息技術(shù)方向的教學(xué)研究,促進這個新的專業(yè)方向的教學(xué)實踐,需要開設(shè)一系列嶄新的課程,以適應(yīng)社會對人才知識結(jié)構(gòu)的需求。計算機系統(tǒng)平臺課程就是該方向建設(shè)規(guī)范中所提出的一門全新課程,目標(biāo)是將匯編語言程序設(shè)計、計算機組成原理、體系結(jié)構(gòu)、操作系統(tǒng)等傳統(tǒng)課程中的內(nèi)容進行有機整合,將計算機系統(tǒng)作為一個整體進行分析和學(xué)習(xí)并講授給學(xué)生,同時注重學(xué)生動手實踐的環(huán)節(jié),通過理論結(jié)合實際來鞏固對計算機系統(tǒng)平臺的認(rèn)識。這樣的一門介紹計算機原理的綜合性課程無論從教材方面還是課堂教學(xué)與實驗環(huán)節(jié)都缺乏先例。本系開設(shè)這門課程,希望能夠不斷的探索和實踐將此課程建設(shè)成特色課程,對教學(xué)內(nèi)容和教學(xué)方法進行深入研究,最終目標(biāo)是能把該特色課程建設(shè)成為西部地區(qū)乃至全國的示范性精品課程。
以計算機系統(tǒng)平臺命名的專業(yè)課程,目前在國內(nèi)高校中少有先例,也可以說這正是信息技術(shù)方向所追求教學(xué)內(nèi)容的一個特色。根據(jù)該方向的定位,本課程不討論平臺構(gòu)建本身,而是從不同角度或?qū)用婵从嬎銠C系統(tǒng)平臺的含義,了解并掌握它們所提供的支撐功能,扼要的介紹一些典型功能實現(xiàn)的基本原理。本課程的主要目的是使學(xué)生掌握計算機系統(tǒng)結(jié)構(gòu)的基本原理,理解計算機操作系統(tǒng)的結(jié)構(gòu)和工作原理,使學(xué)生熟悉計算機的硬件系統(tǒng)和軟件系統(tǒng),建立完整的計算機系統(tǒng)的概念,為學(xué)生應(yīng)用計算機系統(tǒng)解決實際問題奠定良好的基礎(chǔ)。
課程的主要任務(wù)是介紹計算機組成原理和計算機操作系統(tǒng),包括計算機系統(tǒng)硬件與操作系統(tǒng)平臺,內(nèi)容涉及計算機性能分析、系統(tǒng)體系結(jié)構(gòu)、CPU、高速緩存、存儲器、外部設(shè)備,以及匯編語言程序設(shè)計、BIOS和操作系統(tǒng)等。在課程的教學(xué)過程中,逐步培養(yǎng)學(xué)生獨立進行實驗和應(yīng)用的能力。
2011年,本課程獲批青海大學(xué)三類課程建設(shè)項目,并于2013年11月完成結(jié)題工作,課程建設(shè)已有初步成效。2013年底申報青海大學(xué)一類課程建設(shè)項目并再次獲批,使得本門課程的建設(shè)得到了有力的后續(xù)支持。為形成一本更加適合于本課程的教材,課程組成員先從講義撰寫做起,力圖梳理計算機組成原理、軟硬件架構(gòu)、操作系統(tǒng)、開發(fā)平臺等多方面的知識,形成完整的文稿。
本書共12章。第1章對計算機系統(tǒng)進行了概述,旨在介紹計算機的發(fā)展歷史和未來趨勢,并對計算機組成結(jié)構(gòu)及性能指標(biāo)進行大致了解,形成基本概念。第2章介紹指令系統(tǒng)和匯編語言,從二進制轉(zhuǎn)換和運算基礎(chǔ)開始,對指令系統(tǒng)和指令格式進行介紹和舉例,并給出一些匯編程序設(shè)計的示例。第3章介紹計算機中信息表示的方法,包括常見的數(shù)字、字符如何進行編碼。第4章詳細(xì)講解了計算機五大功能部件的基本工作原理,包括總線、存儲器、CPU、輸入/輸出系統(tǒng)等,并進一步通過延伸展望計算機系統(tǒng)結(jié)構(gòu)的發(fā)展。第5章從操作平臺的角度介紹計算機操作系統(tǒng)的目標(biāo)、作用、功能和發(fā)展歷程,探討操作系統(tǒng)的基本特性,并介紹一些常見的操作系統(tǒng)及其特點。第6章對進程的管理機制進行闡述,包括進程的基本定義、狀態(tài)及轉(zhuǎn)換、進程控制塊以及常見的進程調(diào)度算法等。第7章進一步對進程同步的經(jīng)典問題展開討論,介紹了進程和線程的聯(lián)系與區(qū)別,并對死鎖問題的產(chǎn)生和對策進行了講解。第8章從存儲管理的角度入手對內(nèi)存管理的幾種方法由淺入深地進行了介紹。第9章繼續(xù)講述了磁盤層面上的信息存儲管理,解析文件的構(gòu)成和文件系統(tǒng)的層次,并介紹了一些基本的磁盤調(diào)度算法。第10章對操作系統(tǒng)的外設(shè)管理功能進行了介紹,從I/O控制方式入手,重點討論中斷技術(shù)的原理,并講解了設(shè)備分配的特點和驅(qū)動程序的處理過程。第11章進入上層應(yīng)用的平臺部分,介紹了系統(tǒng)初始化的過程以及Shell編程的基本語法結(jié)構(gòu),使讀者接觸到與底層系統(tǒng)和上層開發(fā)銜接較為緊密的一種的特殊腳本語言。第12章介紹了幾種主流的程序設(shè)計語言和開發(fā)工具,從平臺的角度完成最上層應(yīng)用的闡述,旨在使讀者了解完整平臺架構(gòu)中的各個環(huán)節(jié)。本書每章后都配有相應(yīng)習(xí)題,供讀者對本章內(nèi)容進行回顧。
本書出版受青海大學(xué)2015年度教材建設(shè)基金項目資助,由王曉英、曹騰飛、孟永偉、黃建強任主編,多名教師參與編寫。其中,第1章和第四章內(nèi)容主要由曹騰飛編寫,第2章和第3章主要由韓亮編寫,第5章和第8章主要由張玉安編寫,第6章和第7章主要由劉曉靜編寫,第9章和第12章主要由黃建強編寫,第10章和第11章主要由孟永偉編寫。此外,王璐、賈金芳、易爭鳴、吳利等人均參與了本書相關(guān)內(nèi)容的設(shè)計、實驗的實施以及通讀審核等工作。本書的編寫也得到了學(xué)校和各級部門的支持,在此一并表示感謝。
由于作者水平有限,時間倉促,書稿中難免有不妥和紕漏之處,懇請讀者批評指正。
編 者
2016年3月
王曉英:博士、教授、青海大學(xué)計算機技術(shù)與應(yīng)用系副主任;主講課程:計算機系統(tǒng)平臺,離散數(shù)學(xué)
第1章 計算機系統(tǒng)概述 1
1.1 計算機的發(fā)展史及未來展望
1
1.1.1
計算機的基本概念及分類 1
1.1.2
計算機的發(fā)展簡史 1
1.1.3
微型計算機的誕生與發(fā)展 2
1.1.4
計算機未來展望 3
1.2 計算機組成結(jié)構(gòu) 4
1.2.1
馮·諾依曼思想 4
1.2.2
計算機硬件組成 5
1.2.3
計算機軟件系統(tǒng) 7
1.2.4
計算機系統(tǒng)的層次結(jié)構(gòu) 7
1.2.5
計算機軟件與硬件的邏輯等價性 8
1.2.6
計算機的性能指標(biāo) 8
本章小結(jié) 9
習(xí)題1 9
第2章 指令系統(tǒng)與匯編程序設(shè)計
11
2.1 進位制及其轉(zhuǎn)換 11
2.1.1
進位制 11
2.1.2
進制轉(zhuǎn)換 12
2.1.3
二進制數(shù)的運算 15
2.2 指令系統(tǒng)和指令格式概述
17
2.2.1
指令的一般格式 19
2.2.2
操作數(shù)與操作類型 20
2.2.3
CPU的寄存器 21
2.2.4
尋址方式 23
2.3 指令系統(tǒng)舉例 25
2.3.1
Intel 8086/8088指令系統(tǒng) 25
2.3.2
TEC-2008指令系統(tǒng) 36
2.4 匯編程序設(shè)計舉例 40
本章小結(jié) 42
習(xí)題2 42
第3章 計算機信息表示 46
3.1 數(shù)字的編碼 46
3.1.1
無符號數(shù) 46
3.1.2
有符號數(shù) 46
3.1.3
定點數(shù)與浮點數(shù) 49
3.2 字符編碼 51
3.2.1
ASCII字符集及其編碼 51
3.2.2
漢字字符集及其編碼 51
3.2.3
Unicode字符集及其編碼 53
3.3 機器指令 55
本章小結(jié) 56
習(xí)題3 56
第4章 計算機組成原理 58
4.1 總線 58
4.1.1
總線的基本概念 59
4.1.2
總線的類型與結(jié)構(gòu) 59
4.1.3
總線的連接方式 61
4.1.4
總線仲裁 62
4.1.5
總線標(biāo)準(zhǔn) 63
4.2 存儲器 64
4.2.1
存儲器相關(guān)概念 64
4.2.2
存儲器分類 65
4.2.3
存儲系統(tǒng)層次結(jié)構(gòu) 66
4.3 中央處理器(CPU) 72
4.3.1
CPU的功能和組成 72
4.3.2
指令周期 75
4.3.3
時序控制信號 75
4.3.4
指令流水 76
4.4 輸入/輸出系統(tǒng) 78
4.4.1
輸入/輸出系統(tǒng)概述 78
4.4.2
I/O設(shè)備 84
4.4.3
I/O接口 85
4.4.4
程序中斷方式 87
4.5 計算機系統(tǒng)結(jié)構(gòu) 90
4.5.1
計算機系統(tǒng)的結(jié)構(gòu)類型 91
4.5.2
計算機系統(tǒng)的性能提高 94
4.5.3
計算機系統(tǒng)的發(fā)展 94
本章小結(jié) 100
習(xí)題4 100
第5章 計算機操作系統(tǒng)概述 104
5.1 操作系統(tǒng)的目標(biāo)和作用
104
5.1.1
作為用戶/計算機接口的操作系統(tǒng) 105
5.1.2
作為資源管理器的操作系統(tǒng) 106
5.2 操作系統(tǒng)的發(fā)展過程 107
5.2.1
手工操作(無操作系統(tǒng)) 107
5.2.2
簡單批處理系統(tǒng) 108
5.2.3
多道批處理系統(tǒng) 108
5.2.4
分時系統(tǒng) 110
5.3 操作系統(tǒng)的基本特性 111
5.3.1
并行與并發(fā)(Concurrence) 111
5.3.2
共享(Sharing) 111
5.3.3
虛擬技術(shù) 111
5.3.4
異步性 112
5.4 操作系統(tǒng)的主要功能 112
5.5 常見操作系統(tǒng)及分類 113
5.5.1
Windows操作系統(tǒng) 113
5.5.2
Linux操作系統(tǒng) 114
本章小結(jié) 115
習(xí)題5 115
第6章 進程的管理 117
6.1 進程的概念 117
6.1.1
進程的定義 117
6.1.2
進程的特征 118
6.1.3
程序的并發(fā)執(zhí)行 118
6.2 進程的狀態(tài)及其轉(zhuǎn)換 119
6.3 進程控制 120
6.3.1
進程控制塊 120
6.3.2
進程控制塊的原語 121
6.4 進程調(diào)度 122
6.4.1
調(diào)度的基本概念 122
6.4.2
調(diào)度的基本模型 123
6.4.3
進程調(diào)度算法 124
本章小結(jié) 127
習(xí)題6 127
第7章 進程的同步與通信 129
7.1 進程同步 129
7.1.1
同步的概念 129
7.1.2
信號量機制 129
7.1.3
經(jīng)典進程同步問題 131
7.2 線程 134
7.2.1
線程的概念 134
7.2.3
線程的特點 135
7.2.3
線程與進程的區(qū)別 135
7.3 進程通信 136
7.3.1
進程通信的概念 136
7.3.2
進程通信的類型 136
7.3.3
共享存儲區(qū)系統(tǒng) 137
7.3.4
消息傳遞系統(tǒng) 139
7.3.5
管道通信系統(tǒng) 143
7.4 死鎖 145
7.4.1
死鎖的概念 145
7.4.2
產(chǎn)生死鎖的條件 145
7.4.3
死鎖的對策 146
7.4.4
死鎖問題的經(jīng)典示例:哲學(xué)家就餐問題 146
本章小結(jié) 148
習(xí)題7 148
第8章 內(nèi)存的管理 151
8.1 存儲管理概述 151
8.1.1
地址空間 151
8.1.2
程序的裝入與重定位 152
8.1.3
程序的鏈接 155
8.2 內(nèi)存管理的方法 156
8.2.1
固定分區(qū)存儲管理 157
8.2.2
動態(tài)分區(qū)存儲管理 158
8.2.3
覆蓋和交換技術(shù) 159
8.2.4
分頁存儲管理 160
8.2.5
分段存儲管理 162
8.2.6
段頁式存儲管理 164
8.2.7
虛擬存儲器管理 165
本章小結(jié) 172
習(xí)題8 172
第9章 信息存儲的管理 176
9.1 文件管理概述 176
9.1.1
文件與文件系統(tǒng) 176
9.1.2
文件的屬性及分類 177
9.1.3
文件系統(tǒng)的功能 178
9.1.4
文件系統(tǒng)的層次結(jié)構(gòu) 178
9.2 文件的結(jié)構(gòu)和存儲方式
179
9.2.1
文件的邏輯結(jié)構(gòu) 179
9.2.2
文件的物理結(jié)構(gòu) 181
9.3 文件目錄 183
9.3.1
文件目錄的概念 183
9.3.2
文件目錄結(jié)構(gòu) 184
9.4 文件系統(tǒng)的實現(xiàn) 185
9.4.1
主流文件系統(tǒng)及其特點
185
9.4.2
網(wǎng)絡(luò)文件系統(tǒng)及其特點 186
9.4.3
外存空間管理 187
9.5 文件的使用 190
9.5.1
文件主要操作 190
9.5.2
文件的使用 192
9.5.3
文件共享 193
9.6 磁盤調(diào)度 195
本章小結(jié) 197
習(xí)題9 198
第10章 外設(shè)的管理 199
10.1
設(shè)備的分類 199
10.2
I/O控制方式 200
10.2.1
程序直接控制方式 200
10.2.2
程序中斷方式 201
10.2.3
DMA方式 202
10.2.4
通道方式 203
10.3
緩沖技術(shù) 205
10.3.1
單緩沖和雙緩沖 206
10.3.2
循環(huán)緩沖 206
10.3.3
緩沖池 207
10.4
設(shè)備分配 208
10.4.1
數(shù)據(jù)結(jié)構(gòu) 208
10.4.2
設(shè)備分配策略 209
10.4.3
設(shè)備獨立性 210
10.4.4
SPOOLing技術(shù) 210
10.5
設(shè)備驅(qū)動程序 212
本章小結(jié) 213
習(xí)題10 213
第11章 系統(tǒng)初始化及Shell編程 215
11.1
系統(tǒng)初始化 215
11.1.1
計算機系統(tǒng)初始化過程 215
11.1.2
操作系統(tǒng)初始化過程 216
11.2
Shell編程 218
11.2.1
Shell命令的使用 219
11.2.2
Shell編程語法結(jié)構(gòu) 224
本章小結(jié) 228
習(xí)題11 228
第12章 應(yīng)用軟件開發(fā)平臺 230
12.1
高級程序設(shè)計語言 230
12.2
軟件開發(fā)模型 231
12.3
開發(fā)工具和開發(fā)環(huán)境 235
12.2.1
集成開發(fā)環(huán)境IDE 236
12.3.2
關(guān)系型數(shù)據(jù)庫 237
12.3.3
移動終端應(yīng)用軟件開發(fā)平臺 238
12.4
開發(fā)平臺中的可重用代碼 239
12.4.1 軟件重用的基本概念 239
12.4.2 可重用代碼的抽象層次
239
12.4.3 可重用代碼的方法和技術(shù)
240
本章小結(jié) 241
習(xí)題12 242
參考文獻 243