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