티스토리 뷰
페이징과 세그멘테이션을 쓰는 이유?
다중 프로그래밍 시스템에서 다수의 프로세스를 수용하기 위해
주기억장치를 동적으로 분할하는 메모리 관리작업 필요
메모리 관리: 연속적 메모리 할당 / 불연속적 메모리 할당
연속적 메모리 할당: 프로그램 전체가 메모리에 연속적으로 할당 | ||
고정 분할 기법 | 주기억장치가 고정된 파티션으로 분할 현재사용X (내부 단편화 발생 : 고정크기에 비해 작은 메모리 사용) |
장점: 구현이 간단하고 운영체제에 오버헤드가 거의 없음 단점: 내부 단편화, 최대 활성 프로세스 수가 고정됨 |
동적 분할 기법 | 파티션들이 동적 생성되면서 자신의 크기와 같은 파티션에 적재 (외부 단편화 발생: 메모리할당 해제시 빈공간 발생) |
장점: 내부 단편화 없고 주기억장치 효율적 사용 가능 단점: 외부 단편화, 처리기 효율이 나빠짐 |
연속적 메모리 할당시 메모리 단편화 발생, 해결방법으로 페이징과 세그멘테이션
불연속적 메모리 할당 : 프로그램의 일부가 서로 다른 주소 공간에 할당 | |
페이징 | 하나의 프로세스가 고정된 사이즈의 여러 프레임에 불연속적 할당 |
세그멘테이션 | 하나의 프로세스를 서로 다른 크기의 논리적인 블록 단위인 세그먼트(Segment)로 분할하여 메모리에 할당 |
About Paging
- 페이지(page) : 작은 고정 사이즈의 프로세스 조각
- 프레임(frame) : 페이지와 크기가 같은 주기억장치 메모리 조각
- 페이지 테이블 : 프로세스의 각 페이지에 해당하는 프레임 위치 관리
장점: 외부 단편화 없음
단점: 적은 양의 내부 단편화 존재
About Segmentation
- 세그먼트(Segment) : 서로 다른 크기를 가지는 논리적인 블록(논리적 내용)이 연속적인 공간에 배치되어 있는 것
- 논리적 주소 : 세그멘트 번호, 세그먼트 간격(offset)
- 물리적 주소: Base + d(0 ~ limit 사이의 간격)
- Base : 물리주소의 시작점
- Limit : 세그먼트의 길이
장점: 내부 단편화 없음, 메모리 사용 효율 개선, 동적 분할에 비해 오버헤드가 적음
단점: 외부 단편화 존재
가상 메모리 사용시.. ?
* 참고 사이트
'CS > OS' 카테고리의 다른 글
뮤텍스(Mutex)와 세마포어(Semaphore) (0) | 2024.01.05 |
---|