본문 바로가기
Study/용어

PreFetch와 SuperFetch

by 꼬부기가우는소리 2016. 7. 8.
728x90


참고 사이트 : 

- [띄우지 못한 편지] XP 프리패치 (prefetch)레벨 설정, 비스타 수퍼패치

- [불의 신전] [팁][윈도우7] 프리패치 수퍼패치를 최대한 쉽게 이해해 보자

- [Microsoft] Windows 7의 성능(Performance)은 어떻게 향상되었을까요? 더 빠른 시스템 응답(Responsiveness) 속도를 위해! (1)



Prefetch

프리패치(prefetch)는 하드디스크를 읽는 속도를 높이려고 데이터를 미리 메모리에 가져오는 마이크로소프트의 기술이다. 자료를 미리 불러와 저장해 놓았다가 필요할 때마다 가져다 쓰는 캐시이기도 하다.


자주 쓰는 파일은 'pf 파일'로 처리한다. 각 프로그램은 크기 4~64KB의 'pf 파일'로 존재한다. 단, 부팅 파일은 크기 제한이 없다. pf 파일에는 실제 메모리로 읽어오는 파일이 하드디스크 어디에 있는지 그 주소가 저장되어 있다. 실행 파일이 하드디스크의 처음과 끝에 나눠 저장되었더라도 각 조각에 해당하는 주소를 보고 재빨리 읽어온다.


한마디로 중요한 파일을 먼저 읽어들여서 부팅이나, 프로그램을 빠르게 실행되도록 도와주는 기능이다.


기능

1. 부팅시

윈도우 XP에서 처음 도입된 개념으로 자주 사용되는 시스템설정파일(드라이버, 중요한 시스템파일)을 최적화해서 일정영역에 미리 저장해놓고 그 파일들을 부팅시 읽어들임으로써 부팅을 빠르게 한다.


2.프로그램 실행시

자주 사용하는 프로그램을 자동으로 파악해서 일정공간에 "실행되는 프로그램 파일에 대한 정보를 저장"하고 일정부분을 "미리 램 혹은 페이지파일에 저장"해 놓는다. 프로그램을 다시 실행시키면, 미리 읽어놓은 파일들 때문에 빠르게 실행되는 것이다.


문제점

Prefetch 기술은 파일과 데이터를 응용 프로그램 요청 전에 미리 로딩해 놓는 기술이었다. 그러나, 가상 메모리는 한정된 용량을 가지고 있기 때문에 다른 응용 프로그램이 메모리를 필요로 할 경우, Prefetch 해놓은 데이터를 하드 디스크 내 페이징 파일로 이동시켜야만한다. 즉, 시스템에 부하가 걸리게 된다. 이 데이터가 다시 필요하다면, 다시 페이징 파일로부터 메모리로 로딩해야 되고, 결국 성능 향상에 약점으로 이어지게 된다.



Superfetch

Prefetch에서 부족했던 몇몇 요소들을 보완하여 시스템의 응답 속도 향상에 도움을 주었다. 몇가지 데이터를 더 가지고 데이터를 메모리로 로딩한다. 맵 파일에 사용자가 해당 프로그램을 얼마나 종종, 언제, 얼마동안 사용하는지 등의 사용자의 사용 패턴을 기록한다.


또한 Superfetch는 Prefetch 된 데이터가 메모리에서 페이징 파일로 스와핑되었을 경우, 이를 감지하고, 페이징을 야기한 응용 프로그램이 종료되었을 경우, 다시 해당 데이터를 메모리로 이동시키게 된다. 따라서, 실제 응용 프로그램이 해당 데이터를 접근하려 했을 경우, 메모리에서 빠르게 찾을 수 있게 도와준다.




728x90

'Study > 용어' 카테고리의 다른 글

앱태크  (0) 2018.08.09
WarGame (워게임)  (0) 2016.08.29
오픈 소스 (Open Source)  (0) 2016.07.30
버그바운티  (0) 2016.06.15
스테가노그래피 (Steganography)  (0) 2016.06.08

댓글