작성
·
15
0
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
Page Fault 과정
1. 어떤 명령어가 유효한 가상주소에 접근했으나 해당 페이지가 만약 없다면 트랩이
발생되어 운영체제에 알리게 됩니다.
2. 운영체제는 실제 디스크로부터 사용하지 않은 프레임을 찾습니다.
3. 해당 프레임을 실제 메모리에 가져와서 페이지교체알고리즘을 기반으로 특정페이지와
교체합니다. (이 때 스와핑이 일어납니다.)
4. 페이지테이블을 갱신시킨 후 해당 명령어를 다시 시작합니다.
이렇게 되어있는데 2번에서 OS가 Disk에서 빈 frame을 찾는게 아니라 Memory를 보고 빈 Frame이 있으면 Disk에 필요한 Frame을 가져오고 빈 Frame이 없으면 Page 교체 알고리즘을 통해 스와핑하는것 아닌가요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 이성무님께서 질문하신 페이지 폴트 과정에 대한 내용을 명확히 해드리겠습니다.
페이지 폴트는 운영체제가 메모리를 효율적으로 관리하기 위한 과정 중 하나입니다. 질문해주신 2번 단계에 관하여 설명드리면:
페이지 폴트 발생 시: 프로세스가 특정 페이지에 접근하려 할 때 해당 페이지가 메모리에 없는 경우, 페이지 폴트가 발생합니다. 이는 운영체제가 디스크에서 해당 페이지를 메모리로 가져와야 함을 의미합니다.
빈 프레임 확인: 운영체제는 먼저 빈 프레임이 있는지를 메모리에서 확인합니다. 만약 빈 프레임이 있다면, 이 프레임에 디스크에서 필요한 페이지를 로드합니다.
빈 프레임이 없음: 메모리에 빈 프레임이 없다면, 페이지 교체 알고리즘을 통해 어떤 페이지를 내보낼지 결정합니다. 교체된 페이지는 스와핑을 통해 디스크로 이동하고, 이 자리에 새로운 페이지를 로드합니다.
간단히 말해서, 운영체제는 첫 번째로 메모리에서 빈 프레임을 찾고, 없을 경우 페이지 교체를 통해 디스크로부터 필요한 페이지를 메모리로 가져옵니다. 이 과정이 질문에서 말씀하신 방식과 일치한다고 볼 수 있습니다. 스와핑 과정도 페이지 교체의 한 과정으로 포함됩니다.
아래와 같은 기존 질문 및 답변도 도움이 될 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.