You are on page 1of 5

作業系統導論

考試日期:4 月 20 日
考試時間:19:00
考試方式:簡答與申論

考試重點:
(1)第一章從 p.3~P20

使用者 使用者 使用者 使用者


1 1 1 R

編譯程式  組譯程式  本文編輯程式    資料庫系統
系統及應用程式

作業系統

電腦硬體

(2)小考的圖(圖 3.20 除外)


(3)圖 1.8 雙模式,要看中斷

執行使用者行程
執行使用者行程 由系統呼叫返回 使用者模式
呼叫系統呼叫
( 模式位元
=1)
插斷
返回
核心 模式位元=0
模式位元= 1

核心模式
執行系統呼叫 ( 模式位元
=0)

(4)P.6 開機及中斷與雙模式
當電腦開機或重新開始,它需要一個最初的程式來執行。這個最初的程式要很簡單。
基本上,靴帶式程式儲存在電腦硬體中的唯讀記憶體或電子式可消除程式化唯讀記憶體。它
會啟始系統的所有現象,從 CPU 的暫存器,到裝置控制器,到記憶體的內容。靴帶式程式必
須知道如何載入作業系統和使作業系統開始執行。為了完成此目的,靴帶式程式必須找到作
業系統的核心,並且載入記憶體。然後作業系統就開始執行第一個行程,並等待某些事件發
生。
發生一個事件時,通常是由硬體或軟體產生中斷來通知。硬體可以在任何間藉由送給 CPU 一
個信號觸發中斷。軟體可以藉由執行一項特殊的系統呼叫觸發中斷。
(5)p.43 系統呼叫(看課本例子及圖 2.1)
系統呼叫提供一個由作業系統服務的介面。現在有一個簡單的程式由一個檔案中讀出資料並
拷貝至另一個檔案中。程式需要這兩個檔案的名稱:輸入檔案和輸出檔案。一旦有兩個檔案的
名稱,程式必須開啟輸入檔案並且產生輸出檔案。每項作業也可能會有錯誤的情況產生。當成
是要開啟輸入檔案的時候,可能會發現沒有那一個檔案的名稱,或是該檔案禁止存取。在此
情況下,程式就應該在控制台上印出一段訊息,然後不正常地終止。如果輸入檔案存在,那
我們必須產生一個新的輸出檔案。我們可能會發現早已經有一個相同名稱的輸出檔案在那裡,
這種情況可能會使得該程式中止執行或是刪除原有的檔案而產生一個新檔案。另一種選擇,
在交談式系統中,要求使用者來決定是否要取代原檔案還是要中止該程式。現在兩個檔案都
準備好了,我們就進入輸入檔案並且寫至輸出檔案的迴路中。每次讀和寫都必須傳回狀態消
息以便注意各種可能的錯誤狀況。在輸入部分,程式可能會發現已經到檔案的結尾,或是在
讀取的時候,有硬體錯誤出現。再寫入的作業上也可能遭遇許多錯誤狀況,這完全要是其輸
出裝置而定(沒有硬碟空間,列表紙張用完了)最後,當整個檔案都拷貝完成之後,程式要
將兩個檔案關閉送一些消息到控制台上,並且以正常方式終止該程式。
(6)p.54 設計
設計一個作業系統的第一個問題是定義系統目標及規格。在最高的層次之中,系統設計很明
顯的受到硬體的選擇與系統類型,成批作業、分時作業、單一使用者、多重使用者、分散式作業
即時或一般目的的影響。需求可以分為兩個基本類:使用者目的與系統目的。使用者想要系統
中具有某些明顯的性質。系統必須便於利用、容易學習、容易使用、可靠、安全及快速。系統應該
很容易設計、製作與維護;它應該具有彈性、可靠的、沒有錯誤及有效率。總而言之,要定義一
個作業系統的需求,並沒有一定的標準可循。軟體工程就是這些原則的理論基礎。
(7)p.62 虛擬機器
虛擬機器的觀念是將單一電腦硬體想像成幾個不同的執行環境,因此產生了每一個獨立執行
環境在私人電腦執行的幻覺
(8)行程的觀念
(9)p.81 圖 3.2
結束
進入  中斷      離開

就緒 執行

排班程式分派

I/O或事件完 I/O或等待事
成 件
等待

(10)p.82 圖 3.4 作說明


(11)p.85 圖 3.6
C
就續佇列 P
U
I/ I/O 佇列 I/O 要求
O
時段終止

子行程產生 產生一個子行程

等待中斷
中斷發生
(12)p.86 圖 3.7 中程排班
部分已執行置換出來的行程

CP
就續佇列 U

I/
O I/O 等待佇列

短程排班程式一般最小每 100 毫秒執行一次


長程排班程式執行數卻少很多,長程排班程式控制著多元程式規劃的程度
(13)圖 3.8 不考,但須知道意思
(14)p.94 圖 3.12
◎通信模式;(a)訊息傳遞;(b)共用記憶體
訊息傳遞:以系統呼叫製作並因此需要更多浪費時間任務的核心插入時。
共用記憶體:需要系統呼叫在建立共用記憶體區域,建立共用所有存取當作常式記憶體處理,
沒有需要核心處理。故共用記憶體比訊息傳遞快。

行程 A M

行程 B M

核心 M

行程 A

共用
行程 B

核心

(a) (b)

通信模式;(a)訊息傳遞;(b)共用記憶體
(15)p.95 生產者與消費者
生產者行程產生資訊,消費者行程消耗掉這些資訊。譬如:一個編譯程式可以產生組合語言
碼,則組譯器用掉這些組合語言碼。生產者-消費者使用共用記憶體問題的一個解決方法,
允許生產者和消費者行程能同時執行,我們必須有一個包含數個欄位的緩衝區,這個緩衝區
可以讓生產者填滿資料,然後讓消費者取光。緩衝有兩種類型。無限緩衝區對於緩衝區的大小
沒有限制。消費者可能必須等待新的欄位,但是生產者卻可以不斷地產生新的欄位。有限緩衝
區假設緩衝區的大小固定。在這種情況下,如果緩衝區空了,消費者必須等待;如果緩衝區
滿了,生產者必須等待。
(16)p.96 訊息傳遞作說明
訊息傳遞提供了允許行程相互溝通和彼此同步而不需要共享相同的位置空間。訊息傳遞設施
提供至少兩種操作:send(訊息)和 receive(訊息),它們間必須存在一個通訊鏈
Send ( )/ receive ( ) 操作的方法 :直接或間接聯繫、同步或非同步的聯繫、自動或
外在緩衝作用。
◎命名:要互相聯繫的行程必須有一套方法讓彼此的名稱互知,它們可以使用直接聯繫或是
間接聯繫。
(17)p.106 socket 作說明(需說明定義)
插座:定義成通信的終端,一組行程使用一對插座(雙方各一個)在網路上通信。一個插座是由
一個 IP 位址和一個埠號碼所組成。通常插座使用了客戶端伺服器的架構。伺服器藉由傾
聽某一特定埠來等待進入的客戶要求。一旦要求被接受之後,伺服器就接受從客戶端插
座的連接來完成連接。當一個客戶端的行程啟動一項連結要求時,它會被主電腦設定一
個埠。這個埠是一個大於 1024 的任意數字。
主機 X
(146.86.5.20)

插座 網頁伺服器
(146.86.5.20: (161.25.19.8)
1625)
插座
(161.25.19.
8:80)

(18)多執行緒模式及其好處? P.125
使用者執行緒的支援是在核心之上,而且在沒有核心支援下管理,因此核心執行緒直接由作
業系統支援和管理。
多對一模式:對應許多個使用者層次的執行緒到一個核心執行緒。
一對一模式:對應每一個使用者執行緒到一個核心執行緒。
多對多模式:對應許多使用者執行緒到較少或相等數目的核心執行緒。
多執行緒的好處可以分成四個主要的類別:
(1)應答:將交談式的應用程式多執行緒化,可以在一個程式某一部分被暫停,或程式在執行
    操作時,仍然繼續執行。
(2)資源分享:執行緒間將共用他們所屬行程的記憶體和資源。
(3)經濟:對於行程產生所配置的記憶體和資源消耗很大。反之,因為執行緒共用它們所屬行
    程的資源,所以執行緒的產生和內容交換就比較經濟。
(4)使用多處理器架構:在多處理器的架構下,多執行緒的利益可以大幅提升,因為每一執行
          緒可以並行地在不同的處理器上執行。
(19)什麼是 RPCs,作說明。P.109
RPC 被設計成一種使用在以網路連接之系統間的程序呼叫方法。它通常被建立在一個系統的
上層。因為我們所處理的是各個行程在個別系統上執行的環境,我們必須使用一個以訊息為
基礎的通信技巧以提供遠程服務。RPC 通信所交換的訊息有良好的結構,因此不再只是封包
形式的資料。這些訊息被送往一個 RPC 守護程式,訊息中包含被執行函數的識別符號,和傳
遞給該函數的參數。然後,這個函數會根據要求被執行,而任何輸出會以另一個獨立訊息送
出給要求者。
(20)RPCs 與 RMI 的差異(可參考 p.112)
RMI 與 RPCs 之間有兩項基本差別。首先,RPCs 只支援程序式的程式撰寫,因此只有遠程程
序或函數可以呼叫。RMI 是物件為基礎:它支援呼叫遠程物件的方法。第二,在 RPC 裡傳給呼
叫遠程程序的參數是一般的資料結構;在 RMI 裡,可以傳遞物件作為參數給遠程的物件 。
RMI 藉由允許 Java 程序呼叫遠程物件的方法,它可以讓使用者發出跨越網路的 Java 應用程
式。

You might also like