OS와 하드웨어

CPU에 특권 모드(커널 모드)와 사용자 모드를 두는 주된 목적은 무엇입니까?

  1. A애플리케이션의 명령을 커널의 명령보다 빠르게 우선하여 실행할 수 있게 하기 위해
  2. B애플리케이션이 페이지 테이블이나 장치를 마음대로 조작하지 못하도록 보호하기 위해
  3. C하나의 CPU에서 동시에 두 개의 명령을 실행할 수 있게 하기 위해
정답과 해설 보기

정답: B. 애플리케이션이 페이지 테이블이나 장치를 마음대로 조작하지 못하도록 보호하기 위해

애플리케이션이 페이지 테이블 재작성, 입출력 장치 조작, 인터럽트 금지 등을 마음대로 할 수 있다면 다른 프로그램의 메모리를 망가뜨리거나 시스템 전체를 멈출 수 있습니다. 그래서 CPU는 이러한 명령을 특권 모드에서만 실행할 수 있도록 하여 OS의 커널만 사용하게 합니다. 사용자 모드에서 실행하려고 하면 예외가 발생합니다. 속도나 동시 실행을 위한 구조가 아닙니다.

  • A. 실행 속도는 모드에 따라 달라지지 않습니다.
  • B. 올바릅니다. 위험한 작업을 커널로 한정하여 시스템을 보호합니다.
  • C. 동시에 여러 명령을 실행하는 것은 슈퍼스칼라 등의 구조입니다.
이 분야 연습하기 분야로 돌아가기

OS와 하드웨어의 다른 문제

  1. 애플리케이션이 파일 읽기/쓰기 등을 OS에 요청하는 구조를 무엇이라고 합니까?
  2. 위의 RISC-V 코드에서 마지막 ecall 명령이 실행되었을 때 일어나는 일로 올바른 것은 무엇입니까?
  3. 인터럽트와 예외의 차이에 대한 일반적인 설명은 무엇입니까?
  4. 다음 중 명령 실행과 무관하게 언제 발생할지 정해져 있지 않은 비동기 요인은 무엇입니까?
  5. CPU가 인터럽트를 받아들였을 때의 일반적인 처리 흐름으로 올바른 것은 무엇입니까?

이 분야의 비교