-
(12) 페이징 & 세그먼테이션CS 지식/○ OS(Operating System) 2021. 6. 26. 21:30
1. 페이징 & 세그먼테이션 기법 이유
1-1) 도입 이유
다중 프로그래밍 시스템에 여러 프로세스들이 돌아가는데
여러 프로세스를 수용하기 위해, 주기억장치를 동적 분할하는 메모리 관리 작업이 필요하기 때문
→ 주기억장치 == RAM/ROM
1-2) 프로세스 / 메모리
> [우]와 같은 계층적 구조를 가지며, PC( program counter)를 참조하여 메모리로부터 수행될 명령어를 읽어
CPU의 해당 명령을 수행
> CPU 레지스터 < 캐시 기억장치 < 메모리 < 보조기억장치 순으로 가격이 높지만 성능이 좋음
※ 주기억장치의 메모리 영역
1) OS 상주 영역 : interrupt vector와 함께 낮은 주소 영역 사용
2) 사용자 프로세스 영역 : 높은 주소영역 사용
1-3) 프로그래밍 환경
(a) 단일 프로그래밍 환경
- 초기 시스템
- 오직 하나의 프로세스가 모든 메모리를 전용으로 사용
- 프로세스는 하나의 연속된 블록으로 할당( 연속 메모리관리 ) - 문제점
- 메모리 용량 초과하는 프로세스 사용 불가
- 메모리의 낭비 : 당장 사용되지 않는 경우에도 공간을 차지
(b) 다중 프로그래밍 환경
> 메모리관리 기법 등장
연속 / 불연속(페이징, 세그먼테이션) 사용- 현재 시스템
- CPU 연산과 입출력을 동시에 하여 CPU 이용률 상승과 처리량이 증가
- 여러개의 프로세스가 메모리에 동시에 적재됨 - 메모리 분할 / 관리 기법
- 여러 프로세스를 메모리에 적재하기 위해 고안된 방법
- 하나의 분할에 하나의 프로세스가 적재
2. 메모리 관리 기법
※ 용어 정리
- 페이지 : 고정 사이즈의 작은 가상 메모리 조각
- 프레임 : (페이지 크기와 같은 )물리적 주기억장치 메모리의 조각
- 단편화 : 기억장치의 빈 공간 OR 자료가 여러 조각으로 나뉘는 현상
- 세그먼트 : 서로다른 크기를 가진 논리적 블록이 연속된 공간에 배치되는 것
- 외부조각 : 프로그램 크기보다 분할의 크기가 작은 경우, 빈 공간이지만 프로그램 할당이 불가
- 내부조각 : 프로그램 크기보다 분할의 크기가 큰 경우, 특정 프로그램 전용 공간이지만 사용되지 않는 공간
2-1) 연속 메모리 관리
(a) 정의
프로그램 전체가 하나의 큰 연속된 공간에 할당
- 고정분할 기법 : 주기억장치가 고정된 파티션으로 분할
> 방식
- 물리적 메모리를 몇 개의 영구적 분할/파티션으로 나눠서 사용
- 1개의 파티션 당 하나의 프로그램을 적재(프로세스)
> 단점
- 1개의 프로그램 관점에서는 내부조각 / 단편화 발생
- 전체를 보면 외부조각 / 단편화 발생 - 동적분할 기법 : 파티션들이 동적 생성되며, 자신의 크기와 같은 파티션에 적재
> 방식
- 프로그램 크기에 맞게 동적으로 크기를 맞춰 할당
- 기술적으로 관리해야 함
> 단점
- 외부조각/단편화 발생
2-2) 불연속 메모리 관리
(a) 정의
프로그램의 일부가 서로 다른 주소 공간에 할당될 수 있는 기법
→ 페이징 & 세그먼트 사용
※ 연속할당의 고정 / 동적 분할 기법과 유사한 방식으로 나뉨- 고정 크기 : 페이징
- 가변 크기 : 세그먼테이션
- Paging 기법
> 방식
- 물리 메모리 Frame 과 가상 메모리 페이지를 대응하기 위한 Page mapping과정이 필요하고,
이를 위한 Paging table을 만들어서 설정
- 연속적이지 않은 공간도 활용할 수 있기에 외부 단편화 해결
> 단점
- 페이지 단위를 작게 하면 내부 단편화가 적어지지만, page mapping size 증가로 tradeoff 발생 - Segementation 기법
> 방식
- 페이징은 고정 크기로 Frame, Page의 크기를 설정했으나,
Segmentation은 서로 크기가 다른 논리단위인 Segement로 분할하고, 메모리를 할당
- 각 Segment 들은 연속된 공간에 저장되어있음
- Paging과 마찬가지로 Segment mapping / Segment table 존재
- Segement의 크기가 다르기 때문에 Paging처럼 미리 분할을 하지 않고, 프로그램 메모리 적재 시
크기에 맞게 빈공간을 찾아 할당
- 크기에 맞게 할당되어서 내부단편화가 발생하지 않음
> 단점
- 서로다른 크기의 세그먼트를 연속된 공간에 배치하기 때문에 외부 단편화가 발생할 수 있음
(b) Paging / Segment 기법의 가상화
1) 가상 메모리 페이징
필요한 Paging이 생길 때 할당, 미리 로드하지 않음
복잡한 메모리 관리로 오버헤드 발생
2) 가상 메모리 세그먼테이션
필요하지 않은 세그먼트들은 로드되지 않고, 필요할 때 할당
복잡한 메모리 관리로 오버헤드 발생
참조
https://gyoogle.dev/blog/computer-science/operating-system/Paging%20and%20Segmentation.html
https://3catpapa.tistory.com/108
https://developyo.tistory.com/211
https://sycho-lego.tistory.com/10
반응형'CS 지식 > ○ OS(Operating System)' 카테고리의 다른 글
(14) 메모리 (0) 2021.06.28 (13) 페이지 교체 알고리즘 (0) 2021.06.28 (11) 세마포어(Semaphore) & 뮤텍스(Mutex) (0) 2021.06.26 (10) 경쟁 상태 ( Race Condition ) (0) 2021.06.24 (9) 데드락 ( Dead lock) (0) 2021.06.23 - 초기 시스템