Please enable JavaScript.
Coggle requires JavaScript to display documents.
OS chapter3 - Coggle Diagram
OS chapter3
3.1 行程的觀念
行程
行程不只有程式碼
還有程式計數器
用來紀錄下一個要執行指令的位址
另外還有暫時性資料的堆疊
function參數
返回位址
區域變數等
行程也包含堆積
是動態記憶體
程式本身並非行程
程式是一個被動個體.exe
而行程是一個主動個體
當程式載入記憶體時
程式變為行程
行程狀態
有下列幾種:
新產生(new)
執行(running)
在CPU中時
等待(waiting)
產生子行程時
就緒(ready)
在ready queue中時
結束(terminated)
時段中止
行程控制表PCB
儲存下列資訊:
行程狀態
new.running.waiting等
程式計數器
指明下一段要執行指令的位址 ex:0x87
CPU暫存器
數量跟類別因電腦架構而異
包含 累加器 索引暫存器 堆疊指標 狀況代碼等
使程式能在中斷後繼續執行
CPU排班法則相關資訊
包含行程priority 排班佇列等
記憶體管理資訊
包含基底暫存器 限制暫存 分頁表等
會計資訊
包含CPU實際時間的使用數量 時限 帳號 工作 行程號碼等
輸出入狀態資訊
配置給行程的輸出入裝置
包含開啟檔案的串列等等
執行緒
單執行緒程式只允許行程執行一個任務
3.3 行程的操作
行程的產生
行程使用行程識別碼(pid)
辨別行程
pid是唯一的
用來作為存取核心內行程的各種屬性
當行程產生一個子行程時
會有以下操作:
執行方面
父行程等子行程做完再動
父行程跟子行程一起動
使用新行程記憶體空間的方法
子行程繼承父行程
兩者的資料跟程式一樣
子行程有另外一個程式
UNIX指令
fork()產生新行程
exec()載入新行程 替換掉原本的
wait()把自己從ready queue中移出
行程的結束
當行程執行完後
會呼叫exit()
所有資源 包括 實體記憶體 虛擬記憶體 檔案等
將會被OS回收
當子行程結束後 父行程還沒呼叫wait()
稱為殭屍zonbie行程
當子行程依然在執行
而父行程沒呼叫wait()就結束
則稱為孤兒orphan行程
只有父行程可以強制停止子行程
Termit=nateProcess()
父行程可以有以下理由把子行程砍掉:
子行程超過資源配給量
指派給子行程的工作已不需要
父行程結束
而OS不允許father結束son繼續執行(串接式結束)
3.2 行程排班
排班佇列
行程進入系統時
被存放在工作佇列之中
位於主記憶體內且就緒等待執行的行程
保存在就緒佇列(ready queue)中
在就緒佇列中等待直到被執行或分派
執行後可能會有下列事件:
行程可發出I/O要求然後至於一個I/O佇列中
行程可產生出一個新的子行程並等待其結束
行程可以強制脫離CPU 然後回到ready queue中
排班程式
長程排班程式從行程池中選出行程
然後載入記憶體
呼叫次數較少
短程排班程式從記憶體中選出要給CPU的行程
呼叫次數較多
長程排班程式的分類
I/O傾向行程
做I/O時間比CPU計算多
CPU傾向行程
做計算比I/O多
混合行程
1.2皆有缺點 混合互相補足
內容轉換
當中斷發生時
系統需要儲存行程的內容
此時就需要用到PCB
不論在核心模式或是user mode
皆使用state save . state restore
把舊的行程儲存起來
載入新的PCB
此動作稱為內容轉換
3.4 行程間通訊
行程分為獨立跟合作兩種
獨立行程
跟其他行程不共用資源
且不會被其他人影響
合作行程
跟獨立行程相反
作業系統需要合作行程的理由:
資訊共享
users可能會存取同一個file
加速運算
把行程分成小工作
丟給多個處理器一起做
模組化
把系統功能分到幾個小行程
方便性
讓single user也能同時執行多樣工作
例如同時玩遊戲跟聽歌
合作行程需要interprocess communication(IPC)
互相交換資料
有兩個模式:
共用記憶體
就是存取同一記憶區塊
只有建立記憶區塊時需要呼叫核心
通常OS不允許行程存取別人的記憶體
所以需要雙方都同意打破此限制
訊息傳遞
使用訊息佇列傳遞訊息
少量訊息傳遞很有用
但需要靠核心介入
所以速度較慢
訊息傳遞設施會提供兩種方法
send().receive()
製作方法
直接或間接聯繫
直接聯繫
1 more item...
間接聯繫
1 more item...
同步或非同步的聯繫
等待傳送
1 more item...
非等待傳送
1 more item...
等待接收
1 more item...
非等待接收
1 more item...
3.自動或外在緩衝作用
緩衝區大小分為:
3 more items...