2013-08-19 2 views
0

프로세스의 메모리에있는 .text 페이지가 스왑 아웃되어 있습니까? 아니면 스왑 아웃 된 데이터 (힙) 만 포함하는 페이지입니까? 에 의해 여기 . 텍스트 페이지를 스왑 아웃합니까?

는 "교체 아웃"나는 아니라 '주 메모리에서 단순한 퇴거' '스왑 영역에 교환되는'를 참조하십시오. 내 질문은 .text 페이지가 단순히 제거 된 다음 데이터 페이지와 달리 수정할 필요가 없거나 HDD를 스왑 영역으로 스왑했는지 여부입니다.

그래서 또한, 교체 아웃 스택에 속하는 페이지입니다?

는 사람이 교환을 위해 고려되는 프로세스의 가상 메모리의 어떤 페이지에 대한 자세한 설명을 제공하시기 바랍니다 수 있고, 어떤 사람은 결코?

답변

1

끝에있는 모든 페이지는 스왑 아웃 된 것으로 간주됩니다. 리눅스에서는 캐시 페이지를 해제 한 다음 깨끗한 비 사용 페이지를 스와핑하여 시작합니다 (스왑 장치에 쓰기가 아니라 매핑 해제가 필요함). 그 후 익명으로 백업 된 프로세스 페이지 (스택, 편집 할 수있는 데이터, 힙 등)를 스왑하기 시작해야하는 지점에 도달하기 전에 메모리에있는 더티 파일 백업 페이지를 각각의 백업 장치로 플러시하려고 시도합니다. . 커널이 아닌 페이지는 항상 시스템의 메모리 부족에 따라 스왑 아웃 될 수 있습니다. 이미 백업 저장소가

페이지는 단순히 매핑되지 않은 또는 그들이 더러운 경우 자신의 백업 저장소로 플러시됩니다. 분명한 이유로 스왑되지 않았습니다.

+0

감사합니다. 어떤 페이지가 스왑 영역으로 스왑되고 어떤 스왑 영역이 단순히 축출되었는지는 분명하지 않습니다. 둘째, 페이지를 단순하게 매핑하면 필요한 경우 가져올 수 있습니다. – user31986

+0

@ user31986 이후에 페이지에 액세스 할 때 페이지 폴트가 발생하여 I/O를 수행하여 페이지를 가져 오게됩니다. 축출 된 페이지 (스왑으로 전송되지 않음)는 이미 백업 스토어가있는 페이지이며, 익명으로 매핑 된 페이지 만 스왑하도록 전송됩니다 (다른 곳이 없기 때문에). –

+0

감사합니다. "익명 매핑 된 페이지 만 스왑으로 보내집니다"라는 메시지가 모두 명확 해집니다! – user31986