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