1. 가상 메모리의 개념
연속 메모리 할당
- 메모리 크기보다 더 큰 기억공간이 필요한 프로세스는 실행불가
-> 그러한 프로세스도 실행할 수 있게 하는 방법으로 가상 메모리 사용
즉, 아무리 큰 프로세스라도 한 순간에는 사용하는 부분이 작다. 따라서 현재 실행하는 부분만 메모리에 올려서 사용할 수 있게 함.
가상메모리
- 실행 중인 프로세스에 의해 참조되는 주소를 메모리에서 사용하는 주소와 분리
- 현재 필요한 일부만 메모리에 적재
보조기억장치에 전체를 저장해놓고 쓰이는 부분을 메모리에 올려서 씀
이때 실주소라는 것은 메모리에서 쓰이는 주소
가상주소 a이지만 실제 주소는 b이므로 사상이 필요
사상(mapping)
- 프로세스 실행을 위해 가상주소를 실주소로 변환하는 과정
- 동적 주소변환(DAT): 프로세스가 실행되는 동안 사상
- 인위적 연속성: 가상주소 공간에서 연속적인 주소가 실주소 공간에서도 연속적일 필요는 없다는 개념
2. 블록 단위 주소변환
주소변환 사상표 : 동적 주소 변환을 위한 정보를 가지는 표
주소 변환이 바이트나 워드 단위로 이뤄지면 변환에 필요한 정보량이 너무 많아 비효율적이라는 문제가 생긴다.
블록 사상 시스템
- 블록 단위로 주소 변환
- 가상 메모리의 각 블록이 메모리의 어디에 위치하느지 관리
- 가상주소 v = (b,d)
-> b: 블록 번호
-> d: 블록의 시작점으로부터의 변위(거리)
- 거리를 안다면 실주소 r에 대해서도 b`+d 를 하여 찾을 수 있음
- 블록의 크기는 적절히 정해야 한다.
-> 크기가 커질수록 : 사상표 크기 감소, 블록 전송시간 증가, 동시 적재 프로세스 수 감소
-> 크기가 작을수록: 사상표 크기 증가, 블록 전송시간 감소, 동시 적재 프로세스 수 증가
= 블록의 크기가 증가할수록 사상표 크기는 감소한다는 것은 큰 블록을 전송할 때 더 많은 데이터를 한 번에 처리하므로, 전체 전송 시간이 줄어들기 때문. 예를 들어, 한 번에 1MB 크기의 블록을 전송하는 것보다 한 번에 4MB 크기의 블록을 전송하는 것이 전체 전송 시간을 줄일 수 있다. 또한 블록이 크면 그만큼 처리하는데 자원이 많이 들 수 있기 때문에 동시 적재 프로세스 수는 감소한다.
블록 구성 방식
페이지: 블록의 크기가 동일
세그먼트: 블록의 크기가 다를 수 있음
페이징 기법
- 가상 메모리를 페이지 단위로 나누어 관리하는 기법
- 메모리 영역도 페이지와 동일한 크기의 페이지 프레임으로 나눔
-> 페이지 프레임: 페이지를 담을 수 있는 틀
페이지 사상표
- 가상주소를 실주소로 동적 변환할 수 있게 함
- 페이지 번호에 대한 페이지 프레임 번호 저장
직접 사상에 의한 동적 주소 변환
- 페이지 사상표를 직접 이용
- 페이지 크기 M = 1024
페이지 변환 정보를 연관 메모리에 저장한 연관사상표를 이용
가상주소 v = (3, 8)
실주소 r = 5M + 8 = 5128
- 연간메모리: 모든 것에서 한번에 찾는 것
연관/직접 사상에 의한 동적 주소 변환 (같이 사용함)
- 연관 사상표에는 가장 최근에 참조된 페이지만 보관
- 연관 사상표에 없을 때만 직접 사상 이용
페이징 기법의 특징
- 논리적 의미와 무관한 동일 크기의 페이지로 나눔
- 메모리 보호는 페이지 단위로 이루어짐
- 외부 단편화가 발생하지 않음 (같은 크기이므로)
- 내부 단편화는 가능
세그먼테이션 기법
- 가상 메모리를 세그먼트 단위로 나누어 관리
-> 세그먼트: 논리적 의미에 부합하는 다양한 크기의 블록
- 세그먼트 사상표를 이용하여 동적 주소 변환
크기가 다르기 때문에 실주소를 정해서 바로 거기에 적재
세그먼테이션 사상표
- 세그먼트 번호에 대한 실주소에서의 시작 위치 저장
- 세그먼트 길이는 오버플로우 확인용
크기가 다르기 때문에 실주소를 모두 가지고 있어야 함
동적 주소 변환
페이징 + 세그먼테이션 혼용기법
- 세그먼테이션 기법의 논리적 장점 + 페이징 기법의 메모리 관리 측면의 장점
- 가상 메모리를 세그먼트 단위로 분할 후 각 세그먼트를 다시 페이지 단위로 분할
- 메모리는 페이지 프레임으로 분할
- 가상주소 v = (s, p, d) // s= 세그먼트 번호, p = 페이지 번호, d = 페이지 내 변위
즉,
동적 주소 변환
가상 주소 (3, 7, 8)에 대해 3번 세그먼트를 찾고 없다면 직접 사상
3. 메모리 호출 기법
- 어느 시점에 페이지 또는 세그먼트를 메모리에 적재할 것인가를 결정하는 기법
- 페이징 기법에서의 호출기법 종류
-> 요구 페이지 호출기법
-> 예상 페이지 호출기법
- 프로세스의 페이지 요구가 있을 때 요구된 페이지를 메모리에 적재하는 방법
-> 옮길 페이지 결정에 대한 오버헤드 최소화
-> 적재된 페이지는 실제로 참조됨
-> 프로세스 시작 시점에는 연속적으로 페이지 부재 발생
예상 페이지 호출 기법
- 곧 사용될 것으로 예상되는 페이지를 미리 메모리에 적재하는 방법
-> 예상이 잘못된 경우 시간과 메모리 낭비
-> 프로세스 시작 시점에 적용하면 성능이 개선됨
참고자료: 운영체제(김진욱, 이인복 공저, KNOU press 출판)
'CS > 운영체제' 카테고리의 다른 글
장치 관리, 장치의 개념, 장치의 구성, 입출력 처리 유형, 입출력 관리 (0) | 2023.06.15 |
---|---|
페이지 교체 알고리즘, 프로세스별 페이지 집합관리 (0) | 2023.06.15 |
운영체제 메모리 관리, 프로세스와 메모리, 단일 프로그래밍 환경, 다중 프로그래밍 환경, 메모리 배치기법 (0) | 2023.06.15 |
교착상태 회피, 교착상태 탐지 및 복구 (0) | 2023.06.15 |
교착상태, 교착상태 특성, 교착상태 예방, 상호배제, 점유대기, 비선점, 환형대기 (0) | 2023.06.15 |