Windows ETC

워킹

윈도우 NT에서 워킹 (Working Sets) 현재 시스템 프로세스에 할당된 메모리의 총량을 언급하는 주로 쓰였다. 그러나 현재 윈도우 NT 워킹 셋은 예전 정의와는 달리 프로세스에 의해 활성화되어 이용되고 있는 메모리를 나타내고 있다. 현재 할당이 되었건 되지 않았건 그것은 별로 중요하지 않다. 성능 모니터에서는 현재 프로세스의 워킹 셋을 확인할 있으며 워킹 셋에는 공유 데이터(Dll 페이지 ) 포함하고 있다. 따라서 워킹 셋의 총량은 시스템의 물리적 메모리보다 많아지기도 한다.

 

워킹 관리

윈도우 NT 수정된 FIFO(First In First Out) 메모리 관리 전략을 사용하고 있다. 프로세스는 최소 워킹 셋과 최대 워킹 셋을 설정할 있다. 만약 시스템에 메모리가 충분히 존재한다면 워킹 셋은 최대 크기 이상으로 커질 있다. 이것은 워킹 확장이라 불리우며 프로세스가 페이지 오류가 발생한 경우, 일반적으로 페이지 리스트에서 새로운 페이지를 받게 된다. 준비 상태 (Standby-mode) 페이지는 시스템 페이지 재요구가 있어도 내용이 삭제되지 않는다. 사용 가능한 메모리가 줄어들면 메모리 관리자는 워킹 셋을 다시 설정하여 프로세스를 정리하며 새로운 메모리 여유 공간 목록을 작성한다. 프로세스를 정리하는 과정은 페이지의 정리까지도 포함하고 있으며, 페이지가 중간에 수정되면 수정된 내용을 페이지 파일에 저장하게 된다. 그리고 내용을 적절한 여유 공간 목록에 저장하게 된다. 만약 사용 중인 메모리 영역을 정리해 버린 경우 프로세스는 페이지 오류를 내게 된다. 이런 상황에서 발생되는 오류를 트랜지션 오류라고 하며 만일 해당 페이지가 준비 상태 페이지로 인식되어 아직 내부의 내용이 지워지지 않았다면 정리된 페이지의 데이터를 다시 원래의 프로세서로 돌려 주면 에러를 해결할 있다.