作業系統簡介

30
1p.01 作作作作作作 作作作作作作

description

作業系統簡介. 作業系統 (Operating System) 的目的. 方便的人機介面 命令列介面 : Command line ,如 DOS 圖形化使用者介面 : GUI (Graphic User Interface) ,如 Windows XP , Mac OS 等 有效的管理資源 Memory :虛擬記憶體 (virtual memory) Processor :程序排程 (process scheduling) Device :死結 (dead lock) Information :檔案 (file) - PowerPoint PPT Presentation

Transcript of 作業系統簡介

Page 1: 作業系統簡介

1p.01

作業系統簡介作業系統簡介

Page 2: 作業系統簡介

2p.01

作業系統作業系統 (Operating System)(Operating System) 的目的的目的

1. 方便的人機介面 命令列介面: Command line ,如 DOS 圖形化使用者介面: GUI (Graphic User Interface) ,

如 Windows XP , Mac OS 等2. 有效的管理資源

1. Memory :虛擬記憶體 (virtual memory)

2. Processor :程序排程 (process scheduling)

3. Device :死結 (dead lock)

4. Information :檔案 (file)

5. Others :載入 (loader) ,鏈結 (linker) ,庫存程式 (library) ,公用程式 (utility)

Page 3: 作業系統簡介

3p.01

計算機作業方式計算機作業方式

1. Batch( 批次 ) :將程式及資料事先準備好 ( 一疊卡片,一個 .bat 檔 ) 交給電腦一次完成。 適用於周期性,時效要求低的作業。如:聯考閱卷,

稅務申報等。2. Real Time( 即時 ) :輸入資料後立即處理,並在

一定時限內產生輸出。 (Response time ≦ 時限 ) 用於 Special-Purpose 電腦系統,如飛機自動導航 / 駕

駛系統,證卷交易系統。 ( 事關人命,金錢交易 )

Page 4: 作業系統簡介

4p.01

計算機作業方式計算機作業方式3. On-Line( 線上作業 ) Off-Line( 離線作業 )

I/O 設備與主機有實體連線,能立即作 I/O 處理,為 Real time 的必要條件。

變化:分散式系統中,電腦透過網路,與系統取得連線。

4. Time-Sharing( 分時作業 ) Multiprogramming 的一種,各程式分配一段時間輪

流交替執行,為最普遍的執行方式 ( 公平,簡單,效果不錯 )

Multiprogramming :電腦 Memory 內有 2 個以上互不相關的程式可同時被執行, CPU 交替執行之,使得 User 產生電腦專屬執行某一程式的錯覺。

由 OS 控制

Page 5: 作業系統簡介

5p.01

計算機作業方式計算機作業方式

5. Multiprogramming( 多工程式處理 )-1970’s 同時 (currently) 執行數個程式 ( 以軟體方式 ) ,各個

程式感覺是同時執行。6. Multiprocessing( 多元處理 )-1970’s

同時 (simultaneously) 執行數個程式 ( 以硬體方式 ) ,格個程式真正是同時執行。

7. Multitasking( 多工處理 )-1980’s 電腦 Memory 內有 2 個以上屬於同一程式的工作 (tas

k) 可被同時執行。 Task :執行一個特定功能的一段程序 ( 副程式 )

8. Multithreading( 多序執行 )-1990’s 如 Java

Page 6: 作業系統簡介

6p.01

Virtual MemoryVirtual Memory 虛擬記憶體虛擬記憶體 優點

1. 使 User 的程式不受實際 Memory 容量的限制。2. Memory 內部程式 / 資料的保護。3. Memory 內部資訊的共享 (sharing) 。

作法1. Demand Page( 分頁 ) :以 Mem 的使用為主,將程式

/ 資料分成等量大小 ( 頁 ) ,沒有 fragment( 碎片 ) 。2. Demand Segment( 分段 ) :以程式的保護為主,根據

程式性質,分成數個大小不同的區段 ( 段 ) ,有 fragment ( 碎片 ) 。

Page 7: 作業系統簡介

7p.01

Virtual MemoryVirtual Memory 虛擬記憶體虛擬記憶體 Page Fault 代換策略

1. FIFO (First In First Out) 先進先出,最直觀,效果差

2. LRU (Least Recently Used) 最近最久未用,合理

3. Optimal 最晚才會再用,最佳,理論上限

4. Random :實際上使用

CPU Main Memory

Page frame

Page frame

Page frame

Page frame

HardDisk

Page 1

Page 2

Page 3

Page 4

Page 5

Page 6

Page 7

Page 8

Page 9

Page 10

某段程式或一段資

例: CPU 需要順序 ( 頁參考順序 ) : 1,3,6,9,10,4,7…

Page 1

Page 3

Page 6

Page 9? Page Fault

Page 8: 作業系統簡介

8p.01

Page Fault Page Fault 代換策略實作代換策略實作 FIFO( 先進先出 )

頁參考順序: 0,1,2,3,4,2,1,5,6,7,2,3,7,4,5,6,0

Page frame=3

參考順序 0 1 2 3 4 2 1 5 6 7 2 3 7 4 5 6 0

PF 0

PF 1

PF2

Page Fault * * * * * * * * * * * *

0 0 0 0 3 3 3 3 5 5 5 2 2 2 2 5 5

1 1 1 1 4 4 4 4 6 6 6 3 3 3 3 6

2 2 2 2 2 1 1 1 7 7 7 7 4 4 4

共發生 page fault ( * )= 次

3

4

* * *

1

5

6

7

2

3

4

5

6

0

15

Page 9: 作業系統簡介

9p.01

自我練習自我練習 FIFO( 先進先出 )

頁參考順序: 1,2,3,4,5,0,1,4,5,6,7,4,5,6,7,1,0

Page frame=4

參考順序

PF 0

PF 1

PF 2

PF 3

Fault

共發生 page fault ( * )= 次

Page 10: 作業系統簡介

10p.01

0

Page Fault Page Fault 代換策略實作代換策略實作 LRU( 最近最久未用 ) Least Recently Used

頁參考順序: 0,1,2,3,4,2,1,5,6,7,2,3,7,4,5,6,0 Page frame=3

參考順序 0 1 2 3 4 2 1 5 6 7 2 3 7 4 5 6 0

PF 0

PF 1

PF2

Page Fault * * * * * * * * * * * *

0

共發生 page fault ( * )= 次

3

* * *

15

0 3 3 3 1 1 1 7 7 7 7 7 7 60

1 1 1 4 4 4 5 5 5 2 2 2 4 4 41

2 2 2 2 2 2 6 6 6 3 3 3 5 52

4

1

5

6

7

2

3

4

5

6

0

Page 11: 作業系統簡介

11p.01

自我練習自我練習 LRU( 最近最久未用 ) Least Recently Used

頁參考順序: 1,2,3,4,5,0,1,4,5,6,7,4,5,6,7,1,0 Page frame=4

參考順序

PF 0

PF 1

PF 2

PF 3

Fault

共發生 page fault ( * )= 次

Page 12: 作業系統簡介

12p.01

Page Fault Page Fault 代換策略實作代換策略實作 Optimal( 取代最晚才會再用的 ) 效果最好理論上限,但

不可行 頁參考順序: 0,1,2,3,4,2,1,5,6,7,2,3,7,4,5,6,0 Page frame=3

參考順序 0 1 2 3 4 2 1 5 6 7 2 3 7 4 5 6 0

PF 0

PF 1

PF2

Page Fault * * * * * * * * * * * *

0

共發生 page fault ( * )= 次12

0 0 0 3 4 4 4 4 4 4 4 4 4 4 5 5

1 1 1 1 1 1 1 5 6 7 7 7 7 7 7 6

2 2 2 2 2 2 2 2 2 2 3 3 3 3 3

3 4

5 6 7

3

5

6

0

Page 13: 作業系統簡介

13p.01

自我練習自我練習 Optimal( 取代最晚才會再用的 )

頁參考順序: 1,2,3,4,5,0,1,4,5,6,7,4,5,6,7,1,0 Page frame=4

參考順序

PF 0

PF 1

PF 2

PF 3

Fault

共發生 page fault ( * )= 次

Page 14: 作業系統簡介

14p.01

Process Management (Process Management ( 程序管理程序管理 ))

Process ( 程序 ) 一段執行中的程式碼 (a program in execution)

Process 的 STD (State Transition Diagram) 狀態轉換圖

User1 submit Job1

User2 submit Job2

Usern submit Jobn

… Jn…J3,J2,J1

Job Queue

Ready

Pn…P3,P2,P1

Ready Queue

RUN

WAIT

Time out

等 I/O 完成

I/O 已完成

MemoryDisk

: Long-term scheduler ( 長程排程器 )

Complete

: Short-term scheduler ( 短程排程器 ) : Medium-term scheduler ( 中程排程器 )

Page 15: 作業系統簡介

15p.01

Process Management (Process Management ( 程序管理程序管理 ))

Process Scheduler ( 程序排程器 ) 的目標 System Balance ( 系統平衡 )

程序大致可分為1. I/O bound :大多數時間在做 I/O ,如 Word 。2. CPU bound :大多數時間在跑 CPU ,如 TV game 。

Scheduler( 排程器 ) 為使 CPU , I/O 同時忙碌,故以 I/O bound process( 程序 ) 為優先選擇。

Page 16: 作業系統簡介

16p.01

Process Management (Process Management ( 程序管理程序管理 ))

Process 的排程策略1. Non-Preemptive( 不可插隊式 )

1. FCFS (First Come First Serve) :先來先做2. SJF (Shortest Job First) :最短先做

2. Preemptive( 可插隊式 ) 3. RR (Round-Robin) :啄木鳥 /Time-sharing ,適用於一般電

腦。4. SRTF (Shortest Remaining Time First) :最短剩餘時間優先。

解釋名詞: Average Turnaround Time :平均迴轉時間

程序從進入 ready queue 後,到全部完成的平均時間。 Average Waiting Time :平均等待時間

程序從進入 ready queue 後,到全部完成的平均等待時間。

Page 17: 作業系統簡介

17p.01

Process Scheduling Process Scheduling 程序排程程序排程 Non-Preemptive ( 不可插隊式 )

1. FCFS 先來先做 (First Come First Serve)

Process # Burst Time Arrived Time

1 10 0

2 4 3

3 5 5

4 4 7

p4

p3

P2

p1

30 5 7 10 14 19 23

Average Waiting Time

Average Turnaround Time

代表 process 已經進入 ready queue 中等待,但尚未執行

代表 process 進入 CPU 中開始執行

=(0+(10-3)+(14-5)+(19-7))/4=7#

=(10+(14-3)+(19-5)+(23-7))/4=12.75#

Page 18: 作業系統簡介

18p.01

自我練習自我練習 Non-Preemptive ( 不可插隊式 )

FCFS 先來先做 (First Come First Serve)

Process # Burst Time Arrived Time

1 10 0

2 6 3

3 3 5

4 5 7

p4

p3

P2

p1

Average Waiting Time=? Average Turnaround Time=?

Page 19: 作業系統簡介

19p.01

Process Scheduling Process Scheduling 程序排程程序排程 Non-Preemptive ( 不可插隊式 )

SJF 最短先做 (Shortest Job First)

Process # Burst Time Arrived Time

1 10 0

2 4 3

3 5 5

4 4 7

p4

p3

P2

p1

30 5 7 10 14 18 23

Average Waiting Time

=(0+(10-3)+(18-5)+(14-7))/4=6.75#

Average Turnaround Time

=(10+(14-3)+(23-5)+(18-7))/4=12.5#

Page 20: 作業系統簡介

20p.01

自我練習自我練習 Non-Preemptive ( 不可插隊式 )

SJF 最短先做 (Shortest Job First)

Process # Burst Time Arrived Time

1 10 0

2 6 3

3 3 5

4 5 7

p4

p3

P2

p1

Average Waiting Time=? Average Turnaround Time=?

Page 21: 作業系統簡介

21p.01

Process Scheduling Process Scheduling 程序排程程序排程 Preemptive ( 可插隊式 )

SRTF 剩餘最短時間先做 (Shortest Remaining Time First)

Process # Burst Time Arrived Time

1 10 0

2 4 3

3 5 5

4 4 7

p4

p3

P2

p1

30 5 7 11 16 23

Average Waiting Time

=((16-3)+0+(11-5)+0)/4=4.75#

Average Turnaround Time

=((23-0)+(7-3)+(16-5)+(11-7))/4=10.5#

Page 22: 作業系統簡介

22p.01

自我練習自我練習 Preemptive ( 可插隊式 )

SRTF 剩餘最短時間先做 (Shortest Remaining Time First)

Process # Burst Time Arrived Time

1 10 0

2 6 3

3 3 5

4 5 7

p4

p3

P2

p1

Average Waiting Time=? Average Turnaround Time=?

Page 23: 作業系統簡介

23p.01

Process Scheduling Process Scheduling 程序排程程序排程 Preemptive ( 可插隊式 )

RR 啄木鳥 (Round-robin)

Process # Burst Time Arrived Time

1 10 0

2 4 3

3 5 5

4 4 7

p4

p3

P2

p1

30 5 7 10 14 23

Average Waiting Time

=(12+(1+4)+(3+6+4)+(5+4))/4=9.75#

Average Turnaround Time

=((22+(12-3)+(23-5)+(20-7))/4=15.5#

Time slice( 時間間隔 )=2

2 4 6 8 12 18 222016

Page 24: 作業系統簡介

24p.01

自我練習自我練習 Preemptive ( 可插隊式 )

RR 啄木鳥 (Round-robin)

Process # Burst Time Arrived Time

1 10 0

2 6 3

3 3 5

4 5 7

p4

p3

P2

p1

Average Waiting Time=? Average Turnaround Time=?

Page 25: 作業系統簡介

25p.01

Device Management (Device Management ( 設備管理設備管理 ))

Device ( 設備 ) 分為1. Dedicated( 專屬 ) :如 printer, tape2. Shared( 共用 ) :如 Memory, Disk

Race Condition( 競賽現象 ) 當 O.S 安排程式使用資源的次序不當所產生的錯誤現

象。 ( 將專屬的 Device 當成共用的 Device 使用,就會產生 Race

Condition) 如:將一台 printer 當成共用 Device , 2 個以上的程式同時要

求列印時,會產生什麼狀況? 解決之道:

1. 程式中加入“要求 printer” 及“釋放”指令2. 對專屬 Device 做 Mutual Exclusion( 互相排斥 ) 控制

Page 26: 作業系統簡介

26p.01

Device Management (Device Management ( 設備管理設備管理 ))

Process 1

要求 printer

要求 tape

釋放 tape

釋放 printer

Process 2

要求 tape

要求 printer

釋放 tape

釋放 printer

P1 P2

printer

tape

Dead lock ( 死結 )

Page 27: 作業系統簡介

27p.01

Dead lock (Dead lock ( 死結死結 ))

Dead lock 發生之四大必要條件 ( 缺一不可 )1. Mutual Exclusion ( 互斥 )2. Hold & Wait ( 持有並等待 )3. Non-preemptive ( 不可強佔 )4. Circuit Waiting ( 循環等待 )

Dead lock 的解決1. Prevention ( 預防 ) 釜底抽薪 破除任一必要條件,使

Dead lock 不可能發生。2. Avoidance ( 避免 ) 步步為營 O.S 分配資源時,先判

斷是否導致 Dead lock 發生。3. Detection & Recovery ( 偵測及復原 ) 見機行事 Dea

d lock 發生後,犧牲某一方釋放資源,打開 Dead lock 。4. 鴕鳥法 不解決 關電源重新開機。

Page 28: 作業系統簡介

28p.01

其他系統之管理其他系統之管理 程式在執行前所需要的步驟:

Source code 程式碼

Object code

Execution code

CPU

Compiler 編譯程式

Linker 鏈結程式

Loader 載入程式

Page 29: 作業系統簡介

29p.01

其他系統之管理其他系統之管理

Main ( )

{int x;

scanf(“%d”,&x);

}

……

主程式

.Obj0

1

2

3

S1S2

call scanf

mov x,ax

……

a

x…

程式

資料

2000020001

Logical/virtual address

Compiler

…30001

.exe

0

1

2

3

S1S2

call 20001

mov 35301,ax

……

a

x…

程式

資料

20000

25101

35101

Linker

…scanf( ) 20001

25100

定位 鏈結

定位:決定程式各模組之位置關係

鏈結:解決程式跨段參考的問題

Page 30: 作業系統簡介

30p.01

其他系統之管理其他系統之管理.exe

0

1

2

3

S1S2

call 20001

mov 35301,ax

……

a

x…

程式

資料

20000

25101

35101

…scanf( ) 20001

25100

Linker

定位 鏈結

Loader

重定位 ( 改位址 ) 載入 (copy)

memory

100000

100001

100002

S1S2

call 120001

mov 135301,ax

……

a

x…

程式

資料

120000

125101

135101

…scanf( ) 120001

125100

A.exe

B.exe

執行

Physical/realaddress

重定位:根據實際載入位址,調整指令或資料的位址

載入:載入程式