06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/aeb002131.pdf ·...

43
6-1 電腦軟體的類型 6-2 智慧財產權與軟體授權 6-3 認識作業系統 6-4 作業系統的功能 6-5 作業系統的演進 6-6 知名的作業系統 6-7 記憶體管理 6-8 行程管理 6-9 磁碟管理 最新計算機概論 06

Upload: others

Post on 24-Oct-2019

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

6-1電腦軟體的類型

6-2智慧財產權與軟體授權

6-3認識作業系統

6-4作業系統的功能

6-5作業系統的演進

6-6知名的作業系統

※6-7 記憶體管理

※6-8 行程管理

※6-9 磁碟管理

最 新 計 算 機 概 論

作 業 系 統06

Page 2: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

最新計算機概論

作 業 系 統06

6-2

6-1 電腦軟體的類型

電腦軟體 (software) 可以分為下列兩種類型:

�� 系統軟體 (system software):這是負責支援電腦運作的程式,最典型的例子就

是作業系統,使用者可以在視窗環境中拖曳滑鼠、存取磁碟、編輯文件或上

網,而不必擔心如何與滑鼠、鍵盤、磁碟、光碟、記憶體、螢幕、網路卡等硬

體裝置互動,因為作業系統不僅能夠妥善分配系統資源,更知道如何驅動硬體

裝置。

�� 應用軟體 (application software):這是針對某特定事務或工作所撰寫的程式,

目的是協助使用者解決問題,例如 Microsoft Office屬於辦公室自動化軟

體、Adobe Photoshop屬於影像處理軟體、Internet Explorer屬於通訊軟體、

Macromedia Dreamweaver屬於網頁設計軟體等。

系統軟體和應用軟體最大的不同在於其機器相關性 (machine dependency),應用軟

體是將電腦當成解決問題的工具,著重於應用軟體的用途,而不是電腦本身,所以

與電腦的架構無關;反之,系統軟體是負責支援電腦運作,著重於電腦本身,自然

與電腦的架構相關。

圖 6.1 Microsoft Windows 作業系統是一種系統軟體

Page 3: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

6-3

▍系統軟體的類型

系統軟體又可以分為下列幾種類型:

�� 作業系統 (OS,operating system):這是介於電腦硬體與應用軟體之間的程式,

除了提供執行應用軟體的環境,還負責分配系統資源,例如 CPU、記憶體、

磁碟、輸入 /輸出等。

�� 公用程式 (utility):這是用來管理電腦資源的程式,例如 Ghost可以用來備份

系統;WinZip、WinRAR可以用來壓縮資料;Windows內建的磁碟掃描、磁碟

重組及磁碟清理等程式可以用來管理磁碟;Trend PC-cillin、Kaspersky Internet

Security可以用來防毒防駭等。

�� 程式開發工具 (program development tool):這是協助程式設計人員開發應用軟

體的工具,包括文字編輯程式、整合開發環境、組譯程式、編譯程式、偵錯程

式、連結程式、載入程式等,其中組譯程式 (assembler) 可以將由組合語言撰

寫出來的程式轉換成目的碼 (object code),裡面包含機器指令、資料值及這些

項目的位址;編譯程式 (compiler) 可以將由高階語言撰寫出來的程式轉換成目

的碼;偵錯程式 (debugger) 可以對程式進行偵錯與測試;連結程式 (linker) 可

以連結多個目的碼;載入程式 (loader) 可以將目的碼載入記憶體執行。

圖 6.2 WinRAR 是一種用來壓縮資料的公用程式

Page 4: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

最新計算機概論

作 業 系 統06

6-4

▍應用軟體的類型

依設計的目的不同,應用軟體又可以分為下列兩種類型:

�� 橫向應用軟體 (horizontal application software):又稱為通用型應用軟體,通常

包裝在漂亮的彩盒裡,內有一或多片應用軟體的 CD或 DVD、序號、授權合

約書、使用手冊等,近年來則有愈來愈多橫向應用軟體可以直接在網際網路

購買並下載取得。我們平常所接觸的套裝軟體或商業軟體均被歸類為橫向應

用軟體,例如 Microsoft Office、Dreamweaver、Flash、Photoshop、InDesign、

AutoCAD等。

橫向應用軟體通常是由大型的軟體公司 (例如Microsoft、Oracle、Sun⋯) 根據

市場多數人的需求所設計出來的軟體,故能解決多數人的問題。橫向應用軟體

一般會陳列在資訊賣場或書局的軟體專櫃,消費者可以根據自己的需求選購適

合的套裝軟體,例如企業通常會需要辦公室自動化軟體,而去採購Microsoft

Office或 Sun StarOffice。

�� 縱向應用軟體 (vertical application software):當市場上既有的軟體無法滿足企

業的需求或有效地解決企業的問題時,部分企業會委託其它軟體設計公司開發

符合需求的應用軟體,而大型企業通常有自己的程式設計人員,此時就可以選

擇自行開發應用軟體,這類應用軟體即屬於縱向應用軟體,又稱為專用型應用

軟體,例如會計帳務系統、庫存系統、薪資系統等。

圖 6.3 電腦軟體的類型

Page 5: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

6-5

此外,我們也可以根據應用軟體的用途來做分類,例如辦公室自動化軟體、桌面排

版軟體、影像動畫繪圖軟體、音訊 /視訊編輯軟體、通訊軟體、壓縮軟體、光碟製

作 /燒錄軟體及電腦解題工具等。

圖 6.4 (a) Microsoft Word 是一種文書處理軟體 (b) Adobe Illustrator 是一種繪圖軟體

(a)

(b)

Page 6: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

最新計算機概論

作 業 系 統06

6-6

6-2 智慧財產權與軟體授權

智慧財產 (intellectual property) 指的是由人類的精神活動所產生的成果,例如文

學、科學、藝術或其它學術範圍的創作,而佔有和支配智慧財產的法律地位即為智

慧財產權 (IPR,intellectual property rights),其所涵蓋的範圍廣泛,包括:

�� 著作權

�� 商標權

�� 專利權

�� 產地標示

�� 工業設計

�� 積體電路之電路佈局權

�� 未公開資訊之保護 (營業秘密 )

�� 授權契約中違反競爭行為之管理 (公平交易 )

和電腦軟體關係最密切的當屬著作權 (copyright),所謂著作包括:

一、語文著作

二、音樂著作

三、戲劇、舞蹈著作

四、美術著作

五、攝影著作

六、圖形著作

七、視聽著作

八、錄音著作

九、建築著作

十、電腦程式著作

Page 7: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

6-7

著作人於著作完成時即享有著作權,並受到著作權法的保護,不需要經由任何程序

或進行登記。

著作權包括下列兩個部分:

�� 著作人格權:這是用來保護著作人的名譽、聲望及其人格利益,專屬於著作人

本身,不得讓與或繼承,包括公開發表權、姓名表示權及禁止不當改變權。

�� 著作財產權:這是賦予著作人財產上的權利,使之獲得經濟利益,以繼續從事

創作,包括重製權、公開口述權、公開播送權、公開上映權、公開演出權、公

開展示權、改作權、編輯權及出租權。

為了尊重著作人的權益,在使用他人著作時,除了不能侵犯其著作人格權,還必須

得到著作財產權人的同意或授權。

以電腦軟體為例,當您購買一套電腦軟體時,您只是買到在單一電腦上使用該軟

體的軟體授權 (software license),雖然軟體授權的內容因軟體公司而異,但通常

會限制您不得隨意複製、散發或重新銷售。此外,許多軟體公司會提供大量授權

(volume license) 給學校、企業或政府單位,少數軟體公司還會提供軟體租賃服務。

或許您會問,「軟體的購買者是否可以自由地複製該軟體呢?」,這須視軟體的授權

合約而定,大部份軟體均允許購買者備份該軟體,以確保原始光碟因刮傷或其它因

素造成損壞時,購買者還能繼續使用該軟體。

不過,如果購買者將備份軟體轉交他人使用,那麼此備份軟體即變成盜版軟體,而

此一行為則稱為軟體盜版 (software piracy),須單獨或同時負民事及刑事責任,例

如未經授權而重製著作電腦軟體或以散佈非法軟體為常業者,最高可處七年有期徒

刑;未經授權而重製電腦程式,最高可處五年有期徒刑;使用者亦應注意,即使該

非法軟體並非其所重製,依直接營利為目的而使用非法軟體者,最高可處二年有期

徒刑,違法者同時亦須面對新台幣五萬至四十五萬元之重大罰金。

Page 8: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

最新計算機概論

作 業 系 統06

6-8

資 訊 部 落

雖然大部分的電腦軟體都享有著作權,必須加以購買,才能合法使用,但還是有

些電腦軟體可以免費使用,常見的類型如下:

�� 免費軟體 (freeware):免費軟體的著作人可能因為個人興趣或實驗目的,免

費提供軟體給他人使用,這些軟體通常都會強調若使用該軟體造成任何損

害,概不負責,即無擔保責任,所以在使用免費軟體之前,務必備份重要

資料。

此外,免費軟體的著作人在法律上仍受到著作權法的保護,並且能夠限制其

用途,例如僅限個人使用、非商業使用、非營利使用或學術使用等。

�� 公共領域軟體 (public domain software):這也是免費提供軟體給他人使用,

但和免費軟體不同的是它沒有著作權,通常是由大學、政府單位或研究機構

使用國家經費所研發,使用者可以隨意複製或散發。

�� 共享軟體 (shareware):這也是免費提供軟體給他人使用,但和免費軟體不同

的是它可能有時間或功能限制,而且為了鼓勵註冊,著作人往往會提供說明

文件、技術支援、免費升級等額外的服務給註冊的使用者,例如WinRAR、

WinZip、Acrobat Reader、GetRight等。

�� 試用軟體 (trial software):這是軟體公司提供試用的軟體,當使用者覺得該

軟體符合需求時,再購買正式版本。試用軟體通常有時間或功能限制,使

用者必須付費註冊,才能長期使用或完全發揮軟體的功能,例如 Nero、

CloneCD、SnagIt、PC-cillin等。

�� 開放原始碼軟體 (open source software):這不僅是免費軟體,他人可以無限

制使用並隨意複製或散發,同時還會公佈原始程式碼,讓有興趣的人自行修

改以符合需求。Linux平台上的軟體大多為開放原始碼軟體,例如 RedHat

Linux、OpenOffice.org、Apache、PHP、MySQL等。

可以免費使用的電腦軟體

Page 9: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

6-9

圖 6.5 (a) Acrobat Reader 屬於共享軟體 (b) OpenOffice.org 屬於開放原始碼軟體

(a)

(b)

Page 10: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

最新計算機概論

作 業 系 統06

6-10

6-3 認識作業系統

作業系統 (OS,operating system) 是介於電腦硬體與應用軟體之間的程式,除了提

供執行應用軟體的環境,還負責分配系統資源,例如 CPU、記憶體、磁碟、輸入 /

輸出等 (圖 6.6)。

圖 6.6 作業系統是介於電腦硬體與應用軟體之間的程式

不同電腦硬體的作業系統其設計目標各異,例如:

�� 大型主機和工作站的作業系統通常應用於科學運算或商業運算,「效率」為其

首要考慮,除了要讓系統資源的使用率最佳化,還要協調與控制各個使用者所

分配到的系統資源。

�� 個人電腦的作業系統通常應用於個人運算,「便利」為其首要考慮,除了要有

容易操作的使用者介面,還要注重執行效率,以滿足使用者日趨多元化的工作

或娛樂需求。

�� 手持式裝置的作業系統通常是透過有線或無線方式連接到網路,著重於個人使

用及遠端操作。

�� 汽車或資訊家電等嵌入式電腦的作業系統通常只有一個儀表板,上面有顯示狀

態的指示燈。

公用程式

系統軟體

程式開發工具

Page 11: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

6-11

知名的作業系統有安裝於大型電腦和工作站的 UNIX,IBM相容 PC的MS-DOS、

Microsoft Windows、Linux、Novell Netware,麥金塔的 Mac OS,PDA、智慧型手

機等手持式裝置的 Palm OS、Windows Mobile等。

作業系統中實際負責管理系統資源的是數個不同的處理程式,而負責協調與控制

這些處理程式,並維持整個作業系統正常運作的程式叫做核心 (kernel) 或監督程式

(supervisor program)。

核心是作業系統中最重要的程式,在電腦完成開機後,核心會常駐於記憶體,一方

面是維持整個作業系統正常運作,另一方面是將其它作業系統程式載入記憶體。

像核心這種常駐於記憶體的程式稱為常駐程式 (resident),而在需要時才載入記憶體

的程式則稱為非常駐程式 (nonresident)(圖 6.7)。

圖 6.7 作業系統的核心與非常駐程式

至於核心是如何載入記憶體的呢?事實上,核心是透過所謂的開機程式 (bootstrap

program) 或開機載入程式 (bootstrap loader) 在電腦啟動時載入記憶體,可是問題來

了,開機程式又是如何載入記憶體的呢?在過去,電腦的操作人員必須透過控制開

關將開機程式的目的碼輸入記憶體,但這容易產生錯誤,而且也相當不方便,後來

則改將開機程式儲存在唯讀記憶體 (ROM),只要電腦一接收到開機的訊息,就去

執行唯讀記憶體的開機程式載入作業系統。

Page 12: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

最新計算機概論

作 業 系 統06

6-12

6-4 作業系統的功能

作業系統的功能主要有下列幾項:

一、 分配系統資源:電腦經常會同時執行不同的程式或同時服務不同的使用者,此

時,這些程式或使用者就必須共用電腦的系統資源,例如 CPU、記憶體、磁

碟、輸入 /輸出等,而作業系統則必須扮演資源配置者 (resource allocator) 的

角色,負責協調與控制這些程式或使用者共用電腦的系統資源,將系統資源

的分配與運用最佳化及公平化,進一步防止產生錯誤或不正確地使用電腦 (圖

6.8(a))。

二、 提供執行應用軟體的環境:作業系統的重要功能之一是提供執行應用軟體的環

境,以載入並執行應用軟體,做為應用軟體和電腦硬體之間的橋樑,應用軟體

無須瞭解如何驅動底層的硬體裝置,只要指定欲驅動的硬體裝置,作業系統就

會代為驅動該硬體裝置。

舉例來說,假設應用軟體要將一個檔案的內容複製到另一個檔案,那麼撰寫應

用軟體的人可能只要呼叫一個函式 (function),就能完成此動作,但作業系統

卻得做一連串的動作,首先,它必須取得來源檔案和目的檔案的名稱;接著,

它必須開啟來源檔案和目的檔案,這中間可能會發生來源檔案不存在或目的

檔案已經存在等問題,一旦發生問題,都必須通知使用者;繼續,它會從來源

檔案讀取資料,然後將資料寫入目的檔案,這中間一樣可能會發生問題,例如

磁碟已滿等,一旦發生問題,都必須通知使用者;最後,它還要關閉這兩個

檔案。

三、 提供使用者介面 (user interface):使用者介面是使用者和電腦硬體之間的橋

樑,有時又稱為殼層 (shell),因為它就像圍繞在作業系統外圈的殼一樣 (內圈

的部份則是所謂的核心 )。

在過去,作業系統所提供的是命令列使用者介面 (command line user

interface),使用者必須透過鍵盤輸入指定的指令集,才能指揮電腦完成工

作,例如 UNIX、MS-DOS (圖 6.8(b));而現在,作業系統所提供的是圖形化

使用者介面 (GUI,graphical user interface),使用者只要透過鍵盤、滑鼠等輸

入裝置點選畫面上的圖示,就能指揮電腦完成工作,例如Microsoft Windows

(圖 6.8(c))。

Page 13: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

6-13

圖 6.8 (a) 作業系統負責分配系統資源 (b) MS-DOS 採用命令列使用者介面

(c) Microsoft Windows 採用圖形化使用者介面

(a)

(b)

(c)

Page 14: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

最新計算機概論

作 業 系 統06

6-14

6-5 作業系統的演進

作業系統的演進和電腦硬體的發展息息相關,比較重要的里程碑如下:

�� 第一代電腦 (1951 ~ 1958) 是由真空管所構成,當時並沒有作業系統的存在,

如果要執行工作,必須以人工插卡的方式來進行。

�� 第二代電腦 (1959 ~ 1964) 是由電晶體所構成,當時的輸入裝置是讀卡機,輸

出裝置是打孔機,如果要執行工作,必須將程式、資料及控制訊息畫在有固定

格式的打孔卡片 (可能有數張 ),然後交給電腦的操作人員,經過數分鐘、數

小時甚至數天後,就可以得到輸出結果,這個時期所發展出來的作業系統有單

工系統、批次系統等。

�� 第三代電腦 (1965 ~ 1970) 是由積體電路所構成,拜電腦硬體大幅進步之賜,

這個時期所發展出來的作業系統有多元程式處理系統、分時系統等。

�� 第四代電腦 (1971 ~ 現在 ) 是由超大型積體電路所構成,隨著微處理器應用至

各種商業用途,這個時期所發展出來的作業系統有多處理器系統、叢集式系

統、分散式系統、即時系統、手持式系統、嵌入式系統等。

6-5-1批次系統

早期電腦的作業系統很陽春,主要就是將一個工作轉移到下一個工作,屬於單工系

統 (single task system),一次只能服務一位使用者,如果同時有多位使用者,那麼

後面的使用者必須等到前面的使用者完成工作,才能開始執行自己的工作。單工

系統的資源使用率不佳,一旦所執行的工作在存取機械式的輸入 /輸出裝置,其它

電子式的裝置 (包括 CPU) 都必須閒置下來等待其完成。

為了提昇效率,於是電腦的操作人員遂留下各個使用者的工作,透過工作控制程式

(job control program) 將這些工作加以排序,把相同或類似的工作集中在一起,稱為

一個批次 (batch),然後交給電腦分批執行,再將輸出結果送回給所屬的使用者,

稱為批次處理 (batch processing),這樣做的好處是不必浪費時間一次又一次地重新

載入並準備相同的資源,至於用來進行批次處理的作業系統則稱為批次系統 (batch

system)(圖 6.9)。

Page 15: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

6-15

圖 6.9 批次系統

圖 6.10 多元程式處理系統

6-5-2 多元程式處理

多元程式處理 (multiprogramming) 的目的是同時服務多位使用者或多個程式,致力

於讓 CPU一直保持忙碌,以提昇 CPU的使用率。在單工系統中,當所執行的工作

在存取速度較慢的輸入 /輸出裝置時,其它裝置 (包括 CPU) 都必須閒置下來等待其

完成,造成資源使用率不佳。

反之,在多元程式處理系統 (multiprogramming system) 中,記憶體會同時存放著多

個工作,當所執行的工作在存取速度較慢的輸入 /輸出裝置時,便將 CPU切換到

記憶體中其它需要執行的工作,等之前的工作結束存取輸入 /輸出裝置後,就會重

新得到 CPU,繼續尚未完成的工作,如此週而復始,CPU就能一直保持忙碌,而

不會閒置下來 (圖 6.10)。

Page 16: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

最新計算機概論

作 業 系 統06

6-16

圖 6.11 分時系統

6-5-3分時系統

分時處理 (time-sharing) 是一種特殊形式的多元程式處理,主要應用於「互動式系

統」(interactive system)。前述的多元程式處理雖然能夠提昇資源使用率,但無法

允許使用者與系統互動,若系統需要同時服務多位使用者,而且使用者的工作大

多是以互動的方式來進行,例如編輯文件或整理檔案,那麼可以將 CPU時間分割

成許多小段,稱為時間配額 (time slice),輪流分配給各個使用者的工作,時間配額

一到,無論目前的工作完成與否,都必須將 CPU的使用權交給下一個工作,而之

前尚未完成的工作在等 CPU輪完一輪後又會回到其手上,並從中斷的地方繼續執

行,這就是分時系統 (time-sharing system),又稱為多工系統 (multitasking system)

(圖 6.11)。

由於時間配額通常很短,再加上電腦的速度比人類快得多,因此,使用者不會感覺

到自己正在和其它使用者競爭 CPU,除非同時服務的使用者或工作太多,超過作

業系統的負荷,才會出現執行效能低落的現象。

Page 17: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

6-17

圖 6.12 多處理器系統

6-5-4多處理器系統

相對於多數系統只有一個 CPU,也就是單處理器系統 (single processor system),多

處理器系統 (multiprocessor system) 則是擁有多個 CPU的系統,這些 CPU之間會緊

密溝通,並共用匯流排、時脈、週邊裝置或甚至記憶體,又稱為平行系統 (parallel

system) 或緊密耦合系統 (tightly coupled system)(圖 6.12)。

多處理器系統不僅能夠增加電腦的工作量以提昇效能,共用週邊裝置以節省成本,

更重要的是它能夠增加電腦的可靠度,當電腦的某個 CPU出了問題時,電腦不會

因此癱瘓,只會速度減慢而已,也就是藉由適度的降級 (graceful degration),提高

電腦的容錯能力。

6-5-5叢集式系統

叢集式系統 (clustered system) 的特性類似多處理器系統,也是集合多個 CPU一起

完成工作,不過,它們是由兩個或更多個別的系統集合而成。目前對於叢集式系

統的定義仍眾說紛紜,比較通用的定義是這些電腦會分享儲存裝置並經由區域網路

連接在一起。

Page 18: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

最新計算機概論

作 業 系 統06

6-18

圖 6.13 分散式系統

6-5-6分散式系統

網路的盛行造就了分散式系統 (distributed system) 的誕生,在此之前,同一個工作

通常是由同一部電腦的一或多個 CPU來執行,而在分散式系統中,同一個工作可

以拆成幾個部份,然後透過快速的網路連結指派給多部電腦分別執行,這些電腦或

許位於不同的地點,之間透過網際網路來聯繫 (圖 6.13)。

從使用者的觀點來看,他並不知道工作被分散到哪部電腦執行,所有分散的工作

都是由分散式系統來執行。為了讓同一個工作能夠分散到多部不同的電腦同時執

行,分散式系統必須擁有比其它作業系統更複雜的 CPU排程演算法,而且在安全

控管的方面也要特別留意。

6-5-7即時系統

即時系統 (real time system) 能夠隨時對輸入訊號做出立刻的回應,通常應用於非常

重視回應時間的系統,例如控制工業用的機器人、工業用的自動控制系統、飛機導

航系統、醫療儀器、科學儀器、感應器等。以感應器為例,在感應器接收到輸入

訊號後,即時系統必須在限定的時間內分析這些訊號,然後做出回應,一旦超過限

定的時間,就會被視為失敗。試想,如果飛機導航系統就像一般電腦一樣忽快忽

慢,那麼坐飛機將是一件多麼危險的事!

Page 19: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

6-19

圖 6.14 (a) 搭載 Android 作業系統的智慧型手機 ( 資料來源:HTC 公司 ) (b) 採用嵌入式系統的智慧家電

6-5-8手持式系統

手持式系統 (handheld system) 泛指應用於 PDA、智慧型手機的作業系統,這種系

統因為受限於較少的記憶體、較慢的 CPU、較小的螢幕、使用充電電池等先天限

制,所以在設計上必須考慮到有效管理記憶體、不能增加 CPU的負擔、擷取顯示

部分內容、不能太耗電及無線通訊。

6-5-9嵌入式系統

除了桌上型電腦、筆記型電腦等通用用途電腦之外,日常生活中處處可見只做某些

工作的特殊用途電腦,例如洗衣機、冷氣機、遊樂器、醫療監視儀器、智慧家電

等,這些電子產品都是由隱藏於內部的微處理器來加以控制,也就是嵌入式系統

(embedded system),這種系統沒有或只有少許介面,功能有限且原始,傾向於監督

並控制硬體裝置等特殊用途。

(a) (b)

Page 20: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

最新計算機概論

作 業 系 統06

6-20

6-6知名的作業系統

作業系統的種類相當多,以下就為您介紹一些知名的作業系統。

6-6-1UNIX

UNIX是 AT&T貝爾實驗室的 Ken Thompson和 Dennis Ritchie,於 1971年針對

DEC迷你電腦所開發的多使用者分時作業系統。到了 1970年代晚期,貝爾實驗室

將 UNIX贈送給許多大專院校,使它成為學生最熟悉的作業系統,進而帶入職場,

令企業和機構逐漸接受 UNIX。即使到了現在,仍有大專院校或機構使用 UNIX。

早期 UNIX為命令列使用者介面,後來亦推出圖形化使用者介面- X Window,而

且 UNIX並不專屬於某一家公司,市面上有數種不同的商業品牌可供選擇,例如

Sun Solaris、IBM AIX、HP HP-UX等。

UNIX的偉大成就之一是提出主從式架構 (client server model),將作業系統分成伺

服器版本與用戶端版本,前者安裝在伺服器,負責管理資源並提供服務,而後者安

裝在用戶端,負責與使用者溝通。

6-6-2Linux

Linux是由芬蘭大學學生林納斯‧托華斯 (Linus Torvalds) 於 1991年以 UNIX為基

礎所開發的作業系統,當時 UNIX只能安裝在昂貴的中大型電腦,林納斯為了將

UNIX安裝在個人電腦,決定自己修改 UNIX。在 Linux的核心程式公佈於網際網

路後,獲得全球各地程式設計人員的支持,紛紛投入為 Linux強化功能,讓 Linux

能夠和各種週邊相容並日趨穩定。

Linux可以說是開放原始碼的最佳典範,所謂開放原始碼 (open source) 指的是軟體

的原創者將 Beta測試版本、原始程式碼及相關文件公佈於網際網路,讓其它人免

費下載、安裝與使用,若其它人發現錯誤或不符合需求,可以進行修改或強化功

能,然後將這些改變告訴軟體的原創者,原創者再將之整合至更新版本並公佈於網

際網路,以接受其它更多人的建議。

或許您會認為這種模式很難開發出大型軟體,畢竟這些人並不屬於任何組織,而且

沒有報酬,然 Linux卻徹底顛覆了這項說法。

Page 21: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

6-21

6-6-3MS-DOS

MS-DOS (Microsoft disk operating system) 是Microsoft於 1975年針對 IBM PC所推

出的作業系統,採用命令列使用者介面,使用者必須透過鍵盤輸入指定的指令集,

才能指揮電腦完成工作。

隨著圖形化使用者介面的風行,MS-DOS已經被 Microsoft Windows所取代,只

剩下極少數的企業或機構還保有在 MS-DOS下執行的程式,例如庫存系統、財

務會計系統、診療系統等。為了方便使用者下達命令或執行某些程式,Microsoft

Windows提供了 [命令提示字元 ] 視窗,用來模擬MS-DOS環境。

圖 6.15 (a) UNIX (b) Linux

(a)

(b)

Page 22: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

最新計算機概論

作 業 系 統06

6-22

6-6-4MacOS

Mac OS是 Apple公司於 1984年針對麥金塔所推出的作業系統,友善的圖形化使

用者介面讓它迅速擄獲消費者的青睞,並在市場上佔有一席之地。雖然Mac OS後

來的市佔率遠不如Microsoft Windows,但這主要是因為麥金塔的軟硬體與 IBM相

容 PC不相容所致,在美術人員及無數蘋果迷心中,Mac OS仍保有無可取代的地

位。目前Mac OS有單機使用的Mac OS X Snow Leopard和伺服器使用的Mac OS

X Server。

6-6-5MicrosoftWindows

Mac OS的誕生,帶動了圖形使用者介面的風潮,Microsoft亦搭上這股風潮,分別

於 1985、1987、1990年推出Windows 1.0、Windows 2.0、Windows 3.0。不過,此

時的Windows只能算是披上圖形使用者介面的 MS-DOS,因為 Microsoft只是在

MS-DOS與使用者之間加上一個殼層 (shell) 程式,讓該程式將使用者的動作轉換成

MS-DOS能夠接受的命令。

直到Microsoft於 1995年推出Windows 95後,Windows才從殼層程式轉變為真正

的作業系統,不再包含MS-DOS。之後Microsoft不斷推出新版的Windows作業系

統,包括Windows Me、Windows XP、Windows Vista和Windows 7。

此外,為了在企業電腦市場和獨霸一方的 UNIX競爭,Microsoft公司花費無數心

力推出旗下第一個主從式作業系統-Windows NT (New Technology),其中伺服器

版本為Windows NT Server,用戶端版本為Windows NT Workstation,之後伺服器

版本改版為Windows 2000 Server、Windows Server 2003、Windows Server 2008,而

用戶端版本改版為Windows 2000 Professional、Windows XP Professional、Windows

Vista、Windows 7。

6-6-6PDA與智慧型手機作業系統

誠如前面所言,PDA與智慧型手機因為受限於較少的記憶體、較慢的 CPU、較小

的螢幕、使用充電電池等先天限制,所以其作業系統和一般電腦不同,比較常見的

如下:

Page 23: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

6-23

�� Palm OS:Palm OS最早是 U.S. Robotics公司針對 PDA所設計的作業系統,之

後被 3Com公司收購,並獨立成為 Palm公司,由於執行速度快、介面簡單易

用,一度成為最普遍的 PDA作業系統,不過,目前的市佔率已經大幅下降。

�� Windows Phone/Windows Mobile:這是Microsoft公司針對 Pocket PC、智慧

型手機所設計的作業系統,提供了無線傳輸、行動通訊、簡訊服務、電子郵

件、網頁瀏覽、影音多媒體等功能,最新版的Windows Phone 7並內建新一代

的 Office Mobile、Internet Explorer Mobile和Windows Media Player。

�� Android:Android是 Google公司與多家廠商針對智慧型手機所設計的作業系

統,以 Linux為核心,屬於免費的開放系統,提供了無線傳輸、行動通訊、簡

訊服務、電子郵件、網頁瀏覽、影音多媒體等功能,並可搭載 Google Maps、

Google Mail、Google Talk等 Google線上服務。

�� Symbian OS:Symbian OS是 Symbian公司針對手機所設計的作業系統,之後

被 Nokia公司收購,並移轉到 Symbian基金會,以開放原始碼的形式釋出,並

廣泛應用於許多智慧型手機。

�� BlackBerry OS:這是 Research in Motion (RIM) 公司針對旗下的黑莓手機所設

計的作業系統,重點在於操作簡便及商務使用。

�� iOS (iPhone OS):iOS是 Apple公司針對 iPhone、iPod Touch、iPad所設計

的作業系統,由Mac OS X發展而來,彩色的圖形使用者介面及觸控功能,讓

iPhone甫上市,便席捲全球。然相對於 Android、Symbian OS是開放系統,

iOS則是封閉系統,消費者想要使用應用軟體,都只能到 App Store進行安裝。

圖 6.16 (a) Mac OS (b) 搭載 Symbian OS 的智慧型手機 ( 資料來源:Nokia 公司 )

(a) (b)

Page 24: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

最新計算機概論

作 業 系 統06

6-24

※6-7記憶體管理

在現代的作業系統中,所有正在執行的程式都是儲存在記憶體,而這些程式所參考

到的資料也是儲存在記憶體以備存取。由於記憶體會同時儲存多個程式和資料,

因此,作業系統不僅要追蹤並記錄每個程式儲存在記憶體的哪個位址,還要把程式

裡面參考到的位址轉換成記憶體的位址。然我們無法事先得知每個程式會被載入

記憶體的哪個位址,那麼要如何進行轉換呢?

解決之道是採用邏輯位址 (logical address) 與實體位址 (physical address) 兩套位址,

前者是在程式裡面所指定的相對位置,又稱為相對位址 (relative address);後者是

在記憶體中的實際位置,當程式被載入記憶體時,程式裡面的邏輯位址就會經由位

址繫結 (address binding) 的過程,對應到記憶體中的實體位址。

6-7-1單一程式處理

單一程式處理 (monoprogramming) 是把記憶體固定劃分成兩個部份,一部份用來儲

存作業系統,另一部分用來儲存正在執行的單一程式和資料,必須等該程式執行完

畢,才能換下一個程式。在這種記憶體管理機制下,只要把邏輯位址 L加上程式

載入起點的位址 X,就能轉換出實體位址為 X+L,如圖 6.17。

單一程式處理的優點是實作與管理都很簡單,缺點則是記憶體必須大到足夠容納整

個程式,而且一次只能執行一個程式,一旦程式在進行 I/O,CPU就會閒置。

圖 6.17 單一程式處理

Page 25: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

6-25

6-7-2固定分割法

由於單一程式處理太浪費記憶體和 CPU時間,所以很快就發展出多元程式處理,

也就是在同一時間內安排多個程式在記憶體中輪流使用 CPU。最先提出的技術為

固定分割法 (fixed partitioning),其原理是把記憶體劃分成多個大小固定的分割區,

雖然各個分割區的大小不一定相同,但在開機後就已經決定,而且作業系統會使用

表格記錄分割區的起始位址及長度。

一個分割區可以載入一個程式來執行,而 CPU就在這些程式之間切換執行,以圖

6.18為例,假設 CPU先執行程式 A,當它的時間配額用完了或進行 I/O,CPU就

會記錄目前執行到哪個位址,然後切換到下一個程式 B,重複這個過程,直到最後

一個程式亦執行過,就返回程式 A,從上次執行到的位址繼續執行。

由於分割區的大小固定,而程式的大小卻不一定剛好等於分割區的大小,導致裡面

可能有剩下的空間沒有用到,這個空間稱為內部碎片 (internal fragmentation)。例如

在圖 6.18中,程式 B的大小為 6MB,而它所分配到之分割區的大小為 8MB,那麼

剩下的 2MB就是內部碎片,該空間無法再指派給其它程式使用。

圖 6.18 固定分割法

Page 26: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

最新計算機概論

作 業 系 統06

6-26

6-7-3動態分割法

為了改善內部碎片的問題,於是發展出動態分割法 (dynamic partitioning),其原理

是根據程式的大小劃分一塊大小剛好的分割區來儲存程式,而且作業系統同樣會使

用表格記錄分割區的起始位址及長度。

以圖 6.19為例,記憶體中共載入 A、B、C等三個程式,其起始位址分別為 16M、

32M、44M,長度分別為 16M、12M、14M,而且此時還有一個大小為 8M的程式

D在等待中。

圖 6.19 動態分割法範例

假設程式 B先執行完畢並釋出一塊起始位址為 32M、大小為 12M的記憶體空間,

於是作業系統會劃分出一塊起始位址為 32M、大小為 8M的記憶體空間給程式 D,

而就在此時,又有一個大小為 8M的程式 E在等待中,結果如圖 6.20,雖然此時的

記憶體總大小足以容納程式 E,但卻因為空間不連續而無法利用,我們將這些空間

稱為外部碎片 (external fragmentation)。

Page 27: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

6-27

圖 6.20 動態分割法範例

無論是固定分割法或動態分割法,其特點都是程式必須整個載入分割區才能執行,

而且還限定是連續的記憶體空間。

事實上,外部碎片是無法避免的問題,只是程度的輕重與否,所以後來遂發展出

另一系列的技術,例如分頁法、分段法,以及結合兩者的其它方法。這些技術允

許同一個程式載入到不連續的記憶體空間,只要可用空間的總大小足以容納該程式

即可。

Page 28: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

最新計算機概論

作 業 系 統06

6-28

6-7-4分頁法

分頁法 (paging) 的原理是將記憶體劃分成相同大小的區塊,稱為頁框 (frame),然

後將程式亦劃分成相同大小的區塊,稱為分頁 (page),頁框的大小和分頁的大小通

常一樣,而且往往是 2的次方,視電腦的架構而定,範圍從 512位元組到 16MB

都有。

當程式準備執行時,它的分頁會被載入記憶體的頁框,每個分頁對應一個頁框,但

不一定是要連續的頁框,分散或順序顛倒亦無妨。為了記錄程式的每個分頁是載

入到記憶體的哪些頁框,所以需要一個分頁表 (page table)。

以圖 6.21為例,程式 A的大小為 4個分頁,程式 B的大小為 3個分頁,兩者並不

一定要載入連續的可用空間。如果此時欲執行大小為 6個分頁的程式 C,那麼只要

記憶體中有 6個可用頁框即可,無須等待連續的 6個可用頁框。

圖 6.21 分頁法範例

分頁法的優點是提升了記憶體與 CPU的使用率,不會產生外部碎片;缺點則是頁

框的大小固定,每個程式的最後一個分頁可能沒有用完一個頁框,導致產生內部碎

片,而且需要額外的空間儲存分頁表並耗費 CPU時間維持分頁表。

Page 29: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

6-29

6-7-5分段法

分段法 (segmenting) 的概念和分頁法相似,只是分割單位不同,分頁法是將程式劃

分成大小相同的分頁,但這並不符合一般程式設計人員的思考模式,他們通常是把

程式想成一個個模組,有主程式、資料區、副程式等,因此,分段法是把程式的邏

輯記憶體劃分成數個分段 (segment),並記錄每個分段的編號及長度。同樣的,為

了記錄程式的每個分段是載入到記憶體的哪些位址,所以需要一個分段表 (segment

table)。

以圖 6.22為例,假設程式包含主程式 (分段 0, 長度為 600)、資料區 (分段 1, 長度

為 900)、副程式 SUB1 (分段 2, 長度為 200) 及副程式 SUB2 (分段 3, 長度為 300),

當主程式載入記憶體時,就把分段 0的起始位址和長度記錄在分段表,其它分段也

是做類似的處理。

圖 6.22 分段法範例

雖然分頁法和分段法提升了記憶體與 CPU的使用率,但程式還是必須整個載入記

憶體才能執行,若記憶體的可用空間不足,程式就無法載入,針對此缺點,遂發展

出虛擬記憶體的概念,下一節會介紹這項重要的技術。

Page 30: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

最新計算機概論

作 業 系 統06

6-30

6-7-6虛擬記憶體

虛擬記憶體 (virtual memory) 的原理是假設有一塊非常大的虛擬記憶體,大小是實

體記憶體的數倍,實際上則是規劃一部分的輔助儲存裝置 (通常是磁碟 ) 做為虛擬

記憶體。當程式準備執行時,即使程式無法整個載入記憶體也沒關係,只要記錄

下哪些部分是真的有載入記憶體,而其餘哪些部分還留在規劃成虛擬記憶體的磁

碟,然後在程式的執行過程中,若碰到需要執行不在記憶體的部份,再到磁碟讀

取,把目前在記憶體中比較不會用到的部份挪出到磁碟上,再把要用到的部分換進

來,此動作稱為交換 (swap),而劃分為虛擬記憶體的磁碟檔案則稱為交換檔 (swap

file),如圖 6.23。

圖 6.23 虛擬記憶體的運作方式

這項技術的優點如下:

�� 能夠載入更多程式到記憶體,以提升記憶體和 CPU的使用率。

�� 因為程式是逐步分段進出記憶體,比較不會一次大量讀入記憶體或寫出到磁

碟,以減輕 I/O的負擔。

�� 程式設計人員不會受限於實體記憶體的大小,以簡化程式的撰寫工作。

Page 31: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

6-31

6-7-7需求分頁法

為了進一步提升記憶體的使用率,遂結合分頁法和虛擬記憶體,發展出需求分頁法

(demand paging),其原理和分頁法相似,也是將記憶體劃分成多個頁框,將程式劃

分成多個分頁,執行時將分頁載入頁框,不同的是程式不必整個載入記憶體就能執

行,只要記錄有哪些分頁是真的載入記憶體,而其餘哪些分頁還留在磁碟即可。

以圖 6.24為例,程式 A的大小為 4個分頁,但只有分頁 0和分頁 2載入記憶體,

所以在分頁表裡面是記錄這兩個分頁為有效 (valid)。若程式在執行中,發現所需要

的分頁在分頁表裡面是記錄為無效 (invalid),例如分頁 1或分頁 3,表示該分頁不

在記憶體,必須到磁碟讀取。

圖 6.24 需求分頁法

6-7-8需求分段法

顧名思義,需求分段法 (demand segmentation) 是結合分段法和虛擬記憶體,其原理

和需求分頁法相似,也就是程式不必整個載入記憶體就能執行,只要記錄有哪些分

段是真的載入記憶體,而其餘哪些分段還留在磁碟即可。若程式在執行中,發現

所需要的分段在分段表裡面是記錄為無效 (invalid),表示該分段不在記憶體,必須

到磁碟讀取。

Page 32: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

最新計算機概論

作 業 系 統06

6-32

※6-8行程管理

作業系統中另一個需要管理的重要資源就是 CPU時間,現代的作業系統為了提高

效率,都會同時執行多個程式,以同時服務多位使用者,而要達成這個目的,就必

須更精確地控制如何分配 CPU時間給每個程式執行。

為了區分程式是否有取得 CPU時間,遂定義了所謂的行程 (process),這指的是

正在執行中的程式。程式是一組靜態的指令,而行程則是程式在執行時的動態實

體,換言之,行程是已經載入記憶體中正在使用或等待 CPU的程式。

由於作業系統會同時執行多個程式,所以往往會有多個行程同時在等待要使用

CPU,此時就要由作業系統決定哪個行程可以在哪個時間下一個使用 CPU,而且

行程可能尚未執行完畢就得交出 CPU的使用權,因此,作業系統還必須記錄每個

行程的進度及其狀態。

6-8-1行程狀態圖

每個行程都會歷經如圖 6.25的五種狀態,在行程進入「建立」狀態後,通常會

在「就緒」、「執行中」和「等待中」三個狀態輪流數次,最後才進入「結束」狀

態。我們將此圖稱為行程狀態圖 (process state diagram),其中橢圓形表示狀態,箭

頭表示行程從一個狀態進入另一個狀態,以及在何種情況下進入。

圖 6.25 行程狀態圖

Page 33: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

6-33

一、 建立 (new):行程一開始產生時是處於建立狀態,此時它尚未得到作業系統的

允許進入記憶體,例如在使用者登入系統時,會產生一個登入行程。

二、 就緒 (ready):待作業系統將行程載入記憶體後,它便進入就緒狀態。在就緒

狀態下的行程都是可以立刻執行的,並沒有在等待某項裝置或等待某個事件發

生,它只有在等待 CPU而已。

三、 執行中 (running):行程目前正在使用 CPU時間執行中,作業系統會決定在就

緒狀態下的哪個行程可以下一個使用 CPU,等到 CPU一被釋放,該行程就可

以開始使用 CPU。處於執行中狀態下的行程接下來可能會發生下列三種情況

之一:

i. 行程需要進行 I/O或存取某項資源,此時它會進入「等待中」狀態並釋放

CPU的控制權。

ii. 行程的執行時間配額已經用完了,此時它會進入「就緒」狀態並釋放 CPU

的控制權,準備下一次再輪到它使用 CPU。

iii.行程已經執行完畢,此時它會進入「結束」狀態。

四、 等待中 (waiting):行程因為某種原因進入等待中狀態,通常是需要某個除了

CPU以外的資源,例如要進行 I/O、存取磁碟檔案等,在 I/O完成或取得所需

的資源之前,它都無法繼續執行,會一直停留在等待中狀態,直到獲得解決

後,再進入就緒狀態,等待下一次使用 CPU。

五、 結束 (terminated):行程已經執行完畢,作業系統也就無須維護其資訊。

由於程式的功能日益強大,使用者可能希望在程式執行當中同時進行多個工作,

例如在文書處理軟體中一面列印一面編輯,不必等到全部列印完畢才能編輯,因

此,許多作業系統會把行程劃分成多個執行緒 (thread),每個執行緒有各自的控制

流程,但共用相同的程式碼區塊、資料區塊和作業系統資源。

由此發展出一種新的多工方式,稱為多執行緒 (multithreading),它允許電腦在單一

程式中執行多個工作。為了要使用多執行緒,程式設計人員必須將程式劃分成多

個分離的執行緒,例如一個執行緒用來處理列印,另一個執行緒用來處理編輯,當

使用者正在處理某個工作時,其它工作則會在背景繼續執行。

Page 34: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

最新計算機概論

作 業 系 統06

6-34

6-8-2CPU排程演算法

CPU排程演算法 (CPU sheduling) 的目的是找出下一個可以取得 CPU使用權的行

程,也就是決定就緒狀態下的哪個行程可以進入執行中狀態,以下就為您介紹幾種

常見的 CPU排程演算法。

▍先來先做 (FCFS)

先來先做 (FCFS,first-come first-served) 的原理是依照行程抵達的先後順序來執

行,先來的先做,做完再輪到下一個,就像排隊買票一樣。舉例來說,假設有 5

個行程先後在很短的時間內抵達就緒狀態,其抵達順序和所需的執行時間如下:

行程 所需的執行時間

P1 40

P2 75

P3 20

P4 80

P5 25

在此,我們使用如圖 6.26的甘特圖 (Gantt Chart) 來表示每個行程的執行順序和時

間軸,上方的數字是時間單位長度,下方的數字則是各個行程開始執行和執行完畢

的時間,其執行順序為 P1、P2、P3、P4、P5。

FCFS演算法雖然容易實作,但它忽略了某些重要的因素,導致並不實際,一旦

CPU分配給某個行程,該行程就能持續佔用 CPU,直到執行完畢或需要進行 I/O

而自行放棄為止,萬一有個行程需要很長的執行時間,但它的後面卻排了一堆急著

要執行的短行程,結果這些行程都必須等待很久才能輪到。

圖 6.26 先來先做 (FCFS) 範例

Page 35: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

6-35

▍最短的工作先做 (SJF)

最短的工作先做 (SJF,shortest job first) 的原理是先檢查一遍在就緒狀態下的所有

行程,將它們所需的執行時間由小到大排序,然後從時間最短的行程開始執行。

假設沿用前面的例子,其執行順序將變成 P3、P5、P1、P2、P4,如圖 6.27。

一般來說,SJF演算法的平均等待時間可以證明出是最佳的,問題在於它是仰賴對

於未來的猜測來計算,換言之,作業系統必須事先「知道」每個行程的執行時間才

能安排順序,但這當然是不可能,還沒執行怎麼知道結果花了多少時間呢?因此,

作業系統會根據一些經驗值和機率因子來推測 (例如行程的類型、資料區塊的大小

等 ),若推測與事實相差太遠,那麼 SJF演算法的執行效能就會不如預期。

▍優先權

優先權 (priority) 的原理是依照事先決定的優先權定義 (例如期限、所需的記憶體大

小、甚至是執行者的部門或權限高低等 ),計算出每個行程的優先順序,然後依照

優先順序給予 CPU使用權。

▍循環分配 (RR)

循環分配 (RR,round robin) 的原理是專為分時系統所設計,作業系統事先定義一

個固定的時間配額,並將 CPU時間劃分成一個個時間配額,再對每個行程輪流分

配一個時間配額,如果不夠讓行程執行完畢,下一次就再分配一個時間配額給它,

而行程在時間配額用完後,就立刻交出 CPU的使用權,讓下一個行程使用,重複

這個過程直到行程結束為止。

圖 6.27 最短的工作先做 (SJF) 範例

Page 36: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

最新計算機概論

作 業 系 統06

6-36

※6-9磁碟管理

作業系統在處理接踵而來的行程時,往往也要應付源源不絕的磁碟存取工作,而且

正因為磁碟的存取速度相對較慢,所以這些工作就更容易堆積如山,此時,作業系

統需要一套磁碟排程演算法 (disk scheduling),來決定磁碟存取工作的處理順序。

磁碟排程演算法的考量重點在於如何縮短搜尋時間,而且移動磁碟的存取臂是一種

機械動作,所以演算法的目標是讓存取臂的移動距離和動作愈少愈好,以下就為您

介紹幾種常見的磁碟排程演算法。

▍先來先做 (FCFS)

先來先做 (FCFS,first-come first-served) 的原理是依照工作抵達的先後順序來處

理,無論讀寫頭的位置在哪。為了方便說明,我們將磁軌編號限制在 0 ~ 99,假

設目前欲處理之工作的磁軌編號為 50、85、27、66、9、68、32、42 (依照先後順

序 ),而讀寫頭的起始位置是在磁軌編號 25處。FCFS演算法會依照先後順序一個

個處理,故讀寫頭會先從目前的 25移到 50,接著移到 85,然後又回到 27,這樣

一直下去,如圖 6.28。

圖 6.28 先來先做 (FCFS) 範例

Page 37: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

6-37

從圖 6.28可以看出,讀寫頭一直在大幅度的來回移動,距離都很長,像它在處理

完磁軌位置 85後,又回到 27,如果能夠一開始就從 25移到 27去處理,豈不快多

了?而這正是下一個 SSTF演算法的概念。

▍搜尋時間最短的先做 (SSTF)

搜尋時間最短的先做 (SSTF,shortest seek time first) 的原理是選擇距離目前讀寫頭

位置最近的工作先處理。假設沿用前面的例子,由於一開始離讀寫頭位置 (25) 最

近的是 27,故先處理 27,接著離 27最近的是 32,故下一個處理 32,繼續是 42、

50、66、68、85,最後是 9,如圖 6.29。

雖然 SSTF演算法並不保證是最佳的,但比起 FCFS演算法卻改進許多,從圖 6.29

可以看出,讀寫頭只有最後一次的移動距離比較長,其餘的都不遠,所以總移動距

離應該會比 FCFS演算法短。

不過,SSTF演算法有個問題,就是萬一新進來的工作皆離讀寫頭位置比較近,那

麼它就會一直處理新工作,導致某個離讀寫頭位置比較遠的舊工作輪不到,就像在

前面的例子中,萬一在處理完 85後,又一直進來比 9離 85更近的工作,那麼 9就

會被擱置,產生了不公平的飢餓 (starvation) 現象。

圖 6.29 搜尋時間最短的先做 (SSTF) 範例

Page 38: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

最新計算機概論

作 業 系 統06

6-38

▍掃描法 (SCAN)

掃描法 (SCAN) 的原理和電梯類似,讀寫頭會以磁碟的一端做為起點,往另一端移

動,在移動的途中一路處理,直到抵達另一端,再反方向移動回來。

假設沿用前面的例子,但在開始之前,SCAN演算法必須先決定讀寫頭要往哪個方

向移動,比方說是往磁軌編號較小的方向移動,於是從讀寫頭起始位置 25開始往

0的方向移動,故先處理 9,接著一直移動到 0,再回頭往編號較大的方向移動,

故會處理 27,再來是 32、42、50、66、68,最後是 85,然後繼續往這個方向移

動,直到抵達終點 99再回頭,如圖 6.30。

圖 6.30 掃描法 (SCAN) 範例

SCAN演算法不會產生飢餓現象,如果新進來的工作是在讀寫頭附近,而且是在前

進方向上,那麼很快就會被處理,比方說,假設在處理完 85後,馬上來了新工作

90,那麼 90立刻會被處理;反之,如果新進來的工作是在讀寫頭附近,但卻是在

前進方向的相反路線上,例如 80,那麼就必須等回頭了。

Page 39: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

6-39

▍循環掃描法 (C-SCAN)

循環掃描法 (Circular SCAN) 是從 SCAN演算法變化而來,以長期來說,持續出現

的工作所存取的磁軌位置對於整個磁碟是均勻分布的,那麼依照常理判斷,當讀寫

頭抵達一端再回頭時,接下來的工作落在同一端的機率應該比較低,而落在另一端

的機率應該比較高,所以 C-SCAN演算法是把 SCAN演算法修改成在讀寫頭抵達

另一端時,不要反方向慢慢回頭,而是直接移回起點,以同方向往另一端處理。

銜接前面的例子,假設讀寫頭從 0一路處理到 85,然後抵達終點 99,依照機率來

說,由於剛才讀寫頭都在處理編號較大的這邊,接下來出現編號小的機率應該比較

大,所以 C-SCAN演算法會直接把讀寫頭從 99移回 0,然後從 0出發,就可以馬

上處理編號小的工作。

假設沿用前面的例子,但改成讀寫頭一開始是往磁軌編號較大的方向走,所以是從

25開始往 27,再來是 32、42、50、66、68,最後是 85,並繼續往這個方向移動,

直到抵達終點 99;接著,回頭到 0,同樣往編號大的方向移動,很快就可以處理到

9這件工作,否則若此時進來了編號為 73、59、38等比 9大的新工作,SCAN演

算法會一直等到 73、59、38等新工作都處理完了,才會輪到 9這件工作,這樣並

不公平,如圖 6.31。

圖 6.31 循環掃描法 (C-SCAN) 範例

Page 40: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

最新計算機概論

作 業 系 統06

6-40

▍觀察法 (LOOK) 與循環觀察法 (C-LOOK)

前述的 SCAN和 C-SCAN演算法都是從磁碟的一端移動到另一端,即使兩端的邊

緣附近沒有什麼工作也一樣,而觀察法 (LOOK) 與循環觀察法 (C-LOOK) 則是分別

從 SCAN和 C-SCAN演算法變化而來,主要的改變在於讓讀寫頭只要移動到目前

工作編號最大和最小的位置即可,不必移動到磁碟的起點和終點,如此會更有效

率。之所以叫做「LOOK」,就是因為讀寫頭在處理完目前的工作後,必須要「觀

察一下」目前在等待中的工作,再決定讀寫頭是不是要繼續往目前的方向移動。

以前面的圖 6.31為例,讀寫頭在走到 85就會回頭,不會繼續走到終點 99,而且它

回頭是到 9,而不是起點 0,如圖 6.32。

圖 6.32 循環觀察法 (C-LOOK) 範例

Page 41: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

本章回顧

� 電腦軟體可以分成系統軟體與應用軟體兩種類型,前者是負責支援電腦運作的程

式,而後者是針對某特定事務或工作所撰寫的程式,目的是協助使用者解決問題。

� 作業系統 (OS) 是介於電腦硬體與應用軟體之間的程式,主要的功能有分配系統資

源、提供執行應用軟體的環境、提供使用者介面。

� 批次系統 (batch system) 的原理是把相同或類似的工作集中在一起,然後交給電腦分

批執行,再將輸出結果送回給所屬的使用者。

� 多元程式處理 (multiprogramming) 可以同時服務多位使用者或多個程式。

� 分時處理 (time-sharing) 是一種特殊形式的多元程式處理,主要應用於「互動式

系統」。

� 多處理器系統 (multiprocessor system) 是擁有多個 CPU的系統,這些 CPU之間會緊

密溝通,並共用匯流排、時脈、週邊裝置或甚至記憶體。

� 叢集式系統 (clustered system) 是由兩個或更多個別的系統集合而成,這些電腦會分

享儲存裝置並經由區域網路連接在一起。

� 在分散式系統 (distributed system) 中,同一個工作可以拆成幾個部份,然後透過快速

的網路連結指派給多部電腦分別執行。

� 即時系統 (real time system) 能夠隨時對輸入訊號做出立刻的回應。

� 手持式系統 (handheld system) 泛指應用於 PDA、智慧型手機的作業系統。

� 嵌入式系統 (embedded system) 沒有或只有少許介面,功能有限且原始,傾向於監督

並控制硬體裝置等特殊用途。

� 記憶體管理機制包括單一程式處理、分割法、分頁法、分段法、虛擬記憶體、需求

分頁法、需求分段法等。※

� CPU排程演算法的目的是找出下一個可以取得 CPU使用權的行程,常見的有先來先

做 (FCFS)、最短的工作先做 (SJF)、優先權、循環分配 (RR) 等。※

� 磁碟排程演算法的目的是決定磁碟工作的處理順序,常見的有先來先做 (FCFS)、

搜尋時間最短的先做 (SSTF)、掃描法 (SCAN)、循環掃描法 (C-SCAN)、觀察法

(LOOK)、循環觀察法 (C-LOOK) 等。※

Page 42: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

一、選擇題

( ) 1. 下列何者不是作業系統的功能?

A. 顯示執行結果 B. 提供執行應用軟體的環境

C. 分配系統資源 D. 提供使用者介面

( ) 2. 下列何者不是個人電腦的作業系統?

A. Windows 7 B. Linux

C. Mac OS D. Solaris

( ) 3. 下列何者採用命令列使用者介面?

A. Mac OS B. Palm OS

C. Linux D. MS-DOS

( ) 4. 下列敘述何者錯誤?

A. 即時系統通常應用於非常重視回應時間的系統

B. 單工系統一次只能服務一位使用者

C. 多處理器系統能夠增加電腦的工作量及可靠度

D. 分散式系統的 CPU排程演算法比其它作業系統簡單

( ) 5. 下列敘述何者正確?

A. 手持式系統在設計上必須考慮到有效管理記憶體

B. 手持式系統並不需要加入無線通訊的技術

C. 分時系統是透過網路連結多部電腦來執行工作

D. 嵌入式系統的功能通常很複雜

( ) 6. 下列何者不是行程的狀態之一?※

A. 建立 B. 就緒

C. 結束 D. 擱置

( ) 7. 下列何種機制會把要執行的程式劃分為大小不相等的區塊?※

A. 需求分頁法 B. 動態分割法

C. 固定分割法 D. 需求分段法

學 習 評 量

Page 43: 06 最新計算機概論 - epaper.gotop.com.twepaper.gotop.com.tw/pdf/AEB002131.pdf · 最新計算機概論 06 作 業 系 統 6-2 6-1 電腦軟體的類型 電腦軟體 (software)

( ) 8. 下列何種狀態的行程,下一步可能會進入就緒、等待中或結束狀態?※

A. 擱置 B. 建立 C. 執行中 D. 等待中

( ) 9. 下列哪種技術會把部份程式放在磁碟,並在需要執行時載入記憶體?※

A. 插斷 B. 記憶體配置

C. 虛擬記憶體 D. 記憶體轉換

( ) 10. 下列哪種技術在同一時間內只能有一個程式載入記憶體執行?※

A. 分頁法 B. 單一程式處理 C. 虛擬記憶體 D. 分段法

二、簡答題

1. 簡單說明何謂作業系統並舉出三個實例。

2. 簡單說明開機程式是如何載入記憶體?

3. 簡單說明作業系統有哪三種功能?

4. 簡單說明使用者介面分為哪兩種並各舉出一個實例。

5. 簡單說明何謂多元程式處理 (multiprogramming)?

6. 簡單說明何謂多處理器系統 (multiprocessor system)?

7. 簡單說明何謂分散式系統 (distributed system)?

8. 簡單說明何謂手持式系統 (handheld system)?

9. 已知目前在就緒狀態下的有五個行程,其抵達順序為 P1、P2、P3、P4、P5,所

需的執行時間為 60、30、90、75、40,請回答下列問題:※

(1) 假設採用 FCFS演算法,試畫出這五個行程執行時的甘特圖。

(2) 假設採用 SJF演算法,試畫出這五個行程執行時的甘特圖。

10. 已知磁軌編號為 0 ~ 99,目前欲處理之工作為 35、7、17、61、65、28、75 (依

照先後順序 ),且讀寫頭的起始位置為 45,請回答下列問題:※

(1)假設採用 FCFS演算法,這些工作的處理順序為何?

(2)假設採用 SSTF演算法,這些工作的處理順序為何?

(3)假設採用 SCAN演算法,這些工作的處理順序為何? (讀取頭會先往編號較

大的那端移動 )