一、基本概念
一.OS 之定義
OS 為使用者和硬體溝通的介面,並滿足:
1. efficiency (有效率的管理資源)
2. user friendly (友善的使用者介面)
二.job 的種類
1. CPU Bound
需 CPU 之比例大於需 I/O 之比例。例:科學計算
2. I/O Bound
需 I/O 之比例大於需 CPU 之比例。例:列印
(note)CPU 要挑選 I/O Bound 的工作優先執行;I/O 設備要挑選 CPU Bound 工作優先執行。
三.各種 system
1. Batch(批次)
1- 定義:將相同或類似的 job 集中一次讓 CPU 處理。
2- 目標:為了提高 CPU 的效率。
3- 缺點:不適合交談式的環境。例:提款機
2. multiprogramming
1- 定義:允許在 memory 中同時存在多個 process。
2- 目標:為了提高 CPU 的效率。
3- 方法:當某個 process 需等候 I/O 或等候某個事件發生,為了避免 CPU idle,CPU 選擇其他 process 來執行。
3. time sharing
1- 定義:為 multiprogramming 的一種,在選擇 process 時使用 round-robin,即每一個 process 只能用 CPU 一個 time slice,一但時間到了,就切換給其他 process。
2- 優點:適合用在交談式和多使用者的環境。
四.distributed system
1. tightly-coupled
1- 有很多 CPU
2- 共用 memory、OS 和週邊設備
3- CPU 採用 share memory
4- 依 CPU 能力分兩種:
a. symmetric (CPU 能力相同)
b. asymmertric (CPU 能力不同)
2. loosely-coupled
1- 每個 CPU 有自己的 OS、memory 和週邊設備
2- 溝通用網路和 message passing
3- 分兩種:
a.client-server:client 和 server 要求 service
b.peer to peer:在 network 上能力相同,可接受 service,也可提供 service。
五.real time system
1.特徵:在此系統中,對於完成 process 之 time 有嚴格限制。
2.分兩種:
1- soft:確保優先權高之 job 最先被完成。
2- hard:在限時內必完成,否則視為失敗。
二、系統架構
一.處理 I/O 的形式
當某個正在擁有 CPU 資源之 process p,要作 I/O,系統的處理方式:
1.輪詢式(polling)
cons:CPU 會花很多時間檢查 I/O,花較少時間在 process 上。
此法適合慢速 I/O 設備。例:printer,keyboard,mouse。
2.Interrupt I/O
I/O 完成時發出 "I/O complete" 給 OS,以提示進行下一步動作。
3.DMA (Direct Memory Access)
1.DMA controler 負責 CPU 和 memory 間傳輸,不需 CPU 參與監督,CPU 使用率上升。
2.適合高效率的 I/O device。例:disk
3.利用 cycle stealing 技巧。
在 CPU 一定不會 access memory 之 cycle,才作 memory 與 I/O 之間的傳輸。
三、Interrupt 探討
一.Interrupt 分類
1.Interal:CPU 本身執行到不合法的指令時發出。例:除以零。
2.external:CPU 外之 device 發出。例:I/O complete。
3.software:User Program 要 OS 提供服務時,才發出此種中斷。(systme call)
二.Interrupt 與 Trap(含要求 service 和運算有誤)
前者是由硬體發出,後者是由軟體發出。
三.Interrupt 是以階層方式執行的。(priority hierarchy)
四.系統保護
一.保護實施之前提:dual mode
二.I/O 保護:避免 I/O device 被不當使用,將所有 I/O operation 設為特權指令。
三.CPU 保護:避免 CPU 被 Process 無限期佔用。
幫正在使用 CPU 的 Process 設定 timer 倒數,待時間到強制釋放 CPU。
四.Memory 保護:
避免 Process 使用不屬於自己的 memory 空間。使用 base reg 和 limit reg,若存取之 memory address:
1.小於 base reg
2.大於 base reg + limit reg
則視為非法存取。
五.Virtual Mechine
(待續)