Download presentation
Presentation is loading. Please wait.
1
第6章 電腦軟體 應用軟體 多元程式處理 系統軟體 記憶體配置 作業系統簡介 虛擬記憶體 作業系統的演進與發展 行程管理
第6章 電腦軟體 應用軟體 多元程式處理 系統軟體 記憶體配置 作業系統簡介 虛擬記憶體 作業系統的演進與發展 行程管理 常見作業系統 工作排程簡介 單一程式處理
2
影像處理軟體 Adobe出品的2D點矩陣影像處理軟體-PhotoShop,可做成各種影像特效,是目前最受歡迎影像繪圖軟體。
6-1 應用軟體 影像處理軟體 Adobe出品的2D點矩陣影像處理軟體-PhotoShop,可做成各種影像特效,是目前最受歡迎影像繪圖軟體。 PhotoImpact則是一套完整的影像編輯軟體,提供簡單易的操作介面與工具,能滿足你在數位影像編修或創作上的需求。 CorelDRAW可說是每個喜愛電腦繪圖者必學的一套向量繪圖軟體,不但具有圖層編輯、立體式修飾斜邊、多樣色彩樣式等功能。
3
6-1 應用軟體 文書處理軟體 文書處理軟體現在提供許多以往只在桌上排版軟體(desktop publishing,DTP)才有的功能(例如圖片匯入、字型控制、頁面配置等等),通常已能滿足一般桌上出版與頁面配置的需求。 目前最普遍的軟體有微軟的Word 與Openoffice的Writer。 至於Writer的視窗環境與工具配置和Word 2003非常相似。
4
6-1 應用軟體 試算表軟體 試算表軟體的應用範圍從計算利潤與損失的公司財務報表、會計處理大量的資產負債表,個人支票簿帳號管理、家庭預算的計劃與學生成績的統計等。 目前最普遍的軟體有微軟的Excel 與Openoffice的 Calc。
5
Calc 則是OpenOffice 中負責統計、分析的試算表軟體,不論在工作表、公式或專業
6-1 應用軟體 Calc 則是OpenOffice 中負責統計、分析的試算表軟體,不論在工作表、公式或專業 圖表的製作上,皆與Excel 試算表軟體相當類似,如下圖所示:
6
簡報軟體 目前最普遍的軟體有微軟的PowerPoint 與Openoffice的 Impress。
6-1 應用軟體 簡報軟體 目前最普遍的軟體有微軟的PowerPoint 與Openoffice的 Impress。 Impress是Open Office中用來編輯簡報文件的一項軟體。 除了提供完整的頁面樣式外,對於外來物件的支援程度也相當豐富。
7
資料庫軟體 以有組織的方法來收集許多資料,就是一個資料庫(database);以電子化組織方式來收集資料的軟體,就稱為「資料庫軟體」。
6-1 應用軟體 資料庫軟體 以有組織的方法來收集許多資料,就是一個資料庫(database);以電子化組織方式來收集資料的軟體,就稱為「資料庫軟體」。 目前市面上最知名的資料庫軟體是微軟的Access,屬於一種關聯式資料庫管理系統(Relational Database Management System, RDMS),可以提供使用者許多現成的範本資料來自行製作資料庫管理系統。
8
遊戲相關軟體 設計遊戲的相關軟體種類眾多,有3d動畫製作軟體、引擎設計軟體、安裝軟體等。
6-1 應用軟體 遊戲相關軟體 設計遊戲的相關軟體種類眾多,有3d動畫製作軟體、引擎設計軟體、安裝軟體等。 例如3D MAX 是目前最受歡迎的3D繪圖及動畫設計的工具之一,提供了模型製作、燈光特效、材質設定、著色輸出、分子系統等功能,使用者可以在軟體內建構出自己的人物以及場景。
9
翻譯程式 (1) 翻譯程式一般會檢查程式是否有「語法錯誤」(Syntax Error)和「語義錯誤」(Semantic Error)。
6-2 系統軟體 翻譯程式一般會檢查程式是否有「語法錯誤」(Syntax Error)和「語義錯誤」(Semantic Error)。 當沒有任何錯誤後,接著把程式內每個句子轉成更低階的語言,通常是「組合語言」形式。 接著再由組譯器就會把每個組合語言句子轉成稱為「目的碼」(Object Code)的「機械語言」,最後經由連結與載入過程,轉成可在電腦上執行的檔案。
10
翻譯程式 (2) 翻譯程式進行過程中,主要可分為以下三種作業階段: 語彙分析階段
6-2 系統軟體 翻譯程式 (2) 翻譯程式進行過程中,主要可分為以下三種作業階段: 語彙分析階段 將程式碼中所有字元逐字讀入,並分解為單語(token)形式,並建立文字表(Literal Table)、符號表(Symbol Table)、識別字表(Identifier Table)等,並將原先所定義的各種符號(如運算子、識別字、變數等)分析出來。
11
語法分析與解構階段 最佳化與目的碼輸出階段
6-2 系統軟體 語法分析與解構階段 將程式碼中讀入的單語組合成合乎程式語言語法的架構,並呼叫相對應的函式來轉換成「中間形式矩陣」(Intermediate Matrix),同時在識別表中加入相關訊息,例如條件判斷、迴圈控制、運算式計算、字串連結、陣列存取等語法結構判斷。 最佳化與目的碼輸出階段 將語法分析與解構階段所產生的矩陣進行最佳化工作,目的是節省儲存空間與執行時間。 包括迴路最佳化、布林式最佳化與運算式計算最佳化等。
12
翻譯程式 (3) 翻譯程式的種類有以下三種: 組譯器(Assembler) 組譯器是將組合語言所寫的程式翻成機器碼。
6-2 系統軟體 翻譯程式 (3) 翻譯程式的種類有以下三種: 組譯器(Assembler) 組譯器是將組合語言所寫的程式翻成機器碼。 此外它還必須提供給連結器及載入器所需要的資訊與找到每個變數的地址,至於翻譯出來的機器碼,則稱為目的程式(Object Program)。 不同的CPU也會有不同的組譯器。
13
編譯器(Compiler) 直譯器(Intepreter)
6-2 系統軟體 編譯器(Compiler) 是將原始程式區分為數個階段轉換為機器可讀的可執行檔的目的程式,不過編譯器必須先把原始程式讀入主記憶體後才可以開始編譯。 直譯器(Intepreter) 在程式執行時,不需要產生目的檔或機器語言,會先檢查所要執行那一行敘述的語法,如果沒有錯誤,便直接執行該行程式,如果碰到錯誤就會立刻 中斷,直到錯誤修正之後才能繼續執行。 例如LISP、JavaScript、PROLOG。
14
翻譯程式 (4) 下面的表格中說明了編譯器與直譯器兩者間的差異性: 6-2 系統軟體 直譯器(Interpreter)
6-2 系統軟體 翻譯程式 (4) 下面的表格中說明了編譯器與直譯器兩者間的差異性: 直譯器(Interpreter) 編譯器(Compiler) 目的程式 不產生 會產生 所佔記憶體 較小 較大 交談性 較高 較低 執行速度 較慢 較快 除錯(Debug)難易度 較容易 較困難 施行方式 逐步翻譯並即時執行 翻譯全部敘述但不執行 翻譯次數 每次執行時都必須重新逐行翻譯 翻譯一次後,以後就可以直接執行執行檔
15
連結與載入程式(1) 連結的目的在於解決外部參考的問題,可由連結程式完成,或直接加入載入程式中。
6-2 系統軟體 連結與載入程式(1) 連結的目的在於解決外部參考的問題,可由連結程式完成,或直接加入載入程式中。 以往組合程式將使用者程式轉成目的碼後,便置於主記憶中,作業系統並將控制權轉移給它,而使得該目的程式真正地執行。 不過這種作法有兩項缺點: 1.每次執行程式時,都必須先組譯,所以相當浪費時間。 2.每次執行時,組合程式或編譯程式仍然停留在主記憶中,所以非常浪費記憶體的執行空間
16
載入程式就根據這些資訊將目的程式載入記憶體中的適當位址,準備執行程式。 主要包含四項功能,分別是配置、連結、重定位與載入功能:
6-2 系統軟體 載入程式就根據這些資訊將目的程式載入記憶體中的適當位址,準備執行程式。 主要包含四項功能,分別是配置、連結、重定位與載入功能: 1.配置(Allocation):為將要執行的程式在主記憶體中分配到一塊位址。 2.連結(Linking):處理各程式目的碼的符號參考與程式庫間的結合。 3.重定址(Relocation):調整所有和位置相關的位址,並使其對應所分配的位置,特別用於多工作作業系統。 4.載入(Loading):將資料及程式段實際移入主記憶體中執行。
17
巨集處理器 以單一指令(巨集)代替程式中一段重覆多次的敘述或指令,則稱為巨集指令,而且每個巨集都有一個名稱。
6-2 系統軟體 巨集處理器 以單一指令(巨集)代替程式中一段重覆多次的敘述或指令,則稱為巨集指令,而且每個巨集都有一個名稱。 當程式經由巨集處理器(Macro Processor)處理時,只要出現巨集的地方會直接以所定義的內容直接取代,而和使用副程式必須涉及到控制權轉移有所不同。
18
以組合語言為例,巨集的意思就是在原始程式碼上,將多個指令利用巨集名稱來代替,不過在組譯後,巨集名稱則又會被轉成巨集內的指令結構。
6-2 系統軟體 以組合語言為例,巨集的意思就是在原始程式碼上,將多個指令利用巨集名稱來代替,不過在組譯後,巨集名稱則又會被轉成巨集內的指令結構。 巨集組譯前與組譯後的關係圖
19
6-2 系統軟體 組譯器 不同的CPU 會有不同的組譯器,常用的組譯器有ASM、MASM、TASM,其中以微軟推出的巨集組譯器(Macro Assembler)MASM 最受歡迎。 所謂組合語言是一種低階的程式語言,可對電腦硬體做直接的控制,如A 代表Add, C代表Compare, MP 代表Multiply(乘法), STO 代表store(儲存)。
20
6-2 系統軟體 如右範例: 每一種系統的組合語言都不一樣,以 PC 而言,用的是 80*86 的組合語言。組合語言是跟晶片有關的機械語言,不同的晶片,其組合語言也不一樣。
21
6-3 作業系統簡介 方便的操作環境 目前最為普遍的「圖形使用者介面」( Graphical UserInterface, GUI),目前大部份的作業系統,包括各版本的Windows 作業系統、Macintosh 作業系統以及部份版本的UNIX 與Linux 作業系統等。 圖形使用者界面可選擇透過滑鼠或鍵盤來操作電腦螢幕上各式各樣的圖形物件,像是視窗、選單、圖示、按鈕、或是其他工具等。 此種模式的優點是親合性較高,不論在視覺、學習與使用上,都能有最方便舒適的操作環境。
22
管理與監視系統資源(1) 多工處理 自從一九九○年代的中葉起,所有個人電腦的作業系統就已經能夠「多工處理處理」(Multitasking)。
6-3 作業系統簡介 管理與監視系統資源(1) 多工處理 自從一九九○年代的中葉起,所有個人電腦的作業系統就已經能夠「多工處理處理」(Multitasking)。 例如當作業系統同時執行多個應用軟體時,作業系統必須妥善分配每個應用軟體所使用的CPU工作時間與記憶體,並且減少任何閒置或等待的時間。
23
管理與監視系統資源(2) 檔案管理 作業系統所處理的檔案可以是程式或資料檔,而且必須精確掌握每一個磁碟及磁碟中的任何檔案。
6-3 作業系統簡介 管理與監視系統資源(2) 檔案管理 作業系統所處理的檔案可以是程式或資料檔,而且必須精確掌握每一個磁碟及磁碟中的任何檔案。 因為不論是主記憶體對磁碟寫入資料,或是從磁碟中將檔案資料讀取到主記憶體,每一個動作都攸關作業系統的運作。 為了完成這項工作,作業系統將會在磁碟本身上保留整列的磁碟內容。
24
管理與監視系統資源(3) 輸入/輸出管理程式
6-3 作業系統簡介 管理與監視系統資源(3) 輸入/輸出管理程式 輸入/輸出管理程式的工作在於管理資料輸入與輸出的動作,這個動作可能是對於儲存裝置的資料存取,例如硬碟、磁碟機等儲存裝置,或是管理可用的週邊設備。 例如印表機、掃描器等,輸入輸出裝置決定何時哪個程式可以使用資源,例如在多個程式或多個使用者要求使用同一台印表機時,該如何處理每個人的列印需求就是輸入/輸出程式所負責的。
25
應用軟體執行環境 由於應用軟體無法單獨在電腦硬體設備上執行,而是必須架構在作業系統之上。
6-3 作業系統簡介 應用軟體執行環境 由於應用軟體無法單獨在電腦硬體設備上執行,而是必須架構在作業系統之上。 藉由應用軟體的安裝程序,將檔案模組複製到磁碟機,並且載入到作業系統中,使用者才能夠執行該應用軟體,以及發揮它應有的功能。 作業系統通常還提供了像是印表機之類特殊裝置的完整軟體,這些程式稱為驅動軟體。
26
6-3 作業系統簡介 網路功能與系統安全 作業系統不但可以提供不同的通訊協定來讓電腦順利達到網路連線的功能,也可以肩負起系統安全維護的功能,防止任何不當的外部非法入侵。 作業系統防火牆示意圖
27
線上週邊同時處理 這種方式的特點是在專用裝置間有極大速度差異時,利用速度介於兩者間的共用裝置作為緩衝區。
6-4 作業系統的演進與發展 線上週邊同時處理 這種方式的特點是在專用裝置間有極大速度差異時,利用速度介於兩者間的共用裝置作為緩衝區。 例如當I/O動作與CPU執行重疊時,CPU先行將資料寫入磁碟,等到I/O裝置空閒時,再將磁碟內的資料輸出。
28
監督程式 監督程式又可分為「長駐程式」(Resident Program)或「暫留程式」(Transient Program)。
6-4 作業系統的演進與發展 監督程式 監督程式又可分為「長駐程式」(Resident Program)或「暫留程式」(Transient Program)。 監督程式的主要工作,在於管理電腦系統的所有資源,電腦系統中最重要的資源當然就是CPU,如何讓CPU發揮最大的效能,是每個作業系統在設計監督程式時最大的考量。
29
多元程式作業系統 允許CPU將所要執行的多個程式載入主記憶體,或稱為多工作業系統(Multitasking)。
6-4 作業系統的演進與發展 多元程式作業系統 允許CPU將所要執行的多個程式載入主記憶體,或稱為多工作業系統(Multitasking)。 每當一個程式要執行時,作業系統便從可用記憶體中挑選一塊足夠的記憶體,以配置給該程式使用。 多元程式作業系統的等待佇列(Ready Queue)上有許多等待執行的工作,CPU會依照所謂工作排班程式(Job Scheduler)來選擇所要執行的程式,而CPU 排班程式則是多元程式作業系統的運作基礎。
30
6-4 作業系統的演進與發展 分時作業系統 運作原理將CPU時間分割成一連串的時間配額(Time Slice or Time Quantum)以交替執行這些待命程式的做法,提供使用者分時CPU的一小部份,而載入記憶體中執行的程式通常叫做「行程」(process),也稱做多工處理。 分時系統最適合處理所謂的交談式(Interactive)作業,交談式作業和批次式作業最大的不同點在於交談式作業則要求電腦能馬上給它回應。
31
6-4 作業系統的演進與發展 多元處理作業系統 是指單一電腦系統中,具有二個以上 CPU ,由單一作業系統可以同時存取,並以平行處理(parallel process),模式處理工作排程,因此也稱為「平行作業系統」(Parallel system)。 各個CPU可同時分別處理不同的程式,並讓每個CPU共享各種資源。 例如Windows Server/NT/XP/Vista都是屬於多元處理作業系統。
32
6-4 作業系統的演進與發展 分散式作業系統(1) 是一種架構在網路之上的作業系統,在這種分散式系統的架構中,可以藉由網路資源共享的特性,提供給使用者更強大的功能,並藉此提高系統的計算效能。 分散式作業系統的示意圖
33
分散式作業系統(2) 分散式系統中任何遠端的資源,都被作業系統視為本身的資源,而可以直接存取。
6-4 作業系統的演進與發展 分散式作業系統(2) 分散式系統中任何遠端的資源,都被作業系統視為本身的資源,而可以直接存取。 優點有資源共享、加速運算、可靠性高,訊息交換等。 分散式作業系統又可區分為以下兩種: 鬆耦合系統:每一個CPU有自己的記憶體和作業系統,並且利用外部網路來連結其它處理器,也就是每個處理器節點都是獨立的。 緊耦合系統:所有的處理器共用記憶體,並由單一作業系統控制所有內部網路上的處理器。
34
叢集式作業系統 通常叢集式作業系統包括下項幾項特點:利用區域網路將電腦連結、共享系統中的儲存裝置、使用多個 CPU 進行運算。
6-4 作業系統的演進與發展 叢集式作業系統 通常叢集式作業系統包括下項幾項特點:利用區域網路將電腦連結、共享系統中的儲存裝置、使用多個 CPU 進行運算。 叢集式作業系統包括對稱式叢集、非對稱式叢集、平行叢集和廣域網路叢集等。 叢集運算可以用來提高系統的可使用度,當叢集系統的某節點發生故障,可以將故障節點上所執行的程式重新在其他節點上執行。
35
嵌入式作業系統 以下介紹三種常見的嵌入式作業系統:
6-4 作業系統的演進與發展 嵌入式作業系統 以下介紹三種常見的嵌入式作業系統: Windows CE:Windows CE則是Microsoft為可攜式裝置設計的嵌入式作業系統,還可以執行精簡版的Word、Excel等軟體。 Pocket PS OS:Pocket PS OS是Microsoft專為小型手持式電腦設計的專用作業系統,這類設備的目標市場是商務型客戶,而非一般消費者。 Palm OS:Palm OS是手持設備中相當受歡迎的一種作業系統,無論在挑選相關軟硬體時,使用者可選擇的空間就非常大了。
36
DOS DOS是採取命令列介面的方式操作:包含以下三個主要程式:
6-5 常見作業系統 DOS DOS是採取命令列介面的方式操作:包含以下三個主要程式: 1.輸入/輸出控制程式( IO.SYS ): 功用是作為DOS與其他週邊設備的溝通橋樑,更可以在螢幕上顯示偵錯狀況。 2.磁碟管理程式( MSDOS.SYS ):用來建立和管理磁碟中的檔案與系統中的服務功能。 3.命令處理程式( COMMAND.COM):儲存內部指令,可辯識使用者所輸入的指令,為使用者直接溝通的程式。
37
Windows 3.X 由於MS-DOS作業系統的操作方式,需要記憶相關的文字指令,在學習上也較為不易。
6-5 常見作業系統 Windows 3.X 由於MS-DOS作業系統的操作方式,需要記憶相關的文字指令,在學習上也較為不易。 因此微軟公司繼續發展出具有圖形化使用者介面(GUI)的Windows 3.X作業系統。 不過Windows 3.X及其之前版本的作業系統,並不能夠真正算是一個新的作業系統。 它的執行核心還是架構在MS-DOS作業系統之上,只不過是採用圖形化使用者介面方式來簡化系統的操作程序。
38
6-5 常見作業系統 Windows 95/98/CE/Me 在Windows 95中最顯著的就是開始按鈕的加入,它讓使用者以一個全新的方式來存取系統元件與應用程式。 而Windows 98可以說是Windows 95的新版本, 主要的差別是加強了Web與Windows的結合,並且讓Internet Explorer 4.01瀏覽器正式與作業系統結合。 Windows CE/Me,則進一步讓家用電腦搖身一變成為家中的多媒體娛樂與設計中心。
39
Windows NT/2000/XP/Vista/Server 2003(1)
6-5 常見作業系統 Windows NT/2000/XP/Vista/Server 2003(1) 於1993年推出第一款的Windows NT 3.1 版本,不過似乎在執行效能上並不出色,直到 Windows NT 4.0 推出,不論在穩定性、安全性及執行效率上,都遠遠超越了Windows95/98,是一套真正的32位元多人多工作業系統。 在2000年發行,Windows 2000結合了使用者親和介面、Windows 98的檔案系統、網路作業系統、功能以及Windows NT的穩定性,可視為新一代的Windows NT 型作業系統。
40
Windows NT/2000/XP/Vista/Server 2003(2)
6-5 常見作業系統 Windows NT/2000/XP/Vista/Server 2003(2) Windows XP則是以Windows 2000為基礎,具有32 位元的運算架構以及完整保護的記憶體模型,並提供更多的硬體裝置驅動程式與完整帳號管理的功能。 2007年初,再度推出了Vista 作業系統,強調炫麗的多煤體效果與更嚴謹的安全性改良,並增強了桌面搜尋與組織功能,可協助您在Windows Vista的任何位置找到電腦中的任何檔案或電子郵件。
41
Windows NT/2000/XP/Vista/Server 2003(3)
6-5 常見作業系統 Windows NT/2000/XP/Vista/Server 2003(3) Windows Server 2003 是針對企業伺服器的強大需求,而對Windows 2000伺服器加以改良,使用較少資源處理更多工作,並加強安全性、可靠性、安全性和可調整性等。 此外微軟也對Windows伺服器作業系統進行了改良和擴充,合併了 Microsoft .NET 軟體在連接資訊、人員、系統和裝置上的優點。
42
6-5 常見作業系統 OS/2 IBM的OS/2 是第一個真正以GUI為主的作業系統,提供支援網路作業系統、多工處理、多人連線以及其它優於以Intel為基礎個人電腦DOS作業系統為特色的功能。 OS/2也是第一個提供內建式語音識別技術的作業系統,雖然它擁有許多少數與專業的跟隨者,不過目前IBM已宣告不再發展新版本的作業系統。
43
UNIX 幾乎從一開始UNIX就是一套擁有十分強大與靈活、而且可以在單一電腦或網路上執行的作業系統。
6-5 常見作業系統 UNIX 幾乎從一開始UNIX就是一套擁有十分強大與靈活、而且可以在單一電腦或網路上執行的作業系統。 UNIX發展初期是使用文字介面操作,對一般使用者的入門障礙很高,UNIX可以在許多類型的電腦上執行,包括超級電腦、筆記型個人電腦以及所有介於兩者之間的電腦,包括中型電腦和迷您電腦。 它能夠在如此多種硬體上執行的能力,UNIX成為各型網路的中樞。
44
Linux Linux只是作業系統的核心(Kernel),主要功能包括行程(process)、記憶體管理、硬體協調與網路控管等。
6-5 常見作業系統 Linux Linux只是作業系統的核心(Kernel),主要功能包括行程(process)、記憶體管理、硬體協調與網路控管等。 由於Linux是完全採用「開放原始碼」(Open Source Code),不但完全免費,而且可以允許任意修改及拷貝,因此衍生出各種不同「整合套件」(Distribution),例如 Fedora、Red Hat、Slackware、BluePoint、Mandrake等。
45
Mac OS Mac OS是蘋果電腦公司的麥金塔(Macintosh)電腦採用的作業系統,不但使用上相當方便,而且穩定性極高。
6-5 常見作業系統 Mac OS Mac OS是蘋果電腦公司的麥金塔(Macintosh)電腦採用的作業系統,不但使用上相當方便,而且穩定性極高。 特別是在多媒體處理的卓越能力,往往成為設計專業人員心中的最愛。 目前最新的版本是Mac OS X Tiger ,I並內建Intel 最新一代處理器 - Intel Core 2 Duo — Intel 最新一代處理器 與眾多創新功能,包括可進行視訊對話的內建 iSight 攝影機、光鮮亮麗的外觀提供使用者充份的視覺享受。
46
重疊 「重疊」的作用就是程式設計師負責將程式分割成較小片段的模組,執行時只載入要執行的模組。
6-6 單一程式處理 重疊 「重疊」的作用就是程式設計師負責將程式分割成較小片段的模組,執行時只載入要執行的模組。 其餘尚未執行的程式模組,則暫時存放在如磁碟的輔助記憶體中,再逐步利用置換(Swapping)方式將其它程式模組載入主記憶體中,缺點是往往會增加程式設計的難度。 隨後由於多元程式處理(Monoprogramming)技術的興起,就解決了這種問題。
47
分割法簡介(1) 固定分割法 是主記憶體切割為固定大小不等的記憶體區塊。 所執行的程式會依據不同的需要載入到不同的分割區中。
6-7 多元程式處理 分割法簡介(1) 固定分割法 是主記憶體切割為固定大小不等的記憶體區塊。 所執行的程式會依據不同的需要載入到不同的分割區中。 又可分為「絕對定位分割法」與「可重定位分割法」兩種。 由於是固定式的分割,如果沒有適當大小的程式,往往容易形成記憶體碎片(Fragmentation)。
48
「內部碎片」是指當分配給某一程式的方割區大於程式容量時,所剩餘沒有用到的空間。
6-7 多元程式處理 其中記憶體碎片又可分為「內部碎片」(Internal Fragmentation)與「外部碎片」(External Fragmentation)兩種。 「內部碎片」是指當分配給某一程式的方割區大於程式容量時,所剩餘沒有用到的空間。 「外部碎片」代表雖然記憶體所剩空間總和足夠讓此程式執行,卻因為空間不連續,導致程式無法載入執行。
49
可以消除外部支離破碎問題,並提供一個大的未使用空間,供程式載入使用。
6-7 多元程式處理 可重定位分割法(Relocatable Partition)隨時將程式集中在記憶體一邊,以便留下完整的區塊未使用空間,供其他程式載入使用;這種作法稱為垃圾收集 (Garbage Collection)。 可以消除外部支離破碎問題,並提供一個大的未使用空間,供程式載入使用。 但缺點為了進行垃圾收集,會使系統整體速度降低,甚至要花費額外硬體設備來加快處理。
50
6-7 多元程式處理 分割法簡介(2) 變動分割法 變動分割法(Variable Partitioning)的記憶體切割不是當系統開始時就決定,也就是當程式要執行時,系統才會依據程式大小來分配足夠的連續記憶體區塊。 當程式執行完畢後,會將可用的記憶體區塊以鏈結串列的方式組合,這些片段的區塊稱為記憶體間隙(hole)。
51
記憶體合併 間隙合併的主要方法有以下兩種: 6-7 多元程式處理 間隙名稱 介 紹 與 說 明 間隙接合
6-7 多元程式處理 記憶體合併 間隙合併的主要方法有以下兩種: 間隙名稱 介 紹 與 說 明 間隙接合 間隙接合(Coalescing Holes) 是指如果有兩塊相鄰的間隙,則可將其合併為更大的間隙區塊,方便提供給其他程式所用。 間隙壓擠 間隙壓擠(Compacting Holes) 是指當記憶空間已經不足時,可定期將散佈於各處的較小間隙合併為一大區塊,再提供給其他程式所用。
52
最適法 最適法(Best Fit)是選擇可用空間串列中,一塊最接近n而不小於n的可用空間。 最適法用於請求分配的記憶體大小範圍較廣的情況。
6-8 記憶體配置 最適法 最適法(Best Fit)是選擇可用空間串列中,一塊最接近n而不小於n的可用空間。 最適法用於請求分配的記憶體大小範圍較廣的情況。 使用此法時,總是找大小最接近請求的空閒區段,這樣容易產生碎片 (Fragmentation),需經常壓縮碎片成為較大且連續的記憶體。 缺點是必須搜尋全部串列,較為費時。
53
6-8 記憶體配置 最不適法 最不適法(Worst Fit)是選擇可用空間中存在最大m,且m>=n的記憶體空間,然後配置n個單位給該程式,而剩下的則歸還可用記憶空間。 最不適法它適用於請求分配的記憶體大小範圍分佈較為接近的情況。 缺點是沒有夠大空間可以利用的情況,容易產生外部碎片,回收時必須先進行搜尋以尋求適當的位置。 優點是所剩餘空間的可利用率高。
54
先適法 先適法(First Fit):是從可用記憶體串列開始尋找第一塊大於或等於n個單位記憶體空間切割下來。
6-8 記憶體配置 先適法 先適法(First Fit):是從可用記憶體串列開始尋找第一塊大於或等於n個單位記憶體空間切割下來。 優點費時較少,速度也最快,另外製作容易,回收時僅需插入可用空間串列前端即可。 先適法通常適用於事先無法掌握執行期間可能出現的請求分配情況。 但先適法無論分配和回收均需要搜尋鏈結串列,因此最費時間。
55
伙伴系統(1) 伙伴系統(Buddy System)是以2的冪次方來動態配置及歸還記憶體的管理方法。
6-8 記憶體配置 伙伴系統(1) 伙伴系統(Buddy System)是以2的冪次方來動態配置及歸還記憶體的管理方法。 當某程式或資料請求一塊記憶體空間,系統會依採行的演算法配置一塊記憶體給予使用,伙伴系統中無論是佔用的記憶體空間或未被使用的記憶體空間,其大小都是2的乘冪次方。 當使用者申請n單位的記憶體空間,系統就分配2k位元組給它,其中2k-1<=n<=2k。
56
6-8 記憶體配置 伙伴系統(2) 現在有256k可用空間,有四個程式(Program),欲分配給此空間,且P1(33k),P2(85k),P3(12k),P4(25k),我們將以下圖表示二元夥伴系統的分配方式:
57
虛擬記憶體 「虛擬記憶體」的功用就是作業系統將目前程式使用的程式段(程式頁)放主記憶體中,其餘則存放在輔助記憶體(如磁碟) 。
6-9 虛擬記憶體 「虛擬記憶體」的功用就是作業系統將目前程式使用的程式段(程式頁)放主記憶體中,其餘則存放在輔助記憶體(如磁碟) 。 程式不再受到實際記憶體可用空間的限制,使得在實體記憶體不足的系統上,也可執行花費記憶體較多的應用程式。 另外載入或置換使用者程式所須I/O的次數減少,執行速度也會加快,更增加了CPU 使用率。 「置換」(Swapping),是指行程從主記憶體中移到磁碟的虛擬記憶體,再從虛擬記憶體移到主記憶體執行的動作。
58
分頁模式(1) 分頁是將記憶體切割成固定大小,然後依照程式需求量而給予足夠記憶體空間,目前大多數 CPU 都支援這種機制。
6-9 虛擬記憶體 分頁模式(1) 分頁是將記憶體切割成固定大小,然後依照程式需求量而給予足夠記憶體空間,目前大多數 CPU 都支援這種機制。 分頁(Paging)通常是將整個實體記憶體固定等分成與頁面相同大小的區塊,稱為「頁框」(Frames),而程式中邏輯記憶體所分割大小相同的區塊,就稱為「分頁」(Page)。
59
分頁模式(2) 底下我們就以步驟實作的方法,為各位說明分頁法概念。 第1步:將程式邏輯記憶體分割成大小相同的「分頁」(Page)。
6-9 虛擬記憶體 分頁模式(2) 底下我們就以步驟實作的方法,為各位說明分頁法概念。 第1步:將程式邏輯記憶體分割成大小相同的「分頁」(Page)。
60
分頁模式(3) 第2步:將實體記憶體也分割成和「分頁」大小一致的「頁框」(Frame)。
6-9 虛擬記憶體 第2步:將實體記憶體也分割成和「分頁」大小一致的「頁框」(Frame)。 第3步:查詢分頁表,在分頁表中記錄著程式中的每一「分頁」和實體記憶體中的「頁框」的對應關係。
61
第4步:根據分頁表的對應關係,將邏輯記憶體的每一分頁載入到實體記憶體中的對應的頁框。
6-9 虛擬記憶體 第4步:根據分頁表的對應關係,將邏輯記憶體的每一分頁載入到實體記憶體中的對應的頁框。 分頁模式的特點是可以不需暫用連續記憶體,但仍可順利執行程式,因此分頁法絕對不會發生「外部破碎」的問題。
62
6-9 虛擬記憶體 分段模式(1) 是依照程式所需的記憶體實際大小,並以分段(Segmentation)來分配記憶體位址,也就是將輔助記憶體內的程式,依邏輯功能切割成可變動的區段。 「分段模式」會將程式內容以模組(如程式碼、資料與堆疊等)來區隔,並將程式邏輯記憶體用分段式記憶體分配。 每個工作都切割成不的分段,每個分段再執行相關的功能。
63
分段模式(2) 底下就以步驟實作的方法,說明分段法概念。 第1步:將程式邏輯記憶體以模組為單位,切割成許多分段(Segment)
6-9 虛擬記憶體 分段模式(2) 底下就以步驟實作的方法,說明分段法概念。 第1步:將程式邏輯記憶體以模組為單位,切割成許多分段(Segment)
64
第2步:查詢分段表,在分段表中記錄著程式中每一模組的大小,與對應到實體記憶體的起始位址。
6-9 虛擬記憶體 第2步:查詢分段表,在分段表中記錄著程式中每一模組的大小,與對應到實體記憶體的起始位址。
65
第3步:根據分段表的對應關係將程式的每一分段載入到實體記憶體中的對應位置。
6-9 虛擬記憶體 第3步:根據分段表的對應關係將程式的每一分段載入到實體記憶體中的對應位置。 「分段模式」優點是能充份掌控分段內程式的存取權,並且能讓各個佔用一個區塊的模組於執行時才載入,並且充分利用記憶體,而且不會產生「內部碎片」現象,程式大小也不會受記憶體限制。
66
6-9 虛擬記憶體 分段且分頁模式 「分段且分頁」模式(Segmentation With Paging)是同時結合了「分頁模式」與「分段模式」的優點,可將每個分段細分成數頁。 就是並不把每一分段視為單一連續的單位,而是把它分成一樣大小分頁,比大部分的分段小,而且比整個分段容易操作。 優點是對系統而言,可以提高CPU的速度,並且減少不必要的運算時間
67
6-10 行程管理 行程狀態 是指該行程目前的動作,由於行程在執行時會改變其狀態,在任何時候只有一項行程在執行狀態(Running),但是卻可以有許多行程在等待(Blocked)和就緒狀態(Ready)。 以下是各種狀態介紹: 新產生(new):該行程正在產生中,包含建立行程的各種資訊。 執行(running):行程正在執行,擁有CPU的控制權。
68
等待(block):在某事件(通常是I/O事件)發生前無法執行,等待某件事件的發生。 就緒(ready):處於準備執行,但尚未執行的狀態。
6-10 行程管理 等待(block):在某事件(通常是I/O事件)發生前無法執行,等待某件事件的發生。 就緒(ready):處於準備執行,但尚未執行的狀態。 結束(terminated):該行程完成執行,並釋放所佔用的資源。
69
工作排程簡介 以下是目前常見的排程演算法與相關名詞說明: 6-11 工作排程簡介 CPU排程名詞 解 釋 與 說 明 生產量
6-11 工作排程簡介 工作排程簡介 以下是目前常見的排程演算法與相關名詞說明: CPU排程名詞 解 釋 與 說 明 生產量 生產量(throughput),單位時間內完成的行程個數。 回應時間 回應時間(ResponseTime),行程開始執行到第一次輸出所花費的時間。 等待時間 等待時間(Waiting Time),行程在等待佇列中所花費的時間。 回復時間 回復時間(Turnaround Time),行程開始執行到結束所花費的時間。
70
先來先做排程(1) 是一種相當容易的演算法,愈早到的行程,可以優先取得CPU控制權,屬於一種「非搶奪式」方式。
6-11 工作排程簡介 先來先做排程(1) 是一種相當容易的演算法,愈早到的行程,可以優先取得CPU控制權,屬於一種「非搶奪式」方式。 當系統允許執行中的行程被中斷,稱為「搶奪式」(Preemptive),能夠讓使用者感受到的反應時間較短,並且容易延遲行程的執行結束時間。 不允許執行中的行程被中斷,稱為「非搶奪式」(nonreemptive),使用者所感受到的反應時間較長,不過每個行程執行結束時間較容易預測。
71
先來先做排程(2) 範例:假設有4個行程P1,P2,P3,P4,其在很短的時間內先後到達等待佇列,每個行程所執行時間如下表所示:
6-11 工作排程簡介 範例:假設有4個行程P1,P2,P3,P4,其在很短的時間內先後到達等待佇列,每個行程所執行時間如下表所示: 請以甘特圖(Gantt Chart)繪出先來先做(First-Come, First-Served, FCFS)的排班情況,並分別計算平均等待時間(Waiting Time)及平均回復時間(Turnaround Time)。 行程名稱 各行程所需的執行時間 P1 30 P2 40 P3 20 P4 10
72
6-11 工作排程簡介 解答: 以FCFS排班所繪出的甘特圖如下: 那麼:
73
最短工作優先排程 是指執行時間最愈短的行程可優先取得CPU控制權,而且所挑選的行程會直行到結束為止,屬於「非搶奪式」排程。
6-11 工作排程簡介 最短工作優先排程 是指執行時間最愈短的行程可優先取得CPU控制權,而且所挑選的行程會直行到結束為止,屬於「非搶奪式」排程。 範例:假設有4個行程P1,P2,P3,P4,其在很短的時間內先後到達等待佇列,每個行程所執行時間如下表所示: 行程名稱 各行程所需的執行時間 P1 30 P2 40 P3 20 P4 10
74
6-11 工作排程簡介 請您以甘特圖(Gantt Chart)繪出最短工作優先(Shorest –Job-First, SJF)的排班情況,並分別計算平均等待時間(Waiting Time)及平均回復時間(Turnaround Time)。 解答: 以SJF排班所繪出的甘特圖如下:
75
6-11 工作排程簡介 循環分配排程(1) 循環分配(Round Robin, RR)排程適合用於分時系統,首先會訂並每個行程使用CPU的時間額度(Time Slice),等到時間額度(Time Slice)用盡後,若未能在此時間額度內完成工作,則會被迫放棄CPU控制權,等待下一回合,CPU也會將控制權移轉到下一個等待執行的工作。 如此循環執行,直到所有行程結束為止。
76
循環分配排程(2) 範例:假設有4個行程P1,P2,P3,P4,其在很短的時間內先後到達等待佇列,每個行程所執行時間如下表所示:
6-11 工作排程簡介 循環分配排程(2) 範例:假設有4個行程P1,P2,P3,P4,其在很短的時間內先後到達等待佇列,每個行程所執行時間如下表所示: 請您以甘特圖(Gantt Chart)繪出循環分配(Round Robin, RR)的排班情況,並分別計算平均等待時間(Waiting Time)及平均回復時間(Turnaround Time)。 行程名稱 各行程所需的執行時間 P1 30 P2 40 P3 20 P4 10
77
6-11 工作排程簡介 解答: 以RR排班所繪出的甘特圖如下:
78
6-11 工作排程簡介 優先權排程 為優先佇列的應用,等待佇列的每一個行程都賦予一個優先權(priority),但有最高優先權者(Highest Priority Out First:HPOF),優先得到CPU的控制權。 範例:假設有4個行程P1,P2,P3,P4,其在很短的時間內先後到達等待佇列,每個行程所執行時間如下表所示: 行程名稱 各行程所需的執行時間 P1 30 P2 40 P3 20 P4 10
79
6-11 工作排程簡介 請您以甘特圖(Gantt Chart)繪出優先權排程(Priority Scheduling, PS)的排班情況,並分別計算平均等待時間(Waiting Time)及平均回復時間(Turnaround Time)。 解答: 以PS排班所繪出的甘特圖如下:
80
6-11 工作排程簡介 最短剩餘優先排程(1) 最短剩餘優先(Shortest Remaining Time First, SRTF)排程是當行程執行時,若其執行時間大於新到達行程的執行時間,則此行程會被迫放棄CPU控制權,交由新的行程來執行,屬於「搶奪式」(Preemptive)排程。 SRTF和SJF類似,唯一不同之處是SJF排程執行時,不可被新行程插隊,要等到執行完畢才會交出CPU控制權。 但SRTF即使在執行時,新進入等待佇列的行程仍可隨時插隊。
81
6-11 工作排程簡介 最短剩餘優先排程(2) 範例:假設有4個行程P1,P2,P3,P4,分別先後到達等待佇列,且到達時間分別為0,5,10,12,每個行程所執行時間如下表所示: 請您以甘特圖(Gantt Chart)繪出最短剩餘優先(Shortest Remaining Time First, SRTF)的排班情況,並分別計算平均等待時間(Waiting Time)及平均回復時間(Turnaround Time)。 行程名稱 各行程所需的執行時間 P1 40 P2 30 P3 20 P4 10
82
6-11 工作排程簡介 解答: 以SRTF排班所繪出的甘特圖如下:
Similar presentations