



下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
《實用計算機英語》參考譯文Chapter1Section!個人計算機硬件一臺個人計算機是由多個物理部件構成的計算機硬件組成的,安裝好一組軟件后,就可以執行計算機的操作了。計算機硬件可以分成四大類:處理單元、存儲設備、輸入設備、輸出設備。處理器處理器是計算機真正計算的部分,有時稱它為MPU(即主處理器)或CPU(即中央處理單元或中央處理器單元),處理器一般包括算術/邏輯運算單元(ALU)、控制單元(包括處理器標志、標志寄存器、狀態寄存器)、內部總線、特定功能單元(最常見的特殊功能單元是用于浮點算術的浮點單元)。ー些計算機的處理器不止ー個,即多處理器。混合處理器由兩個或三個處理器單元組合而成。算術/邏輯單元(ALU)執行整數算術運算和邏輯運算。也能執行移位運算和其他指定操作。通常,浮點運算由專用的浮點協處理器來實現。控制單元控制管理計算機。控制單元取指令并且解譯機器指令。控制單元以也可以控制一些外部設備。存儲設備內存對于計算機就像計算機對于我們那樣重要,內存芯片存儲所有計算機完成任務所需的信息,一旦任務被執行完畢,內存立即被新數據覆蓋。認識到只有當計算機一直處于打開狀態,數據オ被存儲在內存里是很重要,也就是說當你正在寫一封信,計算機電源被關閉了,那么計算機中就沒有那封信的“記憶”了。(要想永久性保存的話,就必須把它存儲到硬盤或軟盤),內存芯片價格便宜并且容易安裝,要想工作起來得心應手,就安裝大容量的內存吧。輸入設備通常把計算機的外部硬件分為兩組,第一組負責將數據或命令從用戶傳送到計算機,也叫輸入設備。最常見的輸入設備有鼠標和鍵盤,通過按鍵或滾動鼠標的滾軸以及單擊按鈕來使計算機以某種方式響應。在計算機問世初期,只有通過鍵盤來控制計算機,但是現在已經有很多輸入設備用于輸入信息了。如果你需要把圖像傳送到計算機內部,你可以使用掃描儀,對于計算機來說,就像使用影印機ー樣。只需簡單地把圖像放到掃描儀上,掃描過后就可以在屏幕上看到圖像,你可以用軟件編輯圖像的尺寸、顏色、對比度等。如果你需要畫畫,并想在屏幕上顯示,你可以使用鼠標,但是這就好比是在“磚”上畫,很多藝術家使用圖形輸入板和光筆替代了傳統的繪畫工具。游戲愛好者有很多比鼠標更實用的工具來幫助他們駕駛、飛翔、戰勝敵人、開火等。最常用的是游戲桿,也可以選擇游戲鍵盤、手柄、游戲專用耳機等。輸出設備一旦用戶把需要的數據和信息輸入到計算機,有幾種輸出設備可以把數據從計算機傳遞給用戶。最常用的輸出設備是監視器,也叫VDU或光學顯示單元。現代的顯示器支持高質量的分辨率圖片,不用再遇到幾年前會頻繁出現的令人討厭的影響。不過,只要能支付得起,選擇適合自己工作區的最大、最亮的屏幕很重要,因為你將會長時間地使用它。有人希望老式的陰極射線管顯示器能夠在近幾年內被激光盤屏幕替代,就像老的電視機被大的、最新的屏幕替代一樣,液晶顯示器比老的顯示器更輕、產生的熱量更少。對任何計算機來說最重要的輸出設備是打印機,當前最好的是噴墨打印機,它能產生極好的色彩質量,他們從墨盒里無聲地在紙上噴出微小的彩色或黑色粉墨顆粒。印刷品圖像的分辨率和精度和傳統的照片可相媲美,但噴墨打印機速度慢并且更換墨盒的成本很髙。激光打印機通常進行黑白打印(盡管彩色激光打印機越來越便宜),而且由于他們比噴墨打印機打印速度更快,打印質量更好,平均每頁消耗成本更低,所以辦公室里更愿意選擇激光打印機。Ch叩terSection2計算機軟件及其分類計算機軟件是ー個通稱,通常是計算機數據和指令的有組織的集合,該集合是由計算機發布ー套指令以便計算機完成一些特定的任務。計算機軟件實質上和計算機程序是一致的。在實踐中,“軟件”這個術語通常用來描述一種不僅僅包含單ー程序的商業產品。軟件可以告知計算機如何同用戶溝通,如何處理用戶的數據。沒有了軟件,計算機基本上就成為ー堆無用的金屬。通過軟件,計算機可以存儲、處理和檢索信息,演示多媒體文檔,在因特網上搜索,從事許多其他有價值的活動。計算機軟件可粗略地分成兩類:管理計算機操作的系統軟件和滿足用戶實際需求工作的應用軟件。創新觀念和科技發展是經濟增長點推進器。—華爾街日報系統軟件是負責對計算機系統的各個部件進行控制、集成和管理以便其他軟件和系統用戶將系統軟件視為ー個功能整體,而不必擔心數據如何從內存傳送到硬盤,或者在顯示器上顯示文本等低層的細節。通常,系統軟件包含一些控制計算機操作和設備的程序。系統操作的功能包括啟動計算機;初始化、調用和運行應用程序;存儲、檢索和拷貝文件;格式化磁盤;縮減文件大小;以及備份硬盤內容。系統軟件就好像是計算機用戶和應用程序和計算機硬件之間的接口。常見的計算機系統軟件分為操作系統和實用程序兩類,實用程序是ー種執行某項特定任務,通常管理計算機硬件資源的系統軟件。最基礎的系統軟件是操作系統,它是一套包含能協調所有計算機硬件資源的指令的程序。操作系統給系統硬件和用戶或應用程序之間提供了一個應用接口。例如,操作系統能夠識別鍵盤,鼠標和麥克風這些輸入設備提供的數據、控制顯示器上的輸出顯示;引導打印機進行適當的信息打印;并且管理存儲在磁盤上的數據,指令和信息。缺少操作系統,計算機不能實現其功能。目前有很多不同品牌和版本型號的操作系統。這些都是為ー個或者多個特定的處理器而設計的操作系統。例如Windows系統不能運行Apple公司的某些機型,卻可以和Intel以及AMD的一些處理器很好地兼容。盡管系統軟件控制計算機內部的功能并且幫助計算機使用外圍設備,但是應用軟件卻可以培訓個人計算機的“大腦”使其具有更高的認知能力,而不僅僅是讓計算機能保持工作和連接到其他計算機上。它是為終端用戶設計的程序,具備下列用途;1)作為一個生產カ和業務工具,例如文字處理、數據庫管理、電子表格、演示圖片、個人信息管理、財務項目管理以及其他相關類型的軟件。2)輔助圖片和多媒體項目,包括計算機輔助設計、桌面排版、動畫圖片、視頻和音頻捕捉、多媒體以及網頁制作軟件。3)支持ー些瑣碎的用于個人事務、教育或者培訓的活動。4)促進通訊,可以有新聞組、電子郵件、BBS以及網絡瀏覽器等。形象地說,應用軟件位于計算機系統軟件的上層,沒有計算機操作系統和系統實用程序,計算機就不能運行任何的應用程序。沒有操作系統和系統實用工具,計算機不能運行任何應用程序。并且在計算機運行一些應用軟件之前,操作系統載進計算機的主存中。必需將操作系統運行的過程中允許計算機和應用軟件之間進行通訊。同時,可以同時運行在一個以上的操作系統的應用軟件稱為交叉平臺。File-Maker-Pro就是ー個例子,它可以運行在多個操作系統平臺,包括幾個版本的微軟的Windows和Macintosh操作系統。Chapter1Section3數據結構與算法數據結構在計算機科學領域,數據結構是研究數據在計算機中如何存儲以便有效使用的ー門學科。它將數據按照數學和邏輯概念進行組織。認真選擇的數據結構往往使得算法更有效率。數據結構的選擇通常始于抽象數據類型的選擇。ー個精心設計的數據結構使得在盡可能少占用資源的情況下,讓各種關鍵的操作得以實現,這些資源包括執行時間和內存空間。數據結構通過程序語言和它們提供的數據類型、引用以及操作來實現。不同種類的數據結構適用于不同的應用領域,有些數據結構專用于特定的任務。例如,B樹特別適用于數據庫的實現,而計算機網絡依賴于路由表實現功能。在多種計算機程序的設計中,數據結構的選擇是最初的設計考量。構筑大型系統的經驗表明,實施的難度和最終結果的品質和性能都強烈依賴于數據結構的選擇。在數據結構選定以后,可用的算法就相對顯現了。有時,事情向著相反的方向行進ーー數據結構的選定是因為特定的關鍵任務已經有了和某些數據結構最匹配的算法。無論哪種情形,合適數據結構的選擇都很關鍵。這種觀點促進了多種形式化設計方法和程序語言的發展,它們把數據結構而非算法作為關鍵的組織因素。多數語言反映了模塊系統的需求,通過將可校驗的實現細節隱藏在控制接ロ之后的方式,允許數據結構在不同的應用中被安全地復用。面向對象的程序語言,例如C++和Java,特地用類來實現這ー目的。數據結構如此重要,以致許多數據結構被納入現代編程語言的標準庫和應用程序接口(API)中,例如,C++的容器、Java集合框架以及微軟的.NET框架。多數數據結構的基本構件是數組、記錄、聯合和引用。例如,可賦為空值的可空引用是引用和區分聯合的組合,而最簡單的鏈式數據結構ーー鏈表就是由記錄和可空引用構成的。數據結構呈現為實現或接口:ー個數據結構可以被看作為兩個函數間的接口或作為按照相關數據類型組織起來的存儲訪問方法的實現。算法在數學、計算機科學、語言學等相關學科中,算法是ー組有限指令序列,是為了解決問題而采取的一步ー步的步驟,常用于計算和數據處理。在形式上,它是這樣ー類有效方法:在給定一個初始狀態后,ー組定義好的完成任務的指令通過一系列定義好的后繼狀態的處理,最終終結于ー個結束狀態。從ー個狀態到下一個狀態的轉變不必是確定的。有些算法,如概率算法,吸納了隨機性。算法的廣義定義是,ー組為了完成某個任務而編寫的可理解的有限的指令。給定一組定義好的輸入,將產生一些可識別的結束狀態(區別于啟發算法)。算法常有重復(迭代)或需要條件判斷(例如邏輯判斷或比較)的步驟,直到任務完成。算法效率在計算機科學中,效率用于描述算法占用了多少類型的資源的相關特征。通常是指以下兩種資源:?速度或運行時間ーー運行完一個算法所花費的時間。?空間ーー在算法執行過程中所使用的內存或非揮發的存儲。速度對于ー個給定的輸入,ー個算法的絕對速度可以簡單地通過計算執行的時間(或時鐘時間)來衡量,其結果可以是幾次執行的平均值以消除可能的隨機影響。大多數現代處理器的操作是在多道程序處理的環境下進行的,因此,必須考慮同一臺物理機器上的并行處理,盡可能地消除這些因素的影響。算法性能的相對測量有時可以從運行時間指令集模擬器(如果能獲得的話)判定的總指令路徑長度來獲得。算法速度的估算可以從不同方法得到。最常用的方法用時間復雜度來決定算法的大。。參照“運行時間分析”方法,依據類型(例如:在非排序表中查找還是在排序表中查找等)和規模去估算ー個特定的算法運行得可能有多快,而規模取決于“輸入尺寸”、處理器的能力和其他因素。存儲空間通常,以多占用存儲空間為代價可以換取算法更快執行。這樣的事正如將一個資源消耗很大的計算結果放在緩沖寄存器中以備下次使用比每次都重新計算要快。在這種情況下,雖然額外的存儲需求被看作是附加的儲存,但是,許多情況下,存儲結果值占用很少的額外空間,并且常常被存儲在預先編譯的靜態存儲器中,降低的不僅是處理時間,而且還有分配和回收工作內存的時間。這是提高速度的通常的方法,以致ー些編程語言常常添加特殊的性能以支持這一方法,例如C++的“易變(mutable)”關鍵字。算法的內存需求實際上是兩個既相互獨立又相互關聯的事情:?編譯后的可執行代碼(目標代碼或二進制文件)本身所占據的內存空間(在磁盤或其他相當的存儲器上,依賴于硬件和語言)。可以通過在編譯時間決策機制(例如宏替換和模板)之上實施運行時間決策機制(例如虛擬函數和運行時類型信息)來減少這ー空間需求。這些,當然會伴隨著速度降低的代價。?在算法處理過程中所分配的臨時動態內存。例如,前面所提到的,為了加快速度而需要動態預緩存運算結果就以內存耗費為代價。甚至子程序調用的深度也會極大地影響內存耗費并且增加了路徑深度,特別是,有些特定的函數調用需要很多的動態內存耗費。Ch叩ヤer1Section4計算機網絡概述大多數機構中用于工作的許多計算機,經常相隔很遠。例如,擁有許多工廠的公司有可能在每個地方都會有一臺計算機來追蹤產品目錄,監控產品進度,編制薪水冊。起初,每臺計算機與其他計算機相互獨立工作,但是從某個點開始,管理層開始決定將它他們連接在ー起管理,使整個公司的信息互通。計算機網絡采用更通用的說法,就是資源共享,其目的就是使所有程序、設備,特別是信息,在不考慮使用者和資源的物理位置得前提下,對網絡中的每個人都是可用的。換句話說,即便使用者的數據距離他的實際位置有一千米遠,也不會阻止他使用數據,好像這些數據都存在本地似的。這個目的被稱為“地理束縛”的結束。第二個目的是利用資源供給的靈活性,提供網絡可靠性。例如,所有文檔可復制到兩到三臺機器上,所以即使其中一臺機器不好使(由于硬件故障),其他備份也可用。另外,多處理器的出現意味著,如果ー個處理器不工作,其他處理器能夠取代它的工作,雖然會造成工作性能的降低。對于軍事、銀行、航空交通控制、核安全和其他應用行業而言,硬件出現問題但系統繼續運行是非常重要的。第三個目的是省錢。小型計算機可能會比大型機具有更好的性價比。大型計算機運行會比個人計算機大約快十倍,但可能要比個人計算機貴一千倍。這種不均衡導致更多的系統設計者,將系統設計成由個人電腦構成的系統,每個使用者一臺,且數據可被單個或多個共享文件服務器存儲。在這種體系中,使用者被稱為客戶,整體的布局稱為客戶端一服務器模型。在客戶端一服務器模型中,通信形式主要是在客戶端和服務器之間,以請求消息的形式,發送某ー需要完成的工作指令。服務器完成工作后,返回數據。通常情況下,許多客戶使用少量的服務器就可進行工作。另ー個網絡的目標是系統的高暢銷性,也就是隨著工作量逐步的增加,通過增加更多的處理器就可提高系統的性能。系統飽和后,集中式計算機只能將被更大型的計算機取代,而這類計算機通常價格更高,對使用者的干擾更大。而采用客戶端一服務器模型,新的客戶端和服務器都可隨著需求增加。建立計算機網絡還有一個目的與技術沒有關聯。計算機網絡可為相距遙遠的員エ提供強大的通信介質。使用網絡,可使兩個或多個相隔很遠的人共同完成一個報告。當ー個員エ在線修改文檔時,另一個可立刻看到這種變化,而不是要等到若干天后オ收到。這種效率的提高使得廣布各個地區的群體,能夠容易合作,而在這過去是不可能實現的。從長遠來看,人與人之間的交流要比技術目標如提高可控性等更重要,因此計算機網絡能夠加強人與人之間的交流。Chapter2Section1操作系統的基礎介紹操作系統通常存儲在計算機硬盤的系統扇區之中。操作系統的核心稱為內核,主要負責管理內存、文件和硬件設備,維護計算機包含當前日期時間的系統時鐘,初始化應用,分配計算機的硬件、軟件程序以及數據等資源。每當用戶打開計算機的時候,內核和其他操作系統常用的指令就會被從硬盤調入到主存檔中。這些長期存儲在計算機主存的程序和命令被稱為內存常駐進程,其中包含操作系統的核心進程如日歷計算機和一些用戶經常會快速訪問的程序。新一代的計算機系統包含一個或多個處理器,主存(經常被稱作隨機存儲器)、磁盤、打印機,網絡接口和輸入輸出設備。總而言之,編寫ー些了解且能正確地使用計算機部件的程序是一件非常困難的事情,更別說優化它。因此,很顯然,為程序員找到屏蔽復雜硬件的方法很有必要,該方法已逐漸發展成在純硬件之上鋪設ー層軟件來管理系統的所有部件,提供用戶接口或者理解并進行程序設計的虛擬機。這個軟件層就是操作系統。在20世紀80年代中期的時候發生了一些很有意思的變革,運行在網絡操作系統、分布式操作系統和嵌入式操作系統的個人計算機數量明顯增加。在ー個網絡操作系統中,用戶可以意識到很多計算機的存在而且可以遠程登錄并在計算機之間拷貝文件,每一臺工作站擁有它自己的操作系統和本地用戶。網絡操作系統和單處理機的操作系統有著非常顯著的差異。很明顯它們需要一個網絡接口控制器和一些低層的軟件系統來支持,以及ー些程序來遠程登錄和進行文件的遠程讀取,但是這些增加的功能沒有改變操作系統本質的結構。改進的藝術是在變更中保持有序,同時在有序中保持變更。 AlfredNorthWhitehead相反,對于用戶而言,分布式操作系統則是ー個傳統的處理器系統,即使實際上它由多個處理器組成。用戶不必去了解它們的程序在哪里運行或者文件存放在哪里。而這些都自動并且高效率地由操作系統來執行。真正的分布式操作系統只需添加少量的代碼到ー個處理器操作系統,因為分布系統和核心系統的區別非常明顯。例如分布式系統通常允許應用程序同時運行在幾個不同的處理器上,因此需要更為復雜的處理器分配算法來優化所有的并行操作。嵌入式的操作系統是ー個用于嵌入計算機系統的操作系統,這樣的操作系統一般都設計簡潔、高效,并且拋棄了非嵌入操作系統提供的很多的功能,而這些功能也許不能為它們運行的專門應用程序所使用。嵌入式系統通常是實時操作系統,例如嵌入式系統經常被應用于自動柜員機、現金注冊、中央電視臺系統、點唱機等諸如此類的系統中。總之,操作系統最主要的功能就是為程序操作人員提供ー組更為方便的指令而屏蔽復雜的底層系統,無需考慮過多的硬件細節。根據一些特定用戶的需求,操作系統可以支持運行單個程序ー個用戶或者數千用戶運行多個程序。操作系統的這些能力可以描述為單用戶,多用戶,多處理,多任務。任何ー個操作系統都具備一個或多個操作能力。Chapter2Section2操作系統的功能操作系統是ー系列過程的集合,這些過程可以隨時按照需求進行調用。大多數的CPU擁有兩種模式:ー種是用于操作系統的核心模式,此核心模式中所有的指令都是可用的;另ー種是用于用戶程序的用戶模式,在此模式中I/O和一些特殊的指令是不允許使用的。操作系統會檢查調用的參數來決定何種類型的系統調用。操作系統是運行核心模式或者是監管模式的軟件,可以防止用戶對硬件進行更改。接下來介紹操作系統常用的幾個概念。進程,是所有操作系統中的ー個重要概念。進程是程序執行的基本單元,每一個進程都分配有各自可供讀取的內存地址空間,地址空間包含了可執行程序,數據以及相關的堆棧。同時,還有一些和進程相關的寄存器組,包括程序計數器,棧指針以及其他的硬件寄存器和其他所有程序運行需要的信息。文件,另外一種與文件系統有關的系統調用類型。如上所述,操作系統的ー個首要功能就是隱藏一些特定的磁盤以及I/O系統的細節從而給程序員呈現ー個友好而簡潔的跟設備無關的文件模式。命令解釋器,是用戶終端設定和操作系統之間的ー個應用接口。一旦有用戶注冊,內核程序就開始啟動。內核擁有標準的輸入和輸出終端。一般從顯示提示開始,ー個像美元標志的字符會告訴用戶現在那些內核正在等待接受命令。這種位于操作系統和用戶程序之間的接口是由操作系統所提供的擴展指令定義的,這些擴展指令就是我們傳統意義所稱的系統調用。操作系統的核心就是這些可以操作的系統調用。這也揭示了操作系統的真正功能。我創造了它,比爾蓋茨卻將它發揚光大。——DavidBradley(為IBM的個人計算機編寫Ctrl+Alt+Del快捷鍵的人)操作系統從ー開始的操作者發展成當今多程序處理系統經歷了一個漫長的歷史時期。我們可以從兩種角度來看待操作系統:擴展機和資源管理器。作為資源管理器,操作系統的エ作就是髙效地管理計算機系統不同的部件。擴展機要比實際的機器使用起來更為方便。操作系統類似于擴展機上文曾經提到,大多數計算機結構的機器語言層對我們程序是非常重要的,尤其是對于數據輸入和輸出。操作系統恰能為程序員屏蔽磁盤硬件細節而呈現ー個面向文件的接口,同時也避免了一些讓人不愉快的ー些干擾,計時器,內存管理和其他的ー些底層特性。從這個角度來說,操作系統的功能就是展現給用戶ー個類似于擴展機或者虛擬機,利用虛擬機進行程序設計要比在硬件層容易。具體的情況可以見下表。銀行系統航空訂票網絡瀏覽卜應用程序編譯器編輯器命令解釋器ヽ操作系統A系統程序機器語言微代碼硬件系統物理設備J在操作系統的上層是系統其余的軟件。這里我們可以看到有命令解釋器,視窗系統,編譯器,編輯器,以及類似獨立應用的程序。認識到這些程序并不是定義在操作系統的范圍內是一件非常重要的事情,即使這些程序基本上是由計算機制造商來提供的。作為資源管理器的操作系統現代的計算機由處理機、存儲器、計時器、磁盤、鼠標、網絡接口、激光打印機及其他各種各樣的設備構成。也就是說,操作系統的工作就是提供不同計算機程序所競爭的各種資源一個有序和可控的分配,包括處理器、內存和輸入輸出設備。假如三個運行在同一臺計算機上的程序同時試圖使用一臺打印機來完成打印任務,想象會發生什么。結果將會出現很混亂的情況。操作系統可以通過在磁盤上為打印機緩存所有的打印文件,來將這些隱藏的混亂進行排序。簡而言之,操作系統首要的任務是追蹤誰在使用哪個資源的進程,確定資源申請,滿足使用,同時緩解不同程序和用戶的資源需求沖突,這樣的沖突情況被稱為資源死鎖。Ch叩ter2Section3常見的操作系統操作系統是用戶、所有軟件和硬件系統之間的解釋器,同時也控制著計算機系統的內部組件。應用程序可以通過應用程序接口或者系統調用來獲取這些服務。通過使用這些接口,應用程序可以向操作系統請求服務,傳遞參數,接收操作結果等。用戶也可以通過某種軟件用戶接口和操作系統之間進行交互操作,例如打印命令可以通過使用命令行界面或者圖形用戶界面進行操作。對于ー些便攜式或者桌面計算機,用戶界面被看作是操作系統的一部分。在大型的類似于UNIX和類UNIX的多用戶操作系統中,用戶接口通常是像運行在外部操作系統的應用程序。當代常見的操作系統一般包含MicrosoftWindows,MacOS、Linux,BSD和Solaris。MicrosoftWindows在臺式機和筆記本市場上占有相當重要的份額,同時大多數服務器系統通常運行在UNIX或者類似UNIX的平臺上。一些嵌套設備市場也是由幾種操作系統分食的。總、之,常見的集中操作系統有DOS,Windows,UNIX,Linux和MacOS。微軟的MS-DOS和貝爾實驗室的UNIX是兩種最初主導個人計算機和工作站領域的較普遍的操作系統:MS-DOS是最先使用的操作系統,并且廣泛的應用在IBM的個人計算機上,它較難使用的命令行界面給我留下了深刻的印象。盡管早期版本的很多優秀的特性都是來源于UNIX系統,但是微軟繼承了MS-DOS,最初的Windows版本運行在MS-DOS之上。但是從1995年后,一種自由單機版本不需要MS-DOS框架支持的Windows95版本的誕生,意味著不再需要MS-DOS的支持。微軟的另外一種操作系統WindowsNT,是ー種在某些層次上兼容了Windows95而又從內部全新開發的ー種操作系統。另外一個主要產品就是由美國電報電話公司的貝爾實驗室的DennisRitchie和KenThompson開發出來的UNIX系統。UNIX是由C外殼程序設計編寫并可以簡單用于各種計算機接口。目前已經在大部分工作站和其他高端計算機的操作系統占據了主導地位,例如網絡服務器等。尤其適用于使用高性能的RISC芯片的計算機系統,這些機器通常擁有小型計算機的處理能力,即使專注于單用戶的操作。UNIX的功能非常強大,由400多個指令模塊庫構成,通過這些模塊的鏈接幾乎可以完成任何程序任務。當UNIX系統剛開發不久的時候,在AT&T公司的許可下,其源代碼可以多方獲得用于研究。因為AT&T公司投放第7版本的時候開始意識到了UNIX的商業價值。所以此后理論教學只能是學生們對這個操作系統的本質做一個泛泛的了解。出于這個原因,一個芬蘭的學生Torvalds,開始編寫了一個不僅僅用于教學而且特點鮮明的Linux系統。Linux易獲得免費版本的這個狀況對它的流行起到了巨大的推動作用,而且網絡管理者發現這種系統同樣可以為網絡服務器提供ー個性能安全和穩定的操作系統。Linux是UNIX的免費克隆版本支持各種各樣的軟件,如Windows系統,C/C++編譯環境,TCP/IP網絡協議等。現在開始用在DECAlpha,PowerPC,甚至Macintosh的機器上,可見其優秀的可移植性和靈活性。使用UNIX尤其重要的ー個特點就是你可以在ー個真實內核的環境下進行操作。所有的內核資源代碼都可以為Linux所用,你可以根據自己的需要來修改這些源代碼,而且閱讀這些內核源碼是一個非常好的學習過程。除此以外,Apple公司的產品Macintosh計算機是首先引入圖形用戶界面。1998年Apple的snazzyiMac計算機同樣體現了Mac操作系統的特點,同時體現出智能性、交互性、信息性和互聯性,是新一代的多媒體計算機的典型。和Windows相似,Mac操作系統擁有很多不斷改進和變更的版本,包括多任務處理能力、支持小型網絡等。我們將支持Mac操作系統的軟件稱為Macintosh軟件。目前Mac操作系統使用的軟件條目要比微軟的Windows系統少很多。但是也有一些硬件模擬器和軟件插件陸續被開發出來使得Windows系統的軟件能正常運行在Mac計算機上,但是很多對性能挑剔的Mac計算機用戶還是堅持使用Mac自身的軟件系統。Section4LinuxLinux操作系統的出現,最早開始于一位名叫LinusTorvalds的計算機業余愛好者,當時他是芬蘭赫爾辛基大學的學生。Linus對Minix,ー種小型UNIX系統感興趣,他決定研發ー種超過Minix標準的系統。他于1991年開始研發,那一年他發布了0.02版本,在1994年Linux內核1.0版本的發布之前,該版本很穩定地發揮作用。Linux內核是所有Linux系統的核心,它在GUN通用公開許可證下被研發和發布。它的源代碼免費提供給每個人。正是該內核導致Linux操作系統的研發。現有數百家公司、組織及個人基于Linux內核發布了他們自己的操作系統版本。現在的完整版2.6是2003年12月發布的,版本的研發還在繼續。Linux與現代許多其他流行操作系統的主要區別是Linux內核和其他組件是自由和開放源碼軟件。Linux不是唯一的操作系統,但它是目前使用最廣泛的。ー些自由和開放源碼軟件許可證是非營利版本,一種互惠,任何來自非營利版本的軟件操作本身也必須是非營利的。最常見的免費軟件許可證GNUGPL是ー種非盈利版本,用于Linux內核和許多來自GNU項目的部件。除了它是自由發布式的以外,Linux的功能性、適應性和靈活性使得它成為專有Unix和微軟的操作系統的主要替代品。IBM、惠普和其他世界電腦巨頭已經接受Linux并且支持其不斷發展。進入第二個十年,Linux已經被世界各地主要作為服務器平臺所使用,利用它作為家庭和辦公室桌面操作系統也有所增加。操作系統也可以直接納入“嵌入”過程中的芯片,越來越多地被用于這樣的設備和裝置。20世紀90年代,大多數科技專家不知道Linux的潛カ,駁回其使用,認為是電腦業余愛好者的項目,不適合普通大眾的計算機需求。經過桌面管理系統(如KDE和GNOME)研發者的長時間努力,如,辦公套件項目OpenO和Mozilla網絡瀏覽器的項目,現在有各種各樣運行在Linux的應用軟件,任何人可使用,不論他是否了解電腦知識。那些對Linux能カ好奇的人們可以下載ー個所謂的liveCD版Knoppixo它配備了所有你可能需要在電腦上進行日常工作的東西,并且無需安裝。它在能從CD驅動器內運行。那些選擇繼續使用Linux的人們可以找到各種各樣的版本,或者Linux的“分配”,它是易于安裝、配置和使用的。Linux的正式吉祥物為企鵝Tux,它是由LinusTorvalds選擇來代表與操作系統有關的形象。Tux企鵝被LarryEwing和Larry慷慨贈給社會免費使用,以促進Linux操作系統。Section1數據庫各組成部分在MicrosoftSQLServer2000中,數據庫由存儲特定結構化數據集的表集合組成。表中包含行(有時稱作記錄或元組)和列(有時稱作特性)的集合。表中的每一列都設計為存儲某種類型的信息(例如,日期、名稱、美元金額或數字)。表上有幾種控制(約束、規則、觸發器、默認值和自定義用戶數據類型)用于確保數據的有效性。表上可以有索引(與書中的索引非常相似),利用索引可以快速地找到行。可將聲明引用完整性(DRI)約束添加到表±,以確保不同表中相互關聯的數據保持一致。數據庫還可以存儲過程,這些過程使用Transact-SQL編程代碼對數據庫中的數據執行操作,如存儲對表數據提供自定義訪問的視圖。例如,創建名為MyCoDB的數據庫來管理公司的數據。在MyCoDB數據庫中,可以創建ー個名為Employees的表來存儲每個職員的信息,該表可以包含名為Empld、LastName、FirstName,Dept和Title的列。必須給表添加一些約束,以確保沒有兩個職員使用同一Empld,同時確保Dept列僅包含貴公司中有效的部門編號。您可以定義索引,以確保能夠根據職員ID或姓氏快速地找到職員的數據。對于每ー個職員,都需要向Employees表添加一行數據,所以可以創建名為AddEmployee的過程,將該過程自定義為接受新職員的數據值,并執行向Employees表中添加行的操作。若需要一份部門職員的概要,這種情況下定義ー個名為DeptEmps的視圖,合并Departments和Employees表中的數據并產生輸出。圖3.1顯示了創建的MyCoDB數據庫的局部。表表是包含數據庫中所有數據的數據庫對象。表定義為列的集合。與電子表格相似,數據在表中是按行和列的格式組織排列的。每行代表唯一的一條記錄,而每列代表記錄中的ー個域。例如,在包含公司雇員數據的表中每一行代表一名雇員,各列分別表示雇員的詳細資料,如雇員編號、姓名、地址、職位以及家庭電話號碼等。索引數據庫中的索引與書籍中的索引類似。在一本書中,利用索引可以快速查找所需信息,無須閱讀整本書。在數據庫中,索引使數據庫程序無須對整個表進行掃描就可以在其中找到所需數據。書中的索引是ー個詞語列表,其中注明了包含各個詞的頁碼。而數據庫中的索引是ー個表中所包含的值的列表,其中注明了表中包含各個值的行所在的存儲位置。可以為表中的單個列建立索引,也可以為ー組列建立索引,索引采用B樹結構。索引包含一個條目,該條目有來自表中每一行的ー個或多個列(搜索關鍵字)。B樹按搜索關鍵字排序,可以在搜索關鍵字的任何子詞條集合上進行髙效搜索。例如,對于一個A、B、C列上的索引,可以在A以及A、B和A、B、C上對其進行高效搜索。大多數書中包含一個關于詞匯、名稱、地點等等的總索引。數據庫則包含分別關于所選類型或數據列的索引:這好比在一本書中分別為人名和地名建立索引。當創建數據庫并優化其性能時,應該為數據查詢所使用的列創建索引。在隨MicrosoftSQLServer2000提供的pubs示例數據庫中,employee表在emp_id列上有一個索引。圖3.2顯示索引如何存儲每個emp_id值并指向表中包含各個值的數據行。當SQLServer執行ー個語句,在employee表中根據指定的emp_id值查找數據時,它能夠識別emp_id列的索引,并使用該索引查找所需數據。如果該索引不存在,它會從表的第一行開始,逐行搜索指定的emp_id值。SQLServer為某些類型的約束(如PRIMARYKEY和UNIQUE約束)自動創建索引。可以通過創建不依賴于約束的索引,進ー步對表定義進行自定義。不過,索引為性能所帶來的好處卻是有代價的。帶索引的表在數據庫中會占據更多的空間。另外,為了維護索引,對數據進行插入、更新、刪除操作的命令所花費的時間會更長。在設計和創建索引時,應確保性能的提高程度大于在存儲空間和處理資源方面的代價。視圖視圖是ー個虛擬表,其內容由查詢定義。同真實的表一樣,視圖包含一系列帶有名稱的列和行數據。但是,視圖并不在數據庫中以存儲的數據值集形式存在。行和列數據來自由定義視圖的查詢所引用的表,并且在引用視圖時動態生成。對其中所引用的基礎表來說,視圖的作用類似于篩選。定義視圖的篩選可以來自當前或其他數據庫的ー個或多個表,或者其他視圖。分布式查詢也可用于定義使用多個異類源數據的視圖。如果有幾臺不同的服務器分別存儲組織中不同地區的數據,而您需要將這些服務器上相似結構的數據組合起來,這種方式就很有用。通過視圖進行查詢沒有任何限制,通過它們進行數據修改時的限制也很少。圖3.3顯示了在兩個表上建立的視圖。Chapter3Section2關系數據庫組件MicrosoftSQLServer2000數據庫組件是基于結構化查詢語ぎ(SQL)的可伸縮的關系數據庫,集成了對Internet應用程序的可擴展標記語言(XML)支持。下列術語描述了SQLServer2000數據庫組件構架的基本組成:數據庫數據庫與數據文件相似,同為存儲數據的場所。與數據文件ー樣,數據庫并不直接向用戶顯示信息;用戶運行應用程序訪問數據庫中的數據,數據庫將這些數據以用戶能夠理解的格式呈現給用戶。數據庫系統比數據文件的功能強大,因為數據庫中的數據組織程度更高。在設計良好的數據庫中,沒有用戶或應用程序必須同時更新的重復數據塊。相關的數據分在ー個結構或ー條記錄中,同時,還可以定義這些結構和記錄之間的關系。處理數據文件時,必須根據每個數據文件的特定結構對應用程序進行編碼。數據庫則不同,它包含一個目錄,應用程序可以利用該目錄來確定數據的組織結構。通用數據庫應用程序能夠利用該目錄動態地向用戶提供來自不同數據庫的數據,而不受特定數據格式約束。數據庫通常有兩個主要部分:ー個是保存物理數據庫的文件,ー個是應用程序用于訪問數據的數據庫管理系統(DBMS)軟件。DBMS負責維護數據庫的結構,包括:維護數據庫內數據間的關系。確保數據存儲正確,定義數據間關系的規則未被違反。在系統崩潰的情況下,按照已知的一致性程度恢復所有數據。關系數據庫組織數據庫數據的方法有很多種,而關系數據庫是最為高效的ー種。關系數據庫系統是數學集合理論在如何高效組織數據這ー問題上的應用。在關系數據庫中,數據被收集在表(在關系型理論中稱為關系)中。表描述了對企業具有重要意義的某類對象。比如,ー個公司的數據庫中可能會有有關員エ的表、有關客戶的表,以及有關庫存的表。每個表都由列和行(關系型理論中稱為屬性和元組)組成。每一列描述代表對象的某個屬性。比如,Employee表通常包含名字、姓氏、員ェID號、部門、エ資級別以及職位等屬性列。每一行表示表所代表的對象的ー個實例。比如,Employee表中的某一行代表員エID號為12345的員エ。在將數據組織成表的過程中,用戶通常會發現有許多不同定義表的方法。關系數據庫理論定義了一個稱為規范化的進程,可確保定義的表集能夠有效地組織數據。可伸縮性SQLServer2000支持許多用戶的同時訪問。ー個SQLServer2000實例通常包括組成一系列數據庫的文件和一套DBMS軟件。在不同計算機上運行的應用程序使用SQLServer2000通訊組件,通過網絡將命令傳送到SQLServer2000實例。當應用程序與SQLServer2000實例連接后,就可以引用該實例中用戶被授權訪問的任何數據庫。通訊組件還允許SQLServer2000實例與在同一臺計算機上運行的應用程序之間進行通訊。用戶可以在一臺計算機上同時運行多個SQLServer2000實例。SQLServer2000被設計為可支持最大的Web站點或企業數據處理系統上的數據流通。在大型多處理器服務器上運行的SQLServer2000支持成千上萬的用戶同時連接。SQLServer表中的數據可在多臺服務器間分區,這樣,多臺多處理器計算機就可彼此協作,支持超大型系統的數據庫處理需求。這些數據庫服務器組稱為聯合體。盡管SQLServer2000被設計為用作通過網絡連接的成千上萬用戶的數據存儲引擎,它仍可作為ー個獨立的數據庫,像應用程序ー樣直接在同一臺計算機上運行。SQLServer2000卓越的可伸縮性和便于使用的諸多功能使其能夠在單個計算機上高效運行,既不占用過多的系統資源,也不需要專門的用戶來管理。這些功能還使SQLServer2000得以動態地獲取支持上千用戶所需的資源,同時將數據庫的管理和調節工作減到最少。SQLServer2000關系數據庫引擎動態調節自身以獲取或釋放適當的計算機資源,以支持在任何特定時間訪問SQLServer2000實例時不斷變化的用戶負荷之需。SQLServer2000關系數據庫引擎的強大功能可以避免因某個用戶讀取或修改其他用戶當前使用的數據而引起的邏輯問題。結構化查詢語言若要處理數據庫中的數據,必須使用ー套由DBMS軟件定義的命令和語句(語言)。處理關系數據庫的語言有很多種,其中最常用的是SQL。美國國家標準化組織(ANSI)和國際標準化組織(ISO)定義軟件標準,包括SQL語言的標準。SQLServer2000支持SQL-92入門級(EntryLevel),即由ANSI和ISO在1992年公布的SQL標準。MicrosoftSQLServer支持的SQL語言稱為Transact-SQL(T-SQL),,T-SQL是MicrosoftSQLServer應用程序使用的主要語言。可擴展標記語言XML是新出現的Internet數據標準。XML是一套可用于定義超文本文檔結構的標記。XML文檔可由顯示Web頁的最重要語言——超文本標記語言(HTML)輕松處理。盡管大多數SQL語句以關系或表格格式結果集的形式返回結果,但是SQLServer2000數據庫組件仍支持以XML文檔形式返回結果的FORXML子句。SQLServer2000還支持來自!nternet和Intranet應用程序的XPath查詢。可將XML文檔添加到SQLServer數據庫中,并可使用OPENXML子句以關系結果集的形式顯示XML文檔中的數據。Chapter3Section3數據庫構架MicrosoftSQLServer2000數據存儲在數據庫中。在數據庫中,數據被組織到用戶可以看見的邏輯組件中。數據庫還可以按物理方式,在磁盤上作為兩個或更多的文件實現(見圖3.4)。使用數據庫時使用的主要是邏輯組件,例如表、視圖、過程和用戶。文件的物理實現在很大程度上是透明的。一般只有數據庫管理員需要處理物理實現。每個SQLServer實例有四個系統數據庫(master、modeRtempdb和msdb)以及■ー個或多個用戶數據庫(見圖3.5)。有些單位只使用一個用戶數據庫來存儲其所有數據。有些單位則為本單位的每一個組都設立了不同的數據庫,而且有時ー個數據庫只能由一個應用程序使用。例如,ー個單位可以有銷售數據庫、エ資單數據庫、文檔管理應用程序數據庫等。應用程序有時只使用一個數據庫,而有時則可以訪問幾個數據庫。不需要運行多個SQLServer數據庫引擎的復本即可使多個用戶訪問服務器上的數據庫。SQLServer標準版或企業版實例能夠處理同時在多個數據庫中工作的上千個用戶。根據定義的安全權限,每個SQLServer實例可使所有連接到實例的用戶都能使用該實例上的所有數據庫。當連接到SQLServer實例時,您的連接會與服務器上的具體某個數據庫相關聯。這個數據庫就稱為當前數據庫。系統管理員通常會將您連接到默認數據庫,但您可以使用數據庫API內的連接選項來指定另ー個數據庫。您可使用Transact-SQLUSEdatabase_name語句,或使用可更改當前數據庫上下文的API函數,由一個數據庫切換到另一個數據庫。SQLServer2000允許從SQLServer實例中分離數據庫,然后將數據庫重新附加到另ー個實例,甚至可以將數據庫附加回原來的實例。如果有SQLServer數據庫文件,可以在連接時讓SQLServer以特定的數據庫名稱附加該數據庫文件。數據類型和表結構MicrosoftSQLServer2000數據庫中的所有數據包含在稱為表的對象中。每個表代表某類對用戶有意義的對象。例如,可在一個學校數據庫內找到班級表、教師表和學生表。SQLServer中的表有兩個主要組件:列:每列代表由表建模的對象的某種特性,例如,ー個部件表有ID歹リ、顏色列和重量列。行:每行代表由表建模的對象的個別事件。例如,部件表(見圖3.6)中公司運送的每個部件均占一行。數據類型因為每一列都代表對象的ー個特性,所以一列中每個事件的數據均相似。列屬性中有一個稱為列數據類型的屬性,用于定義該列可以包含的數據類型。SQLServer有多種可指定給列的基本數據類型:Section4數據倉庫數據倉庫概述單位在正常的業務運作過程中需要收集數據。數據倉庫的目的是合并和組織這些數據,以便對其進行分析并用來支持業務決策。在許多情況下,數據倉庫包含單位的動態歷史記錄。數據倉庫通常包含歷史數據,這些數據經常是從各種完全不同的來源收集的(如聯機事務處理(OLTP)系統、傳統系統、文本文件或電子表格)。數據倉庫組合這些數據,對其進行清理使其準確一致,并進行組織使其便于輕松高效地查詢。有些數據倉庫定義包括多個元素,如數據準備區、清理進程、含有數據倉庫數據的數據庫以及組織數據并將其提供給客戶端應用程序的工具。有些定義則將數據倉庫限制為包含數據倉庫數據的數據庫。在大型數據倉庫應用程序中,通常將數據分段為數據集市的專用組件,而數據集市處理單位的個別組件。有些定義將數據集市作為數據倉庫的一部分;有些定義則將其作為單獨的實體。術語“數據倉庫”的本
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 33840-2025水套加熱爐通用技術要求
- 河南省鄭州市2025屆高三下學期二模試題 英語 含解析
- 球館火災應急專項預案(3篇)
- 行政管理復習提綱試題與答案
- 銀鴿火災應急預案(3篇)
- 制定火災應急處置預案(3篇)
- 法學概論考試中的解決方案與應對策略與試題與答案
- 運輸車隊火災應急預案(3篇)
- 2025年IT行業的未來機遇試題及答案
- 網絡管理員考試全局分析技巧試題及答案
- 博物館環境衛生保潔方案
- 產品方案設計模板
- 人民大2023張占錄-張正峰-國土空間規劃學課件第2章-國土空間規劃原理
- 2024考研408真題+答案
- 靜脈治療護理技術操作標準解讀
- 公司行政服務接待工作培訓
- 2024年江西省高考物理試卷真題(含答案解析)
- 基于單片機的汽車智能照明系統-畢業設計(論文)
- 技術人員外包服務合同(3篇)
- 賽力斯招聘在線測評題
- 《中醫基礎理論》課程教案
評論
0/150
提交評論