chapter 7. Memory
· 메모리 관리가 만족시켜야 하는 요구 조건
1. 재배치(Relocation)
2. 보호(Protect)
3. 공유(Sharing)
4. 논리적 구성
5. 물리적 구성
2-pass assembler
지금 수행된 application Memory 초과에도 사용될 수 있는 방법
· Fetch policy : 불러들이는 방법
· Placement policy :
· Replacement policy :
· 단편화(Fragmentation)
- 내부 단편화(Internal Fragmentation) : 파티션 내부 공간의 낭비가 발생하는 현상
- 외부 단편화(External Fragmentation) : Compaction 수행 방법 필요
장점: 메모리 효율성 大, 공간 활용도 大
단점: 메모리 할당 속도↓, 할당 · 해지가 계속적으로 반복
해결책 → Compaction(메모리 집약): 프로세스가 사용하는 파티션을 이동시켜 각 파티션이 연속적이 되도록 인접하게 만들고 메모리의 모든 빈 공간이 하나의 블록이 되도록 한다.
· 메모리 분할 (Memory Partition)
- 고정 분할(Fixed Partitioning)
균등 분할: 각 분할이 모두 같은 크기를 작도록 균등 분할
문제점 1) 프로그램이 파티션보다 클 수 있다.
2) 주기억장치 이용률이 매우 저조 - 내부단편화 발생(Internal Fragmentation)
비균등 분할: 위의 문제점 해결
고정된 partition을 사용할 경우 잉여 공간(내부 단편화)이 다량으로 발생
- 동적 분할(Dynamic Partitioning) :
외부 단편화 → compaction
· Placement algorithm ≒ Fit policy
1. Best Fit : 요청된 크기와 가장 근접한 크기의 메모리 선택
공간 효율성 大, 남아있는 잉여구간이 적지만 사용가능성이 적다.
비어있는 구간을 모두 다 비교해야하므로 시간이 많이 걸린다.
2. First Fit : 메모리의 처음부터 검사해 크기가 충분한 첫 번째 사용가능한 메모리 블록을 선택
메모리 공간 효율성 小, 시간이 적게 걸림(가장 마지막 메모리 위치 효율성 ↓)
3. Worst Fit : 메모리 잉여 공간이 가장 큰 메모리 할당
생각보다 비효율적이지 않다. 분할된 구간이 커짐
→ 큰메모리 구간을 남겨둬서 1차적 사용가능
4. Next Fit : 가장 최근에 배치되었던 메모리 위치에서부터 검사를 시작해 크기가 충분한 다음 위치의 사용가능한 메모리 블록을 선택
5. Last Fit :
· 리눅스/유닉스에서 내부 단편화(Internal Fragmentation)를 해결하기 위해 Slab Allocator
Architecture 마다 다르지만 일반적으로 32Bits System에서 4KB 단위의 page Frame이 고정된 크기로 분할되어있다.
If, 메모리가 400KB를 요청한다면 Page 배수가 된다.
즉 Fixed partition과 Page 묶음으로 할당 해지하는 Dynamic partition으로 사용된다.
· 리눅스는 내부 단편화(Internal Fragmentation)를 해결하기 위해서 슬랩 할당자(Slab Allocator)를 도입하고, 버디 할당자(Buddy Allocator)는 메모리 관리의 부하가 적으며 외부 단편화(External Fragmentation)를 줄일 수 있다는 장점을 제공한다.
'Education > Operating System' 카테고리의 다른 글
스레드 컨텍스트 스위치 시점 알 수 있는 방법 (0) | 2010.06.28 |
---|---|
geekos (3) | 2010.06.27 |
명령어 수행 (2) | 2009.10.22 |
Interrupt (2) | 2009.10.22 |
Scheduling (0) | 2009.10.22 |