세그멘테이션
: 사용되지 않는 가상 주소 공간이 물리 메모리를 차지하는 것을 방지하는 메모리 관리 기법
|
세그먼트의 종류
Offset
세그먼트에서 떨어진 정도
- 주소 공간이 N비트고 세그먼트가 M비트라면 offset으로 N-M비트를 가진다.
- 역방향 offset = offset - 세그먼트의 물리적 최대 값(bound) ← 스택의 경우
대단위 세그멘테이션 VS 소단위 세그멘테이션
대단위 세그멘테이션
- 주소 공간을 소수의 세그먼트(코드, 스택, 힙)로 큰 크기의 공간으로 분할
소단위 세그멘테이션
- 주소 공간을 작은 크기의 공간으로 잘게 분할
운영체제의 지원
1. 문맥 교환
- 세그먼트 레지스터의 저장과 복원을 올바르게 수행
2. 세그멘트 크기의 변경
- 예를 들어, 힙 공간에 할당할 때 빈 공간이 없다면 힙 세그먼트의 크기를 증가시켜야 한다. → 시스템 콜 호출(sbrk())
3. 미사용 중인 물리 메모리 공간의 관리
- 외부 단편화 문제 발생
- 세그먼트 할당이나 확장에 쓸모가 없는 작은 빈 공간들
- 총 메모리 공간이 요청한 메모리 공간보다 크지만, 남아있는 공간이 연속적이지 않아 발생하는 현상
- 남은 메모리의 합이 Process의 크기보다 크지만, 연속된 메모리가 아니어서 할당이 불가능한 상태
※ 국민대학교 소프트웨어학부 황선태 교수님의 운영체제 교과목을 공부하며 정리한 내용입니다.
728x90
반응형
'OS' 카테고리의 다른 글
[OS] Paging (0) | 2024.03.30 |
---|---|
[OS] Free-Space Management (1) | 2024.03.29 |
[OS] Address Space & Address Translation (2) | 2024.03.29 |
[OS] Scheduling (5) | 2024.03.28 |
[OS] Process (0) | 2024.03.28 |