OS와 하드웨어

프로그램이 OS가 할당하지 않은 주소에 접근했을 때 일반적으로 일어나는 일은 무엇입니까?

  1. ACPU가 그 주소를 위해 새로운 물리 메모리를 자동으로 증설한다
  2. B접근은 무시되고 프로그램은 아무 일 없이 다음 명령을 계속한다
  3. C페이지 폴트가 발생하고, OS가 잘못된 접근이라고 판단하여 프로그램을 정지시킨다
정답과 해설 보기

정답: C. 페이지 폴트가 발생하고, OS가 잘못된 접근이라고 판단하여 프로그램을 정지시킨다

할당되지 않은 주소에 접근하면 페이지 테이블에 유효한 항목이 없으므로 페이지 폴트가 발생합니다. OS는 그 주소가 프로세스에 허용된 범위인지 조사하고, 어디에도 할당되지 않은 잘못된 접근이면 프로그램에 이상을 알리고 정지시킵니다(이른바 세그멘테이션 오류, segmentation fault). 이로써 잘못된 포인터가 다른 프로세스나 OS의 메모리를 망가뜨리는 것을 막을 수 있습니다. 물리 메모리가 자동으로 늘어나거나 접근이 조용히 무시되는 일은 없습니다.

  • A. 물리 메모리가 자동으로 늘어나는 일은 없습니다.
  • B. 조용히 무시되면 오류를 알아차릴 수 없게 됩니다.
  • C. 올바릅니다. 페이지 폴트를 받은 OS가 잘못된 접근으로 정지시킵니다.
이 분야 연습하기 분야로 돌아가기

OS와 하드웨어의 다른 문제

  1. 파일을 메모리에 대응시키는(mmap과 같은) 구조에서 파일 내용을 읽을 때 일어나는 일에 대한 설명으로 올바른 것은 무엇입니까?
  2. 작은 데이터를 1바이트씩 쓸 때, 매번 시스템 콜을 호출하는 것보다 사용자 공간의 버퍼에 모았다가 한꺼번에 쓰는 편이 빠른 주된 이유는 무엇입니까?
  3. CPU에 특권 모드(커널 모드)와 사용자 모드를 두는 주된 목적은 무엇입니까?
  4. 애플리케이션이 파일 읽기/쓰기 등을 OS에 요청하는 구조를 무엇이라고 합니까?
  5. 위의 RISC-V 코드에서 마지막 ecall 명령이 실행되었을 때 일어나는 일로 올바른 것은 무엇입니까?

이 분야의 비교