Windows 7에서 OS가 사용하는 디스크 처리량과 파일 사이즈, 메모리 사용량 등 리소스가 Vista에 비해 70% 정도 작아짐.

 

OS가 사용하는 리소스가 작아지면 성능이 자체에 큰 영향을 미친다. 특히 OS가 사용하는 워킹 메모리 량이 줄어들어 Windows 7의 성능 향상에 크게 기여하였다.

 

Windows 7에서는 개개의 시스템 프로그램이 내부에서 가지고 있는 데이터 캐쉬를 다시 고쳤다. OS 전체의 캐쉬를 고쳐서 400 항목 이상을 제거. OS가 사용하는 데이터 캐쉬량이 작아졌고, OS 사이즈도 작아졌다.

 

 

워킹셋 개선

Vista에서는 메모리를 '워킹셋'으로 관리. 워킹셋은 각 프로세스마다 메모리를 할당하는 것. 당연 시스템도 워킹셋을 할당하고 있다. Vista의 시스템 워킹셋 내부는 시스템 캐쉬, Paged Pool, 시스템 코드가 하나로 되어 있다.

그래서 Vista에서는 큰 파일을 복사하면 시스템 응답성이 나빠지고, 네트웍에도 이상이 발생한다. 이것은 시스템 워킹셋 내부에 있는 시스템 캐쉬를 모두 소비하여 다른 Paged Pool이나 시스템 코드가 사용할 수 있는 영역을 줄여버려서 발생하는 것이다. 이때 OS의 메모리 매니져는 시스템 캐쉬를 확장하기 위해서 시스템 코드를 점점 메모리에서 HDD의 가상 메모리로 스왑해 간다. 이로 인해서 시스템 전체적으로 성능이 나빠진다.

 

Windows 7에서는 시스템 워킹셋을 시스템 캐쉬, Paged Pool, 시스템 코드로 각 영역으로 분리. 이것에 의해서 위의 예처럼 큰 파일을 복사해도 Paged Pool이나 시스템 코드가 사용하고 있는 영역에 영향을 주지 않는다. 이것에 의해 시스템 코드가 HDD로 스왑 되는 것이 줄어들어 시스템 전체의 성능이 향상 된다.

 

 

페이지 스왑 개선

Windows 7에서는 페이지 스왑이 크게 개선되었다. Vista에서 '사용 중 페이지', '이전 사용한 페이지', '스왑하고 있는 페이지', '사용하지 않는 페이지' 4 종류로 분류. 그리고 이력을 관리하여 이전 사용한 페이지를 메모리 상에 유지.

그러나 이런 기능 때문에 '작은 사이즈의 메모리를 사용하여 바로 처리를 끝내고, 또 메모리를 사용' 이라는 반복 기능을 사용하는 애플리케이션이나 처음에 큰 크기의 메모리를 할당하고 순차처리 하는 애플리케이션 등에서는 바로 페이지 스왑아웃하여 HDD로 보내져서 HDD 접근이 빈번하게 일어나게 되었다.

Windows 7에서는 페이지 이력 기능을 강화하여 페이지 레벨을 올리는 것으로 가능한 많은 페이지를 메모리 상에 유지하여 스왑하지 않도록 한다.

메모리에 많은 페이지를 남기는 것이 가능한 것은 커널 사이즈의 소량화와 작은 메모리화 등에 의해 페이지 메모리 사용할 수 있는 영역이 늘어났기 때문이다.

 

 

 

참고 : http://ascii.jp/elem/000/000/514/514598/

 

 

by 흥배 2012. 8. 6. 09:00
  • Lyn 2012.08.06 11:21 ADDR EDIT/DEL REPLY

    다 좋은데 리소스매니저의 메모리 페이지에서 Modified를 "변경된 시간" 이라고 변경하는건 참아줫으면 ㅡㅡ;