---
# System prepended metadata

title: Background
tags: [OS]

---

Background
===

其實在執行一個程式時，不需要把整個程式 load 進 memory，只需要 load 部分正要跑的 code 就好

想想如果能夠達成 partially-loaded program，那麼 Program 就不在受限於 physical-memory size 了

## Virtual Memory
使用者看到的記憶體位置(logical memory)不再是實際記憶體位置(physical memory)
### 優點&特性
- 只有部分的程式碼需要 load 進 memory
- Logical address space 能夠大於 physical address space
- Processes 能將他們的 Logical address 對應到同一個 Physical address 以達成 shared memory
- Process creation 能更快
- 能一次跑更多的 Processes
- Processes 要切換時，更少東西需要被 swap
### 實作
- [Demand Paging](https://hackmd.io/eXQatwpsTAOEHJUfYQsp6A)
- Demand segmentation

# 
###### tags: `OS`