동캄의 코딩도장

운영체제 [메모리 할당] 본문

CS/운영체제

운영체제 [메모리 할당]

동 캄 2022. 1. 19. 22:57

Continuous Memory Allocation

- 프로세스(context)를 하나의 연속된 메모리 공간에 할당하는 정책

 

Uni-programming

- 하나의 프로세스만 메모리 상에 존재
- 가장 간단한 메모리 관리 기법

문제점

 

프로그램 크기> 메모리크기

 -Overlay structure( 프로그램의 영역을 잘라서 메모리에 적재)


커널 보호

- 경계 레지스터 사용


Low system resoucre utilization & preformance

- Multi- programming 사용

 

Multi-programming

Fixed partition Multiprogramming

- 메모리 공간을 고정된 크기로 분할
- 각 프로세스는 하나의 partition에 적재

- 메모리 관리 간편
- 시스템 자원이 낭비 될 수 있음

Fragmentation

internal fragmentation

- 내부 단편화
- partition 크기> process 크기 --> 메모리 낭비

external fragmentation

- 외부 단편화
- (남은 메모리 크기> process 크기)지만, 연속된 공간이 아님 --> 메모리 낭비

 

 

Variable Partition Multiprogramming

- 초기에는 전체가 하나의 영역
- 프로세스를 처리하는 과정에서 메모리 공간이 동적으로 분할
- fragmentation 발생 x
- 남은 메모리공간 발생--> 배치전략, 외부단편화 해결 필요


배치전략

 

First-fit (최초 적합)

- 충분한 크기를 가진 첫 번째 partition을 선택
- simple and low overhead
- 공간 활용률이 떨어질 수 있음


Next-fit (순차 최초 적합)

- First-fit 전략과 유사
- State table에서 마지막으로 탐색한 위치부터 탐색
- 메모리 영역의 사용 빈도 균등화
- low overhead


Best-fit (최적 적합)

- Process가 들어갈 수 있는 partition중 가장 작은 곳을 선택
- 탐색시간이 오래 걸림 -> 모든 partition을 살펴봐야 함
- 크기가 큰 partition을 유지 할 수 있음
- 작은 크기의 partition이 많이 발생


Worst-fit(최악 적합)

- Process가 들어갈 수 있는 partition중 가장 큰 곳 선택
- 탐색시간이 오래 걸림 --> 모든 partition을 살펴봐야 함
- 작은 크기의 partition 발생을 줄일 수 있음
- 큰 크기의 partition 확보가 어려움


외부단편화 해결

 

Coalescing holes (공간 통합)

- 인접한 빈 영역을 하나의 partition으로 통합
- process가 memory를 반환하고 나가면 수행
- low overhead


Storage Compaction (메모리 압축)

- 모든 빈 공간을 하나로 압축
- 프로세스 처리에 필요한 적재 공간 확보가 필요 할 때 수행
- High overhead

'CS > 운영체제' 카테고리의 다른 글

운영체제 [가상메모리 - 페이징]  (0) 2022.01.19
운영체제 [가상 메모리]  (0) 2022.01.19
운영체제 [메모리 background]  (0) 2022.01.19
운영체제 [deadlock 해결방법]  (0) 2022.01.19
운영체제 [Deadlock]  (0) 2022.01.19