Please enable JavaScript.
Coggle requires JavaScript to display documents.
連結與載入, 作業系統, 檔案系統, 巨集 (巨集處理器動作, 巨集處理器簡介, 演算法), 形程管理, 使用者介面, 記憶體管理, 輸出入系統 -…
連結與載入
連結器
動作
消除外部引用
讓程式接近可執行狀態
區段合併
內文段(.text)
資料段(.data)
BSS段
更新符號表
修改符號表紀錄
將目的檔連結成
可執行檔
函式庫
動態函式庫
連結
動態連結
函式庫
不必連結
透過動態連結器
尋找、連結函式庫
不用全部載入
節省記憶體
優點
節省記憶體
節省連結時間
可抽換函式庫
缺點
可能造成 DLL hell 困境
函式庫有錯、不相容
執行程式錯誤
靜態連結
連結器
將所有函式庫連結到執行檔
載入器
演算法
將各段載入到
記憶體中
利用修正紀錄
修改記憶體內容
設定程序記數器
開始執行
作業系統
執行緒 : :warning:
定義
輕量級行程
會共用記憶體空間
切換只需保存暫存器
比較行程
行程
不同記憶體空間
在記憶體單元中 MU
行程與記憶體空間
獨立
擁有記憶體映射表
行程切換也必須更換
消耗時間
執行緒
共用記憶體空間
不需更換映射表
切換動作迅速
臨界區間
修改共用變數的
程序區段
競爭狀況
不確定的情形
死結問題
兩者互相等待
永遠無法完成
記憶體管理
用途
提高電腦效率
保護電腦不被侵害
C語言
分配 malloc()
回收 free()
分配策略
First Fit 最先符合法
串列開頭尋找
足夠大的區塊
分配該程序
Next-fit 下一個符合法
使用環狀串列結構
每次從上一次搜尋停止的點搜尋
足夠大的區塊
分配該程序
Bast-Fit 最佳符合法
大小最大的區塊
分配該程序
留下最大剩餘區塊
給其他程序
Worst-Fit 最差符合法
從頭到尾搜尋整個串列
將大小最接近
分配該程序
堆積空間不足 :warning:
記憶體聚集
記憶體重新搬動
將分散小型可用區塊聚集為
大型可用區塊
再試圖分配給使用程序的方法
代價高
耗費大量時間搬移的記憶體
垃圾蒐集
利用程序回收記憶體
不需要由程序主動釋放記憶體
在記憶體不足啟動
蒐集沒被指向的記憶體區塊
標示可用區塊
MMU硬體
重定位暫存器
基底界線暫存器
分段表
分頁表
程序、執行黨、行程
程序
編輯器所撰寫的檔案
執行黨
程序透過編譯、組譯
轉成可執行黨
行程
'將執行黨載入到
記憶體
來執行
利用輸出入空檔切換行程
CPU快
輸出入占用時間長
透過空檔挪給行乘用
不正常行成
無窮迴圈
排成方法 :warning:
基本
先做排程 FCFS
最短工作優先排程 SJF
最短剩餘優先排程 SRF
優先權牌程
循環分時牌程 RR
綜合姓
多層柱列排程
多層反饋鑄列排程
循環分時排程
重要性
最常使用
方法
分配時間片段T
設定T時間後發生時間中斷
再將CPU控制權交給該行程
時間片段T用盡後
中斷發生
取回CPU控制權
切換下一個行程
1 more item...
簡介
使用者
方便使用電腦
程序設計師
方便寫程序
模組
檔案系統
使程式師與使用者
輕易存取
資料
不需考慮不同裝置細節
程式師
透過「檔案輸出入函數」
存取檔案
使用者
透過「命令列」「視窗介面」
存取檔案
輸出入系統延伸
針對永久儲存裝置設計
巨集
巨集處理器動作
展開
參數取代
巨集參數取代為
呼叫參數
標記編號
避免重複
巨集處理器簡介
避免重複撰寫程式的工具
程式編譯前
將程序巨集展開
再交給編譯器、組譯器處理
演算法
第一輪
定義巨集
內容儲存到記憶體中
第二輪
展開巨集
進行參數取代與
標記編號
形程管理
讓任何程序能
輕易執行
不受干擾
使用者介面
早期透過命令列介面
以指令使用電腦
視窗介面
逐漸取代
成為主要使用者介面
提供程式師與使用者
方便操作環境
記憶體管理
打造
方便記憶體配置的環境
程序需要記憶體時
透過系統呼叫
獲得記憶體空間
輸出入系統
輸出入裝置包裝成
系統函數
不用面對
複雜多樣的裝置