OS
程式一開始只載入它所需要的分頁到實體記憶體
懶惰置換程式(lazy swapper):當需要某一頁時,將該頁置換進來
分頁錯誤(page-fault)
參考之區域性(locality of reference):最近剛剛被引用過的一個內存位置容易再次被引用
有效存取時間(effective access time):(1-p)* ma+p*分頁錯誤的時間
以磁碟輸入/輸出作為置換空間,通常要較以檔案系統處理快
寫入時複製(Copy-on-Write):一般來說fork()讓父行程與子行程在一開始分享共同的分頁
vfork():不使用寫入時複製,所以必須注意子行程會不會修改父行程的位址空間
過度配置(over-allocating):當每個分頁本來需要10個欄,但有5個欄用不到,因此在40個欄的記憶體中,我們執行8個行程,但任何一個行程可能突然需要它原本的10個分頁,導致欄不足
基本分頁替換
修改位元/髒位元(modify bit/dirty bit)
欄的配置演算法(Frame-allocation algorithm)
分頁替換演算法(Page-replacement algorithm)
FIFO演算法
最佳分頁替換(otimal algorithm)
LRU分頁替換(Least Recently Used Algorithm)
LRU近似分頁替換法(LRU Approximation Algorithms)
技術基礎分頁替換(Counting Algorithms)
頁緩衝演算法(Page-Buffering Algorithms)
每個行程必須配置一個最少量的欄數
配置演算法
全體和區域配置
不一致的記憶體存取(NUMA,non-uniform memory access)
輾轉現象
優先權替換演算法(priorty replacement algorithm)
局部區域模式(locality model)
工作組模式(working-set model)
分頁錯誤頻率(Page-Fault Frequency)
工作群組與分頁錯誤
原本每次檔案被讀取時,需要一次系統呼叫和磁碟的存取,記憶體對映檔案將檔案I/O視為經常性的記憶體存取
共用記憶體實際上以記憶體對映檔案來製作
記憶體對映I/O(Memory-Mapped I/O):使用記憶體對映到裝置暫存器,適合快速回應的裝置(例如:螢幕)
核心記憶體通常從可用記憶體池配置,與平常滿足使用者模式行程的串列不同
夥伴系統(Buddy System)
平板配置(Slab Allocator)
預先分頁(Prepaging)
分頁的大小
TLB範圍(TLB Reach)
程式結構
I/O交互上鎖(I/O interlock)
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing