第 0 章 作業系統導論

74
1 第 0 第 第第第第第第 第第第第第第第第 第第第第 第第第第第 第第 第第 第第第第 第第 第第 / 第第第第第第 第第第第第第

description

第 0 章 作業系統導論. 內容 : 作業系統簡介 行程管理 處理機排班 記憶體管理 虛擬記憶體管理 輸入 / 輸出裝置管理 檔案系統管理. 0-1 作業系統簡介. 內容 何謂作業系統 電腦系統的架構 作業系統的功能 作業系統的種類. 第 0-1 章 作業系統簡介. 作業系統簡介 (1). 0-1-1 何謂作業系統 ? 使用者與電腦硬體間的溝通橋樑,提供使用者ㄧ個執行及操作程式的環境,讓使用者能夠很方便且迅速的操作電腦 主機與作業系統 MS-DOS 作業系統 單一使用者 / 單一工作 的工作平台 Windows 作業系統 - PowerPoint PPT Presentation

Transcript of 第 0 章 作業系統導論

Page 1: 第  0  章 作業系統導論

1

第 0 章 作業系統導論

內容:

作業系統簡介

行程管理

處理機排班

記憶體管理

虛擬記憶體管理

輸入 / 輸出裝置管理

檔案系統管理

Page 2: 第  0  章 作業系統導論

2

0-1 作業系統簡介

內容何謂作業系統電腦系統的架構作業系統的功能作業系統的種類

第 0-1 章 作業系統簡介

Page 3: 第  0  章 作業系統導論

3

作業系統簡介 (1)

0-1-1 何謂作業系統 ?使用者與電腦硬體間的溝通橋樑,提供使用者ㄧ個執行及操作程式的環境,讓使用者能夠很方便且迅速的操作電腦

主機與作業系統MS-DOS 作業系統

• 單一使用者 / 單一工作 的工作平台Windows 作業系統

• Win 95.98.Me 是單一使用者 / 多工作 的平台• Win NT 開始 是多使用者 / 多工作 的平台

Linux 作業系統• 完全免費且於網路上公開原始碼的作業系統• Fedora

Page 4: 第  0  章 作業系統導論

4

主機與作業系統

Page 5: 第  0  章 作業系統導論

5

電腦系統的架構

硬體(含韌體)硬體為電腦的實體裝置,包含記憶體、磁碟機、磁帶機、螢幕、鍵盤、滑鼠等設備;這些設備都需透過適當的驅動程式來操作ㄧ般電腦都將管理程式燒錄在主機板上的 EPROM ,並保持隨時可以啟動,稱之為【韌體】 (Firmware)

核心依照韌體提供的功能,編寫一些較容易連結的函數,以供其他程式連結並透過它來存取周邊設備,這些函數的整合體稱為【核心】 (Kernel)

外殼編寫可以存取核心的程式,好讓ㄧ般使用者操作,這就是【外殼】 (Shell)

應用程式使用者利用核心與外殼的標準介面程式來編寫應用軟體 (Application Program) ,大部分情況與硬體無關,程式設計師可以完全不用理會周邊硬體

Page 6: 第  0  章 作業系統導論

6

電腦系統架構

Page 7: 第  0  章 作業系統導論

7

系統程式與系統呼叫

我們會將硬體控制程式與最基本的電腦運作程序整合成一個稱之為【系統程式】 (System Program) ,該程式提供電腦最根本的運作平台,再由此平台擴充功能,整合ㄧ個強大的【作業系統】系統程式提供許多關於週邊設備的函數,一般稱為【系統呼叫】 (System

call) ,藉由這些函數的呼叫,使用者就可以輕易存取周邊設備我們習慣將常駐於記憶體的庫存函數稱為『核心』,因為這些函數隨時會被呼叫

通常 Unix/Linux 的核心可讓使用者選擇所欲載入的函數,這是 Unix/Linux 系統最引以為傲的地方,而 widows 就望塵莫及

Page 8: 第  0  章 作業系統導論

8

作業系統的功能

控制程式( Control program )OS 提供控制所有周邊設備的功能

人機介面( User-machine interface )使用者透過 OS 所提供的人機介面工具方便的操作電腦此類型工具大多稱之為【命令】 (command)

延伸機器( Extended machine )使用者不需利用 0/1 操作電腦,只要使用接近人類的語言就可以控制電腦,進一步讓電腦更接近人類的邏輯思維來處理事務

資源管理者( Resource manager )負責將 CPU 、記憶體空間、磁碟空間、印表機與資料等資源分配給使用者程式,為了避免衝突發生, OS必須快速且合適地分配資源

Page 9: 第  0  章 作業系統導論

9

作業系統的種類

批次處理系統( Batch processing system )早期電腦資源昂貴,多利用整批方式輸入給系統一起處理

多元處理系統( Multi-programming system )多個程式同時存在記憶體中, CPU 以某選定策略輪流執行這些程式使用者會感覺好像多個程式同時被執行 ( 實際某時刻只有ㄧ個程式執行 )

分時處理系統( Time-sharing system )將 CPU 執行時間平均分配給每一個使用者,讓多個程式可以共享 CPU

所以無論程式大小,只要ㄧ小段的時間用完,而不論工作是否執行完畢,都必須要換下一個程式使用

Page 10: 第  0  章 作業系統導論

10

作業系統的種類

多工處理系統( Multi-task system )多處理機系統( Multi-processor system )

ㄧ部電腦中有多個 CPU同時處理• 提供快速運算環境

即時系統( Real-time system )每ㄧ個程式都有其優先權 (優先順序 ) ,優先權高的工作有優先處理的特權必須在限定的時間內完成,否則逾時可能不具任何實質意義

Page 11: 第  0  章 作業系統導論

11

行程管理 (1)

內容何謂行程 ?行程的生命週期行程的同步行程的死結行程的通訊

Page 12: 第  0  章 作業系統導論

12

行程管理 (2)

何謂行程 (Process) ?行程 -- 執行中的程式,屬於主動元件

• 程式 –屬於被動元件行程在執行當中,會根據需要產生其他子行程 (Child Process) ,交付給子行程所要執行的工作行程又可分為【作業系統行程】與【使用者行程】

• 作業系統行程執行『系統程式碼』• 使用者行程執行『使用者程式碼』

Page 13: 第  0  章 作業系統導論

13

行程的特性與現象

行程的特性行程式一個動態的概念行程是程式與資料的結合體行程可並行處理

• CPU 速度夠快,可視為所有行程都正在執行中

行程的現象以象棋為範例行程間會互相競爭

• 因為 CPU ㄧ次僅能執行一個行程,所以系統中的行程可能需要經過競爭,才能得到 CPU資源,所以會涉及行程的排班問題

Page 14: 第  0  章 作業系統導論

14

行程生命週期

因為同ㄧ時間僅有一個行程被選入執行,所以一個行程從產生到執行完畢通常需要幾回合的執行周期才可以完成。

執行狀態 (Running state)

• 行程執行中預備狀態( Ready state )

• 行程已經取得所需的資源,正準備進入 CPU 執行等待狀態( Wait state )

• 在執行當中可能因為無法獲得某些資源或者逾時退出執行,就會進入等待停止狀態( Stop state )

• 行程執行完畢,等待被註銷死結狀態( Deadlock state )

• 行程可能在等待一個永遠無法獲得的資源,並繼續無止境等待

Page 15: 第  0  章 作業系統導論

15

行程生命週期

Page 16: 第  0  章 作業系統導論

16

行程生命週期掛起等待狀態( Suspend waited state )

• 當 CPU 工作負荷過重且難以承受時,會選擇某些行程將其掛起,並進入掛起等待狀態。甚至行程的程式與資料可能會被置換出去到外部輔助記憶體 (Swap out)

掛起預備狀態( Suspend ready state )• 被掛起的行程欲再次進入執行階段,須先到掛起預備狀態,然後等待進入預備狀態。

Page 17: 第  0  章 作業系統導論

17

行程的命令建立( fork )

Fork 系統呼叫會產生一個子行程 (Child Process) ,產生行程者稱為父行程

停止( stop )撤銷( destroy )

無論行程是正常停止或非正常停止,都需藉由撤銷命令釋回行程所佔用的記憶體空間與相關資源

阻斷( block )行程從執行狀態 等待狀態

喚醒( wakeup )行程從等待狀態預備狀態

掛起( suspend )激活( activate )

藉由激活讓系統重新配置記憶體空間以執行該行程

Page 18: 第  0  章 作業系統導論

18

行程生命週期

Page 19: 第  0  章 作業系統導論

19

臨界區間 (Critical Section)

臨界區間就是指『共享區域』

• 以交通系統為例,臨界區間就是交叉入口• 以程式而言,臨界區間就是整體變數 (Global Variable)

– Ex.SUM 變數ㄧ次只能允許ㄧ個行程執行,否則會有競爭條件 (Race Condit

ion) 出現

測試與設定( Test-And-Set, TAS )• K=flag;

• If (flag == 0)

• flag = 1; //flag = 表示該資源已經被取用

Page 20: 第  0  章 作業系統導論

20

行程同步

號誌與 P/V 操作 (Semaphore) – 多重資源S :可使用資源數量P(S) :取得共享資源

• if S >0 then

• S = S-1

• else

• Waiting …..

V(S) :釋放共享資源• S = S +1

• wakeup process

Page 21: 第  0  章 作業系統導論

21

行程的死結預防

互斥( mutual exclusion )除非資源取之不盡用之不竭,否則不可能達到資源互斥的需求

佔用與等候( hold and wait )行程佔用一個資源,而另ㄧ個行程在等待被佔用的資源有可能發生【饑餓現象】

不可搶先( no pre-emption )循環式等候( circular wait )

ㄧ個行程等ㄧ個行程

Page 22: 第  0  章 作業系統導論

22

行程的通訊

阻斷傳送( Blocking Send )傳送端一直等到接收端接收訊息為止

無阻斷傳送 ( Nonblocking send )傳送端送出訊息,無須等待接收端接收,馬上可以重新操作

阻斷接收( Blocking Receive )接收端一直等到有訊息出現

無阻斷接收( nonblocking Receive )接收端收到訊息或指示無有效資料

• Send (A, message)

• Receive (B, message)

Page 23: 第  0  章 作業系統導論

23

訊息緩衝通訊

訊息緩衝通訊分時系統的任一時間只有一個行程會被啟動,欲達到兩個行程直接通訊是不可能的。可以將傳送行程欲傳送給接收行程的訊息直接投入信箱內,接收行程再由信箱讀取信息,所謂『信箱』就是主記憶體的某ㄧ區塊空間,又稱為【訊息緩衝器】

• Send (A, message)

• Receive (A, message)

Page 24: 第  0  章 作業系統導論

24

管道通訊

管道通訊 (Pipe)

主要缺點是容量有所限制,針對大量傳輸往往會發生緩衝器空間不足的問題。原則上共享檔案只允許相互通訊的兩行程使用,並不分享給其他行程

Page 25: 第  0  章 作業系統導論

25

0-3 處理機排班 (1)

內容何謂處理機排班?先到先服務排班最短工作優先排班最高等級優先排班循環點名排班多層次佇列排班多層次反饋佇列排班

Page 26: 第  0  章 作業系統導論

26

處理機排班

何謂處理機排班一部主機系統可以有很多個行程同時處於執行狀態,但是 CPU 在任一時間內僅能處理一個行程,所以 CPU 如何由多個行程中選擇一個行程執行排班的重要因素

• CPU 使用率 (Utilization)

– CPU 的等待是資源浪費,所以使用率越高越好

• 輸出量 (Throughput)

• 回覆時間 (Turnaround time)

– 行程工作進入電腦系統到執行完畢離開電腦這一段時間稱之

• 等候時間 (Waiting time)

– ㄧ般行程備 CPU 執行的時間不會太長,大部分都是花在排班等候 CP

U

Page 27: 第  0  章 作業系統導論

27

處理機排班

先到先服務排班 (First Come First Served, FCFS)

最基本也是最簡單的排班方法系統只要挪出一個佇列器 (Queue) ,將所有進入等待執行的行程依序排列,先進入者排在前面,後到者排在後面萬一所選擇的行程執行時間很長,或者甚至發生『死結』現象,將可能導致整個系統停頓

Page 28: 第  0  章 作業系統導論

28

處理機排班

最短工作優先排班 (Shortest Job First, SJF)

在目前所產生的行程當中,選擇最短執行時間的行程優先處理所以必須有預估每一行程所需執行時間的能力,一但行程產生後,就會依照所預估執行時間的長短插入行程佇列器中適當位置等待執行

• 缺點• 預估行程的執行時間並不容易• 針對較長時間的行程可能需耗費更多的等待時間,甚至永遠無法執

行到,而產生『飢餓現象』

Page 29: 第  0  章 作業系統導論

29

處理機排班

最高等級優先排班 (Highest Priority First, HPF)

依照優先權等級由高而低逐一執行當行程不斷產生的同時,一些較低優先權的行程,可能會不斷受到排擠,造成需要更長的等待時間,甚至在某些情況可能永遠執行不到,這就是飢餓現象。

Page 30: 第  0  章 作業系統導論

30

處理機排班 (6)

循環點名排班 (Round-Robin Timesharing, RRT)

無論 FCFS 、 SJF 、 HPF 都是完成一個行程之後,才選擇下一個行程來執行,所以若是某一行程佔用時間過久或者執行當中發生死結現象,將會導致系統效率低落每一個行程只會執行一小段時間,時間一到,系統會停止行程繼續執行且儲存該行程的所有狀態,然後由 Queue 選擇一個行程執行,以此類推,直到所有行程執行完畢為止

• 分割時間片段夠小,所有行程就會有並行的感覺,但先決條件是CPU 速度要夠快,否則太短的時間片段會造成耗費在行程前置作業時間比例太大導致效能嚴重低落

Page 31: 第  0  章 作業系統導論

31

處理機排班

多層次佇列排班 (Multi-Level Queue, MLQ)

依照優先等級分成幾個不同型態每一個佇列器內的行程具有相同等級的優先權系統依照其優先權高低逐一執行

• 可想而知很容易造成肌餓現象

Page 32: 第  0  章 作業系統導論

32

處理機排班

多層次反饋佇列排班 (Multi-Level Feedback Queue, MLFQ)

基於前者會產生飢餓現象,所以加上會自動提升優先等級的功能• 低優先權的會隨時間慢慢提升等級,所以最後一定會被執行到

Page 33: 第  0  章 作業系統導論

33

處理器排班範例

分別就先到先服務、最短工作優先排班、循環點名排班 ( 時間量 =1) 、優先權排班算出回覆時間算出等候時間

Page 34: 第  0  章 作業系統導論

34

回覆時間

等候時間

Page 35: 第  0  章 作業系統導論

35

0-4 記憶體管理 (1)

內容記憶體種類基本概念記憶體分配分區管理分頁管理分段管理段頁式管理

Page 36: 第  0  章 作業系統導論

36

記憶體種類

主記憶體主機板上的半導體記憶體 (SRAM 、 DRAM 、 ROM)

CPU 可以直接存取記憶體上的程式或資料

外部記憶體大多指外接的磁碟、光碟、磁帶等輔助記憶體,通常存放 CPU暫不執行的程式或資料CPU 無法直接執行外部記憶體所存取的程式一般而言當記憶體不足儲存所有行程時,會將一些暫不執行的程式儲存於外部記憶體,當需要使用時,再由外部記憶體移入主記憶體讓 C

PU 執行

Page 37: 第  0  章 作業系統導論

37

0-4 記憶體管理 (3)

0-4-2 基本概念主要工作

• 邏輯位址空間 , 而不受實際空間限制• 多個行程同時駐留於主記憶體內,提升系統效能考慮四個問題

• 主記憶體分配• 位址映射

– 由邏輯位址對應至實體位址的方法• 主記憶體保護

– 分為系統程式與應用程式兩種位址空間,前者以儲存作業系統的核心程式或常駐系統呼叫為主,不允許使用者直接呼叫存取

• 虛擬記憶體– 將外部輔助記憶體納入與主記憶體共同使用,讓使用者感覺主記憶體位址空間猶如邏輯位址空間一般

Page 38: 第  0  章 作業系統導論

38

記憶體分配

分配策略最先適合 (First Fit, FF)

• 選擇第一個滿足請求容量的空閒區最佳適合 (Best Fit, BF)

• 找出能滿足請求容量的最小空閒區最壞適合 (Worst Fit, WF)

• 從所有空閒區找出能滿足請求的最大空閒區

Page 39: 第  0  章 作業系統導論

39

0-4 記憶體管理 (5)

0-4-3 記憶體分配 (2)

位址映射與保護

Page 40: 第  0  章 作業系統導論

40

0-4 記憶體管理 (6)

0-4-3 記憶體分配 (3)

覆蓋

Page 41: 第  0  章 作業系統導論

41

0-4 記憶體管理 (7)

0-4-3 記憶體分配 (4)

置換 – 主記憶體與外部輔助記憶體間交換程式或資料• 置換出 (Swap out) – 程式由主記憶體移至輔助記憶體

– 行程由等待狀態進入掛起狀態時– 主記憶體空間不足時

• 置換入 (Swap in) – 程式由輔助記憶體移入主記憶體– 行程由掛起狀態進入等待狀態時– 某些程序被重新呼叫而須喚起時

Page 42: 第  0  章 作業系統導論

42

分區管理

固定分區管理 (靜態分區管理 )

運作方式是將主記憶體分割成若干個固定區塊,各個區塊可以不相等

• 容易產生內部碎片 (Internal Fragmentation)

Page 43: 第  0  章 作業系統導論

43

分區管理

可變分區管理 ( 動態分區管理 )

系統一開始不會將記憶體分割成固定區塊,而是作業欲載入時,再依照作業的大小分配一個適當的區塊供其載入,且區塊大小剛好符合作業大小

Page 44: 第  0  章 作業系統導論

44

0-4 記憶體管理 (10)

0-4-5 分頁管理 (1)

分頁管理之概念

A - 0作業 分頁 A - 1作業 分頁 A - 2作業 分頁 A - 3作業 分頁 A - 4作業 分頁

A - 0作業 分頁

B - 0作業 分頁 B - 1作業 分頁 B - 2作業 分頁 B - 3作業 分頁 B - 4作業 分頁

0 10

分頁表 主記憶體

1 2610...

2 153 164 25.... .....

.... .....

0 121 132 453 324 24

B - 0作業 分頁 12...

B - 1作業 分頁 13

A - 2作業 分頁 15...

A - 3作業 分頁 16

B - 4作業 分頁 24...

A - 4作業 分頁 25

B - 3作業 分頁 32...

B - 2作業 分頁 45...

A作業

B作業

外部記憶體 ( )硬碟

A - 1作業 分頁 26

Page 45: 第  0  章 作業系統導論

45

0-4 記憶體管理 (11)

0-4-5 分頁管理 (2)

位址映射

CPU

主記憶體

12 200

>

20

PTCR

P

d

P (12)

P (12).... ....

11 100

12 145

13 240

.... ....

PMT

145 200

d

LA

PA 145200 邏輯位址

實體位址

越界中斷

00000 ~ 20FFF程式範圍:

Page 46: 第  0  章 作業系統導論

46

0-4 記憶體管理 (12)

0-4-6 分段管理 (1)

實現原理

A - 0作業 分段 A - 1作業 分段 A - 2作業 分段

A - 3作業 分段

A - 0作業 分段

B - 0作業 分段

B - 1作業 分段

B - 2作業 分段

0 10

分段表 主記憶體

1 2610...

2 153 16

0 121 132 45

B - 0作業 分段 12...

B - 1作業 分段 13

A - 2作業 分段 15

...

A - 3作業 分段 16

... B - 2作業 分段 26

A作業

B作業

外部記憶體 ( )硬碟

分段大小不一定相等

... B - 2作業 分段 45

Page 47: 第  0  章 作業系統導論

47

0-4 記憶體管理 (13)

0-4-6 分段管理 (2)

位址映射

CPU

主記憶體

12 200

>

20

STCR

P

d

P (12) P (12)

.... ....

10 100

12 145

SMT

145 200

dLAPA 145200

邏輯位址

實體位址

越界中斷

....

100

300

>

SL bSN

b

越界中斷

d

d

Page 48: 第  0  章 作業系統導論

48

0-4 記憶體管理 (14)

0-4-7 段頁式管理位址映射

s dLA

邏輯位址

實體位址

分段表

A作業... ...

B作業

分頁表

p

... ...

... ...

... ...

... ...

... ...

... ...

... ...

... ...

... ...

... ...

... ...

... ...

... ...

... ...

... ...

... ...

... ...

... ...

dspPACPU

主記憶體

Page 49: 第  0  章 作業系統導論

49

0-5 虛擬記憶體管理 (1)

內容基本概念動態分頁管理動態分段管理

Page 50: 第  0  章 作業系統導論

50

0-5 虛擬記憶體管理 (2)

非虛擬記憶體系統之特性整體性

• 一個行程的全部實體在執行之前必須載入主記憶體內

駐留性• 作業系統一但進入主記憶體內,便一直駐留直到執行結束才離開

連續性• 一個行程分配的是一連續的主記憶體空間

Page 51: 第  0  章 作業系統導論

51

0-5 虛擬記憶體管理 (3)

虛擬記憶體管理的三個基本概念局部性

• 只需將局部程式存放在主記憶體置換性

• 目前暫時不使用或今後不再使用的部份程式先置換出記憶體離散性

• 行程佔據的主記憶體空間可以不必完全連續

三個管理策略載入策略 - 什麼時候把需要的部份從外部儲存體載入主記憶體分配策略 – 決定把載入的行程放置在主記憶體何處 淘汰策略 – 置換策略 ( 當主記憶體空間已滿或目前可用空間無法容納 )

Page 52: 第  0  章 作業系統導論

52

0-5 虛擬記憶體管理 (4)

0-5-2 動態分頁管理 (1)

管理技巧• 主記憶體劃分若干區塊 (block)

• 將程式劃分為若干頁 (page)

• 發生 “頁失誤中斷 ” , 則置換入 (swapping in)

• 主記憶體空間不足 , 則置換出 (swapping out)

分頁表欄位

駐留位元 主記憶體區塊 外部儲存體位址 控制訊息

Page 53: 第  0  章 作業系統導論

53

0-5 虛擬記憶體管理 (5)

0-5-2 動態分頁管理 (2)

頁失誤中斷程序

主記憶體有空閒區塊

虛擬頁不在主記憶體

阻塞請求行程

依照演算法選擇 F淘汰某一分頁

該分頁是否修改過

F 將分頁 寫入外部記憶體

從外部記憶體 P讀入

修改分頁表的駐留位元與位址

喚醒請求行程

Page 54: 第  0  章 作業系統導論

54

動態分頁管理

淘汰策略 (演算法 )

先進先出 (First In First Out, FIFO)

• 最先進入記憶體的那一頁會被移出最佳替換

• 希望被移出的分頁是最久不會再被參考的那一頁最近最少使用 (Least Recently Used, LRU)

• 淘汰最進最少使用的分頁最近最不常使用 (Least Frequently Used, LFU)

• 將過去參考頻率最低的分頁置換出去

Page 55: 第  0  章 作業系統導論

55

0-5 虛擬記憶體管理 (7)

0-5-3 動態分段管理分段表

• 增加一個 “分段長”

駐留位元 主記憶體區塊 外部儲存體位址 控制訊息分段長

Page 56: 第  0  章 作業系統導論

56

0-6 輸入 / 輸出管理 (1)

內容基本概念輸入 / 輸出時機字元與區塊裝置緩衝器管理I/O 存取介面Spooling 管理

Page 57: 第  0  章 作業系統導論

57

0-6 輸入 / 輸出管理 (2)

0-6-1 基本概念

CPU中央處理單元

主記憶體

/輸入輸出裝置

Data Bus

Address Bus

週邊裝置( )如鍵盤

IO 每一週邊設備對應一個 裝置

Page 58: 第  0  章 作業系統導論

58

0-6 輸入 / 輸出管理 (3)

0-6-2 輸入 / 輸出時機 (1)

詢問 (Polling)

• 讓 CPU 週期性的詢問 I/O 裝置是否有資料進入,若有資料進入,CPU 再讀取該週邊設備上的資料

– 詢問間隔的長短 ? 監督程式 (Monitor)

IO 裝置(A)

Add_AData Bus

IO 裝置(B)

IO 裝置(C)

IO 裝置(D)

Add_B Add_C

Add_D

Data Bus

Scanner Keyboard Mouse Fax

CPU :Add_A, Add_B, Add_C, ...., Add_D詢問次序

Page 59: 第  0  章 作業系統導論

59

0-6 輸入 / 輸出管理 (4)

0-6-2 輸入 / 輸出時機 (2-1)

中斷處理的運作程序• 周邊設備需要服務時才提出請求,將可省去不必要的詢問• 透過 I/O 裝置送出一個中斷訊號給 CPU ,確認中斷需求後,會暫停目前正在執行的程式,並去執行事先已準備好中斷程式

• 中斷服務完成後, CPU 會回到原先被中斷的地方繼續執行未完成的程式

CPU 接受中斷暫停主程式

Time主程式

中斷副程式

CPU 回復原來程式

Page 60: 第  0  章 作業系統導論

60

0-6 輸入 / 輸出管理 (5)

0-6-2 輸入 / 輸出時機 (2-2)

中斷處理的硬體連接

Page 61: 第  0  章 作業系統導論

61

0-6 輸入 / 輸出管理 (6)

0-6-2 輸入 / 輸出時機 (2-3)

中斷處理的 I/O 處理器功能

Page 62: 第  0  章 作業系統導論

62

0-6 輸入 / 輸出管理 (7)

0-6-2 輸入 / 輸出時機 (2-4)

多重週邊設備的中斷

CPU中央處理單元

Data Bus

Address Bus

中斷控制器

中斷訊號

INT0

INT0

INT7

IO 處理器

(0)

IO 處理器

(1)

IO 處理器

(7)

INT1

INT3

INT7 Keyboard

Fax

Hub

Page 63: 第  0  章 作業系統導論

63

0-6 輸入 / 輸出管理 (8)

0-6-2 輸入 / 輸出時機 (2-5)

記憶體直接存取 (DMA)

• 周邊設備直接與記憶體之間做資料讀取或寫入• DMA 控制器利用 CPU 不使用匯流排的空閒時間,取得其控制權並做資料

的輸入與輸出動作,稱為『週期偷取』 (Cycle Stealing)

CPU中央處理單元

主記憶體

Data Bus

Address Bus

DMA控制器

IO 處理器(磁碟控制

)卡

磁碟機

Control Bus

Page 64: 第  0  章 作業系統導論

64

0-6 輸入 / 輸出管理 (9)

0-6-3 字元與區塊裝置區塊輸入 / 輸出裝置

• 串列或並列傳輸字元輸入 / 輸出裝置

• 串列或並列傳輸

CPUIO

處理器週邊設備( )印表機

區塊或字元讀寫

串列或並列傳輸

Page 65: 第  0  章 作業系統導論

65

0-6 輸入 / 輸出管理 (10)

0-6-4 緩衝器管理輸入緩衝器輸出緩衝器

CPU

IO處理器

週邊設備

主記憶體

輸入緩衝器

(1)

Ri暫存器

(2)

(3)

CPU

IO處理器

週邊設備

主記憶體

輸出緩衝器(1)

Ri暫存器

(2)

(3)

(1) 輸入緩衝器

(2) 輸出緩衝器

Page 66: 第  0  章 作業系統導論

66

0-6 輸入 / 輸出管理 (11)

0-6-5 存取介面open(device_name)

• 開取裝置read(device_name, address, size)

• 從裝置讀出資料write(device_name, address, size)

• 寫入資料至裝置close(device_name)

• 關閉裝置

Page 67: 第  0  章 作業系統導論

67

0-6 輸入 / 輸出管理 (12)

0-6-6 Spooling 管理 (線上同時周邊處理 )

無 spooling 管理的共享印表機

區域網路telnet A

A

telnet A

telnet A

B D

C

User_B

User_C

User_D

User_A

data_b1data_b2data_b3

print

data_c1data_c2data_c3

printdata_d1data_d2data_d3

print

data_a1data_a2data_a3

print

data_a1data_a2data_b1data_c1data_c2data_d1data_b2......

印表機輸出

共享印表機

Page 68: 第  0  章 作業系統導論

68

0-6 輸入 / 輸出管理 (13)

0-6-6 Spooling 管理 (2)

具有 spooling 管理的共享印表機

data_b1data_b2data_b3

data_b1data_b2data_b3

data_b1data_b2data_b3

A

B D

C

data_b1data_b2data_b3

print

data_c1data_c2data_c3

print

data_d1data_d2data_d3

print

data_a1data_a2data_a3

print

印表機輸出

共享印表機

虛擬印表機

區域網路

虛擬印表機

虛擬印表機

虛擬印表機

data_a1data_a2data_a3

Page 69: 第  0  章 作業系統導論

69

0-6 輸入 / 輸出管理 (14)

0-6-6 Spooling 管理 (3)

Spooling 系統的組成

Page 70: 第  0  章 作業系統導論

70

0-7 檔案系統管理 (1)

內容檔案的屬性檔案的操作檔案的儲存

Page 71: 第  0  章 作業系統導論

71

0-7 檔案系統管理 (2)

0-7-1 檔案的屬性檔案的型態

• 紀錄檔案 (Record file)

• 文字串流檔案 (Text stream file)

檔案的屬性• 型態 (type)

• 大小 (size)

• 存取控制 (access control)

• 擁有者 (owner)

• 日期 (date and time)

Page 72: 第  0  章 作業系統導論

72

0-7 檔案系統管理 (3)

0-7-2 檔案的操作操作工具有:

• 建立檔案• 讀取檔案• 寫入檔案• 刪除檔案• 檔案屬性變更

Page 73: 第  0  章 作業系統導論

73

0-7 檔案系統管理 (4)

0-7-3 檔案的儲存 (1)

磁區儲存結構

Page 74: 第  0  章 作業系統導論

74

0-7 檔案系統管理 (5)

0-7-3 檔案的儲存 (2)

檔案目錄結構