狠狠撸

狠狠撸Share a Scribd company logo
OS第一次讀書會
2017/04/07
TA 鄭人瑋
ch1, ch2 作業系統的定義
2
OS定義
? 讓使用者妥善使用軟硬體資源的一種系統程式(System program)
? 不同的對象對於OS的要求不同
? 對於User→重視便利、效能、好用的圖形介面
? 對於Mobile Device→重視方便、效能、省電
? 對於OS本身→電腦資源的分配者,負責管理且公平分配資源。
? System Program:kernel 安裝後就有的,或是協助OS運作的
程式(e.g.檔案總管、小畫家)
? Application Program:kernel之後安裝或協助使用只解決問題
的程式(e.g. LOL、跑跑卡丁車)
3
電腦架構
Users
System or Application Program
Operation System
Hardware
4
磁碟 硬碟
(ROM)
固態
硬碟
主記
憶體
(RAM)
Cache
(快取
緩衝用)
Register
(CPU)
$越貴、速度越快
5
Bootstrap
(存在ROM或是韌體裡)
當電腦啟動時…
載入Kernel
(Running)
Bootstrap程式載入主記憶體(RAM)
Do Process “Init”
Listening Interrupt
(Interrupt Driven)
6
「中斷」服務判別
? 硬體中斷
? Interrupt(e.g. I/O Interrupt)
? 軟體中斷
? trap/exception(e.g. 分數除以0)
? system call→當使用者介面需要使用OS內相關服務時需要(User
Mode→Kernel Mode)
1. File Management(e.g. create/delete a file)
2. Device Management(e.g. I/O request)
3. Information Management(e.g. set time/date)
? 有些介面或裝置會使用DMA(Data Memory Access)允許大量資料轉
移而不需要中斷服務的介入
7
System Call的傳遞方式(1/3)
User Program
?
OS
?
Register
?
? By Register:傳遞快,但一次只能傳一個參數,
超過Register許可值即無法執行。
8
System Call的傳遞方式(2/3)
User Program
?1 ?2 ?3
Address List
?001
?002
?003
? By Adress:需要大量參數傳遞時可用,將所有的
參數位址直接丟給OS去查詢,缺點是比較慢。
OS
?001 ?1
?002 ?2
?003 ?3
9
System Call的傳遞方式(3/3)
User Program
?1 ?2 ?3
Stack(FILO)
?1
?2
?3
? By Stack:將需要的參數丟入一個Stack,每次從Stack pop off
一個參數丟給OS去處裡。
OS
?3
?2
?1
10
ch3 行程(Process)介紹
11
Program? Process? Thread?
? Program→靜態的指令集(file)
? Process→正在執行的指令集,有被載入主記憶體的
Program(executable file)
? I/O-bound process→大部分都再使用I/O的Process (e.g. word
processor)
? CPU-bound process→大部分都需要CPU運算的Process
組成
架構
Stack
(temporary
data)
Heap
(動態記憶
配置)
Data
(全域變數)
Text
(Program)
12
Process狀態及流程
New Terminated
Waiting
RunningReady
13
Pop Off of the Schedule
Push In the Schedule
Wait I/OCompleted
PCB(Process Control Block)
? OS管理Process所使用的記錄表
Process State
Process Number
Process Counter
CPU Registers
CPU Schedule Information
I/O State Management
…
e.g. new, ready, etc.
記錄下一個Process的位址
記錄一些中斷資訊
14
Queuing Diagram(1/2)
很多很多
Processes
Long-Term
Scheduler
Short-Term
Scheduler
Median-Term
Scheduler
Ready Queue CPU
處理事件
結束
挑選Process載入主記憶體
控制CPU在一定時間內只能接幾個Process
(Degree of Multiprogramming)
挑選Process載入CPU
15
Queuing Diagram(2/2)
Short-Term
Scheduler
Ready Queue CPU 結束
I/O Request
Time Slice
Expired
Wait for an
interrupt
I/O Queue
使用
I/O
中斷
發生 PCB產生context switch
16
Process的溝通方式
? Independent Process→獨立不受其他Process影響
? Cooperating Process→用Interprocess Communication(IPC)
溝通
1. Shared Memory
2. Message Passing
(blocking send/receive,
rendezvous)
17
Client-Server之間Process的傳遞(1/3)
? Socket:ip address+port=a socket
? 使用Socket是較底層有效率的,只允許傳遞字串
? 3 ways in socket:
1. Connection-Oriented(TCP)
2. Connectionless(UDP)
3. Multicast Socket(like broacast)
192.168.10.1:8080
192.168.10.1:80
18
Client-Server之間Process的傳遞(2/3)
? Remote Procedure Call(RPC)
? 運用在應用層的服務,將使記remote call內容包裝起來,執行起
來就像是在同一平台上直行程是一樣。
? 分散是網路服務、遠端管理、NFS檔案分享
19
Client-Server之間Process的傳遞(2/3)
Client Server
Client
Program
Server
Program
Client
Stub
(Proxy)
Server
Stub
(Proxy)
Client
Call
Port Map
TCP/IP Layer
1.exactly once(match maker方式)
2.at most once(timestamp方式)
Application Layer Application Layer
upload port info.
XDR轉換(external data
representation)
→避免big/small endian
1
2
connect to
server program
search the port of
server program
3
20
Q & A
21

More Related Content

翱蝉读书会20170407