Скачать презентацию 作業系統簡介 1 作業系統 Operating System 的目的 1 方便的人機介面 n Скачать презентацию 作業系統簡介 1 作業系統 Operating System 的目的 1 方便的人機介面 n

1641d124bbe4acf4e22a1856a810e072.ppt

  • Количество слайдов: 30

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

作業系統(Operating System)的目的 1. 方便的人機介面 n p 2. 命令列介面:Command line,如DOS 圖形化使用者介面:GUI (Graphic User Interface),如 Windows 作業系統(Operating System)的目的 1. 方便的人機介面 n p 2. 命令列介面:Command line,如DOS 圖形化使用者介面:GUI (Graphic User Interface),如 Windows XP,Mac OS等 有效的管理資源 1. 2. 3. 4. 5. Memory:虛擬記憶體(virtual memory) Processor:程序排程(process scheduling) Device:死結 (dead lock) Information:檔案(file) Others:載入(loader),鏈結(linker),庫存程式 (library),公用程式(utility) 2

計算機作業方式 1. Batch(批次):將程式及資料事先準備好(一疊 卡片,一個. bat檔)交給電腦一次完成。 n 2. 適用於周期性,時效要求低的作業。如:聯考閱卷, 稅務申報等。 Real Time(即時):輸入資料後立即處理,並在 一定時限內產生輸出。(Response time ≦時限) 計算機作業方式 1. Batch(批次):將程式及資料事先準備好(一疊 卡片,一個. bat檔)交給電腦一次完成。 n 2. 適用於周期性,時效要求低的作業。如:聯考閱卷, 稅務申報等。 Real Time(即時):輸入資料後立即處理,並在 一定時限內產生輸出。(Response time ≦時限) n 用於Special-Purpose電腦系統,如飛機自動導航/駕駛 系統,證卷交易系統。(事關人命,金錢交易) 3

計算機作業方式 3. On-Line(線上作業) Off-Line(離線作業) p p 4. I/O設備與主機有實體連線,能立即作I/O處理,為Real time的必要條件。 變化:分散式系統中,電腦透過網路,與系統取得連線。 Time-Sharing(分時作業) p p Multiprogramming的一種,各程式分配一段時間輪流 計算機作業方式 3. On-Line(線上作業) Off-Line(離線作業) p p 4. I/O設備與主機有實體連線,能立即作I/O處理,為Real time的必要條件。 變化:分散式系統中,電腦透過網路,與系統取得連線。 Time-Sharing(分時作業) p p Multiprogramming的一種,各程式分配一段時間輪流 交替執行,為最普遍的執行方式(公平,簡單,效果不 錯) Multiprogramming:電腦Memory內有2個以上互不相 關的程式可同時被執行,CPU交替執行之,使得User 產生電腦專屬執行某一程式的錯覺。 由OS控制 4

計算機作業方式 5. Multiprogramming(多 程式處理)-1970’s p 6. Multiprocessing(多元處理)-1970’s p 7. 同時(simultaneously)執行數個程式(以硬體方式),格 個程式真正是同時執行。 Multitasking(多 處理)-1980’s n 計算機作業方式 5. Multiprogramming(多 程式處理)-1970’s p 6. Multiprocessing(多元處理)-1970’s p 7. 同時(simultaneously)執行數個程式(以硬體方式),格 個程式真正是同時執行。 Multitasking(多 處理)-1980’s n n 8. 同時(currently)執行數個程式(以軟體方式),各個程式 感覺是同時執行。 電腦Memory內有2個以上屬於同一程式的 作(task)可 被同時執行。 Task:執行一個特定功能的一段程序(副程式) Multithreading(多序執行)-1990’s p 如Java 5

Virtual Memory虛擬記憶體 p 優點 1. 2. 3. p 使User的程式不受實際Memory容量的限制。 Memory內部程式/資料的保護。 Memory內部資訊的共享(sharing)。 作法 1. 2. Virtual Memory虛擬記憶體 p 優點 1. 2. 3. p 使User的程式不受實際Memory容量的限制。 Memory內部程式/資料的保護。 Memory內部資訊的共享(sharing)。 作法 1. 2. Demand Page(分頁):以Mem的使用為主,將程式/ 資料分成等量大小(頁),沒有fragment(碎片)。 Demand Segment(分段):以程式的保護為主,根據 程式性質,分成數個大小不同的區段(段),有fragment (碎片)。 6

Virtual Memory虛擬記憶體 p Page Fault 代換策略 1. FIFO (First In First Out) n 2. Virtual Memory虛擬記憶體 p Page Fault 代換策略 1. FIFO (First In First Out) n 2. 先進先出,最直觀,效果差 Page 3 Page 4 Page 5 最近最久未用,合理 Page 6 Optimal n 4. Page 2 LRU (Least Recently Used) n 3. Page 1 Page 7 Page 8 最晚才會再用,最佳,理論上限 Random:實際上使用 某 段 程 式 或 一 段 資 料 Page 9 Page frame Page 10 Page frame Page 3 Page frame Page 6 Page frame Page 9 CPU ? Main Memory Page Fault Hard Disk 例:CPU需要順序(頁參考順序): 1, 3, 6, 9, 10, 4, 7… 7

Page Fault 代換策略實作 p FIFO(先進先出) 頁參考順序: 0, 1, 2, 3, 4, 2, 1, 5, Page Fault 代換策略實作 p 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 0 3 0 3 3 3 5 5 5 2 2 5 2 5 5 1 1 1 4 4 4 6 6 3 3 3 6 PF 2 2 2 1 1 1 7 7 4 7 4 4 0 4 Page Fault * * * PF 1 * * * * * 共發生 page fault (*)= 15 次 8

自我練習 p FIFO(先進先出) 頁參考順序: 1, 2, 3, 4, 5, 0, 1, 4, 5, 6, 自我練習 p FIFO(先進先出) 頁參考順序: 1, 2, 3, 4, 5, 0, 1, 4, 5, 6, 7, 1, 0 Page frame=4 參考順序 PF 0 PF 1 PF 2 PF 3 Fault 共發生 page fault (*)= 9 次

Page Fault 代換策略實作 p LRU(最近最久未用) Least Recently Used n n 頁參考順序: 0, 1, 2, Page Fault 代換策略實作 p LRU(最近最久未用) Least Recently Used n n 頁參考順序: 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 0 3 0 3 3 3 1 1 7 7 7 6 7 6 1 1 4 4 5 5 5 2 2 4 4 4 0 PF 2 2 2 2 6 6 3 3 5 5 5 Page Fault * * * PF 1 * * * * * 共發生 page fault (*)= 15 次 10

自我練習 p LRU(最近最久未用) Least Recently Used n n 頁參考順序: 1, 2, 3, 4, 5, 自我練習 p LRU(最近最久未用) Least Recently Used n n 頁參考順序: 1, 2, 3, 4, 5, 0, 1, 4, 5, 6, 7, 1, 0 Page frame=4 參考順序 PF 0 PF 1 PF 2 PF 3 Fault 共發生 page fault (*)= 11 次

Page Fault 代換策略實作 p Optimal(取代最晚才會再用的) 效果最好 理論上限,但 不可行 n n 頁參考順序: 0, 1, 2, Page Fault 代換策略實作 p Optimal(取代最晚才會再用的) 效果最好 理論上限,但 不可行 n n 頁參考順序: 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 0 0 3 4 4 4 4 4 5 4 5 5 1 1 1 1 5 5 6 6 7 7 7 7 6 6 PF 2 2 2 3 3 3 0 3 Page Fault * * * PF 1 * * * * 共發生 page fault (*)= 12 次 12

自我練習 p Optimal(取代最晚才會再用的) n n 頁參考順序: 1, 2, 3, 4, 5, 0, 1, 4, 自我練習 p Optimal(取代最晚才會再用的) n n 頁參考順序: 1, 2, 3, 4, 5, 0, 1, 4, 5, 6, 7, 1, 0 Page frame=4 參考順序 PF 0 PF 1 PF 2 PF 3 Fault 共發生 page fault (*)= 13 次

Process Management (程序管理) p Process (程序) n p 一段執行中的程式碼(a program in execution) Process 的 Process Management (程序管理) p Process (程序) n p 一段執行中的程式碼(a program in execution) Process 的 STD (State Transition Diagram) 狀態轉換圖 Complete Disk User 1 submit Job 1 User 2 submit Job 2 Job Queue … Jn…J 3, J 2, J 1 Usern submit Jobn Memory RUN Time out Ready 等I/O完成 Pn…P 3, P 2, P 1 Ready Queue :Long-term scheduler (長程排程器) WAIT I/O已完成 :Short-term scheduler (短程排程器) :Medium-term scheduler (中程排程器 ) 14

Process Management (程序管理) p p Process Scheduler (程序排程器)的目標 System Balance (系統平衡) 程序大致可分為 1. 2. Process Management (程序管理) p p Process Scheduler (程序排程器)的目標 System Balance (系統平衡) 程序大致可分為 1. 2. n I/O bound:大多數時間在做I/O,如Word。 CPU bound:大多數時間在跑CPU,如TV game。 Scheduler(排程器)為使CPU,I/O同時忙碌,故 以I/O bound process(程序)為優先選擇。 15

Process Management (程序管理) p Process 的排程策略 1. Non-Preemptive(不可插隊式) 1. 2. Preemptive(可插隊式) 3. 4. 1. Process Management (程序管理) p Process 的排程策略 1. Non-Preemptive(不可插隊式) 1. 2. Preemptive(可插隊式) 3. 4. 1. FCFS (First Come First Serve):先來先做 SJF (Shortest Job First):最短先做 RR (Round-Robin):啄木鳥/Time-sharing,適用於一般電腦。 SRTF (Shortest Remaining Time First):最短剩餘時間優先。 解釋名詞: n Average Turnaround Time:平均迴轉時間 n n 程序從進入ready queue後,到全部完成的平均時間。 Average Waiting Time:平均等待時間 1. 程序從進入ready queue後,到全部完成的平均等待時間。 16

Process Scheduling 程序排程 p 代表process進入CPU 中開始執行 Non-Preemptive (不可插隊式) 1. FCFS 先來先做 (First Come First Process Scheduling 程序排程 p 代表process進入CPU 中開始執行 Non-Preemptive (不可插隊式) 1. FCFS 先來先做 (First Come First Serve) Process # Burst Time Arrived Time 1 10 0 p 4 2 4 3 p 3 3 5 5 4 4 7 P 2 p 1 ● ● 0 3 Average Waiting Time =(0+(10 -3)+(14 -5)+(19 -7))/4=7# 5 7 10 14 19 23 代表process已經進入ready queue中等待,但尚未執行 Average Turnaround Time =(10+(14 -3)+(19 -5)+(23 -7))/4=12. 75# 17

自我練習 p Non-Preemptive (不可插隊式) n FCFS 先來先做 (First Come First Serve) Process # Burst 自我練習 p Non-Preemptive (不可插隊式) n FCFS 先來先做 (First Come First Serve) Process # Burst Time Arrived Time 1 10 0 2 6 3 3 3 5 4 5 7 p 4 p 3 P 2 p 1 Average Waiting Time=? Average Turnaround Time=? 18

Process Scheduling 程序排程 p Non-Preemptive (不可插隊式) n SJF 最短先做 (Shortest Job First) Process # Process Scheduling 程序排程 p Non-Preemptive (不可插隊式) n SJF 最短先做 (Shortest Job First) Process # Burst Time Arrived Time 1 10 0 p 4 2 4 3 p 3 3 5 5 4 4 7 P 2 p 1 ● ● 0 3 5 7 10 14 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# 19 18 23

自我練習 p Non-Preemptive (不可插隊式) n SJF 最短先做 (Shortest Job First) Process # Burst Time 自我練習 p Non-Preemptive (不可插隊式) n SJF 最短先做 (Shortest Job First) Process # Burst Time Arrived Time 1 10 0 2 6 3 3 3 5 4 5 7 p 4 p 3 P 2 p 1 Average Waiting Time=? Average Turnaround Time=? 20

Process Scheduling 程序排程 p Preemptive (可插隊式) n SRTF 剩餘最短時間先做 (Shortest Remaining Time First) Process Process Scheduling 程序排程 p Preemptive (可插隊式) n SRTF 剩餘最短時間先做 (Shortest Remaining Time First) Process # Burst Time Arrived Time 1 10 0 p 4 2 4 3 p 3 3 5 5 4 4 7 P 2 p 1 ● ● 0 3 5 7 11 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# 21 16 23

自我練習 p Preemptive (可插隊式) n SRTF 剩餘最短時間先做 (Shortest Remaining Time First) Process # Burst 自我練習 p Preemptive (可插隊式) n SRTF 剩餘最短時間先做 (Shortest Remaining Time First) Process # Burst Time Arrived Time 1 10 0 2 6 3 3 3 5 4 5 7 p 4 p 3 P 2 p 1 Average Waiting Time=? Average Turnaround Time=? 22

Process Scheduling 程序排程 p Preemptive (可插隊式) n RR 啄木鳥 (Round-robin) Time slice(時間間隔)=2 Process # Process Scheduling 程序排程 p Preemptive (可插隊式) n RR 啄木鳥 (Round-robin) Time slice(時間間隔)=2 Process # Burst Time 10 0 2 4 3 3 5 5 4 4 =(12+(1+4)+(3+6+4)+(5+4))/4=9. 75# Arrived Time 1 Average Waiting Time 7 Average Turnaround Time =((22+(12 -3)+(23 -5)+(20 -7))/4=15. 5# ● p 4 p 3 ● P 2 p 1 ● ● 0 2 3 4 5 6 7 8 10 12 14 16 18 20 2223 23

自我練習 p Preemptive (可插隊式) n RR 啄木鳥 (Round-robin) Process # Burst Time Arrived Time 自我練習 p Preemptive (可插隊式) n RR 啄木鳥 (Round-robin) Process # Burst Time Arrived Time 1 10 0 2 6 3 3 3 5 4 5 7 p 4 p 3 P 2 p 1 Average Waiting Time=? Average Turnaround Time=? 24

Device Management (設備管理) p Device (設備)分為 1. 2. p Dedicated(專屬):如printer, tape Shared(共用):如Memory, Disk Race Device Management (設備管理) p Device (設備)分為 1. 2. p Dedicated(專屬):如printer, tape Shared(共用):如Memory, Disk Race Condition(競賽現象) n 當O. S安排程式使用資源的次序不當所產生的錯誤現象。 p p n (將專屬的Device當成共用的Device使用,就會產生Race Condition) 如:將一台printer當成共用Device,2個以上的程式同時要求 列印時,會產生什麼狀況? 解決之道: 1. 2. 程式中加入“要求printer”及“釋放”指令 對專屬Device做Mutual Exclusion(互相排斥)控制 25

Device Management (設備管理) printer Process 等 Process 2 要求printer 要求tape P 1 P 2 Device Management (設備管理) printer Process 等 Process 2 要求printer 要求tape P 1 P 2 要求tape 要求printer 等 釋放printer 釋放tape 1 釋放printer Dead lock (死結 ) 26

Dead lock (死結) p Dead lock 發生之四大必要條件(缺一不可) 1. 2. 3. 4. n Mutual Exclusion Dead lock (死結) p Dead lock 發生之四大必要條件(缺一不可) 1. 2. 3. 4. n Mutual Exclusion (互斥) Hold & Wait (持有並等待) Non-preemptive (不可強佔) Circuit Waiting (循環等待) Dead lock 的解決 1. 2. 3. 4. Prevention (預防) 釜底抽薪 破除任一必要條件, 使Dead lock 不可能發生。 Avoidance (避免) 步步為營 O. S分配資源時,先判 斷是否導致Dead lock發生。 Detection & Recovery (偵測及復原) 見機行事 Dead lock發生後,犧牲某一方釋放資源,打開Dead lock。 鴕鳥法 不解決 關電源重新開機。 27

其他系統之管理 p 程式在執行前所需要的步驟: Source code程式碼 Compiler 編譯程式 Object code Linker 鏈結程式 Execution code Loader 其他系統之管理 p 程式在執行前所需要的步驟: Source code程式碼 Compiler 編譯程式 Object code Linker 鏈結程式 Execution code Loader 載入程式 CPU 28

其他系統之管理 Logical/virtual address . Obj S 1 S 2 x 30001 mov 35301, ax 其他系統之管理 Logical/virtual address . Obj S 1 S 2 x 30001 mov 35301, ax 定位 鏈結 scanf( ) … … 資 料 段 Linker 程 式 段 call 20001 0 1 2 3 … a 20000 20001 S 2 … Compiler … } mov x, ax … … ; scanf(“%d”, &x) call scanf … {int x; 程 式 段 S 1 0 1 2 3 … Main ( ) … 主程式 . exe a x … 定位:決定程式各模組之位置關係 鏈結:解決程式跨段參考的問題 29 25100 25101 … … 資 料 段 20000 20001 35101

memory 其他系統之管理. exe S 1 S 2 a 35101 重定位(改位址) 載入(copy) scanf( ) a memory 其他系統之管理. exe S 1 S 2 a 35101 重定位(改位址) 載入(copy) scanf( ) a 資 料 段 x … … 重定位:根據實際載入位址,調整指令或資料的位址 載入:載入程式 120000 120001 125100 125101 … x mov 135301, ax 25100 25101 … 資 料 段 Loader 程 式 段 call 120001 … … scanf( ) 20000 20001 S 2 100000 100001 100002 … … 定位 鏈結 S 1 0 1 2 3 B. exe … … mov 35301, ax Physical/real address … … Linker 程 式 段 call 20001 A. exe 30 135101 執 行