830 likes | 1.01k Vues
第 5 章 電腦軟體 . 應用軟體 多元程式處理 系統軟體 記憶體配置 作業系統簡介 虛擬記憶體 作業系統的演進與發展 行程管理 常見作業系統 工作排程簡介 單一程式處理 . 影像處理軟體 . 5-1 應用軟體. Adobe 出品的 2D 點矩陣影像處理軟體- PhotoShop ,可做成各種影像特效,是目前最受歡迎影像繪圖軟體。
E N D
第5章 電腦軟體 應用軟體 多元程式處理 系統軟體 記憶體配置 作業系統簡介 虛擬記憶體 作業系統的演進與發展 行程管理 常見作業系統 工作排程簡介 單一程式處理
影像處理軟體 5-1 應用軟體 • Adobe出品的2D點矩陣影像處理軟體-PhotoShop,可做成各種影像特效,是目前最受歡迎影像繪圖軟體。 • PhotoImpact則是一套完整的影像編輯軟體,提供簡單易的操作介面與工具,能滿足你在數位影像編修或創作上的需求。 • CorelDRAW可說是每個喜愛電腦繪圖者必學的一套向量繪圖軟體,不但具有圖層編輯、立體式修飾斜邊、多樣色彩樣式等功能。
網路動畫軟體 5-1 應用軟體 • Flash原先是由Macromedia所推出的動畫設計軟體,目前已歸屬在Adobe之下,因為它是採用向量圖案來產生動畫效果,所以具有檔案容量小的優點,非常適用於網路上的傳輸,只要各位的瀏覽器有安裝Flash Player的話,就能直接觀賞Flash的動畫影片:
文書處理軟體 5-1 應用軟體 • 現在提供許多以往只在桌上排版軟體(desktop publishing,DTP)才有的功能(例如圖片匯入、字型控制、頁面配置等等),通常已能滿足一般桌上出版與頁面配置的需求。 • 目前最普遍的軟體有微軟的Word 與Openoffice的Writer。 • 至於Writer的視窗環境與工具配置和Word 2003非常相似。
試算表軟體 5-1 應用軟體 • 試算表軟體的應用範圍從計算利潤與損失的公司財務報表、會計處理大量的資產負債表,個人支票簿帳號管理、家庭預算的計劃與學生成績的統計等。 • 目前最普遍的軟體有微軟的Excel 與Openoffice的 Calc。
簡報軟體 5-1 應用軟體 • 目前最普遍的軟體有微軟的PowerPoint 與Openoffice的 Impress。 • Impress是Open Office中用來編輯簡報文件的一項軟體。 • 除了提供完整的頁面樣式外,對於外來物件的支援程度也相當豐富。
資料庫軟體 5-1 應用軟體 • 以有組織的方法來收集許多資料,就是一個資料庫(database);以電子化組織方式來收集資料的軟體,就稱為「資料庫軟體」。 • 目前市面上最知名的資料庫軟體是微軟的Access,屬於一種關聯式資料庫管理系統(Relational Database Management System, RDMS),可以提供使用者許多現成的範本資料來自行製作資料庫管理系統。
遊戲相關軟體 5-1 應用軟體 • 設計遊戲的相關軟體種類眾多,有3d動畫製作軟體、引擎設計軟體、安裝軟體等。 • 例如3D MAX 是目前最受歡迎的3D繪圖及動畫設計的工具之一,提供了模型製作、燈光特效、材質設定、著色輸出、分子系統等功能,使用者可以在軟體內建構出自己的人物以及場景。
翻譯程式 (1) 5-2 系統軟體 • 翻譯程式一般會檢查程式是否有「語法錯誤」(Syntax Error)和「語義錯誤」(Semantic Error)。 • 當沒有任何錯誤後,接著把程式內每個句子轉成更低階的語言,通常是「組合語言」形式。 • 接著再由組譯器就會把每個組合語言句子轉成稱為「目的碼」(Object Code)的「機械語言」,最後經由連結與載入過程,轉成可在電腦上執行的檔案。
翻譯程式 (2) 5-2 系統軟體 • 翻譯程式進行過程中,主要可分為以下三種作業階段: • 語彙分析階段 • 將程式碼中所有字元逐字讀入,並分解為單語(token)形式,並建立文字表(Literal Table)、符號表(Symbol Table)、識別字表(Identifier Table)等,並將原先所定義的各種符號(如運算子、識別字、變數等)分析出來。
5-2 系統軟體 • 語法分析與解構階段 • 將程式碼中讀入的單語組合成合乎程式語言語法的架構,並呼叫相對應的函式來轉換成「中間形式矩陣」(Intermediate Matrix),同時在識別表中加入相關訊息,例如條件判斷、迴圈控制、運算式計算、字串連結、陣列存取等語法結構判斷。 • 最佳化與目的碼輸出階段 • 將語法分析與解構階段所產生的矩陣進行最佳化工作,目的是節省儲存空間與執行時間。 • 包括迴路最佳化、布林式最佳化與運算式計算最佳化等。
翻譯程式 (3) 5-2 系統軟體 • 翻譯程式的種類有以下三種: • 組譯器(Assembler) • 組譯器是將組合語言所寫的程式翻成機器碼。 • 此外它還必須提供給連結器及載入器所需要的資訊與找到每個變數的地址,至於翻譯出來的機器碼,則稱為目的程式(Object Program)。 • 不同的CPU也會有不同的組譯器。
5-2 系統軟體 • 編譯器(Compiler) • 是將原始程式區分為數個階段轉換為機器可讀的可執行檔的目的程式,不過編譯器必須先把原始程式讀入主記憶體後才可以開始編譯。 • 直譯器(Intepreter) • 在程式執行時,不需要產生目的檔或機器語言,會先檢查所要執行那一行敘述的語法,如果沒有錯誤,便直接執行該行程式,如果碰到錯誤就會立刻 中斷,直到錯誤修正之後才能繼續執行。 • 例如LISP、JavaScript、PROLOG。
翻譯程式 (4) 5-2 系統軟體 • 下面的表格中說明了編譯器與直譯器兩者間的差異性:
翻譯程式 (5) 5-2 系統軟體 • P-碼(P-Code)編譯程式 • 能將由高階語言所編寫的原始程式碼,轉換成中間形式碼(Intermediate Form)後,再加以執行,此處中間形式碼(Intermediate Form)是指某一種虛擬機器(Pseudo Machine)的機器語言。 • P-碼可以在任何具有「P-碼直譯」程式的機器上執行。 Java的程式編譯及解譯過程示意圖
連結與載入程式(1) 5-2 系統軟體 • 連結的目的在於解決外部參考的問題,可由連結程式完成,或直接加入載入程式中。 • 以往組合程式將使用者程式轉成目的碼後,便置於主記憶中,作業系統並將控制權轉移給它,而使得該目的程式真正地執行。 • 不過這種作法有兩項缺點: 1.每次執行程式時,都必須先組譯,所以相當浪費時間。 2.每次執行時,組合程式或編譯程式仍然停留在主記憶中,所以非常浪費記憶體的執行空間。
5-2 系統軟體 • 載入程式就根據這些資訊將目的程式載入記憶體中的適當位址,準備執行程式。 • 主要包含四項功能,分別是配置、連結、重定位與載入功能: 1.配置(Allocation):為將要執行的程式在主記憶體中分配到一塊位址。 2.連結(Linking):處理各程式目的碼的符號參考與程式庫間的結合。 3.重定址(Relocation):調整所有和位置相關的位址,並使其對應所分配的位置,特別用於多工作作業系統。 4.載入(Loading):將資料及程式段實際移入主記憶體中執行。
巨集處理器 5-2 系統軟體 • 以單一指令(巨集)代替程式中一段重覆多次的敘述或指令,則稱為巨集指令,而且每個巨集都有一個名稱。 • 當程式經由巨集處理器(Macro Processor)處理時,只要出現巨集的地方會直接以所定義的內容直接取代,而和使用副程式必須涉及到控制權轉移有所不同。
巨集組譯前與組譯後的關係圖 5-2 系統軟體 • 以組合語言為例,巨集的意思就是在原始程式碼上,將多個指令利用巨集名稱來代替,不過在組譯後,巨集名稱則又會被轉成巨集內的指令結構。
組譯器 5-2 系統軟體 • 不同的CPU 會有不同的組譯器,常用的組譯器有ASM、MASM、TASM,其中以微軟推出的巨集組譯器(Macro Assembler)MASM 最受歡迎。 • 所謂組合語言是一種低階的程式語言,可對電腦硬體做直接的控制,如A 代表Add, C代表Compare, MP 代表Multiply(乘法), STO 代表store(儲存)。
每一種系統的組合語言都不一樣,以 PC 而言,用的是 80*86 的組合語言。組合語言是跟晶片有關的機械語言,不同的晶片,其組合語言也不一樣。 5-2 系統軟體 • 如右範例:
方便的操作環境 5-3 作業系統簡介 • 目前最為普遍的「圖形使用者介面」( Graphical UserInterface, GUI),目前大部份的作業系統,包括各版本的Windows 作業系統、Macintosh 作業系統以及部份版本的UNIX 與Linux 作業系統等。 • 圖形使用者界面可選擇透過滑鼠或鍵盤來操作電腦螢幕上各式各樣的圖形物件,像是視窗、選單、圖示、按鈕、或是其他工具等。 • 此種模式的優點是親合性較高,不論在視覺、學習與使用上,都能有最方便舒適的操作環境。
管理與監視系統資源(1) 5-3 作業系統簡介 • 多工處理 • 自從1990年代的中葉起,所有個人電腦的作業系統就已經能夠「多工處理處理」(Multitasking)。 • 例如當作業系統同時執行多個應用軟體時,作業系統必須妥善分配每個應用軟體所使用的CPU工作時間與記憶體,並且減少任何閒置或等待的時間。
管理與監視系統資源(2) 5-3 作業系統簡介 • 檔案管理 • 作業系統所處理的檔案可以是程式或資料檔,而且必須精確掌握每一個磁碟及磁碟中的任何檔案。 • 因為不論是主記憶體對磁碟寫入資料,或是從磁碟中將檔案資料讀取到主記憶體,每一個動作都攸關作業系統的運作。 • 為了完成這項工作,作業系統將會在磁碟本身上保留整列的磁碟內容。
管理與監視系統資源(3) 5-3 作業系統簡介 • 輸入/輸出管理程式 • 輸入/輸出管理程式的工作在於管理資料輸入與輸出的動作,這個動作可能是對於儲存裝置的資料存取,例如硬碟、磁碟機等儲存裝置,或是管理可用的週邊設備。 • 例如印表機、掃描器等,輸入輸出裝置決定何時哪個程式可以使用資源,例如在多個程式或多個使用者要求使用同一台印表機時,該如何處理每個人的列印需求就是輸入/輸出程式所負責的。
應用軟體執行環境 5-3 作業系統簡介 • 由於應用軟體無法單獨在電腦硬體設備上執行,而是必須架構在作業系統之上。 • 藉由應用軟體的安裝程序,將檔案模組複製到磁碟機,並且載入到作業系統中,使用者才能夠執行該應用軟體,以及發揮它應有的功能。 • 作業系統通常還提供了像是印表機之類特殊裝置的完整軟體,這些程式稱為驅動軟體。
網路功能與系統安全 作業系統防火牆示意圖 5-3 作業系統簡介 • 作業系統不但可以提供不同的通訊協定來讓電腦順利達到網路連線的功能,也可以肩負起系統安全維護的功能,防止任何不當的外部非法入侵。
線上週邊同時處理 5-4 作業系統的演進與發展 • 這種方式的特點是在專用裝置間有極大速度差異時,利用速度介於兩者間的共用裝置作為緩衝區。 • 例如當I/O動作與CPU執行重疊時,CPU先行將資料寫入磁碟,等到I/O裝置空閒時,再將磁碟內的資料輸出。
監督程式 5-4 作業系統的演進與發展 • 監督程式又可分為「長駐程式」(Resident Program)或「暫留程式」(Transient Program)。 • 監督程式的主要工作,在於管理電腦系統的所有資源,電腦系統中最重要的資源當然就是CPU,如何讓CPU發揮最大的效能,是每個作業系統在設計監督程式時最大的考量。
多元程式作業系統 5-4 作業系統的演進與發展 • 允許CPU將所要執行的多個程式載入主記憶體,或稱為多工作業系統(Multitasking)。 • 每當一個程式要執行時,作業系統便從可用記憶體中挑選一塊足夠的記憶體,以配置給該程式使用。 • 多元程式作業系統的等待佇列(Ready Queue)上有許多等待執行的工作,CPU會依照所謂工作排班程式(Job Scheduler)來選擇所要執行的程式,而CPU 排班程式則是多元程式作業系統的運作基礎。
分時作業系統 5-4 作業系統的演進與發展 • 運作原理將CPU時間分割成一連串的時間配額(Time Slice or Time Quantum)以交替執行這些待命程式的做法,提供使用者分時CPU的一小部份,而載入記憶體中執行的程式通常叫做「行程」(process),也稱做多工處理。 • 分時系統最適合處理所謂的交談式(Interactive)作業,交談式作業和批次式作業最大的不同點在於交談式作業則要求電腦能馬上給它回應。
多元處理作業系統 5-4 作業系統的演進與發展 • 是指單一電腦系統中,具有二個以上 CPU ,由單一作業系統可以同時存取,並以平行處理(parallel process),模式處理工作排程,因此也稱為「平行作業系統」(Parallel system)。 • 各個CPU可同時分別處理不同的程式,並讓每個CPU共享各種資源。 • 例如Windows Server/NT/XP/Vista都是屬於多元處理作業系統。
分散式作業系統(1) 分散式作業系統的示意圖 5-4 作業系統的演進與發展 • 是一種架構在網路之上的作業系統,在這種分散式系統的架構中,可以藉由網路資源共享的特性,提供給使用者更強大的功能,並藉此提高系統的計算效能。
分散式作業系統(2) 5-4 作業系統的演進與發展 • 優點有資源共享、加速運算、可靠性高,訊息交換等。 • 分散式作業系統又可區分為以下兩種: • 鬆耦合系統:每一個CPU有自己的記憶體和作業系統,並且利用外部網路來連結其它處理器,也就是每個處理器節點都是獨立的。 • 緊耦合系統:所有的處理器共用記憶體,並由單一作業系統控制所有內部網路上的處理器。
叢集式作業系統 5-4 作業系統的演進與發展 • 通常叢集式作業系統包括下項幾項特點:利用區域網路將電腦連結、共享系統中的儲存裝置、使用多個 CPU 進行運算。 • 包括對稱式叢集、非對稱式叢集、平行叢集和廣域網路叢集等。 • 叢集運算可以用來提高系統的可使用度,當叢集系統的某節點發生故障,可以將故障節點上所執行的程式重新在其他節點上執行。
嵌入式作業系統 5-4 作業系統的演進與發展 • 以下介紹三種常見的嵌入式作業系統: • Windows CE:是Microsoft為可攜式裝置設計的嵌入式作業系統,還可以執行精簡版的Word、Excel等軟體。 • Pocket PS OS:是Microsoft專為小型手持式電腦設計的專用作業系統,這類設備的目標市場是商務型客戶,而非一般消費者。 • Palm OS:是手持設備中相當受歡迎的一種作業系統,無論在挑選相關軟硬體時,使用者可選擇的空間就非常大了。
DOS 5-5 常見作業系統 • DOS是採取命令列介面的方式操作:包含以下三個主要程式: • 1.輸入/輸出控制程式( IO.SYS ): 功用是作為DOS與其他週邊設備的溝通橋樑,更可以在螢幕上顯示偵錯狀況。 • 2.磁碟管理程式( MSDOS.SYS ):用來建立和管理磁碟中的檔案與系統中的服務功能。 • 3.命令處理程式( COMMAND.COM):儲存內部指令,可辯識使用者所輸入的指令,為使用者直接溝通的程式。
Windows 3.X 5-5 常見作業系統 • 由於MS-DOS作業系統的操作方式,需要記憶相關的文字指令,在學習上也較為不易。 • 因此微軟公司繼續發展出具有圖形化使用者介面(GUI)的Windows 3.X作業系統。 • 不過Windows 3.X及其之前版本的作業系統,並不能夠真正算是一個新的作業系統。 • 它的執行核心還是架構在MS-DOS作業系統之上,只不過是採用圖形化使用者介面方式來簡化系統的操作程序。
Windows 95/98/CE/Me 5-5 常見作業系統 • 在Windows 95中最顯著的就是開始按鈕的加入,它讓使用者以一個全新的方式來存取系統元件與應用程式。 • 而Windows 98可以說是Windows 95的新版本, 主要的差別是加強了Web與Windows的結合,並且讓Internet Explorer 4.01瀏覽器正式與作業系統結合。 • Windows CE/Me,則進一步讓家用電腦搖身一變成為家中的多媒體娛樂與設計中心。
Windows NT/2000/XP/Vista/Server 2003(1) 5-5 常見作業系統 • 於1993年推出第一款的Windows NT 3.1 版本,不過似乎在執行效能上並不出色,直到 Windows NT 4.0 推出,不論在穩定性、安全性及執行效率上,都遠遠超越了Windows95/98,是一套真正的32位元多人多工作業系統。 • 在2000年發行的Windows 2000 ,結合了使用者親和介面、Windows 98的檔案系統、網路作業系統、功能以及Windows NT的穩定性,可視為新一代的Windows NT 型作業系統。
Windows NT/2000/XP/Vista/Server 2003(2) 5-5 常見作業系統 • Windows XP則是以Windows 2000為基礎,具有32 位元的運算架構以及完整保護的記憶體模型,並提供更多的硬體裝置驅動程式與完整帳號管理的功能。 • 2007年初,再度推出了Vista 作業系統,強調炫麗的多媒體效果與更嚴謹的安全性改良,並增強了桌面搜尋與組織功能,可協助您在Windows Vista的任何位置找到電腦中的任何檔案或電子郵件。
Windows NT/2000/XP/Vista/Server 2003(3) 5-5 常見作業系統 • Windows Server 2003 是針對企業伺服器的強大需求,而對Windows 2000伺服器加以改良,使用較少資源處理更多工作,並加強安全性、可靠性、安全性和可調整性等。 • 此外微軟也對Windows伺服器作業系統進行了改良和擴充,合併了 Microsoft .NET 軟體在連接資訊、人員、系統和裝置上的優點。
OS/2 5-5 常見作業系統 • IBM的OS/2 是第一個真正以GUI為主的作業系統,提供支援網路作業系統、多工處理、多人連線以及其它優於以Intel為基礎個人電腦DOS作業系統為特色的功能。 • 也是第一個提供內建式語音識別技術的作業系統,雖然它擁有許多少數與專業的跟隨者,不過目前IBM已宣告不再發展新版本的作業系統。
UNIX 5-5 常見作業系統 • 幾乎從一開始UNIX就是一套擁有十分強大與靈活、而且可以在單一電腦或網路上執行的作業系統。 • UNIX發展初期是使用文字介面操作,對一般使用者的入門障礙很高,UNIX可以在許多類型的電腦上執行,包括超級電腦、筆記型個人電腦以及所有介於兩者之間的電腦,包括中型電腦和迷你電腦。 • 它能夠在如此多種硬體上執行的能力,UNIX成為各型網路的中樞。
Linux 5-5 常見作業系統 • Linux只是作業系統的核心(Kernel),主要功能包括行程(Process)、記憶體管理、硬體協調與網路控管等。 • 由於Linux是完全採用「開放原始碼」(Open Source Code),不但完全免費,而且可以允許任意修改及拷貝,因此衍生出各種不同「整合套件」(Distribution),例如 Fedora、Red Hat、Slackware、BluePoint、Mandrake等。
Mac OS 5-5 常見作業系統 • Mac OS是蘋果電腦公司的麥金塔(Macintosh)電腦採用的作業系統,不但使用上相當方便,而且穩定性極高。 • 特別是在多媒體處理的卓越能力,往往成為設計專業人員心中的最愛。 • 目前最新的版本是Mac OS X Tiger ,並內建Intel 最新一代處理器 Intel Core 2 Duo 。 Intel 最新一代處理器與眾多創新功能,包括可進行視訊對話的內建 iSight 攝影機、光鮮亮麗的外觀提供使用者充份的視覺享受。
重疊 5-6 單一程式處理 • 「重疊」的作用就是程式設計師負責將程式分割成較小片段的模組,執行時只載入要執行的模組。 • 其餘尚未執行的程式模組,則暫時存放在如磁碟的輔助記憶體中,再逐步利用置換(Swapping)方式將其它程式模組載入主記憶體中,缺點是往往會增加程式設計的難度。 • 隨後由於多元程式處理(Monoprogramming)技術的興起,就解決了這種問題。
分割法簡介(1) 5-7 多元程式處理 • 固定分割法 • 是主記憶體切割為固定大小不等的記憶體區塊。 • 所執行的程式會依據不同的需要載入到不同的分割區中。 • 又可分為「絕對定位分割法」與「可重定位分割法」兩種。 • 由於是固定式的分割,如果沒有適當大小的程式,往往容易形成記憶體碎片(Fragmentation)。
5-7 多元程式處理 • 其中記憶體碎片又可分為「內部碎片」(Internal Fragmentation)與「外部碎片」(External Fragmentation)兩種。 • 「內部碎片」是指當分配給某一程式的方割區大於程式容量時,所剩餘沒有用到的空間。 • 「外部碎片」代表雖然記憶體所剩空間總和足夠讓此程式執行,卻因為空間不連續,導致程式無法載入執行。
分割法簡介(2) 5-7 多元程式處理 • 變動分割法 • 變動分割法(Variable Partitioning)的記憶體切割不是當系統開始時就決定,也就是當程式要執行時,系統才會依據程式大小來分配足夠的連續記憶體區塊。 • 當程式執行完畢後,會將可用的記憶體區塊以鏈結串列的方式組合,這些片段的區塊稱為記憶體間隙(Hole)。