1 / 30

作業系統簡介

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

ura
Download Presentation

作業系統簡介

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 作業系統簡介

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

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

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

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

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

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

  8. Page Fault 代換策略實作 • FIFO(先進先出) 頁參考順序:0,1,2,3,4,2,1,5,6,7,2,3,7,4,5,6,0 Page frame=3 0 0 0 3 0 3 3 3 5 3 5 5 5 2 2 2 2 5 2 5 5 4 6 3 6 1 1 1 1 4 4 4 4 6 6 6 3 3 3 3 6 1 4 2 2 2 2 2 1 1 1 7 7 7 7 4 4 0 4 7 * * * * * * * * * * * * * * * 共發生 page fault (*)= 次 15

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

  10. LRU(最近最久未用) Least Recently Used 頁參考順序:0,1,2,3,4,2,1,5,6,7,2,3,7,4,5,6,0 Page frame=3 Page Fault 代換策略實作 0 0 0 3 0 3 3 3 1 1 1 1 7 7 7 7 7 7 6 7 6 2 4 1 1 1 1 4 4 4 5 5 5 2 2 2 4 4 4 4 5 0 2 2 2 2 2 2 2 6 6 6 3 3 3 5 5 6 5 3 * * * * * * * * * * * * * * * 共發生 page fault (*)= 次 15

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

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

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

  14. Process Management (程序管理) • Process (程序) • 一段執行中的程式碼(a program in execution) • Process 的 STD (State Transition Diagram) 狀態轉換圖 Complete Disk Memory RUN Time out Job Queue User1 submit Job1   Ready User2 submit Job2 … 等I/O完成 Usern submit Jobn  Ready Queue WAIT I/O已完成 :Long-term scheduler (長程排程器) :Short-term scheduler (短程排程器) :Medium-term scheduler (中程排程器)

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

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

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

  18. Non-Preemptive (不可插隊式) FCFS 先來先做(First Come First Serve) 自我練習 p4 p3 P2 p1 Average Turnaround Time=? Average Waiting Time=?

  19. Non-Preemptive (不可插隊式) SJF 最短先做(Shortest Job First) Process Scheduling 程序排程 p4 p3 P2 p1 ● ● ● ● 0 3 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#

  20. Non-Preemptive (不可插隊式) SJF 最短先做(Shortest Job First) 自我練習 p4 p3 P2 p1 Average Turnaround Time=? Average Waiting Time=?

  21. Preemptive (可插隊式) SRTF 剩餘最短時間先做(Shortest Remaining Time First) Process Scheduling 程序排程 p4 p3 P2 p1 ● ● ● ● 0 3 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#

  22. Preemptive (可插隊式) SRTF 剩餘最短時間先做(Shortest Remaining Time First) 自我練習 p4 p3 P2 p1 Average Turnaround Time=? Average Waiting Time=?

  23. Preemptive (可插隊式) RR 啄木鳥(Round-robin) Process Scheduling 程序排程 Average Waiting Time =(12+(1+4)+(3+6+4)+(5+4))/4=9.75# Time slice(時間間隔)=2 Average Turnaround Time =((22+(12-3)+(23-5)+(20-7))/4=15.5# p4 p3 P2 p1 ● ● ● ● 12 16 20 0 2 3 4 5 6 7 8 10 14 18 22 23

  24. Preemptive (可插隊式) RR 啄木鳥(Round-robin) 自我練習 p4 p3 P2 p1 Average Turnaround Time=? Average Waiting Time=?

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

  26. Device Management (設備管理) printer Process 1 Process 2  等     要求printer 要求tape P1 P2     要求tape 要求printer   等  釋放tape 釋放tape tape   釋放printer 釋放printer    Dead lock (死結)

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

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

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

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

More Related