Page fault 메시지가 나오면 스왑 인, 스왑 아웃은 일어나지 않는 건가요?
12:40 부분에서
*pszResult = 'A';를 하고
pszResult에 저장된 주소가 51이고 페이지 5에 있다고 가정하시는 부분에서 궁금한 점이 있습니다.
페이지 테이블의 5번에 invalid라고 되어 있어서 Page fault 에러 메시지가 나온다고 하셨는데
이런 경우 찾는 데이터를 스왑 영역에서 물리 메모리로 가져 온 후, 잘 안 쓰는 데이터를 스왑 영역으로 보낼 줄 알았는데
에러 메시지가 뜬다는 것은 스왑 인, 스왑 아웃이 일어나지 않았다는 건가요?
스왑 인, 스왑 아웃이 일어나지 않고 에러 메시지가 나는 이유는 무엇인가요? 스왑 인, 스왑 아웃이 일어날 때와, 일어나지 않을 때가 따로 구분되어 있나요?
回答 1
1
가상 메모리 상의 모든 주소에 대해 실제 메모리가 매핑되어 있지 않습니다. 변수를 선언하든 동적할당을 통해 얻든 주소와 실제 메모리가 매핑 되어야 사용할 수 있습니다. C언어의 가장 큰 문제는 그러한 사실을 무시하고 어디든 포인터로 접근이 된다는 것입니다. 자유도가 지나칠 정도로 높습니다.
메모리가 부족해 특정 영역이 보조 기억장치로 Page-out이 됐다하여 Page fault가 발생하지는 않습니다. 응용 프로그램이 접근을 시도하면 다시 Page-in 해주니까요. Page fault는 아예 매핑조차 되지 않은 영역에 접근하는 경우에 발생합니다. 참고하시기 바랍니다. :)
32bit app에서 vms 4gb 설명에 대한 질문입니다.
0
77
2
레이스 컨디션 문제
0
208
2
스레드 종료 순서
0
150
1
제가 이해한게 맞는지 궁금합니다. (비디오 카드에 output)
0
229
2
플랫폼 bit관련 질문입니다
0
153
3
백그라운드 스케쥴링관련 질문입니다.
0
166
2
ready queue에 있던 프로세스들이 sleep이나 suspend되는 게 가능한가요?
0
249
2
IPC는 곧..?
0
358
2
interrupt와 DirectX 질문
0
404
2
공유자원과 임계구역
0
318
2
DMA와 고성능 소켓관련 질문입니다.
0
294
3
2강 DMA와 고성능 소켓 질문
0
420
3
I/O 관리자, 메모리 매니저 사용 이유
0
292
2
*pszResult =A; 포인터 사용 부분에 대한 질문입니다.
0
199
1
교착상태와 게임이 튕기는 현상
0
218
1
멀티스레딩
0
409
2
자료구조 공부
0
419
2
윈도우 레지스트리 질문
0
261
1
파일시스템과 가상메모리
0
341
1
가상 주소, 절대 주소 부분이 헷갈립니다.
0
342
2
운영체제 스레드 공부 중 궁금한 점 있습니다.
0
355
3
직업 관련 질문
0
328
1
페이징 기법의 주소 변환
0
301
2
PCB에 들어있는 정보
0
459
1

