본문 바로가기

Basic Learning/Operating System Concepts

Dynamic Storage Allocation

 

이 포스트는 서울대학교의 '운영체제의 기초' 강의를 개인 학습용으로 작성한 포스트입니다.

 

 

 

Why Dynamic Allocation?

Activation records : Procedure가 수행되기 위한 필요 정보들을 저장하고 관리하기 위해 Stack에 저장되는 데이터 구조

 

Unpredictability

Recursive procedure와 복잡한 데이터 구조 때문에 메모리 할당을 정적으로 할 수 없음

 

 

Heap

Free list

Heap의 사용가능한 공간들을 연결한 리스트

병합가능하면 하나의 큰 공간으로 병합

 

Fragmentation

작은 hole들이 많아짐, 메모리를 효율적으로 사용하지 못함

 

Buddy allocator

항상 2의 지수 형태로 할당

인접한 buddy가 가용상태일 때 쉽게 병합함

 

Allocation policy

1. First fit : 첫번째 가능한 공간 할당

2. Best fit : 사용가능한 공간중에 가장 작은 곳 할당 (External Fragmentation 위험)

3. Worst fit : 사용가능한 공간중에 가장 큰 곳 할당 (Internal Fragmentation 위험)

 

Heap implementation

Bit map : 고정된 크기의 chunk만 할당

Pools : 같은 size 크기의 chunk로 pool을 만들어 이를 할당

 

 

 

'Basic Learning > Operating System Concepts' 카테고리의 다른 글

Demand Paging  (0) 2020.06.16
Segmentation and Paging  (0) 2020.06.16
GNU Linker  (0) 2020.06.15
Deadlock  (0) 2020.06.15
Process Synchronization  (0) 2020.06.14