가상 메모리 관리(Paging)
Page Mapping
- 일정한 크기로 프로세스를 분할
- 크기를 고정
- 메인 메모리와 전체 프로세스를 동일한 크기로 분할
- Offset - (x, y) 좌표로 페이지위치를 찾는 것
n (page, offset)
n 2단계 주소체계를 만들기 위함
n 메인 메모리에 올릴 때 page번호는 변할 수 있지만 offset번호는 변하지 않는다.
- Page table
n Page의 번호가 메인 메모리에 올리면 번호가 바뀌기 때문에 테이블에 적어 둔다.
n 프로세스 당 1개 - page번호는 모든 프로세스가 동일함, 0번부터 시작 함
n 그때 그때 만들어 준다. (이유 : 프로세스당 매칭 되는 메인 메모리의 주소가 겹치면 안됨)
n 페이지 테이블의 값이 메인 메모리에 올라와 있는지를 확인 해 보기 위해서 0,1의 비트로 표시를 해준다. (Residence Bit - 1인경우 메인 메모리에 올라가 있는 것)
n 메인 메모리의 한 세션에 저장되어 있음
직접 사상(Direct Mapping)
- 캐시 메모리를 사용하여 메모리 위치를 찾는 데에 걸리는 시간이 가장 빠르다.
- 페이지 테이블을 직접 접근함
- Memory 접근 시간이 100n/sec라고 한다면 총 접근 시간은 200n/sec.
- 페이지 테이블이 직접사상
- 총 2번의 메모리 접근이 필요함
- 프로세스 -> 메인 메모리의 페이지테이블 접근 -> 다시 메인 메모리의 해당 테이블의 값의 위치에 접근
연관 사상(Associative Mapping)
- 매핑된 값들을 캐쉬 메모리에 저장
- 프로세스 번호와 페이지 번호, 매칭된 메인 메모리의 주소가 함께 매칭되어 입력되어 있음
- 캐시 메모리에 없다면 프로세스의 페이지 테이블로 들어가서 확인 한다.
- 한 번 이라도 접근이 있었다면 캐시 메모리에 저장
- 프로세스 -> 캐시 메모리에 연관 사상 테이블 접근 -> 저장된 값의 위치에 접근
- 캐시 메모리에 없는 경우 (직접 / 연관 사상 작용)
n 프로세스 -> 캐시 메모리(저장되지 않음) -> 메인 메모리(페이지 테이블 세션) -> 메인 메모리
공유(Page Sharing)
- 동일한 내용을 접근할 때 한 위치에 두고 공유해서 접근하는 방법
- 메모리를 최소화 시킴
페이지 크기
- 페이지 크기가 작을 때(보통 페이지가 큰 경우는 반대)
n 단점
u 테이블 단편화
u 페이지의 개수가 많아 짐
u 메모리를 많이 차지함
u 한 페이지에 다 안 들어 가는 경우가 발생
n 장점
u 작업 세트를 확보하는 데 도움
u 특정 부분을 사용해야 하는 경우 여러 페이지에 접근 할 필요가 없음
u 페이지 크기가 크면 페이지별로 걸쳐서 존재하는 경우가 있음
- 페이지의 크기는 고정 크기로 나누기 때문에 내부 단편화가 많이 발생하게 된다.
n 페이지를 할당 받고 남는 부분이 내부 단편화
- 페이지 크기가 큰 경우
n 단점
u 내부 단편화가 크게 발생하게 됨
n 장점
u 한꺼번에 한 페이지만 올라오면 된다.
페이지 인출 기법
- 요구 페이징 기법
n 요청이 되면 페이지를 메모리 상에 올림
- 예상 페이징 기법
n 운영체제가 예측해서 메모리 상에 페이지를 올림
페이지 양도
더 이상 사용하지 않는 페이지는 다른 페이지로 양도
'3학년 > 운영체제' 카테고리의 다른 글
Chapter4-4 (0) | 2019.06.23 |
---|---|
Chapter4-3 (0) | 2019.06.23 |
Chapter4-1 (0) | 2018.04.17 |
Chapter3 (0) | 2018.04.13 |
Chapter2-3 (0) | 2018.04.12 |