가상 기억 장치
하드디스크의 일정 부분을 주기억장치처럼 쓰는 것
1)블록 분할 방법
ⓛ페이징기법(고정):메모리영역과 가상기억장치영역을 고정으로 자른 것
-외부단편화는 발생하지 않으나 내부단편화는 발생!
-페이지:가상 메모리(가상 기억 장치)를 일정한 크기로 나눈것/프레임: 물리 메모리(메모리) 일정한 크기로 나눈 블록
②세그멘테이션기법(가변)
페이지 부재로 인해 발생하는 현상을 스래싱 현상이라고 함
③지역성
비슷한 시간,공간에 있는 것을 앞으로 참조할 가능성이 높아 한꺼번에 가져올 경우 페이지 부재가 조금 발생
->스레싱현상이 발생하지 않음으로 판단하여 한꺼번에 가져오는 것
시간구역성:for문을 돌릴때 같은 경우 같은 시간대에 있는 것을(반복문)같이 가져오면
공간구역성:배열에 있는 것을 사용시 배열 전체 가져오는 것
④워킹 셋(Working Set)
프로세스가 일정 시간 동안 자주 참조하는 페이지들의 집합
ex)for문을 돌릴경우 거기 있는 것들을 계속 참조하고 배열 사용할 경우 배열을 계속 참조
-스레싱 현상 방지
⑤스래싱(Thrashing)☆
프로세스의 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
주기억장치에 참조할 페이지가 없어 하드디스크에서 가져와야 해서 cpu의 이용효율이 떨어지는 현상
스래싱 현상 방지 방법
-다중 프로그래밍의 정도를 적정 수준 유지(5개 정도만 유지)
-워킹셋을 유지
페이지 교체 알고리즘
FIFO(FCFS같음):먼저 들어간 것이 먼저 교체
LRU(Least Recently Used):최근에 참조하지 않은 페이지 교체
LFU(Least Frequently Used):사용된 횟수가 작은 것을 교체(빈도)
NUR(Not Used Recently):참조비트와 변형비트를 1로 바꾸고 1일 경우 가장 많이 쓴다고 생각하여 가장 나중에 교체
SCR(Secon Change Replacement):FIFO기법의 단점을 보완(FIFO에서 방금 교체했는데 바로 부르는것에 단점)
OPT나중에 사용하지 않은 것들을 계산하는 것인데 현실적으로 불가능