철학과 학생의 개발자 도전기
Younghun
« 2025/05 »
일 |
월 |
화 |
수 |
목 |
금 |
토 |
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
관리 메뉴
철학과 학생의 개발자 도전기
페이징과 세그먼테이션 본문
운영체제
페이징과 세그먼테이션
Younghun
2024. 2. 12. 17:12
1. 메모리 관리 기법
연속 메모리 기법
- 프로그램을 연속적인 메모리에 할당
- 고정 분할 기법
- 메모리를 고정된 크기의 파티션으로 나누고, 프로그램에게 하나의 파티션을 할당한다.
- 내부 단편화가 발생한다.
- 만약 프로그램의 크기가 파티션보다 크다면 메모리를 할당받을 수 없다.
- 동적 분할 기법
- 프로그램이 필요로 하는 메모리 크기만큼만 할당한다.
- 외부 단편화가 발생한다.
- 프로그램이 종료되면 메모리에 빈 구역들이 듬성듬성 생기기 때문이다.
불연속 메모리 기법
- 프로그램이 메모리에 불연속적으로 할당되는 기법
- 페이징과 세그먼테이션 기법이 존재한다.
가상 메모리
- 실제 메모리 크기보다 더 많은 메모리를 할당할 수 있도록 가상 메모리 주소를 사용한다.
- 프로그램의 일부분(당장 필요한 데이터, 자주 사용하는 데이터 등)만 메모리에 할당한다.
- 메모리에 올라오지 않은 데이터를 사용할 때, 디스크에서 메모리에 올린다.
- MMU(Memory Management Unit)를 통해 논리 주소와 물리 주소를 매핑한다.
2. 페이징
- 메모리는 'Frame', 프로세스는 'Page' 라는 고정된 크기의 단위로 분리한다.
- 페이지와 프레임은 같은 크기를 가진다.
- 페이징 테이블을 생성하여 페이지와 프레임의 매핑 정보를 저장한다.
- 메모리를 불연속적으로 사용하기 때문에 외부 단편화 문제는 해결하지만, 내부 단편화 문제는 존재한다.
3. 세그먼테이션
- 프로세스를 비슷한 의미 단위로 묶어서, 서로 다른 크기의 메모리 블록을 할당한다.
- 세그먼트 테이블을 생성하여 세그먼트의 시작 주소와 크기를 저장한다.
- 프로세스가 필요로 하는 크기만큼 메모리를 할당하기 때문에 내부 단편화 문제는 해결된다.
- 하지만 작은 세그먼트가 해제된 자리에 큰 세그먼트가 할당되지 못하는 외부 단편화 문제가 발생한다.