프로세스 자체 또는 스케줄러에 의해 프로세스가 실행 중에서 실행 중이 아닌 상태(준비, 대기 등)로 상태를 변경하면 모든 페이지는 프로세스에서 사용되며 다른 실행 중인 프로세스와 공유되지 않습니다. 주 메모리에서 스왑 아웃 ?
아니면 프로세스가 실행되고 있지 않을 때 해당 프로세스에서 사용하는 일부 페이지가 실행 중인 다른 프로세스와 공유되지 않고 여전히 주 메모리에 남아 있을 가능성이 있습니까?
감사해요.
답변1
아니요. 일반적으로 실행되지 않는 프로세스의 페이지는 그대로 유지됩니다. 메모리 부족이 필요할 때만 교체되고, 최근에 사용되지 않은 페이지만 교체됩니다.
대부분의 프로세스는 초당 여러 번 실행 중 상태에서 실행 중이 아닌 상태로 전환되며 대부분의 시간을 실행 중이 아닌 상태에서 보냅니다. 실행 중이 아닌 동안 모든 프로세스가 교체되면 성능에 미치는 영향을 상상해 보십시오. (데스크톱 환경을 실행하도록 놔두면) 밤새도록 백그라운드 작업을 실행하면 많은 메모리가 소비되며 이런 일이 발생하는 것을 볼 수 있습니다. 데스크톱 환경의 비활성 프로세스가 교체되고 아침에 꽤 오랜 시간을 기다려야 합니다. 시스템이 응답합니다. 다시.)