720 likes | 976 Vues
第八章 作業系統. 8-1 作業系統簡介 8-2 行程管理 8-3 CPU 管理 8-4 記憶體管理 8-5 設備管理 8-6 檔案管理 8-7 常見作業系統. 8-1 作業系統簡介. 8-1-1 電腦系統架構 8-1-2 作業系統的意義與目的 8-1-3 作業系統的管理功能. 8-1 作業系統簡介. 8-1-1 電腦系統架構 硬體設備 電腦系統的實體資源,其主要部分包括:中央處理器 (CPU) 、主記憶體及輸入輸出設備 (I/O) 等 作業系統
E N D
第八章 作業系統 • 8-1 作業系統簡介 • 8-2 行程管理 • 8-3 CPU 管理 • 8-4 記憶體管理 • 8-5 設備管理 • 8-6 檔案管理 • 8-7 常見作業系統
8-1 作業系統簡介 • 8-1-1 電腦系統架構 • 8-1-2 作業系統的意義與目的 • 8-1-3 作業系統的管理功能
8-1 作業系統簡介 8-1-1 電腦系統架構 • 硬體設備 電腦系統的實體資源,其主要部分包括:中央處理器(CPU)、主記憶體及輸入輸出設備(I/O)等 • 作業系統 控制和管理整個電腦系統的軟體,不僅管理所有硬體資源,也管理所有軟體資源,作業系統軟體包括監督程式、排程程式、控制程式……等 • 系統應用程式 具有特定功能以達到提供例行服務或使用者需求之目的 • 使用者程式 使用者為解決某特定應用需求而開發之程式系統
使用者程式 系統應用程式 回應 需求 作業系統 硬體驅動程式 硬體設備 8-1 作業系統簡介 8-1-2 作業系統的意義與目的 • 扮演使用者與電腦的中介溝通者及資源分配者外 • 具有易升級的特性 • 在整體電腦系統架構中扮演重要之核心角色
8-1 作業系統簡介 8-1-3 作業系統的管理功能 • 行程管理 合理地協調各行程間的執行活動與資源分配,使得各行程均能有效地執行 • CPU管理 根據資源利用原則,採用合理的排程方式進行CPU時間的分配與回收,使CPU能有效執行並合理地滿足各程式的需求 • 記憶體管理 掌握主記憶體空間的分配及使用者資訊,根據程式執行需求及記憶體分配現況,進行主記憶體空間的劃分、配置與回收 • 設備管理 根據設備特點與程式需求採用不同的設備分配與回收策略 • 檔案管理 檔案建立、刪除、讀、寫等動作;負責檔案實際存放空間的配置與回收;檔案名稱及與實際存放空間的映射;提供檔案的保護與維護
8-2行程管理 • 8-2-1 行程的定義 • 8-2-2 行程的狀態 • 8-2-3 行程控制區段 • 8-2-4 行程排程
8-2行程管理 8-2-1 行程的定義 • 正在執行中的程式 • 包含可執行程式、程式執行所需之資料及程式執行內容 • 程式執行過程中需要CPU時間、記憶體、檔案及輸入輸出設備等資源 • 具有動態產生與終止的生命歷程 • 行程也是程式和資料的集合,對於不同的資料,同一個程式會產生不同的執行結果
8-2行程管理 8-2-2 行程的狀態 • 建立 (New): 建立一個初始之程式執行單位 • 預備 (Ready): 行程一旦被建立即處於預備狀態,預備接受資源分配 • 等待 (Waiting): 行程在此狀態即等待某一事件觸發而暫時停止執行 • 中止 (Suspened): 當行程無法立即處理時會進入中止狀態,必須等到中斷處理後才可執行 • 執行 (Running): 行程佔有CPU,並在CPU上執行其程式 • 停止 (Terminated): 行程執行終止,等待系統釋出
8-2行程管理 行程生命狀態圖
8-2行程管理 8-2-3 行程控制區段 (PCB) • 行程控制區段(Process Control Block , PCB)主要是用來描述行程狀態變化過程及紀錄行程的外部特徵和與其他行程的關係 • 行程控制區段資訊可分為三種類型 : • 行程識別 (Process identification) 每個行程都有唯一的識別字,用以區別不同的行程 • 行程狀態資訊 (Process state information) 包含使用者紀錄、控制及狀態紀錄、堆疊指標 • 行程控制資訊 (Process control information) 包含排程及狀態資訊、資料結構、CPU及實際時間的計數、I/O狀態資訊、行程間的聯繫
8-2行程管理 8-2-4 行程排程 (Processing Scheduling) • 行程排程三種排程佇列 : • 工作佇列:包含系統中所有的行程 • 預備佇列:行程存在於主記憶體中,一般使用鏈結串列的方 式,預備並等待處理 • 設備佇列:放置等待執行I/O設備的行程 • 一個新建立的行程進入系統後即置入工作佇列工作排程處理從許多行程中選出一個行程並載入記憶體準備執行置入預備佇列的行程等待系統從記憶體中選出並取得CPU使用權行程繼續執行週期中的動作直到執行結束行程結束所有的佇列及其行程控制區段與資源將會被系統回收
8-2行程管理 行程佇列流程圖
8-3CPU管理 • 採用合理的排程方式進行CPU時間的分配與回收 • CPU排程基本原則: • 高生產力:CPU排程應盡量提高系統的生產量 • 資源均衡性:均衡地分配資源,使CPU與週邊設備盡量都能保 持在「執行」狀態 • 資源公平性:應公平對待所有的行程,任何一個行程的完成都 不能被無限地延遲 • 優先等級:如果系統排程支援優先排程法,則應對優先權較高 的行程提供資源與服務 • 常見之CPU排程演算法: 「先來先服務法」(FCFS) 、「最短工作法」(SJF) 、 「最短剩餘時間 法」(SRTF) 、 「優先權法」(Priority) 、 「循環法」(RR)
8-3CPU管理 • 各排程平均等待時間 • W:平均等待時間 • n:進行排程之行程數 • Ti:回復時間;第i個行程離開CPU的時間 • Ci:CPU時間;第i個行程的CPU分割時間 • Ai:到達時間;第i個行程進入預備佇列的時間
8-3CPU管理 「先來先服務法」(FCFS) 先來先服務法 ( First-Come First-Served Scheduling , FCFS ) 將按 照行程進入預備佇列的先後次序進行選擇,而不會考慮其他因 素 • 優點: FSFC的排程演算法簡單易行 • 缺點: 無法預測各行程的CPU時間,可能使短行程等待長行程 • 請見8-3範例1、2
8-3CPU管理 最短工作法 (SJF) 最短工作法 ( Shortest-Job-First Scheduling , SJF ) 以行程CPU週期 的長短為依據,當CPU有空時即選擇下一個CPU週期最短的行程 ,此法適合用於批次系統,是屬於不可插隊法(nonpreemptive) • 優點: 可將平均等候時間降到最低 • 缺點: SJF偏袒短行程,故可能使長行程長時間處於等待狀態,可能造成無限延遲的現象 • 請見8-3範例3
8-3CPU管理 最短剩餘時間法 (SRTF) 最短剩餘時間法 ( Shortest-Remaining-Time-First Scheduling , SRTF ) 每進來一個行程就檢查所有行程的剩餘所需CPU時間, 剩餘時間最短的行程優先處理,是屬於可插隊法(preemptive) • 請見8-3範例4
8-3CPU管理 優先權法 (Priority) 優先權法 ( Priority Scheduling ) 依照行程之優先權選擇執 行,若優先權相同,則依到達預備佇列的先後次序執行 • 優點: 比較重要的行程確定可優先完成,例如作業系統的行程 • 缺點: Priority會優先處理優先權高的行程,因此可能造成低優先權行程的無限延遲 • 請見8-3範例5
8-3CPU管理 循環法 (RR) 循環法 ( Round-Robin Scheduling ) 是從預備佇列中挑出一 個行程並設定時間,若經過某一固定的時間分片(time slice) 就會發出中斷訊息,將CPU分配給其他尚未執行完成的行 程,此法適用於互動式系統,是屬於可插隊法(preemptive) • 優點: 對於互動式系統提供合理的資源時間及公平的CPU時間 • 缺點: 如何決定適當的時間分片(time slice)。若時間分片太大則會降低效率;若時間分片太小則會增加行程執行轉換( context switching )的次數,且行程的回應時間不佳 • 請見8-3範例6
8-4記憶體管理 • 8-4-1 真實記憶體 • 8-4-2 虛擬記憶體
8-4記憶體管理 • 記憶體管理基本目的: • 提供使用者使用記憶體的方便性 • 充分發揮主記憶體的使用效率 • 主記憶體管理方式: • 真實記憶體 (Real memory) (1) 分區記憶體管理 (2) 可重定位分區記憶體管理 (3) 分頁記憶體管理 • 虛擬記憶體 ( Virtual Memory ) (1) 需求分頁記憶體管理 (2) 分段記憶體管理 (3) 段頁式記憶體管理
8-4記憶體管理- (真實記憶體) 分區記憶體管理 (Partitioned Memory Management) • 將記憶體分割成數個相互獨立的區塊,每一區塊都配置給一個行程位址空間使用 • 滿足多元程式(Mutiprogramming)執行的最簡單方式 • 分區記憶體管理方式: • 靜態分區 ( Static partition ) • 動態分區 ( Dynamic partition )
8-4記憶體管理- (真實記憶體) 分區記憶體管理 靜態分區 ( Static partition ) • 靜態分區是指在處理任何行程前,主記憶體就已經被分割成許多相同大小或不同大小的區塊,區塊大小由作業系統決定 • 一旦行程分配到記憶體後,在整個執行過程中不可再提出記憶體請求 • 適用於對每個行程大小及使用頻率很清楚的情況 • 優點:方法簡單易完成 • 缺點:(1)分割的區塊數固定 (2)相對地可執行的行程數也固定 (3)可能產生「內部碎片」(Internal Fragmentation) • 請見課本範例
8-4記憶體管理- (真實記憶體) 分區記憶體管理 (Con.) 靜態分區範例 若作業系統將主記憶體切割成固定大小200k的區塊,若 有P1、P2分別提出150k、180k的主記憶體請求,則分別 會產生50k、20k的內部碎片
8-4記憶體管理- (真實記憶體) 分區記憶體管理 (Con.) 動態分區 ( Dynamic partition ) • 在開始執行某行程時才分割一滿足需求的記憶體區塊給該行程 • 在執行過程允許行程提出額外的主記憶體空間 • 配置: (1)找到一個未使用且足夠大的區塊 (2)若此區塊比行程所提出的需求大分割 配置給行程的執行區塊 / 殘餘的自由空間 • 回收:將回收區塊與相鄰自由空間合併成一塊大的連續自由空間 • 優點:配置後殘餘的自由空間仍可提供其他行程使用,可提升記 憶體的使用率 • 缺點:可能產生「外部碎片」(External Fragmentation)
8-4記憶體管理- (真實記憶體) 分區記憶體管理 (Con.) 動態分區範例 若作業系統將主記憶體切割成固定大小400k的區塊,若有P1、P2、P3、P4依序提出200k、300k、330k、150k的主記憶體請求,則產生的外部碎片情況如圖所示
8-4記憶體管理- (真實記憶體) 可重定位分區記憶體管理( Relocated Partitioned Memory Management) 具有壓縮(Compaction)功能 指將已配置給行程的記憶體集中移到記憶體的一端,使得零碎的自由 空間可以合併成一塊連續的自由空間 重定位(Relocation) 修改行程執行中與位址相關的項目 • 優點:(1)可避免產生「碎片」(Fragmentation) 的問題 (2)透過記憶體壓縮可以增加記憶體的使用效率 • 缺點:(1)進行記憶體壓縮必須耗費系統時間 (2)執行重定位需要額外的硬體設備 (3)降低執行速度,提高系統成本
8-4記憶體管理- (真實記憶體) 可重定位分區記憶體管理 (Con.) 範例 (a)為某時刻行程A(90K)、B(85K)、C(60K)的記憶體配置情況,當加入 行程D(60K)時由於兩塊零碎的自由空間40K、50K分別皆不足以提供 行程D執行 (b)在可重定位分區記憶體管理中將進行記憶體壓縮 (c)經過記憶體壓縮後,自由空間合併為一塊60K的連續空間,因此可 以配置給需要50K記憶體的行程D使用
8-4記憶體管理- (真實記憶體) 分頁記憶體管理 ( Paged Memory Management ) • 將使用者行程記憶體(邏輯空間)分割成許多大小相同的區塊,每一塊稱為「分頁」(Page) • 將主記憶體(實體空間)也分割成許多和頁大小相同的單位,每一單位稱為「頁框」( Page Frame) • 需要透過分頁對映表進行分頁與頁框的對映 • 邏輯位址(PA)包含:「頁號」(P)及「頁偏移量」(d)兩部分 • 根據頁號指向分頁對映表(PMT)之相對索引值,則可得到該頁號之「基準位址」(b) PA = P + d
邏輯位址(LA) CPU P1 d1 P2 d2 P d (2) 實體位址(PA) P1 d1 P2 d2 P d (3) (1) + 分頁表(PMT) P1 b1 b2 P2 (2) 8-4記憶體管理- (真實記憶體) 分頁記憶體管理 ( Con. ) 頁號為P2之頁偏移量為d2,根據頁號對映至分頁表取得該頁之基準 位址(b2),可得到該分頁相對之實體位址( Physic address , PA) PA = b + d
8-4記憶體管理- (虛擬記憶體) • 虛擬記憶體 ( Virtual Memory ) 為使行程的位址空間(邏輯空間)可以大於主記憶體(實體 空間),在執行使用者程式的過程中,僅將執行到的部 分程式載入,執行完畢即釋出,如此一來程式執行的空 間不會受到主記憶體大小所限制,想像是有一個可無限 使用的記憶體空間,稱為虛擬記憶體 ( Virtual Memory)
8-4記憶體管理- (虛擬記憶體) 需求分頁記憶體管理 ( Demand-paged Memory Management ) • 和分頁記憶體管理方式類似 • 將使用者行程記憶體(邏輯空間)分割成許多大小相同的區塊,每一區塊稱為「頁」(Page) • 將主記憶體(實體空間)也分割成許多和頁大小相同的單位,每一單位稱為「頁框」( Page Frame) • 透過分頁對映表(PMT)將虛擬位址對應到實體位址 • 和分頁記憶體管理最大的不同: 需求分頁記憶體管理在執行時僅載入部分有需要的分頁,而非一次載入所有分頁 • 程式執行的空間不會受到主記憶體大小所限制
8-4記憶體管理- (虛擬記憶體) 分段記憶體管理 ( Segmented Memory Management ) • 和分頁記憶體管理方式基本觀念是相同 • 分段記憶體管理是以「段」(Segment) 為單位,段的長度不似分頁為固定的,可以動態增加段的長度 • 可避免固定分頁大小造成之內部碎片( Internal Fragmentation ) 段頁式記憶體管理( Segmented and Demand-paged Memory Management) • 結合分頁記憶體管理和分段記憶體管理之優點 • 利用分段方式:處理獨立之執行程式 • 透過分頁方式:管理主記憶體空間,提升主記憶體的使用率
主記憶體空間 分頁表(PMT) 分段表(SMT) P1分段表 P2分段表 ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ ˙ 8-4記憶體管理- (虛擬記憶體) 段頁式記憶體管理示意圖 系統會為每個行程建立一個分段表和若干個分頁表,某行程的 分頁表個數等於該行程之分段數目,而分頁表項目則對映到相 對的主記憶體區塊
8-5設備管理 • 8-5-1 獨享設備的分配 • 8-5-2 共享設備的分配
8-5設備管理 設備管理 屬於電腦系統邏輯I/O的基本功能,包括「獨享設備」 (dedicated device) 和「共享設備」(shared device) 的資 源分配 • 獨享設備:在同一時間一次只能被一個使用者使用 例如:印表機 • 共享設備:可以同時被數個使用者使用 例如:磁碟
8-5設備管理- (獨享設備) 8-5-1 獨享設備的分配 • 靜態分配: 使用者行在被置入主記憶體執行前進行分配,行程在獲得某設備使用權後進入執行,並一直獨占此設備,直到行程結束歸回系統 • 動態分配: • 行程在執行過程中有需要使用某設備時先提出需求(request),取得使用權後方可執行 • 使用結束立即歸回系統 • 可提高獨享設備的使用效率,也增加了系統複雜性 • 若分配不當可能會造成系統死結 (deadlock)的現象 • 獨享設備大多採用動態分配方式,而動態分配可透過虛擬設備(virtual device)使用SPOOLing的技巧將獨享設備轉換成可共享的設備
8-5設備管理- (獨享設備) SPOOLing • 線上同時週邊處理(Simultaneous Peripheral Operations On Line) • 利用一可共享且具有高速大容量的區塊設備(例如:硬碟)來模擬獨享設備的操作 • 使一個獨享設備變成可多重平行使用的虛擬設備 • 將獨享設備轉換成邏輯上的共享設備 • 在SPOOLing系統中各行程實際上使用的是虛擬設備,而非直接使用週邊設備 • 由於主記憶體和虛擬設備間的資料傳送速度比主記憶體和週邊設備的資料傳送速度來的快,因此也減少了使用者行程的等待時間 • 主記憶體和虛擬設備間的資料傳送與主記憶體和週邊設備的資料傳送可平行處理,更顯出SPOOLing系統具有高度的平行處理特性
虛擬設備 SPOOLing 分配程式 磁碟 主記憶體 查詢 SPOOLing目錄 檔案1 檔案1 磁碟驅動行程 印表機驅動行程 檔案2 Happy 檔案n 8-5設備管理- (獨享設備) SPOOLing 範例 • 以列印工作為例,所有行程的列印資料會以檔案形式先暫存在磁碟中,形成先進先出(FIFO)佇列 • SPOOLing分配程式會以循環的方式不斷地查詢SPOOLing目錄,只要SPOOLing目錄中有列印檔案,即呼叫磁碟驅動行程將一個列印檔案載入主記憶體,再呼叫印表機驅動行程將主記憶體中的檔案內容送至印表機印出 • 原先為獨享設備的印表機即可成為可共享之輸出設備
8-5設備管理- (共享設備) 先來先服務法 ( FCFS) 按照行程提出請求的順序提供磁碟服務 例如:佇列順序:95 , 180 , 38 , 120 , 12 , 125 , 64 , 67 磁碟起始:55
8-5設備管理- (共享設備) 最短尋徑法 (SSTF) • 以尋徑最佳化為出發點,優先選擇距離磁頭位置最近的請求 • 優點:使得靠近磁頭位置的請求迅速得到服務,防止磁頭大幅度來 回振動,可改善對行程的平均回應時間 • 缺點:服務執行集中在中間部分,偏離磁頭位置愈遠的行程回應會愈慢, 甚至會造成「長時間延遲」(starvation) 例如:佇列順序:95 , 180 , 38 , 120 , 12 , 125 , 64 , 67 磁碟起始:55
8-5設備管理- (共享設備) 掃描法 (SCAN) • 先往內側依序執行存取請求,一直到最內側位置為0的時候,方才改變方向往外側移動,並依序服務該方向上之存取需求 • 優點:克服了SSTF排程法集中於中間部分而怠慢兩側的情 況,改善了存取服務的平均回應時間 例如:佇列順序:95 , 180 , 38 , 120 , 12 , 125 , 64 , 67 磁碟起始:55
8-5設備管理- (共享設備) 觀察法 (LOOK) • 類似SCAN排程法,其差異在於SCAN排程法會往內側移動到0時才改變方向,而LOOK排程法則是往內側移動到存取請求最小的位置(不需回到0)後即改變方向並依序服務存取需求 • 使用LOOK排程法可減少回歸到最內側(位置為0)所耗費的時間 例如:佇列順序:95 , 180 , 38 , 120 , 12 , 125 , 64 , 67 磁碟起始:55
8-5設備管理- (共享設備) 循環掃描法 (C-SCAN) • 先從磁頭位置往外側依序執行存取請求,一直到最外側時,則回到最內側並往外側方向依序執行尚未服務之存取需求 例如:佇列順序:95 , 180 , 38 , 120 , 12 , 125 , 64 , 67 磁碟起始:55
8-5設備管理- (共享設備) 循環觀察法 (C-LOOK) • 類似C-SCAN排程法,其差異在於C-SCAN排程法會往外側到端點再回到內側之端點重新執行服務;而C-LOOK則是往外側移動到存取請求最大的位置(不需到端點)後回到存取請求最小位置(不需回到0)並往外側方向依序執行尚未服務之存取需求 • 減少延伸到最外側(位置199)及回歸到最內側(位置0)所耗費的時間 例如:佇列順序:95 , 180 , 38 , 120 , 12 , 125 , 64 , 67 磁碟起始:55
8-6檔案管理 • 8-6-1 檔案系統功能與結構 • 8-6-2 檔案類型與結構 • 8-6-3 檔案目錄的結構與管理 • 8-6-4 檔案的保護與保密
8-6檔案管理 8-6-1 檔案系統功能與結構 • 作業系統將電腦系統中的程式、訊息組織成檔案進行管理,負責檔案管理的系統稱為檔案系統 • 檔案系統的基本目標為提供使用者使用檔案的方便性 • 檔案系統的功能包括: (1)檔案實際存放空間的配置與回收 (2)檔案名稱及與實際存放空間的映射 (3)提供檔案的共享、保護與保密 (4)達到使用者要求的檔案操作(建立/讀/寫/刪除….等)
8-6檔案管理 檔案系統架構圖 其中檔案的存取方式會依不同的檔案實際結構的不同而有所差異
8-6檔案管理 8-6-2 檔案類型 • 常見的電腦檔案包括:資料檔、全文檔、執行檔、批次檔 • 資料檔: 通常是由一群格式相同但內容不同的記錄(record)所組成,且任何資料檔所包含的記錄數量是不固定的 • 全文檔: 主要包括文書檔和原始程式檔,其內容是完全由字元所構成 • 執行檔: 由一連串機器碼指令所組成,構成可處理特定工作或問題的程式 • 批次檔(batch file) : 內容包括命令 (command) 和執行檔的主檔名,通常用來設定電腦系統的使用者環境或簡化執行程式的程序
8-6檔案管理 8-6-2 檔案結構 • 檔案實際結構是指檔案在外部儲存體上存取的組織方式 • 每一個檔案在邏輯上是連續的訊息集合,但實際存放在外部儲存體上並不一定是連續空間 • 三種基本的檔案組織: • 循序存取組織 ( Sequential ) • 直接存取組織 (Direct) (1)目錄法 (2)雜湊法 • 索引循序組織 ( Indexed Sequential )