diff --git a/contents/operating-system/README.md b/contents/operating-system/README.md
index dea78fa..14f770b 100644
--- a/contents/operating-system/README.md
+++ b/contents/operating-system/README.md
@@ -439,6 +439,116 @@ Example
## 가상 메모리
+### 가상 메모리란?
+
+메인 메모리의 크기가 한정되어 있기 때문에 물리적인 메모리 크기보다 큰 프로세스를 실행시킬 수 없다. 그렇다면 메인 메모리보다 크기가 큰 프로세스를 실행시키고 싶으면 어떻게 해야 할까? 그래서 나온 방법이 바로 '가상메모리'이다.
+
+
+
+**프로세스 전체가 메모리 내에 올라오지 않더라고 실행히 가능하도록 하는 기법을 통틀어 가상메모리**라고 하며, `필요한 부분만 메모리에 올림으로써 메모리에 올라가는 프로세스의 크기를 줄이는` 요구 페이징 기법을 사용한다. 프로세스 이미지를 모두 메모리에 올릴 필요가 없어지며, 메모리 용량 부족 이슈를 해결할 수 있다.
+
+### 가상 메모리가 하는 일
+
+가상 메모리는 실제 `물리 메모리 개념과 사용자의 논리 메모리 개념을 분리`한 것이다. 따라서 작은 메모리를 가지고도 얼마든지 큰 가상주소 공간을 프로그래머에게 제공할 수 있다.
+
+#### 따라서 가상메모리는...
+
+* 시스템 라이브러리가 여러 프로세스들 사이에 공유될수 있도록 한다. 각 프로세스들은 공유 라이브러리를 자신의 가상 주소 공간에 두고 사용하는 것처럼 인식하지만, 라이브러리가 올라가 있는 물리 메모리 페이지들은 모든 프로세스에 공유되고 있다.
+* 프로세스들이 메모리를 공유하는 것을 가능하게 하고, 프로세스들은 공유 메모리를 통해 통신할 수 있다.
+* fork()를 통한 프로세스 생성과정에서 페이지들이 공유되는 것을 가능하게 한다.
+
+### 요구 페이징 (Demand Paging) 이란?
+
+프로그램 실행 시작 시 `프로그램 전체를 디스크에서 물리 메모리에 적재하는 대신, 초기에 필요한 것들만 적재하는 전략`을 요구 페이징이라 하며, 가상 메모리 시스템에서 많이 사용된다.
+
+* 가상메모리는 대개 페이지로 관리된다.
+* 요구페이징을 사용하는 가상메모리에서는 실행과정에서 필요해질 때 페이지들이 적재된다. 따라서 한번도 접근되지 않은 페이지는 물리 메모리에 적재되지 않는다.
+
+### Reference
+- 2021 시나공 정보처리기사 필기
+- https://github.com/JaeYeopHan/Interview_Question_for_Beginner
+
+---
+
+## 페이지 교체 알고리즘
+
+### 페이지 교체
+
+앞선 요구페이징에서 언급된대로 프로세스의 동작에 필요한 페이지를 요청하는 과정에서 `page fault(페이지 부재)` 가 발생하게 되면, 원하는 페이지를 보조저장장치에서 가져오게 된다. 하지만, 물리 메모리가 모두 사용중인 상황이라면 **페이지 교체**가 이뤄져야 한다.
+
+### 페이지 교체 흐름
+
+1. 디스크에서 필요한 페이지의 위치를 찾는다.
+2. 빈 페이지 프레임을 찾는다.
+ 1) 페이지 교체 알고리즘을 통해 희생될 페이지를 고른다.
+ 2) 희생될 페이지를 디스크에 기록하고, 관련 페이지 테이블을 수정한다.
+3. 새롭게 비워진 페이지 테이블 내 프레임에 새 페이지를 읽어오고, 프레임 테이블을 수정한다.
+4. 사용자 프로세스 재시작
+
+### 페이지 교체 알고리즘
+
+#### [FIFO 페이지 교체]
+`First-In-First-Out Page Replacement`
+
+물리메모리에 들어온 페이지 순서대로 페이지 교체 시점에 먼저 나가게 된다.
+
+* 장점
+ * 이해하기 쉽고, 프로그래밍도 쉽다.
+
+* 단점
+ * 오래된 페이지가 불필요한 정보를 포함한다고 보장할 수 없다.
+ * 처음부터 활발하게 사용되는 페이지를 교체해서 페이지 부재율을 높일 수 있다.
+ * `Belady의 모순` : 페이지를 저장할 수 있는 페이지 프레임의 개수를 늘려도 되려 페이지 부재가 더 많이 발생한다는 모순이 존재한다.
+
+
+
+#### [최적 페이지 교체]
+`Optimal Page Replacement`
+
+모든 알고리즘보다 낮은 페이지 부재율을 보이며 `Belady의 모순` 또한 발생하지 않는다. 이 알고리즘의 핵심은 **앞으로 가장 오랫동안 사용되지 않을 페이지를 찾아 교체**하는 것이다. 주로 비교 연구 목적을 위해 사용된다.~(안사용된다는 말)~
+
+* 장점
+ * 가장 낮은 페이지 부재율을 보장한다.
+
+* 단점
+ * 구현이 어렵다. 모든 프로세스의 메모리 참조 계획을 미리 파악할 수 없기 떄문이다.
+
+
+
+#### [LRU 페이지 교체]
+`Least-Recently-Used Page Replacement`
+
+최적 알고리즘의 근사 알고리즘. 가장 오랫동안 사용되지 않은 페이지를 선택하여 교체한다.
+
+* 특징
+ * FIFO < LRU < OPT
+
+
+
+#### [LFU 페이지 교체]
+`Least-Frequently-Used Page Replacement`
+
+참조 횟수가 가장 적은 페이지를 교체한다. 활발하게 사용되는 페이지는 참조 횟수가 많아질 거라는 가정에서 만들어졌다.
+
+* 특징
+ * 어떤 프로세스가 특정 페이지를 집중적으로 사용하다가 다른 기능을 사용하게 되면 더 이상 사용하지 않아도 계속 메모리에 머물게 되어 초기 가정에 어긋 날 수 있다.
+ * OPT 알고리즘을 제대로 근사하지 못해 잘 쓰이지 않는다.
+
+
+
+#### [MFU 페이지 교체]
+`Most-Frequently-Used Page Replacement`
+
+참조 횟수가 가장 적은 페이지가 최근에 메모리에 올라왔고, 앞으로 계속 사용될 것이라는 가정에 기반한다.
+
+* 특징
+ * OPT 알고리즘을 제대로 근사하지 못해 잘 쓰이지 않는다.
+
+### Reference
+
+- 2021 시나공 정보처리기사 필기
+- https://github.com/JaeYeopHan/Interview_Question_for_Beginner
+
---
## 캐시
@@ -513,7 +623,7 @@ CPU에서 명령어를 수행하며 매번 캐시 메모리를 참조하게 되
### 교착상태를 막을 방법은 없을까?
-#### 예방 기법 (Prevention)
+#### [예방 기법 (Prevention)]
교착상태가 발생하지 않도록 사전에 시스템을 제어하는 방법으로, 교착상태 발생의 네 가지 조건중에서 어느 하나를 제거하는 방법이다. 자원 낭비가 가장 심한 기법이다.
@@ -522,7 +632,7 @@ CPU에서 명령어를 수행하며 매번 캐시 메모리를 참조하게 되
3. **비선점 부정** : 자원을 점유하고 있는 프로세스가 다른 자원을 요구할 때 점유하고 있는 자원을 반납하고, 요구한 자원을 사용하기 위해 기다리게 한다.
4. **환형 대기 부정** : 자원을 선형 순서로 분류하여 고유번호를 할당하고, 각 프로세스는 현재 점유한 자원의 고유 번호보다 앞이나 뒤 어느 한쪽 방향으로만 자원을 요구한다.
-#### 회피 기법 (Avoidance)
+#### [회피 기법 (Avoidance)]
교착상태가 발생할 가능성을 배제하지 않고, 교착상태가 발생하면 적절히 피해나가는 방법으로, **은행원 알고리즘(Banker's Algorithm)** 이 사용된다.
@@ -533,11 +643,11 @@ CPU에서 명령어를 수행하며 매번 캐시 메모리를 참조하게 되
> 4. 은행원 알고리즘은 프로세스의 모든 요구를 유한한 시간안에 할당하는 것을 보장함
> ```
-#### 발견 기법 (Detection)
+#### [발견 기법 (Detection)]
시스템에 교착상태가 발생했는지 점검하여 교착상태에 있는 프로세스와 자원을 발견하는 기법이다. 발견 후엔 교착상태 회복(Recovery) 직업을 수행하므로 발견기법과 회복기법을 함께 쓴다. (Detection & Recovery)
-#### 회복 기법 (Recovery)
+#### [회복 기법 (Recovery)]
교착상태를 일으킨 프로세스를 종료하거나, 교착상태의 프로세스에 할당된 자원을 선점하여 프로세스나 자원을 회복하는 것을 의미한다. 크게 프로세스 종료와 자원 선택으로 나뉜다.