'슬랩할당자'에 해당되는 글 1건

  1. 2009.12.11 chapter 7. Memory by 초상큼발랄 2

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
Posted by 초상큼발랄
l