○ 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을 주기억장치에 유지, 오버헤드가 큼 |
제글이 마음에 드셨다면, 망설이지 말고 RSS로 무료구독하세요. ^^ 
허걱..이렇게 어려운 얘기를..그냥 지나칩니다.
죄송합니다. ㅎㅎ
필넷의 라이프로그(http://feelnet.tistory.com)에 많이 놀러와주세요. ^^
남의 떡이 더 커 보인다
원숭이도 나무에서 떨어진다.
무슨?
그것을 살 여유가 없습니다.
혼자 내버려 두십시오.
여기에 영어를 하시는 분 계십니까?
언제?
저를 속이고 있군요.
어떻게 지내십니까?
저는 돼지고기를 먹지 않습니다.
저는 소고기를 먹지 않습니다.
누구?
저는 유대인 음식만 먹습니다.
어디?
좋습니다, 그것을 사겠습니다