[운영체제] NRU(NUR, Not Recently Used, Not Used Recently) vs. LRU(Least Recently Used)

2017. 3. 5. 20:099급 공무원/컴퓨터 일반

기억장치 관리 전략중, 교체 전략의 NRU와 LRU의 차이점에 대해서 알아볼 것.

NRU 는 NUR이라고도 함, 교재에는 NUR이라고 되있는데, 외국 사이트 들에서는 NRU로 찾아볼 수 있음

이하 NRU로 지칭(wiki에 NRU로 되어있으니까)


일단 뜻부터 알아보자

NRU 최근에 사용되지 않은 페이지

LRU 가장 안 최근에 사용된 페이지(사용된지 가장 오래된 페이지)

??

???

똑같은거 아닌가?

장난?


교재에는

LRU - 주기억장치에서 가장 오랫동안 사용되지 않은 페이지를 교체한다.

NUR - 주기억장치에서 최근에 사용되지 않은 페이지를 교체한다.

뭐야 결국은 쓴지 오래된 페이지를 바꾸겠다는 거잖아?


뭐가 다른거지!? 하고 위키를 뒤져보았다.


1. NRU [ Not Recently Used, = NUR : Not Used Recently ]

 > algorithm that favours keeping pages in memory that have been recently used.

   알고리즘인데, 최근에 사용된 메모리 페이지를 유지하는 것을 선호하는것

  

   구체적인 우선순위는! 두개의 비트로 설정된다.

 첫 번째 비트는 참조비트(Referenced bit), 두번째 비트는 변형비트(modified bit)

 숫자가 큰 것을 더 오래 놔둔다. 몇번을 참조했는가는 의미없음

 다시 말해서

3. referenced, modified

2. referenced, not modified

1. not referenced, modified

0. not referenced, not modified

이런 우선순위를 지니게 된다.


2. LRU [ Least Recently Used ]

 >  NRU, differs in the fact that LRU keeps track of page usage over a short period of time, while NRU just looks at the usage in the last clock interval.

     NRU는 LRU가 짧은 시간 동안 페이지 사용량을 추적한다는 점에서 다르지만, NRU는 지난 클럭 간격에서 사용량을 확인합니다.

LRU works on the idea that pages that have been most heavily used in the past few instructions are most likely to be used heavily in the next few instructions too.

   LRU는 지난 몇 가지 명령에서 가장 많이 사용 된 페이지가 다음 몇 가지 명령에서도 많이 사용될 것 같다고 생각합니다.

While LRU can provide near-optimal performance in theory (almost as good as adaptive replacement cache), it is rather expensive to implement in practice.

LRU는 이론적으로 거의 최적의 성능을 제공 할 수 있지만 (실제로 적용 가능한 대체 캐시만큼 좋음) 실제로 구현하는 데 비용이 많이 듭니다.


뭐야 그래서 뭐가 다르다고?!

1. 페이지 사용량의 추적에서 다르다!

2. 구현 비용에서 다르다.

LRU는 스택과 계수기 같은 별도의 하드웨어가 필요하며, 시간적 오버헤드가 발생한다!

NUR은 어떤 사실을 전제로 LRU의 오버헤드를 줄일 수 있다.

(어떤 사실:최근에 사용되지 않은 페이지는 이후에도 사용되지 않을 가능성이 높다)


시험에는 LRU만 나옴...


따라서 사실은 몰라도 됨...

같은 알고리즘이라고 생각해도 됨...


다만! NRU[NUR] 은 비트가 두개 있고! 우선순위는 참조가 높다. 는 것만 알면 될듯!


... 다 정리하고 나니 참 쓸데 없네...휴...