1. 메모리 오버레이 (Memory Overlay)
• 정의: 프로그램의 크기가 실제 메모리보다 클 때, 프로그램 전체를 메모리에 적재하는 대신 필요한 부분만 적재하는 기법
• 작동 방식: 실행 시 필요한 모듈만 메모리에 적재됨
• 특징: 운영체제와 일부 영역에는 필수 명령어와 데이터만 저장하며, 나머지는 필요 시 적재
• 사용 목적: 한정된 메모리에서 큰 프로그램을 실행할 수 있도록 함
2. 단일 프로그래밍 환경의 메모리 할당
스왑(Swap)
• 스왑 영역: 메모리가 부족할 때 프로세스를 임시 저장하는 공간
• 스왑 인(Swap In): 스왑 영역에서 메모리로 데이터를 가져오는 작업
• 스왑 아웃(Swap Out): 메모리에서 스왑 영역으로 데이터를 내보내는 작업
• 작동 원리: 실행 완료된 프로세스를 디스크로 이동(스왑 아웃) 후, 새로운 프로세스를 메모리에 적재(스왑 인)
3. 다중 프로그래밍 환경의 메모리 할당
1) 메모리 분할 방식
• 가변 분할 방식 (Variable-size Partitioning): 프로세스 크기에 따라 메모리를 나누는 방식
• 고정 분할 방식 (Fixed-size Partitioning): 일정한 크기로 메모리를 나누는 방식
가변 분할 방식
• 특징: 프로세스 크기에 맞춰 메모리를 분할하며, 연속된 메모리 공간을 활용
• 장점: 연속된 공간을 할당하여 프로세스를 효율적으로 관리 가능
• 단점: 빈 공간을 합쳐야 하며, 다른 프로세스도 이동해야 하므로 관리가 복잡
고정 분할 방식
• 특징: 프로세스 크기와 관계없이 메모리를 일정한 크기로 분할하며, 비연속 할당 방식 사용
• 장점: 메모리 관리가 수월하여 추가적인 작업이 필요 없음
• 단점: 사용되지 않는 공간이 발생하여 메모리 낭비 가능
2) 가변 분할 방식의 메모리 관리
단편화(Fragmentation)
• 정의: 프로세스에게 할당할 수 없는 작은 조각 메모리가 발생하는 현상
• 내부 단편화(Internal Fragmentation): 할당된 메모리 내부에서 사용되지 않는 공간 발생
• 외부 단편화(External Fragmentation): 프로세스들 사이의 작은 조각들이 쌓여서 사용 불가한 상태
메모리 배치 방식 (Memory Placement Strategy)
• 최초 배치 (First Fit): 적재 가능한 공간을 순서대로 찾아 처음 발견한 공간에 프로세스 배치
• 최적 배치 (Best Fit): 빈 공간 중 가장 작은 적합한 공간을 찾아 배치
• 최악 배치 (Worst Fit): 빈 공간 중 가장 큰 공간을 찾아 배치
조각 모음 (Defragmentation)
• 정의: 빈 공간을 하나로 합쳐 메모리 활용도를 높이는 작업
• 방법: 프로세스를 이동하여 빈 공간을 합친 후 다시 실행
3) 고정 분할 방식의 프로세스 배치
페이징 (Paging)
• 정의: 물리 메모리를 일정한 크기의 페이지로 나누어 관리하는 방식
• 특징: 현대 메모리 관리의 기본 방식이며, 비연속 메모리 할당 방식 사용
• 단점: 작은 프로세스 배치 시 내부 단편화 발생
4. 가변 분할 방식과 고정 분할 방식 비교
구분 | 가변 분할 방식 | 고정 분할 방식 |
메모리 관리 기법 | 세그먼테이션(Segmentation) | 페이징(Paging) |
할당 방식 | 연속 메모리 할당 | 비연속 메모리 할당 |
장점 | 프로세스를 한 덩어리로 관리 가능 | 메모리 관리가 편리함 |
단점 | 빈 공간 관리 어려움 | 프로세스가 분할되어 처리됨 |
단편화 유형 | 외부 단편화 | 내부 단편화 |
5. 버디 시스템 (Buddy System)
• 정의: 단편화 문제를 해결하기 위해 메모리를 이등분하며 관리하는 방식
• 작동 방식:
- 프로세스 크기에 맞게 메모리를 절반으로 나누어 배치
- 프로세스 종료 후 인접한 빈 공간을 합쳐 하나의 큰 공간으로 만듬
• 특징:
- 가변 분할 방식처럼 메모리를 프로세스 크기대로 나눔
- 고정 분할 방식처럼 하나의 영역에 여러 프로세스가 들어갈 수 없음
- 내부 단편화 발생 가능하지만, 유사한 크기의 조각을 병합하여 해결 가능
이 내용은 휴넷사회복지평생교육원의 운영체제 강의를 듣고 정리한 것입니다.
'CS > 운영체제' 카테고리의 다른 글
[운영체제] 16. 세그먼테이션 기법 (0) | 2025.04.25 |
---|---|
[운영체제] 15. 가상 메모리와 페이징 기법 (0) | 2025.04.24 |
[운영체제] 13. 메모리 관리 (0) | 2025.04.23 |
[운영체제] 12. 교착 상태 해결 방법 (0) | 2025.04.10 |
[운영체제] 11. 교착 상태 (0) | 2025.04.09 |