여러 프로세스를 수용하기 위해, 주기억장치를 동적 분할하는 메모리 관리 작업이 필요하기 때문
→ 주기억장치 == RAM/ROM
1-2) 프로세스 / 메모리
> [우]와 같은 계층적 구조를 가지며, PC( program counter)를 참조하여 메모리로부터 수행될 명령어를 읽어
CPU의 해당 명령을 수행
> CPU 레지스터 < 캐시 기억장치 < 메모리 < 보조기억장치 순으로 가격이 높지만 성능이 좋음
※ 주기억장치의 메모리 영역
1) OS 상주 영역 : interrupt vector와 함께 낮은 주소 영역 사용
2) 사용자 프로세스 영역 : 높은 주소영역 사용
1-3) 프로그래밍 환경
(a) 단일 프로그래밍 환경
단일 프로그램 메모리 분할 / 작업처리 time table
초기 시스템 - 오직 하나의 프로세스가 모든 메모리를 전용으로 사용 - 프로세스는 하나의 연속된 블록으로 할당( 연속 메모리관리 )
문제점 - 메모리 용량 초과하는 프로세스 사용 불가 - 메모리의 낭비 : 당장 사용되지 않는 경우에도 공간을 차지
(b) 다중 프로그래밍 환경
> 메모리관리 기법 등장 연속 / 불연속(페이징, 세그먼테이션) 사용
다중 프로그램 메모리 분할 / 작업처리 time table
현재 시스템 - 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처럼 미리 분할을 하지 않고, 프로그램 메모리 적재 시 크기에 맞게 빈공간을 찾아 할당 - 크기에 맞게 할당되어서 내부단편화가 발생하지 않음
> 단점 - 서로다른 크기의 세그먼트를 연속된 공간에 배치하기 때문에 외부 단편화가 발생할 수 있음