專升本練習(xí)題-計(jì)算機(jī)英語譯文和答案_第1頁
專升本練習(xí)題-計(jì)算機(jī)英語譯文和答案_第2頁
專升本練習(xí)題-計(jì)算機(jī)英語譯文和答案_第3頁
專升本練習(xí)題-計(jì)算機(jī)英語譯文和答案_第4頁
專升本練習(xí)題-計(jì)算機(jī)英語譯文和答案_第5頁
已閱讀5頁,還剩74頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

《計(jì)算機(jī)英語》參考譯文和練習(xí)答案

目錄

第一單元2

課文A:計(jì)算機(jī)概覽2

第二單元4

課文A:計(jì)算機(jī)硬件4

第三單元7

課文A:操作系統(tǒng)7

第四單元10

課文A:編程語言10

第五單元12

課文A:計(jì)算機(jī)程序12

第六單元16

課文A:分布式計(jì)算機(jī)系統(tǒng)16

第七單元19

課文A:進(jìn)入關(guān)系數(shù)據(jù)庫的世界19

第八單元22

課文A:電信與計(jì)算機(jī)22

第九單元24

課文A:計(jì)算機(jī)網(wǎng)絡(luò)24

第十單元26

課文A:網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)26

第一|一-單元29

課文A:因特網(wǎng)是如何工作的?29

第十二單元31

課文A:信息革命31

第十三單元34

課文A:電子商務(wù)簡介34

第十四單元37

課文A:計(jì)算機(jī)安全37

第十五單元40

課文A:比爾?蓋茨文摘(1):40

比爾?蓋茨文摘(2):41

練習(xí)答案43

第一單元

課文A:計(jì)算機(jī)概覽

一、引言

計(jì)算機(jī)是一種電子設(shè)備,它能接收一套指令或一個(gè)程序,然后通過對(duì)數(shù)值數(shù)據(jù)進(jìn)行運(yùn)算

或者對(duì)其他形式的信息進(jìn)行處理來執(zhí)行該程序。

如果沒有計(jì)算機(jī)的發(fā)展,現(xiàn)代的高科技世界是不可能產(chǎn)生的。在整個(gè)社會(huì),不同型號(hào)和

不同大小的計(jì)算機(jī)被用于存儲(chǔ)和處理各種數(shù)據(jù),從政府保密文件、銀行交易到私人家庭賬目。

計(jì)算機(jī)通過自動(dòng)化技術(shù)開辟了制造業(yè)的新紀(jì)元,而且它們也增強(qiáng)了現(xiàn)代通信系統(tǒng)的性能。在

幾乎每一個(gè)研究和應(yīng)用技術(shù)領(lǐng)域,從構(gòu)建宇宙模型到產(chǎn)生明天的氣象報(bào)告,計(jì)算機(jī)無不是必

要的工具,并且它們的應(yīng)用本身就開辟了人們推測的新領(lǐng)域。數(shù)據(jù)庫服務(wù)和計(jì)算機(jī)網(wǎng)絡(luò)使各

種各樣的信息源可供使用。同樣的先進(jìn)技術(shù)也使侵犯個(gè)人隱私和商業(yè)秘密成為可能。計(jì)算機(jī)

犯罪已經(jīng)成為作為現(xiàn)代技術(shù)代價(jià)組成部分的許多風(fēng)險(xiǎn)之一。

二、歷史

第一臺(tái)加法機(jī),數(shù)字計(jì)算機(jī)的先驅(qū),是1642年由法國科學(xué)家、數(shù)學(xué)家兼哲學(xué)家布萊斯?

帕斯卡設(shè)計(jì)的。這個(gè)裝置使用了一系列有10個(gè)齒的輪子,每個(gè)齒代表從0到9的一個(gè)數(shù)字。

輪子互相連接,從而通過按照正確的齒數(shù)向前移動(dòng)輪子,就可以將數(shù)字彼此相加。在17世

紀(jì)70年代,德國哲學(xué)家兼數(shù)學(xué)家戈特弗里德?威廉?萊布尼茲對(duì)這臺(tái)機(jī)器進(jìn)行了改良,設(shè)計(jì)

了一臺(tái)也能做乘法的機(jī)器。

法國發(fā)明家約瑟夫-瑪麗?雅卡爾,在設(shè)計(jì)自動(dòng)織機(jī)時(shí),使用了穿孔的薄木板來控制復(fù)

雜圖案的編織。在19世紀(jì)80年代期間,美國統(tǒng)計(jì)學(xué)家赫爾曼?何勒里斯,想出了使用類似

雅卡爾的木板那樣的穿孔卡片來處理數(shù)據(jù)的主義。通過使用一種將穿孔卡片從電觸點(diǎn)上移過

的系統(tǒng),他得以為1890年的美國人口普查匯編統(tǒng)計(jì)信息。

1、分析機(jī)

也是在19世紀(jì),英國數(shù)學(xué)家兼發(fā)明家查爾斯?巴比奇,提出了現(xiàn)代數(shù)字計(jì)算機(jī)的原理。

他構(gòu)想出旨在處理復(fù)雜數(shù)學(xué)題的若干機(jī)器,如差分機(jī)。許多歷史學(xué)家認(rèn)為巴比奇及其合伙人,

數(shù)學(xué)家奧古斯塔?埃達(dá)?拜倫,是現(xiàn)代數(shù)字計(jì)算機(jī)的真正先驅(qū)。巴比奇的設(shè)計(jì)之一,分析機(jī),

具有現(xiàn)代計(jì)算機(jī)的許多特征。它有一個(gè)以一疊穿孔卡片的形式存在的輸入流、一個(gè)儲(chǔ)存數(shù)據(jù)

的“倉庫”、一個(gè)進(jìn)行算術(shù)運(yùn)算的“工廠”和一個(gè)產(chǎn)生永久紀(jì)錄的打印機(jī)。巴比奇未能將這

個(gè)想法付諸實(shí)踐,盡管在那個(gè)時(shí)代它在技術(shù)上很可能是可行的。

2、早期的計(jì)算機(jī)

模擬計(jì)算機(jī)是在19世紀(jì)末期開始制造的。早期型號(hào)是靠轉(zhuǎn)動(dòng)的軸和齒輪來進(jìn)行計(jì)算的。

用任何其他方法都難以解答的方程,可以用這樣的機(jī)器來求其近似數(shù)值。開爾文勛爵制造了

一臺(tái)機(jī)械潮汐預(yù)報(bào)器,這實(shí)際上就是一臺(tái)專用模擬計(jì)算機(jī)。第一次和第二次世界大戰(zhàn)期間,

機(jī)械模擬計(jì)算系統(tǒng)以及后來的電動(dòng)模擬計(jì)算系統(tǒng),被用作潛艇上的魚雷航線預(yù)測器和飛機(jī)上

的轟炸瞄準(zhǔn)具的控制器。人們還設(shè)計(jì)了另一個(gè)系統(tǒng),用于預(yù)測密西西比河流域春天的洪水。

3、電子計(jì)算機(jī)

第二次世界大戰(zhàn)期間,以倫敦北面的布萊切利公園為工作地點(diǎn)的一組科學(xué)家和數(shù)學(xué)家,

制造了最早的全電子數(shù)字計(jì)算機(jī)之一:“巨人”。到1943年12月,這個(gè)包含了1500個(gè)真空

管的“巨人”開始運(yùn)轉(zhuǎn)了。它被以艾倫?圖靈為首的小組用于破譯德國用恩尼格碼加密的無

線電報(bào),他們的嘗試大部分是成功的。

除此而外,在美國,約翰?阿塔納索夫和克利福德?貝里早在1939年就在艾奧瓦州立學(xué)

院制造了一臺(tái)原型電子機(jī)。這臺(tái)原型機(jī)和后來的研究工作都是悄悄完成的,而且后來因1945

年電子數(shù)字積分計(jì)算機(jī)(ENIAC)的研制而顯得相形見細(xì)。ENIAC計(jì)算機(jī)被授予了專利。

但是,數(shù)十年后,在1973年,當(dāng)該機(jī)被揭露吸收了在阿塔納索夫-貝里計(jì)算機(jī)中首次使用

的原理后,這項(xiàng)專利被廢除。

ENIAC計(jì)算機(jī)(見圖1A—1)含有18,000個(gè)真空管,具有每分鐘幾百次的運(yùn)算速度,

但是最初程序是通過導(dǎo)線傳送到處理器內(nèi)的,必須由人工更改。根據(jù)美籍匈牙利數(shù)學(xué)家約翰

?馮?諾伊曼的想法,后來制造的機(jī)器帶有一個(gè)程序存儲(chǔ)器。指令像數(shù)據(jù)一樣存儲(chǔ)在“存儲(chǔ)器”

中,使計(jì)算機(jī)在執(zhí)行過程中擺脫了紙帶閱讀器的速度限制,并使問題在不給計(jì)算機(jī)重新接線

的情況下得以解決。

20世紀(jì)50年代末,晶體管在計(jì)算機(jī)中的應(yīng)用,標(biāo)志著比真空管機(jī)器更小、更快、更通

用的邏輯元件的出現(xiàn)。由于晶體管使用的功率小得多,壽命也長得多,僅這項(xiàng)發(fā)展本身就導(dǎo)

致了被稱之為第二代計(jì)算機(jī)的改良機(jī)器的產(chǎn)生。元件變小了,元件的間距也變小了,而且系

統(tǒng)的制造成本也變得低得多。

4、集成電路

20世紀(jì)60年代末,集成電路得到采用,從而有可能將許多晶體管制作在一塊硅襯底上,

集體管之間以覆鍍固定的導(dǎo)線相連接。集成電路導(dǎo)致價(jià)格、尺寸和故障率的進(jìn)一步降低。20

世紀(jì)70年代中期,隨著大規(guī)模集成電路和后來的超大規(guī)模集成電路(微芯片)的采用,成

千上萬個(gè)彼此相連的晶體管被蝕刻在一塊硅襯底上,于是微處理器成為現(xiàn)實(shí)。

那么,再回過頭來看看現(xiàn)代計(jì)算機(jī)處理開關(guān)值的能力:20世紀(jì)70年代的計(jì)算機(jī)一般一

次能夠處理8個(gè)開關(guān)值。也就是說,在每個(gè)循環(huán)中,它們能處理8個(gè)二進(jìn)制數(shù)字或比特的數(shù)

據(jù)。8個(gè)比特為一組,稱為一個(gè)字節(jié);每個(gè)字節(jié)包含著256個(gè)開與關(guān)(或0與1)的可能模

式。每個(gè)模式相當(dāng)于一條指令、一條指令的一部分或者一個(gè)特定的數(shù)據(jù)類型,如一個(gè)數(shù)字、

一個(gè)字符或者一個(gè)圖形符號(hào)。例如,11010010這個(gè)模式可能是二進(jìn)制數(shù)據(jù)——在這種情況

下,代表210這個(gè)十進(jìn)制數(shù)字——或者它可能是一條指令,告訴計(jì)算機(jī)將存儲(chǔ)在其交換設(shè)備

中的數(shù)據(jù)與存儲(chǔ)在存儲(chǔ)芯片某個(gè)位置的數(shù)據(jù)進(jìn)行比較。

一次能處理16、32和64比特?cái)?shù)據(jù)的處理器的研制,提高了計(jì)算機(jī)的速度。一臺(tái)計(jì)算機(jī)

能夠處理的全部可識(shí)別模式——操作總清單——被稱為其指令集。隨著現(xiàn)代數(shù)字計(jì)算機(jī)的不

斷發(fā)展,這兩個(gè)因素——能夠同時(shí)處理的比特?cái)?shù)和指令集的大小——在繼續(xù)增長。

三、硬件

不論尺寸大小,現(xiàn)代數(shù)字計(jì)算機(jī)在概念上都是類似的。然而,根據(jù)成本與性能,它們可

分為幾類:個(gè)人計(jì)算機(jī)或微型計(jì)算機(jī),一種成本相當(dāng)?shù)偷臋C(jī)器,通常只有桌面大?。ūM管“膝

上型計(jì)算機(jī)”小到能夠放入公文包,而“掌上型計(jì)算機(jī)”能夠放入口袋);工作站,一種具

有增強(qiáng)的圖形與通信能力、從而使其對(duì)于辦公室工作特別有用的微型計(jì)算機(jī);小型計(jì)算機(jī),

一般就個(gè)人使用而言太昂貴,其性能適合于工商企業(yè)、學(xué)?;?qū)嶒?yàn)室;以及大型機(jī),一種大

型的昂貴機(jī)器,具有滿足大規(guī)模工商企業(yè)、政府部門、科研機(jī)構(gòu)或者諸如此類機(jī)構(gòu)需要的能

力(其中體積最大、速度最快的稱為巨型計(jì)算機(jī))。

一臺(tái)數(shù)字計(jì)算機(jī)不是單一的機(jī)器。確切地說,它是由5個(gè)不同的要素組成的系統(tǒng):(1)

中央處理器;(2)輸入設(shè)備;(3)存儲(chǔ)設(shè)備;(4)輸出設(shè)備;以及(5)被稱作總線的通信

網(wǎng)絡(luò),它將系統(tǒng)的所有要素連接起來并將系統(tǒng)與外界連接起來。

四、編程

一個(gè)程序就是一系列指令,告訴計(jì)算機(jī)硬件對(duì)數(shù)據(jù)執(zhí)行什么樣的操作。程序可以內(nèi)嵌在

硬件本身里,或以軟件的形式獨(dú)立存在。在一些專業(yè)或“專用”計(jì)算機(jī)中,操作指令被嵌入

其電路里;常見的例子有計(jì)算器、手表、汽車發(fā)動(dòng)機(jī)和微波爐中的微型計(jì)算機(jī)。另一方面,

通用計(jì)算機(jī)盡管含有一些內(nèi)嵌的程序(在只讀存儲(chǔ)器中)或者指令(在處理器芯片中),但

依靠外部程序來執(zhí)行有用的任務(wù)。計(jì)算機(jī)一旦被編程,就只能做在任何特定時(shí)間控制它的軟

件所允許它做的事情。廣泛使用的軟件包括一系列各種各樣的應(yīng)用程序——告訴計(jì)算機(jī)如何

執(zhí)行各種任務(wù)的指令。

五、未來的發(fā)展

計(jì)算機(jī)發(fā)展的一個(gè)持續(xù)不斷的趨勢是微小型化,亦即將更多的電路元件壓縮在越來越小

的芯片空間上的努力。研究人員也在設(shè)法利用超導(dǎo)性來提高電路的功能速度.超導(dǎo)性是在超

低溫條件下在某些材料中觀察到的電阻減少現(xiàn)象。

計(jì)算機(jī)發(fā)展的另一個(gè)趨勢是“第五代”計(jì)算機(jī)的研制工作,亦即研制可以解決復(fù)雜問題

而且其解決方法或許最終會(huì)與“創(chuàng)造性的”這一形容名副其實(shí)的計(jì)算機(jī),理想的目標(biāo)是真正

的人工智能。正在積極探索的一條道路是并行處理計(jì)算,亦即利用許多芯片來同時(shí)執(zhí)行數(shù)個(gè)

不同的任務(wù)。一種重要的并行處理方法是模仿神經(jīng)系統(tǒng)結(jié)構(gòu)的神經(jīng)網(wǎng)絡(luò)。另一個(gè)持續(xù)不斷的

趨勢是計(jì)算機(jī)聯(lián)網(wǎng)的增加。計(jì)算機(jī)聯(lián)網(wǎng)現(xiàn)在使用由衛(wèi)星和電纜鏈路構(gòu)成的世界范圍的數(shù)據(jù)通

信系統(tǒng),來將全球的計(jì)算機(jī)連在一起。此外,大量的研究工作還投入在探索“光”計(jì)算機(jī)的

可能性上——這種硬件處理的不是電脈沖而是快得多的光脈沖。

第二單元

課文A:計(jì)算機(jī)硬件

一、引言

計(jì)算機(jī)硬件是計(jì)算機(jī)運(yùn)行所需要的設(shè)備,由可進(jìn)行物理處理的元件組成。這些元件的功

能一般分為3個(gè)主要類別:輸入、輸出和存儲(chǔ)。這些類別的元件與微處理器相連接,特別是

與計(jì)算機(jī)的中央處理器相連接,而后者是通過被稱之為線路或電路的總線來提供計(jì)算能力和

對(duì)計(jì)算機(jī)進(jìn)行控制的電子電路。

另一方面,軟件是計(jì)算機(jī)用來處理數(shù)據(jù)的一套指令,如字處理程序或者視頻游戲。這些

程序通常被存儲(chǔ)起來,并由計(jì)算機(jī)硬件調(diào)入和調(diào)出中央處理器。軟件也控制著硬件如何使用;

例如,如何從存儲(chǔ)設(shè)備中檢索信息。輸入與輸出硬件的交互作用是由基本輸入輸出系統(tǒng)

(BIOS)軟件控制的。

盡管微處理器在技術(shù)上仍被認(rèn)為是硬件,其部分功能也與計(jì)算機(jī)軟件有關(guān)系。既然微處

理器同時(shí)具有硬件與軟件方面的特征,它們因此經(jīng)常被稱作固件。

二、輸入硬件

輸入硬件由給計(jì)算機(jī)提供信息和指令的外部設(shè)備——亦即計(jì)算機(jī)中央處理器以外的元

件——組成。光筆是具有光敏端頭的輸入筆,用來在計(jì)算機(jī)屏幕上直接寫畫,或者通過按光

筆上的夾子或用光筆接觸屏幕來在屏幕上選擇信息。這種筆含有光傳感器,能夠識(shí)別屏幕上

筆經(jīng)過的部分。鼠標(biāo)是為一只手抓握而設(shè)計(jì)的指示設(shè)備。它在底部有一個(gè)檢測裝置(通常是

一個(gè)圓球),使用戶通過在一個(gè)平面上移動(dòng)鼠標(biāo)能夠控制屏幕上指針或光標(biāo)的運(yùn)動(dòng)。當(dāng)鼠標(biāo)

滑過平面的時(shí)候,光標(biāo)隨著在屏幕上移動(dòng)。要在屏幕上選擇項(xiàng)目或命令,用戶就點(diǎn)擊鼠標(biāo)上

的按鈕。操縱桿是由一根桿子組成的指示設(shè)備,該桿以向多個(gè)方向移動(dòng)來操縱計(jì)算機(jī)屏幕上

的光標(biāo)或者其他圖形對(duì)象。鍵盤是一個(gè)像打字機(jī)的設(shè)備,它使用戶得以向計(jì)算機(jī)鍵入文本和

命令。有些鍵盤有特殊功能鍵或集成的指示設(shè)備,如軌跡球或者可以讓用戶通過手指的移動(dòng)

來移動(dòng)屏幕上光標(biāo)的觸敏區(qū)。

光掃描儀利用光感應(yīng)設(shè)備將圖片或文本等形式的圖像轉(zhuǎn)換成計(jì)算機(jī)能夠處理的電子信

號(hào)。例如,一張照片能夠被掃入一臺(tái)計(jì)算機(jī),然后包括在該計(jì)算機(jī)建立的文本文件中。最常

見的兩種掃描儀類型是平板式掃描儀和手持式掃描儀,前者類似一臺(tái)辦公復(fù)印機(jī),后者用手

動(dòng)的方式從要處理的圖像上掃過。麥克風(fēng)是將聲音轉(zhuǎn)換成可被計(jì)算機(jī)存儲(chǔ)、處理和回放的信

號(hào)的設(shè)備。語音識(shí)別模塊是將說的話轉(zhuǎn)換成計(jì)算機(jī)能夠識(shí)別和處理的信號(hào)的設(shè)備。

調(diào)制解調(diào)器代表調(diào)制器一解調(diào)器,是將計(jì)算機(jī)與電話線連接、允許信息傳給或接自另一

臺(tái)計(jì)算機(jī)的設(shè)備。每臺(tái)發(fā)送或接收信息的計(jì)算機(jī)都必須與調(diào)制解調(diào)器相連接。計(jì)算機(jī)發(fā)送的

信息由調(diào)制解調(diào)器轉(zhuǎn)換成音頻信號(hào),然后通過電話線傳送到接收調(diào)制解調(diào)器上,由其將信號(hào)

轉(zhuǎn)換成接收計(jì)算機(jī)能夠理解的信息。

三、輸出硬件

輸出硬件由將信息從計(jì)算機(jī)中央處理器傳給計(jì)算機(jī)用戶的外部設(shè)備構(gòu)成。視頻顯示器或

屏幕將計(jì)算機(jī)生成的信息轉(zhuǎn)換成可視信息。顯示器一般有兩種形式:陰極射線管視頻屏幕和

液晶顯示視頻屏幕?;陉帢O射線管的屏幕或監(jiān)視器看起來就像一臺(tái)電視機(jī)?從中央處理器

輸出的信息,使用電子束顯示出來,其過程是電子束掃描熒光屏,而熒光屏則發(fā)出光并產(chǎn)生

圖像?;谝壕э@示器的屏幕將可視信息顯示在比基于陰極射線管的視頻監(jiān)視器更平、更小

的屏幕上。液晶顯示器常常用于膝上型計(jì)算機(jī)。

打印機(jī)將計(jì)算機(jī)輸出的文本和圖像打印在紙上。點(diǎn)陣打印機(jī)使用細(xì)小的金屬絲打擊色帶,

從而形成字符。激光打印機(jī)使用光束在磁鼓上畫圖像,然后由磁鼓吸起被稱之為色粉的微小

黑粒。色粉熔凝到紙上,形成圖像。噴墨打印機(jī)將小墨滴噴射到紙上,形成字符和圖像。

四、存儲(chǔ)硬件

存儲(chǔ)硬件為計(jì)算機(jī)檢索提供信息和程序的永久性存儲(chǔ)。兩種主要的存儲(chǔ)設(shè)備是磁盤驅(qū)動(dòng)

器和存儲(chǔ)器。磁盤驅(qū)動(dòng)器有兒種類型:硬盤、軟盤、磁光盤和光盤。硬盤驅(qū)動(dòng)器將信息存儲(chǔ)

在盤中嵌入的磁性顆粒中。硬盤驅(qū)動(dòng)器通常是計(jì)算機(jī)的固定部分,能存儲(chǔ)大量的信息并對(duì)其

進(jìn)行快速的檢索。軟盤驅(qū)動(dòng)器也將信息存儲(chǔ)在磁性顆粒中,但這些顆粒是嵌入在可移動(dòng)的盤

中,而這些盤既可能是軟的也可能是硬的。軟盤比硬盤存儲(chǔ)的信息少,檢索該信息的速度也

慢得多。磁光盤驅(qū)動(dòng)器將信息存儲(chǔ)在對(duì)激光和磁場都敏感的可移動(dòng)盤上。它們可存儲(chǔ)的信息

通常與硬盤一樣多,但檢索速度稍微慢一點(diǎn).由反射材料制成的光盤,其表面燒蝕出凹陷區(qū)。

光驅(qū)(CD-ROM)就是將信息存儲(chǔ)于此。存儲(chǔ)在光盤上的信息不能擦除或用新信息改寫。它

們能夠存儲(chǔ)和硬盤差不多的信息量,但信息檢索速度比其慢。

存儲(chǔ)器是指存儲(chǔ)信息供中央處理器快速檢索的計(jì)算機(jī)芯片。隨機(jī)訪問存儲(chǔ)器(RAM)

用來存儲(chǔ)操作計(jì)算機(jī)程序的信息和指令。通常,程序由磁盤驅(qū)動(dòng)器的存儲(chǔ)區(qū)調(diào)到隨機(jī)訪問存

儲(chǔ)器中。隨機(jī)訪問存儲(chǔ)器也稱作易失性存儲(chǔ)器,因?yàn)楫?dāng)計(jì)算機(jī)的電源關(guān)閉時(shí),計(jì)算機(jī)芯片中

的信息隨著丟失。只讀存儲(chǔ)器(ROM)包含必須永久可供計(jì)算機(jī)操作使用的關(guān)鍵信息和軟

件,如從開機(jī)到關(guān)機(jī)一直指揮計(jì)算機(jī)的運(yùn)行的操作系統(tǒng)。只讀存儲(chǔ)器稱之為非易失性存儲(chǔ)器,

因?yàn)楫?dāng)計(jì)算機(jī)的電源關(guān)閉時(shí),存儲(chǔ)芯片中的信息不會(huì)丟失。

有些設(shè)備有不止一種用途。例如,軟盤也可用作輸入設(shè)備,如果它們含有計(jì)算機(jī)用戶要

使用和處理的信息的話。此外,它們也可用作輸出設(shè)備,如果用戶想將計(jì)算結(jié)果存儲(chǔ)在它們

上面的話。

五、硬件的連接

要想運(yùn)轉(zhuǎn),硬件需要物理連接,使元件之間能夠交流和相互作用??偩€提供了一種常見

的互連系統(tǒng),它由一組導(dǎo)線或電路組成,在計(jì)算機(jī)的內(nèi)部組成部分之間協(xié)調(diào)和移動(dòng)信息。計(jì)

算機(jī)總線由兩條通道組成:一條由中央處理器用來給數(shù)據(jù)定位,叫做地址總線;另一條用來

將該數(shù)據(jù)送往那個(gè)地址,叫做數(shù)據(jù)總線??偩€可用兩個(gè)特征來描述:一次可處理的信息量,

稱為總線寬度,和傳送這些數(shù)據(jù)的速度。

串行連接是一根或一組導(dǎo)線,用于將信息從中央處理器傳送到外部設(shè)備,如鼠標(biāo)、鍵盤、

調(diào)制解調(diào)器、掃描儀和一些類型的打印機(jī)。這種連接一次只能傳送一段數(shù)據(jù),因此很慢。使

用串行連接的好處在于它能提供遠(yuǎn)距離的有效連接。

并行連接使用多組導(dǎo)線來同時(shí)傳送數(shù)個(gè)信息塊。大多數(shù)掃描儀和打印機(jī)使用這種連接方

式。并行連接比串行連接快得多,但是它在中央處理器和外部設(shè)備之間的傳輸距離僅限于不

到3米(10英尺)。

第三單元

課文A:操作系統(tǒng)

一、引言

在計(jì)算機(jī)科學(xué)中,操作系統(tǒng)(OS)是控制計(jì)算機(jī)的基本軟件。它具有3個(gè)主要功能:

協(xié)調(diào)與操作計(jì)算機(jī)硬件,如計(jì)算機(jī)存儲(chǔ)器、打印機(jī)、磁盤、鍵盤、鼠標(biāo)和監(jiān)視器;在各種存

儲(chǔ)介質(zhì)上編排文件,如軟盤、硬盤、光盤和磁帶;以及處理硬件錯(cuò)誤和數(shù)據(jù)丟失。

二、操作系統(tǒng)是怎樣工作的

操作系統(tǒng)控制不同的計(jì)算機(jī)進(jìn)程,如運(yùn)行一個(gè)電子表格程序或訪問計(jì)算機(jī)存儲(chǔ)器里的信

息。一個(gè)重要的進(jìn)程是解釋使用戶得以與計(jì)算機(jī)進(jìn)行通信的命令。有些命令解釋器是面向文

本的,要求將命令鍵入。另一些命令解釋器是面向圖形的,允許用戶通過指向并點(diǎn)擊圖標(biāo),

即屏幕上代表具體命令的圖片,來進(jìn)行通信。初學(xué)者一般覺得面向圖形的解釋器使用起來容

易一些,但是許多有經(jīng)驗(yàn)的計(jì)算機(jī)用戶更喜歡使用面向文本的命令解釋器,因?yàn)樗鼈兊墓δ?/p>

更強(qiáng)大一些。

操作系統(tǒng)或者是單一任務(wù)處理的,或者是多任務(wù)處理的。早期的單一任務(wù)處理操作系統(tǒng)

每次僅能運(yùn)行一個(gè)進(jìn)程。例如,當(dāng)計(jì)算機(jī)打印文件時(shí),在打印結(jié)束之前,計(jì)算機(jī)不能開始另

一個(gè)進(jìn)程或響應(yīng)新的命令。

所有現(xiàn)代操作系統(tǒng)都是多任務(wù)處理的,可以同時(shí)運(yùn)行數(shù)個(gè)進(jìn)程。在大多數(shù)計(jì)算機(jī)中,只

有一個(gè)中央處理器(CPU)(計(jì)算機(jī)的計(jì)算與控制單元),因此多任務(wù)處理操作系統(tǒng)造成一種

假象,即數(shù)個(gè)進(jìn)程同時(shí)在中央處理器上運(yùn)行。用來造成這種假象的最常見辦法是時(shí)間片多任

務(wù)處理,依靠這種方法每個(gè)進(jìn)程都單獨(dú)運(yùn)行固定的一段時(shí)間。如果進(jìn)程在分配的時(shí)間內(nèi)沒有

完成,它即被暫停,而另一個(gè)進(jìn)程開始運(yùn)行。進(jìn)程之間的這種切換被稱為上下文轉(zhuǎn)換。操作

系統(tǒng)進(jìn)行“簿記”,保存被暫停進(jìn)程的狀態(tài)。它還有一種確定下一步運(yùn)行哪個(gè)進(jìn)程的機(jī)制,

稱之為調(diào)度程序。調(diào)度程序快速運(yùn)行短進(jìn)程,以盡可能縮短可察覺的延遲。由于用戶對(duì)時(shí)間

的感覺要比計(jì)算機(jī)的處理速度慢得多,因此多個(gè)進(jìn)程看似在同時(shí)運(yùn)行。

操作系統(tǒng)可以使用虛擬內(nèi)存,以運(yùn)行所需主存空間大于實(shí)際可用主存空間的進(jìn)程。使用

這種技術(shù),硬盤驅(qū)動(dòng)器上的空間被用來模擬所需的額外內(nèi)存。然而,訪問硬盤驅(qū)動(dòng)器比訪問

主存耗時(shí)多,因此計(jì)算機(jī)運(yùn)行起來很慢。

三、當(dāng)前的操作系統(tǒng)

個(gè)人計(jì)算機(jī)常用的操作系統(tǒng)有UNIX、MacintoshOS,MS-DOS,OS/2以及Windows。

1、UNIX

在計(jì)算機(jī)科學(xué)中,UNIX是一種多用戶、多任務(wù)處理操作系統(tǒng),最初由肯?湯普森和丹

尼斯?里奇于1969年在美國電話電報(bào)公司的貝爾實(shí)驗(yàn)室里開發(fā),用于小型計(jì)算機(jī)。UNIX以

各種形式和實(shí)現(xiàn)方式存在;這其中包括加利福尼亞大學(xué)伯克利分校開發(fā)的版本(稱為“伯克

利軟件發(fā)行中心版本”)和美國電話電報(bào)公司發(fā)行的版本——其最新版本是“美國電話電報(bào)

公司系統(tǒng)V”。UNIX被認(rèn)為是一種功能強(qiáng)大的操作系統(tǒng)。因?yàn)槭怯肅語言編寫的,它比其

他操作系統(tǒng)更具有可移植性——受機(jī)器限制比較少。UNIX還有幾個(gè)相關(guān)的系統(tǒng)形式,包括:

AIX,由IBM公司改寫的UNIX版本(在基于精簡指令集計(jì)算機(jī)的工作站上運(yùn)行);A/UX

(用于蘋果計(jì)算機(jī)公司的麥金托什個(gè)人計(jì)算機(jī)上的圖形版本);以及Mach(一種重寫的但基

本上與UNIX兼容的操作系統(tǒng),用于NeXT計(jì)算機(jī))。

UNIX的流行,在很大程度上是由于被稱作因特網(wǎng)的計(jì)算機(jī)互聯(lián)網(wǎng)絡(luò)的發(fā)展,因?yàn)橐蛱?/p>

網(wǎng)使用的軟件最初是為運(yùn)行UNIX的計(jì)算機(jī)設(shè)計(jì)的。UNIX的變種包括SunOS(由太陽微系

統(tǒng)股份有限公司發(fā)布)、Xenix(由微軟公司發(fā)布)和Linux。UNIX及其克隆產(chǎn)品支持多任

務(wù)處理和多個(gè)用戶。其文件系統(tǒng)提供了一種編排磁盤文件的簡便方法,并允許用戶保護(hù)其文

件而防范其他用戶。然而,UNIX中的命令不很直觀,要掌握這個(gè)系統(tǒng)比較困難。

2、MS-DOS

MS-DOS是“微軟磁盤操作系統(tǒng)”的首字母縮拚詞。在計(jì)算機(jī)科學(xué)中,MS-DOS同其

他操作系統(tǒng)一樣,管理下面一類的操作:磁盤輸入與輸出、視頻支持、鍵盤控制以及與程序

執(zhí)行和文件維護(hù)有關(guān)的許多內(nèi)部功能。MS-DOS是帶有命令行界面的單個(gè)任務(wù)處理、單用戶

操作系統(tǒng)。

3、OS/2

OS/2,或稱''第二代操作系統(tǒng)”,是20世紀(jì)80年代中期由IBM公司和微軟公司為個(gè)人

計(jì)算機(jī)開發(fā)的一種操作系統(tǒng)。1987年末,OS/2推出時(shí),最常見的個(gè)人計(jì)算機(jī)是運(yùn)行MS-DOS

的IBM兼容機(jī)和由蘋果計(jì)算機(jī)公司生產(chǎn)、運(yùn)行其麥金托什個(gè)人計(jì)算機(jī)操作系統(tǒng)(MacOS)

的計(jì)算機(jī)。麥金托什個(gè)人計(jì)算機(jī)操作系統(tǒng)包含多任務(wù)處理功能,一個(gè)使計(jì)算機(jī)能夠同時(shí)運(yùn)行

數(shù)個(gè)應(yīng)用程序的特征。在一個(gè)計(jì)算機(jī)網(wǎng)絡(luò)中,多任務(wù)處理允許不同計(jì)算機(jī)上的數(shù)個(gè)用戶同時(shí)

訪問同一個(gè)應(yīng)用程序或數(shù)據(jù)集。OS/2是為IBM兼容個(gè)人計(jì)算機(jī)設(shè)計(jì)、允許多任務(wù)處理的第

一個(gè)操作系統(tǒng)。

OS/2的第一個(gè)版本,1.0版本,是面向文本的,沒有允許用戶通過使用計(jì)算機(jī)鼠標(biāo)等指

向與點(diǎn)擊輸入設(shè)備來輸入命令的圖形用戶界面(GUI)。一年后,IBM和微軟發(fā)布了OS/2

的1.1版本,它包括一個(gè)稱為表示管理程序的圖形用戶界面。表示管理程序界面包含圖標(biāo),

亦即屏幕上用戶可以用鼠標(biāo)點(diǎn)擊來輸入指令的圖片或文字。OS/2的1.1版本也允許用戶打開

多個(gè)窗口(窗口是屏幕上的一個(gè)部分,每個(gè)窗口包含一個(gè)不同的文件或程序),并包括用戶

可以用鼠標(biāo)點(diǎn)擊來進(jìn)行選擇的下拉式命令清單。

1991年,在微軟發(fā)布了Windows軟件——在MS-DOS上運(yùn)行的多任務(wù)處理環(huán)境——之

后,IBM和微軟結(jié)束了它們?cè)贠S/2上的合作。1992年,IBM發(fā)布了OS/2的2.0版本。該

版本運(yùn)行微軟的Windows程序,并可以執(zhí)行DOS操作下的多任務(wù)處理。它也包含面向?qū)ο?/p>

的編程環(huán)境,允許軟件設(shè)計(jì)者使用高級(jí)的面向?qū)ο缶幊陶Z言編程。

OS/2后來的版本增強(qiáng)了性能和多媒體能力。1994年,IBM宣布,自O(shè)S/2推出后已售

出5百多萬份。同一年,IBM推出OS/2的一個(gè)新版本,稱為OS/2Warp。其特色為:改善

的性能、增強(qiáng)的多媒體能力、一系列的集成應(yīng)用程序和方便的因特網(wǎng)接入。IBM公司繼續(xù)

對(duì)OS/2Wrap進(jìn)行升級(jí)和擴(kuò)充。

4、Windows

在計(jì)算機(jī)科學(xué)中,Windows是由微軟公司出售的一種個(gè)人計(jì)算機(jī)操作系統(tǒng),它允許用

戶通過指示和點(diǎn)擊設(shè)備,譬如鼠標(biāo),來代替鍵盤輸入命令。Windows操作系統(tǒng)為用戶提供了

一個(gè)圖形用戶界面,允許用戶操作計(jì)算機(jī)屏幕上稱之為圖標(biāo)的圖片來發(fā)出命令。Windows

是世界上使用最廣泛的操作系統(tǒng)。它是微軟的磁盤操作系統(tǒng)(MS-DOS)的擴(kuò)充和替代品。

Windows圖形用戶界面旨在為用戶提供一個(gè)自然或直觀的工作環(huán)境。使用Windows,

用戶可以用鼠標(biāo)在計(jì)算機(jī)屏幕上移動(dòng)光標(biāo)。通過將光標(biāo)指向圖標(biāo)并點(diǎn)擊鼠標(biāo)上的按鈕,用戶

可以給計(jì)算機(jī)發(fā)出命令,讓其執(zhí)行一個(gè)動(dòng)作,如啟動(dòng)一個(gè)程序、訪問一個(gè)數(shù)據(jù)文件或復(fù)制一

個(gè)數(shù)據(jù)文件。其他命令可以通過下拉或點(diǎn)擊式菜單項(xiàng)來訪問。計(jì)算機(jī)將用戶正在工作的活動(dòng)

區(qū)域顯示為計(jì)算機(jī)屏幕上的窗口。當(dāng)前正在使用的活動(dòng)窗口可以與先前使用的、仍然在屏幕

上打開著的其他活動(dòng)窗口重疊。這種類型的圖形用戶界面被說成是包含了WIMP特征:窗

口、圖標(biāo)、菜單和指點(diǎn)設(shè)備(如鼠標(biāo))。

施樂公司帕洛阿爾托研究中心的計(jì)算機(jī)科學(xué)家,在20世紀(jì)70年代初創(chuàng)造了圖形用戶界

面這個(gè)概念,但是這個(gè)創(chuàng)新沒有馬上取得商業(yè)上的成功。1983年,蘋果計(jì)算機(jī)公司在其Lisa

計(jì)算機(jī)上采用了一種用戶圖形界面。這種用戶圖形界面在其1984年推出的麥金托什個(gè)人計(jì)

算機(jī)中得到升級(jí)和改善。

微軟于1983年開始開發(fā)用戶圖形界面,作為其MS-DOS操作系統(tǒng)的擴(kuò)展。微軟的

Windows1.0版本在1985年首次出現(xiàn)。在這個(gè)版本中,窗口是平鋪式的,也就是互相挨著,

而不是重疊顯示。1987年推出的Windows2.0版本,在設(shè)計(jì)上類似于IBM的OS/2表示管理

程序——另一種用戶圖形界面操作系統(tǒng)。Windows2。版本具有重疊窗口的特征。1990年推

出的功能更加強(qiáng)大的Windows3.0版本和后來的3.1與3.11版本,迅速使Windows成為個(gè)人

計(jì)算機(jī)操作系統(tǒng)的市場領(lǐng)頭商品,其部分原因在于它被預(yù)先捆綁在新的個(gè)人計(jì)算機(jī)上。它還

成為受歡迎的軟件開發(fā)平臺(tái)。

1993年,微軟推出了WindowsNT(新技術(shù))。WindowsNT操作系統(tǒng)提供32位的多任

務(wù)處理,使計(jì)算機(jī)具有了高速地同時(shí)或并行運(yùn)行數(shù)個(gè)程序的能力。這種操作系統(tǒng)與IBM的

OS/2展開競爭,爭做許多企業(yè)的密集型高端聯(lián)網(wǎng)運(yùn)算環(huán)境的平臺(tái)。

1995年,微軟發(fā)布了用于個(gè)人計(jì)算機(jī)的一個(gè)Windows新版本,稱作Windows95。

Windows95與以前的版本相比,用戶圖形界面造型更加優(yōu)美,也更加簡單。它提供了32位

進(jìn)程處理、高效的多任務(wù)處理、網(wǎng)絡(luò)連接和因特網(wǎng)接入。

幾乎沒有計(jì)算機(jī)用戶直接運(yùn)行MS-DOS或OS/2。他們更愿意選擇UNIX的各種版本或

者帶有圖形界面的窗口型系統(tǒng),如Windows98或MacintoshOS,因?yàn)樗鼈兪褂?jì)算機(jī)技術(shù)更

容易利用。然而,與面向命令的操作系統(tǒng)相比,圖形系統(tǒng)一般具有需要更多硬件的缺點(diǎn),如

速度更快的中央處理器、更多的內(nèi)存和更高質(zhì)量的監(jiān)視器。

五、未來的技術(shù)

操作系統(tǒng)在不斷地演進(jìn)。最近開發(fā)的一種稱之為分布式操作系統(tǒng)的操作系統(tǒng)類型,是為

共享硬盤驅(qū)動(dòng)器等資源的一批連接在一起、但相互獨(dú)立的計(jì)算機(jī)設(shè)計(jì)的。在分布式操作系統(tǒng)

中,一個(gè)進(jìn)程可以在網(wǎng)絡(luò)中的任何一臺(tái)計(jì)算機(jī)(可能是一臺(tái)空閑的計(jì)算機(jī))上運(yùn)行,以加快

該進(jìn)程的執(zhí)行。操作系統(tǒng)的所有基本功能——如維護(hù)文件系統(tǒng)、確保合理的行為以及在發(fā)生

部分故障的情況下恢復(fù)數(shù)據(jù)一在分布式系統(tǒng)中變得比較復(fù)雜。

用語音或手寫的方法代替鍵盤輸入的研究工作也在進(jìn)行中。目前,這些類型的輸入還不

很準(zhǔn)確,因?yàn)槿藗冊(cè)谠~的發(fā)音和書寫上有很大的不同,使計(jì)算機(jī)難以識(shí)別不同用戶的相同輸

入。然而,這個(gè)領(lǐng)域取得的發(fā)展已經(jīng)帶來了能夠識(shí)別由各種不同的人所說的少數(shù)單詞的系統(tǒng)。

另外,經(jīng)過訓(xùn)練能夠識(shí)別一個(gè)人的手跡的軟件也己經(jīng)開發(fā)出來。

第四單元

課文A:編程語言

一、引言

在計(jì)算機(jī)科學(xué)中,編程語言是用來編寫可被計(jì)算機(jī)運(yùn)行的一系列指令(計(jì)算機(jī)程序)的

人工語言。與英語等自然語言相類似,編程語言具有詞匯、語法和句法。然而,自然語言不

適合計(jì)算機(jī)編程,因?yàn)樗鼈兡芤鹌缌x,也就是說它們的詞匯和語法結(jié)構(gòu)可以用多種方式進(jìn)

行解釋。用于計(jì)算編程的語言必須具有簡單的邏輯結(jié)構(gòu),而且它們的語法、拼寫和標(biāo)點(diǎn)符號(hào)

的規(guī)則必須精確。

編程語言在復(fù)雜性和通用程度上大相徑庭。有些編程語言是為了處理特定類型的計(jì)算問

題或?yàn)榱擞糜谔囟ㄐ吞?hào)的計(jì)算機(jī)系統(tǒng)而編寫的。例如,F(xiàn)ORTRAN和COBOL等編程語言是

為解決某些普遍的編程問題類型而編寫的——FORTRAN為了科學(xué)領(lǐng)域的應(yīng)用,而COBOL

為了商業(yè)領(lǐng)域的應(yīng)用。盡管這些語言旨在處理特定類型的計(jì)算機(jī)問題,但是它們具有很高的

可移植性,也就是說它們可以用來為多種類型的計(jì)算機(jī)編程。其他的語言,譬如機(jī)器語言,

是為一種特定型號(hào)的計(jì)算機(jī)系統(tǒng),甚至是一臺(tái)特定的計(jì)算機(jī),在某些研究領(lǐng)域使用而編寫的。

最常用的編程語言具有很高的可移植性,可以用于有效地解決不同類型的計(jì)算問題。像C、

PASCAL和BASIC這樣的語言就屬于這一范疇。

二、語言類型

編程語言可劃分為低級(jí)語言和高級(jí)語言。低級(jí)編程語言或機(jī)器語言,是編程語言中最基

礎(chǔ)的類型,能被計(jì)算機(jī)直接理解。機(jī)器語言的區(qū)別取決于制造商和計(jì)算機(jī)的型號(hào)。高級(jí)語言

是在計(jì)算機(jī)能夠理解和處理之前必須首先翻譯成機(jī)器語言的編程語言。C、C++、PASCAL

和FORTRAN都是高級(jí)語言的例子。匯編語言是中級(jí)語言,非常接近于機(jī)器語言,沒有其

他高級(jí)語言所表現(xiàn)出的語言復(fù)雜程度,但仍然得翻譯成機(jī)器語言。

1、機(jī)器語言

在機(jī)器語言中,指令被寫成計(jì)算機(jī)能夠直接理解的被稱之為比特的1和0的序列。機(jī)器

語言中的一條指令通常告訴計(jì)算機(jī)4件事情:(1)到計(jì)算機(jī)主存儲(chǔ)器(隨機(jī)訪問存儲(chǔ)器)的

哪個(gè)位置去找一或兩個(gè)數(shù)字或者簡單的數(shù)據(jù)段;(2)要執(zhí)行的一個(gè)簡單操作,例如將兩個(gè)數(shù)

字加起來;(3)將這個(gè)簡單操作的結(jié)果存放在主存儲(chǔ)器的什么位置;以及(4)到哪里找要

執(zhí)行的下一條指令。雖然所有的可執(zhí)行程序最終都是以機(jī)器語言的形式被計(jì)算機(jī)讀取,但是

它們并非都是用機(jī)器語言編寫的。直接用機(jī)器語言編程極端困難,因?yàn)橹噶钍?和0的序列。

機(jī)器語言中的一條典型的指令可能是1001011001011,意思是將存儲(chǔ)寄存器A的內(nèi)容加到

存儲(chǔ)寄存器B的內(nèi)容中。

2、高級(jí)語言

高級(jí)語言是利用人類語言中的詞和句法的一套相對(duì)復(fù)雜的語句。它們比匯編語言和機(jī)器

語言更類似于正常的人類語言,因此用來編寫復(fù)雜的程序更容易。這些編程語言允許更快地

開發(fā)更龐大和更復(fù)雜的程序。然而,在計(jì)算機(jī)能夠理解之前,高級(jí)語言必須被稱之為編譯器

的另外一種程序翻譯成機(jī)器語言。因?yàn)檫@個(gè)原因,與用匯編語言編寫的程序比較起來,用高

級(jí)語言編寫的程序可能運(yùn)行的時(shí)間更長,占用的內(nèi)存更多。

3、匯編語言

計(jì)算機(jī)編程人員使用匯編語言使機(jī)器語言程序編寫起來更簡單一些。在匯編語言中,每

條語句大致對(duì)應(yīng)一條機(jī)器語言指令。匯編語言的語句是借助易于記憶的命令編寫的。在典型

的匯編語言的語句中,把存儲(chǔ)寄存器A的內(nèi)容加到存儲(chǔ)寄存器B的內(nèi)容中這一命令,可以

寫成AQCB,A。匯編語言與機(jī)器語言具有某些共同特征。例如,對(duì)特定的比特進(jìn)行操作,

用匯編語言和機(jī)器語言都是可行的。當(dāng)盡量減少程序的運(yùn)行時(shí)間很重要時(shí),程序員就使用匯

編語言,因?yàn)閺膮R編語言到機(jī)器語言的翻譯相對(duì)簡單。當(dāng)計(jì)算機(jī)的某個(gè)部分必須被直接控制

時(shí),如監(jiān)視器上的單個(gè)點(diǎn)或者流向打印機(jī)的單個(gè)字符,這時(shí)也使用匯編語言。

三、高級(jí)語言的分類

高級(jí)語言通常分為面向過程的、函數(shù)式的、面向?qū)ο蟮幕蜻壿嫷恼Z言。當(dāng)今最常見的高

級(jí)語言是面向過程的語言。在這種語言中,執(zhí)行某個(gè)完整功能的一個(gè)或多個(gè)相關(guān)的語句塊組

成一個(gè)程序模塊或過程,而且被給予諸如“過程A”的名稱。如果在程序的其他地方需要同

樣的操作序列,可以使用一個(gè)簡單的語句調(diào)回這個(gè)過程。實(shí)質(zhì)上,一個(gè)過程就是一個(gè)小型程

序。一個(gè)大程序可以通過將執(zhí)行不同任務(wù)的過程組合在一起而構(gòu)成。過程語言使程序變得比

較短,而且更易于被計(jì)算機(jī)讀取,但是要求程序員將每個(gè)過程都設(shè)計(jì)得足夠通用,能用于不

同的情況。

函數(shù)式語言像對(duì)待數(shù)學(xué)函數(shù)一樣對(duì)待過程,并允許像處理程序中的任何其他數(shù)據(jù)一樣處

理它們。這就使程序構(gòu)造在更高、更嚴(yán)密的水平上得以實(shí)現(xiàn)。函數(shù)式語言也允許變量——在

程序運(yùn)行過程中可以被用戶指定和更改的數(shù)據(jù)符號(hào)——只被賦值一次。這樣,通過減少對(duì)語

句執(zhí)行的確切順序給予關(guān)注的必要性,就簡化了編程,因?yàn)橐粋€(gè)變量沒有必要每次在一個(gè)程

序語句中用到,都重新定義或重新賦值。函數(shù)式語言的許多觀點(diǎn)已經(jīng)成為許多現(xiàn)代過程語言

的關(guān)鍵部分.

面向?qū)ο蟮恼Z言是函數(shù)式語言的發(fā)展結(jié)果。在面向?qū)ο蟮恼Z言中,用來編寫程序的代碼

和程序處理的數(shù)據(jù),組合成叫做對(duì)象的單元。對(duì)象進(jìn)一步組合成類,而類則定義對(duì)象必須具

有的屬性。類的一個(gè)簡單例子就是書這個(gè)類。這個(gè)類中的對(duì)象可能是小說和短篇小說。對(duì)象

還有某些與其相關(guān)的功能,稱為方法。計(jì)算機(jī)通過使用對(duì)象的某種方法來使用這個(gè)對(duì)象。方

法對(duì)對(duì)象中的數(shù)據(jù)執(zhí)行某個(gè)操作,然后將值返回給計(jì)算機(jī)。對(duì)象的類也可更進(jìn)一步組合成層,

而在層中一個(gè)類的對(duì)象可繼承另一個(gè)類的方法。面向?qū)ο蟮恼Z言中所提供的這種結(jié)構(gòu),使面

向?qū)ο蟮恼Z言對(duì)于復(fù)雜的編程任務(wù)非常有用。

邏輯語言將邏輯用作其數(shù)學(xué)基礎(chǔ)。一個(gè)邏輯程序由一系列的事實(shí)與“如果……則”規(guī)則

組成,來具體說明一系列事實(shí)如何可以從其他實(shí)事中推斷出來,例如:

如果X語句為真,則Y語句為假。

在這樣一個(gè)程序的執(zhí)行過程中,一條輸入語句可以按照邏輯從程序中的其他語句推斷出

來。許多人工智能程序使用這種語言編寫。

四、語言的結(jié)構(gòu)與成分

編程語言使用特定類型的語句或指令,來給程序提供功能結(jié)構(gòu)。程序中的一條語句是表

達(dá)一個(gè)簡單意思的基本句子,其目的是給計(jì)算機(jī)一條基本指令。語句對(duì)允許的數(shù)據(jù)類型、數(shù)

據(jù)如何處理以及過程和函數(shù)的工作方式進(jìn)行定義。程序員利用語句來操作編程語言的常見成

分,如變量和宏(程序中的小型程序)。

數(shù)據(jù)聲明語句給予稱為變量的程序元素以名稱和屬性。變量在程序中可以賦予不同的值。

變量可以具有的屬性被稱作類型,它們包括:變量中可能存儲(chǔ)什么樣的值,值中使用何種程

度的數(shù)值精度,以及一個(gè)變量可以如何以有組織結(jié)構(gòu)的方式——如以表或數(shù)組的形式一代

表一組比較簡單的值等等。在許多編程語言中,一種關(guān)鍵的數(shù)據(jù)類型是指示字。指示字變量

本身沒有值;相反,它們含有計(jì)算機(jī)可以用來查找某個(gè)其他變量的信息——也就是說,它們

指向另一個(gè)變量。

表達(dá)式是語句的一段,描述要對(duì)一些程序變量執(zhí)行的一系列運(yùn)算,如X+Y/Z,其中X、

Y和Z為變量,運(yùn)算方法為加和除。賦值語句給一個(gè)變量賦予得自某個(gè)表達(dá)式的值,而條

件語句則指定要被測試、然后用于選擇接下來應(yīng)該執(zhí)行的其他語句的表達(dá)式。

過程與函數(shù)語句將某些代碼塊定義為以后可在程序中返回的進(jìn)程或函數(shù)。這些語句也規(guī)

定程序員可以選擇的變量與參數(shù)種類,以及當(dāng)一個(gè)表達(dá)式使用過程或函數(shù)時(shí)代碼將返回的值

的類型。許多編程語言也容許叫做宏的小型翻譯程序。宏把使用程序員定義的語言結(jié)構(gòu)編寫

的代碼段翻譯成編程語言可以理解的語句。

五、歷史

編程語言幾乎可以追溯到20世紀(jì)40年代數(shù)字計(jì)算機(jī)發(fā)明之時(shí)。最早的匯編語言,隨著

商業(yè)計(jì)算機(jī)的推出,出現(xiàn)于20世紀(jì)50年代末。最早的過程語言是在20世紀(jì)50年代末到

20世紀(jì)60年代初開發(fā)的:FORTRAN語言由約翰?巴克斯創(chuàng)造,然后由格雷斯?霍珀創(chuàng)造了

COBOL語言。第一種函數(shù)式語言是LISP,由約翰?麥卡錫于20世紀(jì)50年代末編寫。這3

種語言今天仍在廣泛使用,但經(jīng)歷過大量修改。

20世紀(jì)60年代末,出現(xiàn)了最早的面向?qū)ο蟮恼Z言,如SIMULA語言。邏輯語言在20

世紀(jì)70年代中期隨著PROLOG語言的推出而變得廣為人知;PROLOG語言是一種用于編

寫人工智能軟件的語言。在20世紀(jì)70年代,過程語言繼續(xù)發(fā)展,出現(xiàn)了ALGOL.BASIC.

PASCAL、C和Ada等語言。SMALLTALK語言是一種具有高度影響力的面向?qū)ο蟮恼Z言,

它導(dǎo)致了面向?qū)ο蟮恼Z言與過程語言在C++和更近期的JAVA語言中的結(jié)合。盡管純粹的邏

輯語言受歡迎的程度有所下降,但其變體以現(xiàn)代數(shù)據(jù)庫所使用的關(guān)系語言——如結(jié)構(gòu)化查詢

語言一一的形式,變得至關(guān)重要。

第五單元

課文A:計(jì)算機(jī)程序

一、引言

計(jì)算機(jī)程序是指導(dǎo)計(jì)算機(jī)執(zhí)行某個(gè)功能或功能組合的一套指令。要使指令得到執(zhí)行,計(jì)

算機(jī)必須執(zhí)行程序,也就是說,計(jì)算機(jī)要讀取程序,然后按準(zhǔn)確的順序?qū)嵤┏绦蛑芯幋a的步

驟,直至程序結(jié)束。一個(gè)程序可多次執(zhí)行,而且每次用戶輸給計(jì)算機(jī)的選項(xiàng)和數(shù)據(jù)不同,就

有可能得到不同的結(jié)果。

程序可分為兩大類:應(yīng)用程序和操作系統(tǒng)。應(yīng)用程序直接為用戶執(zhí)行某項(xiàng)功能,如字處

理或玩游戲。操作系統(tǒng)管理計(jì)算機(jī)和與之相連的各種資源和設(shè)備,如隨機(jī)訪問存儲(chǔ)器、硬盤

驅(qū)動(dòng)器、監(jiān)視器、鍵盤、打印機(jī)和調(diào)制解調(diào)器,以便使其他程序可以使用它們。操作系統(tǒng)的

例子包括:DOS、Windows95,OS/2和UNIX。

二、程序開發(fā)

軟件設(shè)計(jì)者通過特殊的應(yīng)用程序來開發(fā)新程序,這些應(yīng)用程序常被稱作實(shí)用程序或開發(fā)

程序。程序員使用稱作文本編輯器的另一種程序,來以稱作編程語言的特殊標(biāo)記編寫新程序。

使用文本編輯器,程序員創(chuàng)建一個(gè)文本文件,這個(gè)文本文件是一個(gè)有序指令表,也稱為程序

源文件。構(gòu)成程序源文件的單個(gè)指令被稱為源代碼。在這個(gè)時(shí)候,一種特殊的應(yīng)用程序?qū)⒃?/p>

代碼翻譯成機(jī)器語言或目標(biāo)代碼——操作系統(tǒng)將認(rèn)作真程序并能夠執(zhí)行的一種格式。

將源代碼翻譯成目標(biāo)代碼的應(yīng)用程序有3種:編譯器、解釋器和匯編程序。這3種應(yīng)用

程序在不同類型的編程語言上執(zhí)行不同的操作,但是它們都起到將編程語言翻譯成機(jī)器語言

的相同目的。

編譯器將使用FORTRAN.C和Pascal等高級(jí)編程語言編寫的文本文件一次性從源代碼

翻譯成目標(biāo)代碼。這不同于BASIC等解釋執(zhí)行的語言所采取的方式,在解釋執(zhí)行的語言中

程序是隨著每條指令的執(zhí)行而逐個(gè)語句地翻譯成目標(biāo)代碼的。解釋執(zhí)行的語言的優(yōu)點(diǎn)是,它

們可以立即開始執(zhí)行程序,而不需要等到所有的源代碼都得到編譯。對(duì)程序的更改也可以相

當(dāng)快地作出,而無需等到重新編譯整個(gè)程序。解釋執(zhí)行的語言的缺點(diǎn)是,它們執(zhí)行起來慢,

因?yàn)槊看芜\(yùn)行程序,都必須對(duì)整個(gè)程序一次一條指令地翻譯。另一方面,編譯執(zhí)行的語言只

編譯一次,因此計(jì)算機(jī)執(zhí)行起來要比解釋執(zhí)行的語言快得多。由于這個(gè)原因,編譯執(zhí)行的語

言更常使用,而且在專業(yè)和科學(xué)領(lǐng)域幾乎總是得到采用。

另一種翻譯器是匯編程序,它被用于以匯編語言編寫的程序或程序組成部分。匯編語言

也是一種編程語言,但它比其他類型的高級(jí)語言更接近于機(jī)器語言。在匯編語言中,一條語

句通??梢苑g成機(jī)器語言的一條指令。今天,匯編語言很少用來編寫整個(gè)程序,而是最經(jīng)

常地采用于程序員需要直接控制計(jì)算機(jī)某個(gè)方面功能的場合。

程序經(jīng)常被編寫作一套較小的程序段,每段代表整個(gè)應(yīng)用程序的某個(gè)方面。各段獨(dú)立編

譯之后,一種被稱為連接程序的程序?qū)⑺芯幾g好的程序段組合成一個(gè)可以執(zhí)行的完整程序。

程序很少有第一次能夠正確運(yùn)行的,所以一種被稱為調(diào)試程序的程序常被用來幫助查找

被稱為程序錯(cuò)誤的問題。調(diào)試程序通常在運(yùn)行的程序中檢測到一個(gè)事件,并向程序員指出事

件在程序代碼中的起源。

最近出現(xiàn)的編程系統(tǒng),如Java,采取多種方法相結(jié)合的方式創(chuàng)建和執(zhí)行程序。編譯器取

來Java源程序,并將其翻譯成中間形式。這樣的中間程序隨后通過因特網(wǎng)傳送給計(jì)算機(jī),

而這些計(jì)算機(jī)里的解釋程序接下來將中間程序作為應(yīng)用程序來執(zhí)行。

三、程序元素

大多數(shù)程序只是由少數(shù)幾種步驟構(gòu)成,這些步驟在整個(gè)程序中在不同的上下文和以不同

的組合方式多次重復(fù)。最常見的步驟執(zhí)行某種計(jì)算,然后按照程序員指定的順序,進(jìn)入程序

的下一個(gè)步驟。

程序經(jīng)常需要多次重復(fù)不長的一系列步驟,例如,瀏覽游戲得分表,從中找出最高得分。

這種重復(fù)的代碼序列稱為循環(huán)。

計(jì)算機(jī)所具有的使其如此有用的能力之一,就是它們能夠作出條件判定,并根據(jù)正在處

理的數(shù)據(jù)的值執(zhí)行不同的指令。if-then-else(如果一則一否則)語句通過測試某個(gè)數(shù)據(jù)段,

然后根據(jù)結(jié)果從兩個(gè)指令序列中選出一個(gè),來執(zhí)行這個(gè)功能。這些選擇對(duì)象中的指令之一可

能是一個(gè)g"。語句,用以指引計(jì)算機(jī)從程序的另一個(gè)部分選擇下一條指令。例如,一個(gè)程

序可能比較兩個(gè)數(shù),并依據(jù)比較的結(jié)果而分支到程序的另一個(gè)部分:

IfKisgreaterthany

then

gotoinstruction#10

elsecontinue

程序經(jīng)常不止一次地使用特定的一系列步驟。這樣的一系列步驟可以組合成一個(gè)子例程,

而子例程根據(jù)需要可在主程序的不同部分進(jìn)行調(diào)用或訪問。每次調(diào)用一個(gè)子例程,計(jì)算機(jī)都

會(huì)記住它自己在該調(diào)用發(fā)生時(shí)處在程序的那個(gè)位置,以便在運(yùn)行完該子例程后還能夠回到那

里。在每次調(diào)用之前,程序可以指定子例程使用不同的數(shù)據(jù),從而做到一個(gè)通用性很強(qiáng)的代

碼段只編寫一次,而被以多種方式使用。

大多數(shù)程序使用幾種不同的子例程。其中最常用的是函數(shù)、過程、庫程序、系統(tǒng)程序以

及設(shè)備驅(qū)動(dòng)程序。函數(shù)是一種短子例程,用來計(jì)算某個(gè)值,如角的計(jì)算,而該值計(jì)算機(jī)僅用

一條基本指令無法計(jì)算。過程執(zhí)行的是復(fù)雜一些的功能,如給一組名稱排序。庫程序是為許

多不同的程序使用而編寫的子例程。系統(tǒng)程序和庫程序相似,但實(shí)際上用于操作系統(tǒng)。它們

為應(yīng)用程序提供某種服務(wù),如打印一行文字。設(shè)備驅(qū)動(dòng)程序是一種系統(tǒng)程序,它們加到操作

系統(tǒng)中,以使計(jì)算機(jī)能夠與掃描儀、調(diào)制解調(diào)器或打印機(jī)等新設(shè)備進(jìn)行通信。設(shè)備驅(qū)動(dòng)程序

常常具有可以直接作為應(yīng)用程序執(zhí)行的特征。這樣就使用戶得以直接控制該設(shè)備。這一點(diǎn)很

有用,例如,在彩色打印機(jī)更換墨盒后,需要重新調(diào)整以達(dá)到最佳打印質(zhì)量的情況下。

四、程序功能

現(xiàn)代計(jì)算機(jī)通常將程序存儲(chǔ)在計(jì)算機(jī)可以隨機(jī)訪問的某種形式的磁性存儲(chǔ)介質(zhì)上,如固

定放在計(jì)算機(jī)中的硬盤或者便攜式的軟盤。這些磁盤上被稱為目錄的額外信息,指明盤上各

種程序的名稱、它們寫入盤中的時(shí)間以及它們?cè)诖疟P介質(zhì)上的開始位置。當(dāng)用戶命令計(jì)算機(jī)

執(zhí)行一個(gè)特定應(yīng)用程序時(shí),操作系統(tǒng)就瀏覽這些目錄,找到程序,并將一個(gè)副本讀入隨機(jī)存

儲(chǔ)器。操作系統(tǒng)然后命令中央處理器在程序的起始位置開始執(zhí)行指令。程序起始位置的指令

為計(jì)算機(jī)處理信息作好準(zhǔn)備,其方法是在隨機(jī)存儲(chǔ)器中找到閑置內(nèi)存位置來容納工作數(shù)據(jù),

從盤中取回用戶指出的標(biāo)準(zhǔn)方式選項(xiàng)和默認(rèn)值的副本,并在監(jiān)視器上繪制初始顯示。

應(yīng)用程序通過調(diào)用系統(tǒng)程序而對(duì)用戶輸入的任何信息都要求一個(gè)副本。操作系統(tǒng)將如此

輸入的任何數(shù)據(jù)轉(zhuǎn)換成標(biāo)準(zhǔn)的內(nèi)部形式。應(yīng)用程序然后使用該信息決定下一步干什么——例

如,執(zhí)行某項(xiàng)期望的處理功能——如重新定義一頁文本的格式,或者從盤上的另一個(gè)文件獲

取某些額外信息。兩種情況無論是哪一種,都要調(diào)用其他系統(tǒng)程序,以事實(shí)上完成結(jié)果的顯

示或?qū)ΡP上文件的訪問。

運(yùn)行結(jié)束或接到退出的提示時(shí),應(yīng)用程序進(jìn)行進(jìn)一步的系統(tǒng)調(diào)用,以確保所有需要保存

的數(shù)據(jù)已寫回磁盤。然后,應(yīng)用程序向操作系統(tǒng)進(jìn)行最后一次系統(tǒng)調(diào)用,指明它已運(yùn)行結(jié)束。

操作系統(tǒng)接下來釋放隨機(jī)存儲(chǔ)器和該應(yīng)用程序使用的任何設(shè)備,并等待用戶的命令,以開始

運(yùn)行另一個(gè)程序。

五、歷史

人們用程序的形式存儲(chǔ)一系列指令已經(jīng)有幾個(gè)世紀(jì)了。18世紀(jì)的音樂盒和19世紀(jì)末與

20世紀(jì)初的自動(dòng)鋼琴,就可以播放音樂程序。這些程序以一系列金屬針或紙孔的形式存儲(chǔ),

每一行(針或孔)表示何時(shí)演奏一個(gè)音符,而針或孔則表明此時(shí)演奏什么音符。19世紀(jì)初,

隨著法國發(fā)明家約瑟夫-瑪麗?雅卡爾的由穿孔卡片控制的織機(jī)的發(fā)明,對(duì)物理設(shè)備更精巧

的控制變得常見了。在編織特定圖案的過程中,織機(jī)的各個(gè)部分得進(jìn)行機(jī)械定位。為了使這

個(gè)過程自動(dòng)化,雅卡爾使用一張紙質(zhì)卡片代表織機(jī)的一個(gè)定位,用卡片上的孔來指示該執(zhí)行

織機(jī)的哪個(gè)操作。整條花毯的編織可被編碼到一疊這樣的卡片上,同樣的一疊卡片每次使用

都會(huì)編出相同的花毯圖案。在開發(fā)和使用的程序中,有的由24,000多張卡片構(gòu)成。

世界上第一臺(tái)可編程的機(jī)器是由英國數(shù)學(xué)家和發(fā)明家查爾斯?巴比奇設(shè)計(jì)的,但從未完

全制造成。這臺(tái)叫做分析機(jī)的機(jī)器,使用和雅卡爾的織機(jī)類似的穿孔卡片來選擇每個(gè)步驟應(yīng)

執(zhí)行的具體算術(shù)運(yùn)算。插入不同的卡片組,就會(huì)改變機(jī)器執(zhí)行的運(yùn)算。這種機(jī)器幾乎能在現(xiàn)

代計(jì)算機(jī)中找到所有的對(duì)應(yīng)物,但它是機(jī)械化的,而非電氣化的。分析機(jī)的制造從未完成,

因?yàn)橹圃焖枰募夹g(shù)當(dāng)時(shí)不存在。

供分析機(jī)使用的最早卡片組程序是由詩人拜倫勛爵的女兒、英國數(shù)學(xué)家奧古斯塔??埃達(dá)

?拜倫開發(fā)的。由于這個(gè)原因,她被確認(rèn)為世界上第一位程序員。

現(xiàn)代的內(nèi)部存儲(chǔ)計(jì)算機(jī)程序的概念是由美籍匈牙利數(shù)學(xué)家約翰??馮?諾伊曼于1945年首

先提出來的。馮?諾伊曼的想法是使用計(jì)算機(jī)的存儲(chǔ)器來既存儲(chǔ)數(shù)據(jù)又存儲(chǔ)程序。這樣,程

序可被視作數(shù)據(jù),可像數(shù)據(jù)一樣被其他程序處理。這一想法極大地簡化了計(jì)算機(jī)中的程序存

儲(chǔ)與執(zhí)行的任務(wù)

六、未來

由于計(jì)算機(jī)使用的增加,自20世紀(jì)50年代以來,計(jì)算機(jī)科學(xué)領(lǐng)域發(fā)展迅猛。作為對(duì)用

戶需求和技術(shù)發(fā)展的反應(yīng),計(jì)算機(jī)程序在這一時(shí)期經(jīng)歷了許多變化。計(jì)算領(lǐng)域的新思想,如

并行計(jì)算、分布式計(jì)算和人工智能,從根本上改變了一度決定程序形式與功能的傳統(tǒng)概念。

工作在并行計(jì)算——其中多個(gè)中央處理器合作同時(shí)處理同一個(gè)問題——領(lǐng)域中的科學(xué)

家,推出了許多新的程序模型。在并行計(jì)算中,一個(gè)問題的組成部分由不同的處理器同時(shí)處

理,這樣就加快了問題的解決速度。由于并行處理計(jì)算機(jī)的極端復(fù)雜性以及使其盡可能有效

地運(yùn)行所包含的困難,為這種系統(tǒng)設(shè)計(jì)程序的科學(xué)家和工程師面臨著許多挑戰(zhàn)。被稱為分布

式計(jì)算的另一種并行計(jì)算,使用許多互相連接的計(jì)算機(jī)的中央處理器來解決問題。用來在分

布式計(jì)算應(yīng)用環(huán)境中處理信息的計(jì)算機(jī),常常通過因特網(wǎng)互相連接。因特網(wǎng)的應(yīng)用正在成為

分布式計(jì)算的一種特別有用的形式,尤其是在使用Java等編程語言的情況下。在這種應(yīng)用

中,用戶登錄到一個(gè)站點(diǎn),并下載一個(gè)Java程序到其計(jì)算機(jī)上。該Java程序運(yùn)行時(shí),就與

其主站點(diǎn)上的其他程序進(jìn)行通信,也可以與不同計(jì)算機(jī)或站點(diǎn)上運(yùn)行的其他程序進(jìn)行通信。

人工智能(AI)的研究,已經(jīng)導(dǎo)致兒種其他的新程序設(shè)計(jì)風(fēng)格的產(chǎn)生。例如,邏輯程

序不是由供計(jì)算機(jī)盲目執(zhí)行的單個(gè)指令構(gòu)成,而是由成套的規(guī)則組成:如果x發(fā)生,則執(zhí)行

y。--種被稱為推理機(jī)的特殊程序,在向其提出一個(gè)新問題時(shí),就使用這些規(guī)則來“推理”

出一個(gè)結(jié)果。邏輯程序的用途包括對(duì)復(fù)雜系統(tǒng)的自動(dòng)監(jiān)控和證明數(shù)學(xué)定律。

一種全然不同的計(jì)算方法稱為神經(jīng)網(wǎng)絡(luò),在這種計(jì)算中沒有傳統(tǒng)意義上的程序。神經(jīng)網(wǎng)

絡(luò)是一組旨在模擬大腦的具有高度互連性的簡單處理單元。神經(jīng)網(wǎng)絡(luò)不是像傳統(tǒng)計(jì)算機(jī)那樣

通過程序來指導(dǎo)信息處理,而是依靠其處理單元的連接方式來處理信息。給神經(jīng)網(wǎng)絡(luò)編程的

實(shí)現(xiàn)方法是,給其提供輸入與輸出數(shù)據(jù)的已知模式,并調(diào)整處理單元之間各種互連的相對(duì)重

要性,直到完成所期望的模式匹配。神經(jīng)網(wǎng)絡(luò)通常是在傳統(tǒng)計(jì)算機(jī)上模擬,但是不同于傳統(tǒng)

的計(jì)算機(jī)程序,神經(jīng)網(wǎng)絡(luò)具有經(jīng)驗(yàn)學(xué)習(xí)的能力。

第六單元

課文A:分布式計(jì)算機(jī)系統(tǒng)

一、引言

分布式計(jì)算領(lǐng)域在過去10年間經(jīng)歷了急劇的發(fā)展。隨著用于大規(guī)模計(jì)算的分布式計(jì)算

系統(tǒng)的使用的增長,提高其可靠性的需要也在增長。然而,多方式分布式系統(tǒng)中的單個(gè)處理

節(jié)點(diǎn)的故障概率并非可略而不計(jì)。因此,有必要開發(fā)有關(guān)的機(jī)制,在其中一個(gè)節(jié)點(diǎn)發(fā)生故障

的情況下——無論是瞬態(tài)硬件故障(總線差錯(cuò)或分段錯(cuò)誤)還是永久性故障(斷電或通信網(wǎng)

絡(luò)故障)所致,可以防止在分布式處理節(jié)點(diǎn)上執(zhí)行的計(jì)算歸于無用。

通信技術(shù)的進(jìn)步和在不同工作地點(diǎn)環(huán)境中采用的各種工作方式,自然導(dǎo)致信息處理的更

大分布。起初,大多數(shù)分布式系統(tǒng)是同構(gòu)的,但是現(xiàn)在許多分布式環(huán)境是異構(gòu)的。因此,分

布式系統(tǒng)的設(shè)計(jì)必須著眼于異構(gòu)型環(huán)境,而將同構(gòu)系統(tǒng)視作異構(gòu)世界中的特例。分布式系統(tǒng)

設(shè)計(jì)中的關(guān)鍵問題包括特定的功能應(yīng)放在信息基礎(chǔ)結(jié)構(gòu)的何處。

二、什么是分布式系統(tǒng)?

分布式系統(tǒng)是獨(dú)立計(jì)算機(jī)的集合體,而這些計(jì)算機(jī)在系統(tǒng)用戶看來像是一臺(tái)計(jì)算機(jī)。幾

乎所有的大型軟件系統(tǒng)勢必是分布式的。例如,企業(yè)范圍的商業(yè)系統(tǒng)必須支持多個(gè)用戶在不

同的地點(diǎn)運(yùn)行公用應(yīng)用程序。

一個(gè)分布式系統(tǒng)包含各種各樣的應(yīng)用程序、它們的基本支持軟件、它們借以運(yùn)行的硬件

以及連接分布式硬件的通信鏈路。最大、最為人熟識(shí)的分布式系統(tǒng)是構(gòu)成萬維網(wǎng)的那一整套

計(jì)算機(jī)、軟件和服務(wù)。萬維網(wǎng)遍布各地,與大多數(shù)其他現(xiàn)有分布式系統(tǒng)共存或連接。最常見

的分布式系統(tǒng)是聯(lián)網(wǎng)的客戶/服務(wù)器系統(tǒng)。分布式系統(tǒng)都具有以下描述的一般特性。

1、資源共享

將一組計(jì)算機(jī)連接成分布式系統(tǒng)的最常見原因,是允許其分享物理資源和計(jì)算資源(例

如,打印機(jī)、文件、數(shù)據(jù)庫、郵件服務(wù)、股票行情和合作應(yīng)用程序等)。支持資源共享的分

布式系統(tǒng)組件發(fā)揮類似于操作系統(tǒng)的作用,且與其越來越難以區(qū)分。

2、多節(jié)點(diǎn)

分布式系統(tǒng)的軟件在節(jié)點(diǎn)或多臺(tái)獨(dú)立的計(jì)算機(jī)(不僅僅是同一臺(tái)計(jì)算機(jī)上的多個(gè)處理器,

因?yàn)檫@屬于并行計(jì)算的領(lǐng)域)上執(zhí)行。這些節(jié)點(diǎn)可以是個(gè)人計(jì)算機(jī)、高性能工作站、文件服

務(wù)器、大型機(jī)和巨型計(jì)算機(jī)。每個(gè)節(jié)點(diǎn)所扮演的角色可以是向其他節(jié)點(diǎn)要求服務(wù)的客戶;可

以是向其他節(jié)點(diǎn)提供計(jì)算或資源服務(wù)的服務(wù)器;也可以是兼?zhèn)鋬烧吖δ艿膶?duì)等體。一個(gè)分布

式系統(tǒng)可以小至兩個(gè)節(jié)點(diǎn),假如存在軟件連通性。這種安排如圖6A-1所示?

3、并行性

分布式系統(tǒng)中的每個(gè)節(jié)點(diǎn)既獨(dú)立工作,又與所有其他節(jié)點(diǎn)并行工作。每個(gè)節(jié)點(diǎn)多于一個(gè)

進(jìn)程(執(zhí)行程序),每個(gè)進(jìn)程多于一個(gè)線程(并行執(zhí)行任務(wù)),可在系統(tǒng)中充當(dāng)組件。大多數(shù)

組件具有反應(yīng)性,對(duì)來自用戶的命令和來自其他組件的消息不斷地進(jìn)行響應(yīng)。像操作系統(tǒng)一

樣,分布式系統(tǒng)旨在避免終止,因此應(yīng)始終保持至少部分可用的狀態(tài)。

4、異構(gòu)性

系統(tǒng)中包含的節(jié)點(diǎn)可以由不同的計(jì)算與通信硬件組成。組成系統(tǒng)的軟件可以包括不同的

編程語言和開發(fā)工具。有些異構(gòu)性問題可以通過使用共同的消息格式或者在不同平臺(tái)(如個(gè)

人計(jì)算機(jī)、服務(wù)器和大型機(jī))上易于執(zhí)行的低級(jí)協(xié)議來解決。其他的可能要求構(gòu)建將一套格

式或協(xié)議轉(zhuǎn)變?yōu)榱硪惶椎木W(wǎng)橋。更徹底的系統(tǒng)集成可以通過這樣的方式達(dá)到,即要求所有的

節(jié)點(diǎn)支持對(duì)獨(dú)立于平臺(tái)的程序指令進(jìn)行處理的共同虛擬機(jī)。使用Java編程語言的系統(tǒng)就采

用這種方式。

5、多種協(xié)議

大多數(shù)分布式消息傳送與在順序程序范圍內(nèi)使用的調(diào)用種類(如過程調(diào)用)有相當(dāng)大的

區(qū)別。分布式通信的最基本形式是異步的。與郵政系統(tǒng)中郵寄的信件類似,發(fā)送者發(fā)送消息

而不指望其接收者收到或答復(fù)。這種基本的分布式消息抵達(dá)接收者通常要比本地調(diào)用花的時(shí)

間長得多。它們有時(shí)以不同于發(fā)送的順序到達(dá)接收者,而且可能根本就不能到達(dá)接收者。為

了避免這種情況,必須構(gòu)建更復(fù)雜的協(xié)議。這些協(xié)議可能包括:

?過程消息接發(fā),在這種消息接發(fā)中發(fā)送者等待完整的答復(fù);

?半同步消息接發(fā),在這種消息接發(fā)中發(fā)送者在繼續(xù)之前等待收到消息的確認(rèn);

?事務(wù)處理協(xié)議,在這種協(xié)議中一個(gè)給定的會(huì)話期或事務(wù)處理內(nèi)的所有消息要么全部

被處理,要么全部不被處理;

?回叫協(xié)議,在這種協(xié)議中接收者過后給發(fā)送者發(fā)回不同的消息;

?超時(shí)協(xié)議,在這種協(xié)議中發(fā)送者在繼續(xù)之前僅在一定的時(shí)間段內(nèi)等待回應(yīng);

?多址通信協(xié)議,在這種協(xié)議中發(fā)送者同時(shí)給一組其他的節(jié)點(diǎn)發(fā)送消息。

這些以及其他的協(xié)議常常被擴(kuò)充和專門化,以提高可靠性、安全性和效率。

6、容錯(cuò)

在單獨(dú)一臺(tái)計(jì)算機(jī)上運(yùn)行的程序,其可靠性充其量僅與該計(jì)算機(jī)的可靠性相等。而另一

方面,大多數(shù)分布式系統(tǒng)需要至少保持部分可用和發(fā)揮作用的狀態(tài),即使其節(jié)點(diǎn)、應(yīng)用程序

或通信鏈路有些出故障或不正常情況。除徹底出故障外,應(yīng)用程序可能因?yàn)閹挷蛔?、網(wǎng)絡(luò)

爭用、軟件開銷或其他系統(tǒng)限制而出現(xiàn)服務(wù)質(zhì)量難以接受地低的情況。因此,在分布式系統(tǒng)

的構(gòu)建中,容錯(cuò)的需求提出了一些最為重要且困難的挑戰(zhàn)。

7、安全性

只有特許用戶可訪問敏感數(shù)據(jù)或執(zhí)行關(guān)鍵操作。分布式系統(tǒng)的安全性本質(zhì)上是個(gè)多層次

問題:從每個(gè)節(jié)點(diǎn)的常駐硬件與操作系統(tǒng)所提供的基本安全保證;到信息加密與驗(yàn)證協(xié)議;

到為隱私、內(nèi)容適宜性和個(gè)人責(zé)任等問題提供支持的機(jī)制。

解決可靠性問題的技術(shù),包括使用數(shù)字證書和阻止組件編碼執(zhí)行修改磁盤文件等可能具

有危險(xiǎn)性的操作。

8、消息傳送

不同計(jì)算機(jī)上的軟件通過建立于若干聯(lián)網(wǎng)協(xié)議(如TCP/IP)基礎(chǔ)上的結(jié)構(gòu)化消息傳送

規(guī)程來進(jìn)行通信。而這些協(xié)議則可以在若干連接技術(shù)(如以太網(wǎng)和調(diào)制解調(diào)器)之任一種的

基礎(chǔ)上運(yùn)行.大多數(shù)分布式系統(tǒng)的節(jié)點(diǎn)是完全相連的——任一節(jié)點(diǎn)可給任一其他節(jié)點(diǎn)發(fā)送消

息。消息傳遞由基本的路由算法和相關(guān)的聯(lián)網(wǎng)支持來完成。

消息包括命令、服務(wù)請(qǐng)求、事件通知、多媒體數(shù)據(jù)、文件內(nèi)容,甚至完整的程序。應(yīng)注

意的是,大多數(shù)多處理器通過共享存儲(chǔ)器而不是消息傳送來進(jìn)行通信,因此不是分布式的。

9、開放性

大多數(shù)順序程序被認(rèn)為是封閉的,因?yàn)樵趫?zhí)行開始后它們的配置一直保持不變。在一定

程度上,大多數(shù)分布式系統(tǒng)是開放的,因?yàn)樵谙到y(tǒng)運(yùn)行期間,可以添加或改變節(jié)點(diǎn)、組件和

應(yīng)用程序。這就提供了容納擴(kuò)展所必需的可擴(kuò)展性,以及隨著系統(tǒng)所駐留的環(huán)境的變化而變

化并應(yīng)對(duì)之的能力。

開放性要求每個(gè)組件遵守一組最起碼的策略、慣例和協(xié)議,以確保更新或添加的組件之

間具有互操作性。以往,最成功的開放式系統(tǒng)是那些提出最低限度要求的系統(tǒng)。例如,超文

本傳輸協(xié)議的簡易性就是萬維網(wǎng)成功的一個(gè)主要原因。

國際標(biāo)準(zhǔn)化組織和美國國家標(biāo)準(zhǔn)協(xié)會(huì)等標(biāo)準(zhǔn)組織,與對(duì)象管理組等工業(yè)財(cái)團(tuán)一起,制定

了構(gòu)成許多互操作性保障之基礎(chǔ)的基本格式和協(xié)議標(biāo)準(zhǔn)。另外,單個(gè)分布式系統(tǒng)還依賴于和

環(huán)境細(xì)節(jié)或域相關(guān)的策略和機(jī)制。

10、隔離

每個(gè)組件在邏輯上或物理上是獨(dú)立存在的,僅通過結(jié)構(gòu)化信息協(xié)議來與其他組件進(jìn)行通

信。另外,出于功能、性能或安全的考慮,一組組的組件也可能被分開。例如,盡管一個(gè)公

司用分布式系統(tǒng)的連通性可能延伸到整個(gè)因特網(wǎng),但其基本功能可能(常常通過防火墻)限

定于只在防火墻之內(nèi)運(yùn)行的局域網(wǎng)。這樣,它與系統(tǒng)的其他部分進(jìn)行通信,要通過限定的安

全協(xié)議。

11、持久性

至少有些數(shù)據(jù)與程序保留在持久性介質(zhì)上,其持久性大于特定應(yīng)用程序的執(zhí)行時(shí)間。可

在文件系統(tǒng)、數(shù)據(jù)庫系統(tǒng)或編程語言的運(yùn)行時(shí)支持機(jī)制等層次上作出持久性安排。

12、分散控制

單獨(dú)的計(jì)算機(jī)無需對(duì)整個(gè)系統(tǒng)的配置、管理或策略控制擔(dān)負(fù)責(zé)任。分布式系統(tǒng)反而是通

過自主主體協(xié)議連接的域,而這些自主主體為提供聚合功能要達(dá)成足夠的共同策略。分散化

在有些方面是可取的,如為容錯(cuò)而預(yù)先采取的措施。分散化在另一些方面則是必不可少的,

因?yàn)榧锌刂撇荒苓m應(yīng)當(dāng)代系統(tǒng)所支持的節(jié)點(diǎn)與連接數(shù)量。然而,對(duì)系統(tǒng)范圍的策略實(shí)施管

理的工具則可能限于特定用戶使用。

三、優(yōu)點(diǎn)和缺點(diǎn)

1、分布式系統(tǒng)的優(yōu)點(diǎn)

分布式系統(tǒng)具有很多內(nèi)在的優(yōu)點(diǎn),尤其是與集中式系統(tǒng)相比較而言。而且,有些應(yīng)用程

序本質(zhì)上就是分布式的。一般來說,分布式系統(tǒng):

?產(chǎn)生較高的性能;

?提供較高的可靠性;

?允許遞增的發(fā)展。分布式計(jì)算比單個(gè)中央處理器提供的返回率高;

?構(gòu)建由大量的用高速網(wǎng)絡(luò)連接起來的中央處理器組成的系統(tǒng),既可行又易行:

?滿足了共享分散在這些中央處理器上的數(shù)據(jù)的需要;

?提供了共享昂貴的外圍設(shè)備的方法;

?允許一個(gè)用戶在許多不同的機(jī)器上運(yùn)行程序。

2、分布式系統(tǒng)的缺點(diǎn)

分布式系統(tǒng)盡管具有許多優(yōu)點(diǎn),但的確也存在一些缺點(diǎn)。其中有:

?需要新的操作系統(tǒng)為其提供支持;

?依靠網(wǎng)絡(luò)通信:

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論