作業系統簡介.

Slides:



Advertisements
Similar presentations
© 2012 IBM Corporation IBM 中国系统与科技研发中心 --- IBM i 实验室之旅 利用工具分析 IBM i 程序性能 应锦鑫, IBM i 性能工具高级软件工程师 IBM 中国系统与科技研发中心.
Advertisements

第 3 章操作系统基础 3.1 操作系统概述 3.2 操作系统的功能模块 3.3 典型操作系统概述.
讓你的程式具有多工(Multitasking) 及多重處理(Multiprocessing)的能力
CHAPTER 9 虛擬記憶體管理 9.2 分頁需求 9.3 寫入時複製 9.4 分頁替換 9.5 欄的配置法則 9.6 輾轉現象
Foundations of Computer Science
OSDI.
中央广播电视大学开放教育试点课程 计算机操作系统.
前言 1.课程安排: 第一章 操作系统引论(7学时) 第二章 进程管理(14学时) 第三章 处理机调度与死锁(10学时)
操作系统 Operating System.
第五章 处理机管理 5.1 引言 5.2 调度算法 5.3 调度算法性能分析 5.4 实时调度 5.5 多处理机调度 5.6 调度算法举例
第二章 进程、线程与作业 多道程序设计 Multi-programming 进程的引入 Process 线程与轻进程
操作系统结构.
最新計算機概論 第3章 計算機組織.
第三章 处理机调度与死锁 3.1 处理机调度的基本概念 3.2 调度算法 3.3 实时调度 3.4 多处理机系统中的调度
第四章 存储器管理.
第五章 设备管理 5.1 I/O系统 5.2 I/O控制方式 5.3 缓冲管理 5.4 设备分配 5.5 设备处理 5.6 磁盘存储器管理.
第6章 死結(Deadlock).
性能测试培训 在组设置中可使用此模板作为演示培训材料的起始文件。 节
輔助記憶體.
Operating System CPU Scheduing - 2 Monday, August 11, 2008.
Operating System CPU Scheduing - 3 Monday, August 11, 2008.
作業系統的結構 日期 : 2018/9/17.
行程管理簡介 日期 : 2018/9/21.
第6章 電腦軟體 應用軟體 多元程式處理 系統軟體 記憶體配置 作業系統簡介 虛擬記憶體 作業系統的演進與發展 行程管理
Operating System Concepts 作業系統原理 Chapter 3 行程觀念 (Process Concept)
程式語言的基礎 Input Output Program 世代 程式語言 第一世代 Machine language 第二世代
Process Scheduling (行程排班)
计算机应用基础 第二章 操作系统基础 2018/11/16.
操作系统课程的特点: 实践性强(从实践总结出原理)
電腦的種類 超級電腦 (supercomputer) 大型電腦 (Mainframe) 迷你電腦 ( Mini computer)
第一篇 Unix/Linux 操作介面 第 1 章 Unix/Linux 系統概論 第 2 章 開始使用 Unix/Linux
Applied Operating System Concepts
第4章 作業系統的介紹及操作.
第8章作業系統.
第二章 行程管理 朱肇明 資管系 講師 大華技術學院.
作 業 系 統 第三組 楊育翰 顏瑞霖.
第三章 处理机调度与死锁 3.1 处理机调度的层次和调度算法的目标 3.2 作业与作业调度 3.3 进程调度 3.4 实时调度
CHAPTER 8 VIRTUAL MEMORY
作業系統 第八章 記憶體管理.
Operating System Concepts 作業系統原理 CHAPTER 2 系統結構 (System Structures)
Chapter 3 行程觀念 (Process Concept)
Ch 9: Input/Output System 输入/输出系统
Linux CPU的排程 邱姸婕.
作業系統 (Operating System)
第三章 用户接口与作业管理 用户与操作系统的接口 批处理操作系统的作业管理 作业的基本概念:作业、作业步、作业流 交互式系统作业管理
第2章 作業系統面面觀.
Operating System Principles 作業系統原理
第3章 認識處理元.
網路安全技術 OSI七層 學生:A 郭瀝婷 指導教授:梁明章.
Topic Introduction—RMI
第9章 虛擬記憶體 (virtual memory)
Operation System(OS).
第四章 存储器管理 4.1 存储器的层次结构 4.2 程序的装入和链接 4.3 连续分配方式 4.4 基本分页存储管理方式
第四章 存 储 器 管 理 4.1 存储器的层次结构 4.2 程序的装入和链接 4.3 连续分配存储管理方式
RTOS.
中国科学技术大学计算机系 陈香兰 2013Fall 第七讲 存储器管理 中国科学技术大学计算机系 陈香兰 2013Fall.
靜宜大學專用 PowerPoint 檔案 數位教材
Process Description And Control
第六章 記憶體.
CHAPTER 6 Concurrency:deadlock And Starvation
第五章 虚 拟 存 储 器 5.1 虚拟存储器概述 5.2 请求分页存储管理方式 5.3 页面置换算法 5.4 “抖动”与工作集
第一章 操作系统引论 1.1 操作系统的目标和作用 1.2 操作系统的发展过程 1.3 操作系统的基本特性 1.4 操作系统的主要功能
MultiThread Introduction
資料擷取與監控應用實務.
进程调度算法和作业调度算法。 (1) 先来先服务(FCFS)调度算法
Race Conditions and Semaphore
第11章 儲存裝置 與其管理.
Nachos Project Assignment 2
Chapter 4 Multi-Threads (多執行緒).
中正大學,資工系,作業系統實驗室 陽春副教授 羅習五
Presentation transcript:

作業系統簡介

作業系統(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)

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

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

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

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

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 1 Page 10 Page 3 Page frame Page 6 Page frame ? Page Fault CPU Page 9 Page frame 例:CPU需要順序(頁參考順序):1,3,6,9,10,4,7…

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

自我練習 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 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 參考順序 1 2 3 4 5 6 7 PF 0 PF 1 PF2 Page Fault 3 3 3 3 1 1 1 1 7 7 7 7 7 7 7 6 6 1 1 1 4 1 4 4 5 4 5 5 2 5 2 2 4 2 4 4 4 2 2 2 2 2 2 2 6 6 6 3 6 3 3 5 3 5 5 * * * * * * * * * * * * * * * 共發生 page fault (*)= 次 15

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

自我練習 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 (*)= 次

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

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(程序)為優先選擇。

Process Management (程序管理) 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後,到全部完成的平均等待時間。

Process Scheduling 程序排程 代表process進入CPU中開始執行 Non-Preemptive (不可插隊式) FCFS 先來先做 (First Come First Serve) Process # Burst Time Arrived Time 1 10 2 4 3 5 7 p4 p3 P2 p1 ● ● ● ● 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#

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

Process Scheduling 程序排程 Non-Preemptive (不可插隊式) SJF 最短先做 (Shortest Job First) Process # Burst Time Arrived Time 1 10 2 4 3 5 7 p4 p3 P2 p1 ● ● ● ● 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#

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

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

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

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

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

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

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

Dead lock (死結) 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。 鴕鳥法 不解決 關電源重新開機。

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

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

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