第4章 作業系統 (Update)1. 第4章 作業系統
作業系統簡介
CPU排班
记忆体管理
档案系统
作業系統簡介
電腦系統:硬體、作業系統、應用軟體、使用者
使用者 使用者 使用者 使用者
…
1 2 3 n
編譯程式 組譯程式 文字編輯程式 … 資料庫系統
系統及應用程式
作業系統
電腦硬體
作業系統:負責管理電腦裡的硬體及週邊設備,扮演介
於使用者與電腦硬體的中間人
4-2
1
2. 作業系統的工作
4-3
作業系統的主要工作
中央處理器管理
把處理器有效地安排給各個程序使用
记忆体管理
妥善分配記憶體給各個程序使用
檔案管理
讓使用者安全存取及控制檔案
週邊設備管理
管理各項週邊系統,提供簡易使用者介面程式
程序管理
依據程序控制表安排資源
4-4
2
3. Components of an operating system
4-5
作業系統的演進:主機型系統
多元程式規劃系統(multiprogramming)
利用多元程式規劃增加CPU使用率
程序:一個程式被載入記憶體中並且執行時,就
稱為程序
程序的狀態:
新產生 程序正在產生中。
程序得到資源正在執行。
執行
程序等待某個事件發生。
等待
程序一切已準備就緒。
就緒
程序已完成。
結束
4-6
3
4. 程序状态关係图
進入 離開
新產生 結束
中斷
就緒 執行
排班程式分派
I/O或事件等待
等待
I/O或事件完成
只要程序進入等待的狀況時,CPU就轉移到其他的程序
上運作;如果原本在等待的程序已經變成就緒時,就有
機會從新得到CPU的資源
4-7
作業系統的演進:主機型系統
分時系統
採用時間觸發, CPU輪流計算各個程序,時間一到就把CPU交給
下一個程序使用.可以讓多個使用者共用一部電腦;也能在只
有一個處理器的個人電腦上, 同時開多個視窗來完成度同的工作
分時系統的特點:
同時性:可同時有若干個使用者連結到同一計算機進行運算
獨立性:不同使用者之間不會相互干擾
即時性:每一個使用者都可以即時得到計算機的回應, 讓大
家同時都認為自己與電腦正在交談,沒有間斷
4-8
4
5. 多元程式規劃系統 vs.分時系統
多元程式規劃系統 事件觸發
(event-driven)
分時系統 時間觸發 (time-driven)
4-9
作業系統的演進:個人電腦系統
個人電腦設計方向:增進使用者操作方便,並且
提升CPU的回應速度,避免使用者等待
個人電腦系統的演進:
早期:DOS文字指令
第一個圖形化介面:Mac IS
最多人使用:Windows
免付費作業系統:Linux
4-10
5
6. 作业系统的演进:手持系统
手持系統:個人數位助理,較手提式電腦輕薄短小
手持式系統的特點:
記憶體容量小:必須有較好的记忆体管理方式
處理器運算緩慢:為使電池使用時間較長,故運算速度不可能
太快(電腦運算速度愈快愈耗電),因此必須巧妙設計作業系
統或應用程式
顯示螢幕小:使用者介面設計必須格外留意好讓使用者看到
較多畫面
4-11
CPU排班
多元程式規劃作業系統: CPU排班
CPU排班:保持隨時都有一個程序在執行,以提高CPU的使
用率
CPU排班的五個決策時間點:
程序新產生時
程序從執行狀態變等待狀態(譬如有I/O要求)
程序從執行狀態變就緒狀態(譬如有中斷發生時)
程序從等待狀態變就緒狀態(譬如I/O要求得到回應)
程序終止結束
4-12
6
7. 五个必须颁笔鲍排班的时间点
1 進入
離開
新產生 結束
3中斷
5
就緒 執行
排班程式分派
I/O或事件等待
2
等待
I/O或事件完成
4
4-13
CPU排班
不可搶先排班 (nonpreemptive)
確保已經享有CPU資源的程序能夠一直執行,不
管其他程序的狀態,直到享有CPU資源的程序自
己跳到非執行的狀態才進行排班
可搶先排班(preemptive)
時時刻刻注意程序的狀態,如果有程序進入就緒
狀態則進行排班,比較正在使用CPU的程序與進
入就緒狀態的程序的優先順序,優先順序高者可
先使用CPU
4-14
7
8. 颁笔鲍排班演算法:先到先处理
先到先处理:採用先進先出的方式(first in first
out),服務先到的程序
舉例:
程序 抵達順序 所需時間(毫秒)
P1 1 15
P2 2 3
P3 3 3
先到先处理之甘特圖(gantt chart):
P1 P2 P3
0 15 18 21
4-15
先到先处理(First Come First Serve)
各程序等待時間
程序 等待時間(毫秒) 平均等待時間(毫秒)
P1 0
P2 15
P3 18 11
若抵達先後順序改變如下:
程序 抵達順序 所需時間(毫秒)
P1 3 15
P2 1 3
P3 2 3
4-16
8
9. 先到先处理
則甘特圖如下所示:
P2 P3 P1
0 3 6 21
平均等待時間如下所示:
程序 等待時間(毫秒) 平均等待時間(毫秒)
P1 6
P2 0
P3 3 3
“先到先处理”的缺點:可能使短程序等待長程序
4-17
最短工作先处理(Short Job First)
舉例
程序 所需時間(毫秒)
P1 7
P2 3
P3 5
甘特圖如下所示:
P2 P3 P1
0 3 8 15
4-18
9
10. 最短工作先处理
各程序的等待時間
程序 等待時間(毫秒) 平均等待時間(毫秒)
P1 8
P2 0
P3 3 3.67
不同的抵達順序及其平均等待時間
程序先後順序 平均等待時間
P1 → P2 → P3 5.67
P1 → P3 → P2 6.44
P2 → P1 → P3 4.33
P2 → P3 → P1 3.67
P3 → P1 → P2 5.67
P3 → P2 → P1 4.33
4-19
最短工作先处理
優點:可將平均等候時間降到最低
缺點:偏袒短程序,故可能使長程序長時間處
於等待狀態,可能造成無限延遲的現象
4-20
10
11. 優先權排班(Priority Scheduling)
優先權如下
程序 優先權 所需時間(毫秒)
P1 3 7
P2 1 5
P3 2 4
甘特圖如下
P2 P3 P1
0 5 9 16
4-21
優先權排班
優點:
比較重要的程序確定可優先完成,例如作業系
比較重要的
統
缺點:
Priority會優先處理優先權高的程序,因此可
能造成低優先權程序的無限延遲
4-22
11
12. 依序循環排班(Round Robin Scheduling)
依序循環排班方式在使用時,先預設好經過多
少時間CPU就該切換執行下一個程序,也就是設
定好間隔時間(time slice)。所有的程序放在
新進先出的佇列裡面,首先CPU排班從佇列裡挑
第一個程序執行,然後開始進行倒數,時間到
的時候就得讓CPU處理佇列裡下一個程序。
4-23
依序循環排班
範例
程序 所需時間 抵達順序(毫秒)
P1 17 1
P2 3 2
P3 8 3
甘特圖:間隔時間=5毫秒
P1 P2 P3 P1 P3 P1 P1
0 5 8 13 18 21 26 28
4-24
12
13. 记忆体管理
记忆体管理:
记忆体管理:把記憶體分割成各個區塊,以供各程序或各使
用者使用
記憶體位址定位:把程序所使用的邏輯位址與記憶體的實際
位址作映射
記憶體保護與共享:程序之間所使用的記憶體不能相互干擾,
可是作業系統的部分要讓各個程序共享
4-25
单一连续记忆体配置方式
記憶體被分成三個區塊:作業系統存放、應用程
式佔用、未使用區塊
作業系統佔用
低位址
程式可以佔用 應用程式佔用
高位址 實際未用
4-26
13
14. 单一连续记忆体配置
利用界線暫存器和基底暫存器來提供記憶體保護,防止
使用者破壞作業系統
界線 基底
暫存器 暫存器
邏輯位址 是 實際位址
+ 記憶體
CPU <
否
中斷:錯誤處理
4-27
记忆体管理- 真實記憶體
分區记忆体管理 (Partitioned Memory Management)
將記憶體分割成數個相互獨立的區塊,每一區塊都配置
給一個程序使用
滿足多元程式(Mutiprogramming)執行的最簡單方式
分區记忆体管理方式:
靜態分區 ( Static partition )
動態分區 ( Dynamic partition )
4-28
14
15. 记忆体管理- 真實記憶體
分區记忆体管理 (Partitioned Memory Management)
4-29
记忆体管理- 真實記憶體
分區记忆体管理
靜態分區 ( Static partition )
靜態分區是指在處理任何程序前,主記憶體就已經被分割
成許多相同大小或不同大小的區塊,區塊大小由作業系統
決定
優點:方法簡單易完成
缺點:(1)分割的區塊數固定,相對地可執行的程序數
也固定
(2)可能產生「內部
碎片」(Internal
Fragmentation)
4-30
15
16. 记忆体管理- 真實記憶體
分區记忆体管理
動態分區 ( Dynamic partition )
在開始執行某程序時才分割一滿足需求的記憶體區塊給該
程序
配置:(1)找到一個未使用且足夠大的區塊
(2)若此區塊比程序所提出的需求大 分割成
配置給程序的執行區塊 與 殘餘的自由空間
回收:將回收區塊與相鄰自由空間合併成一塊大的連續自
由空間
優點:配置後殘餘的自由空間仍可提供其他程序使用,可
提升記憶體的使用率
缺點:可能產生「外部碎片」(External Fragmentation):
主記憶體中存在許多不連續的自由空間
4-31
记忆体管理- 真實記憶體
分區记忆体管理
動態分區範例
若作業系統將主記憶體切割成
固定大小400k的區塊,若有程
序P1、P2、P3、P4依序提出
200k、300k、330k、150k的主
記憶體請求,則產生的外部碎
片情況如圖所示
4-32
16
17. 记忆体管理- 真實記憶體
可重定位分區记忆体管理 ( Relocated Partitioned Memory Management)
具有壓縮(Compaction)與重定位(Relocation)的功能
將已配置給程序的記憶體集中移到記憶體的一端,使得零
碎的自由空間可以合併成一塊連續的自由空間
優點:(1)可避免產生「碎片」(Fragmentation) 的問題
(2)透過記憶體壓縮可以增加記憶體的使用效率
缺點:(1)進行記憶體壓縮必須耗費系統時間
(2)降低執行速度,提高系統成本
4-33
记忆体管理- 真實記憶體
可重定位分區记忆体管理
範例
(a)為某時刻程序A(90K)、B(85K)、C(60K)的記憶體配置情況,當加入
行程D(60K)時由於兩塊零碎的自由空間40K、50K分別皆不足以提供
行程D執行
(b)在可重定位分區记忆体管理中將進行記憶體壓縮
(c)經過記憶體壓縮後,自由空間合併為一塊60K的連續空間,因此可
以配置給需要60K記憶體的行程D使用
4-34
17
18. 记忆体管理- 真實記憶體
分頁记忆体管理 (Paged Memory Management )
將程式所需的記憶體大小(邏輯空間)分割成許多大小相同的區塊,每
將程式所需的記憶體大小( 邏輯空間)
一塊稱為「分頁」(Page)
一塊稱為「分頁」(Page)
將主記憶體(實體空間)也分割成許多和頁大小相同的單位,每一單位
將主記憶體( 實體空間)
稱為「頁框」(Frame)
稱為「頁框」(Frame)
4-35
覆蓋
主要的部分會一直存放在記憶體中,只有在特定時後才
需要用到的指令或資料則只有用到時才放進記憶體中,
其他時候則被覆蓋掉
使用覆蓋的範例
符號表 20K
一般常式 30K
重疊驅動
10K
程式
80K 第1次處理 第2次處理 70K
4-36
18
19. 置换
利用磁碟當作備分的儲存體,用以置换兩個程序
作業系統
程序
1換出 P1
2換入 程序
P2
使用者
空間
備份儲存體
主記憶體
4-37
记忆体管理- 虛擬記憶體
虛擬記憶體 ( Virtual Memory )
為使程式的位址空間(邏輯空間)可以大於主記憶體(實體空
間),在執行程式的過程中,僅將執行到的部分程式載入,
執行完畢即釋出,如此一來程式執行的空間不會受到主記
憶體大小所限制,想像是有一個可無限使用的記憶體空間
,稱為虛擬記憶體
4-38
19
20. 档案系统
档案系统負責存取和管理檔案資料
档案系统的功能包括:
(1)檔案實際存放空間的配置與回收
(2)檔案名稱及與實際存放空間的映射
(3)提供檔案的共享、保護與保密
(4)達到使用者要求的檔案操作(建立/讀/寫/刪除….等)
档案系统的重要屬性:
名稱:讓使用者辨別不同的檔案
識別符號:獨一無二的標籤,讓作業系統辨別檔案
型態:顯示檔案的類型
位置:標示出檔案所在的磁碟及目錄位置
大小:顯示檔案目前的大小
時間日期:顯示檔案建立日期、修改日期、最後開啟日期
等
4-39
檔案管理
檔案類型
常見的電腦檔案包括:資料檔、全文檔、執行檔、批次檔
資料檔:
通常是由一群格式相同但內容不同的記錄(record)所組成,且
任何資料檔所包含的記錄數量是不固定的
全文檔:
主要包括文書檔和原始程式檔,其內容是完全由字元所構成
執行檔:
由一連串機器碼指令所組成,構成可處理特定工作或問題的
程式
批次檔(batch file) :
內容包括命令 (command) 和執行檔的主檔名,通常用來設定
電腦系統的使用者環境或簡化執行程式的程序
4-40
20
21. 档案的基本操作
档案的基本操作
建立檔案
寫入檔案
讀取檔案
刪除檔案
目錄結構必須支援的功能
搜尋
建檔
刪除檔名
更改檔名
4-41
目錄結構:單層目錄
同一個目錄下不能有兩個同樣檔名的檔案
4-42
21
22. 目录结构:双层目录
每個使用者的目錄結構相似
開啟檔案時,只會搜尋使用者自己的目錄
主檔目錄 user1 user2 user3 user4
使用者 home- gam tem home- home- gam
test test test data mail
目錄 work e p work work e
4-43
路徑
絕對路徑:root/user1/homework/hw1.doc
相對路徑:/homework/hw1.doc
4-44
22