IT 이야기/컴퓨터구조,OS

Virtual Memory

필넷 2009. 6. 30. 08:37
반응형
○ Virtual Memory

분할

※ Block mapping의 개념

정의

° 프로그램을 블록단위로 분할하고 이렇게 분할된 블록단위로 주소 사상 정보를 기록하여 사용하는 기법

특징

° 블록 사상 테이블(Block Mapping Table) 사용
- 각 프로세스마다 하나씩 존재하며 블록의 가상주소와 이에 대응하는 실 주소 저장하는 테이블

장점

단점

° 사상 테이블에 적재될 page양이 적어짐
° 주소사상에 필요한 시간이 빨라짐

° 각 블록이 차지하는 주기억장치 공간의 양이 많아짐
° 필요 없는 부분이 주기억장치에 적재될 가능성이 많음
° 각 블록의 전송시간이 길어짐

° 블록의 크기에 따른 장단점(ex, 블록의 크기가 클 경우)


Paging

° 프로그램을 동일 크기의 블록으로 분할하며 단순하고 효율적이어서 많은 OS에서 사용됨
° page - 실행 프로그램의 분할된 블록
° page frame - 주기억장치 분할영역으로 page size와 같은 크기로 분할됨
° 내부적 단편화 발생 가능
° 프로그램 공유(Sharing)나 보호(Protection)에 있어 복잡한 문제 발생 가능

직접
사상

° 블록사상 기법과 유사
° 주기억장치 접근회수 2배로 증가 → 성능저하 초래

연관
사상

° PMT를 연관기억장치에 적재하여 사용하는 방법으로 연관기억장치 비용이 소요됨
° 연관기억장치(Associative memory)
- contents addressable memory
- 주소의 개념 없이 지정된 내용으로 데이터에 접근할 수 있도록 H/W적으로 구현한 장치
- 필요한 내용을 갖는 데이터에 대해 병렬탐색이 가능함

혼합
사상

° 하드웨어의 비용을 줄이면서 연관사상 기법의 장점을 취함(직접사상 + 연관사상)
° PMT의 전체 내용 - 주기억장치 커널공간에 적재
° PMT의 일부 내용 - 최근에 참조된 page들만 연관기억장치에 적재(Locality에 기반한 접근)

※ 주소사상 기법 - Page Mapping Table 이용

Segment

° 프로그램을 분할할 때 논리적인 개념을 가지고 서로 다른 크기의 블록으로 분할하는 시스템
° 주기억장치 영역을 미리 분할해둘 수 없으며 각 segment를 적재시에 빈 공간을 찾아 할당함
° 외부적 단편화 발생 가능
° 세그먼트 공유(Sharing)나 보호(Protection)가 쉬움
※ 주소사상 기법 - segment mapping table 이용
- 직접사상, 연관사상, 혼합사상
- SMT내의 protection bit를 이용하여 접근제어(read, write, execute, append) : 관리 오버헤드 증가

혼합기법

° 프로그램을 논리적 segment단위로 분할 후 다시 page 단위로 분할
° 분할된 page 단위로 주기억장치에 적재하며 주기억장치는 page frame단위로 미리 분할되어 있음
° 각 프로세스 마다 하나의 SMT와 segment 개수만큼의 PMT 존재
° 기억장치 소모가 많으며 주소사상에 많은 시간이 요구됨

교체

° LRU(Least Recently Used) - timestamping에 대한 오버헤드 발생
° LFU(Least Frequently Used) - 최근에 주기억장치에 적재된 page를 교체할 수도 있음
° NUR(Not Used Recently) - 최근에 참조 또는 갱신되지 않은 page
° FIFO, RANDOM

문제점

° Page Fault - 기억장치에 적재되지 않은 page를 사용하고자 할 때 발생
° Thrashing - 프로세서가 프로그램의 실행 시간보다 페이지 교체에 더 많은 시간을 소비하는 현상

보완책

° Demand Paging - 필요할 때, 요구될 때만 프로세스의 page들을 적재
° Locality특성의 활용 - 시간/공간 지역성을 활용한 관리
  - 시간지역성 : 루프, 서브루틴
  - 공간지역성 : 배열, 순차명령 처리
° Page Stealer - page table의 Free list가 정의된 최소값보다 작으면 minimum free list 개수가 될 때까지 page교체
° PFF(Page Fault Frequency) - page fault의 빈도수에 따라 residence set을 조정
° Working Set - 프로세스가 가장 최근에 참조했던 page set을 주기억장치에 유지, 오버헤드가 큼


반응형

'IT 이야기 > 컴퓨터구조,OS' 카테고리의 다른 글

디스크 스케줄링  (2) 2009.02.03
통합스토리지(DAS vs NAS vs SAN)  (9) 2009.01.06
I/O  (1) 2008.12.31
RISC vs CISC  (0) 2008.12.29
교착상태  (0) 2007.10.25