OS와 하드웨어

OS가 스스로 CPU를 내놓지 않는 프로그램에서도 일정 시간마다 CPU를 되찾아 다른 프로세스로 전환할 수 있는 것은 주로 어떤 구조 덕분입니까?

  1. A캐시 미스
  2. B타이머 인터럽트
  3. C카피 온 라이트
정답과 해설 보기

정답: B. 타이머 인터럽트

OS는 타이머를 설정하여 일정 시간(타임 슬라이스)마다 타이머 인터럽트가 발생하게 합니다. 인터럽트가 발생하면 CPU는 반드시 커널의 인터럽트 핸들러로 이동하므로, 프로그램이 무한 루프에 빠져 있어도 OS는 제어를 되찾아 다른 프로세스로 컨텍스트 스위치를 할 수 있습니다. 이를 선점형(preemptive) 스케줄링이라고 합니다. 캐시 미스나 카피 온 라이트는 CPU를 되찾는 구조가 아닙니다.

  • A. 캐시 미스는 하드웨어가 처리하며 OS로 제어가 넘어가지 않습니다.
  • B. 올바릅니다. 일정 시간마다 발생하는 인터럽트로 OS가 제어를 되찾습니다.
  • C. 카피 온 라이트는 쓰기 시 페이지를 복제하는 방식입니다.
이 분야 연습하기 분야로 돌아가기

OS와 하드웨어의 다른 문제

  1. 위와 같이 장치의 상태 레지스터를 메모리 맵 I/O로 읽을 때 volatile을 붙이고 그 영역을 캐시하지 않도록 설정하는 이유로 올바른 것은 무엇입니까?
  2. 장치의 상태를 인터럽트를 쓰지 않고 CPU가 반복해서 조사하는 방식(폴링)이 유리한 경우는 무엇입니까?
  3. 캐시 일관성을 하드웨어가 유지하지 않는(비코히런트) 시스템에서, 장치가 DMA로 주기억장치에 쓴 데이터를 CPU가 읽기 전에 소프트웨어가 해야 하는 처리는 무엇입니까?
  4. IOMMU의 주된 역할로 올바른 것은 무엇입니까?
  5. 디바이스 드라이버의 역할로 올바른 것은 무엇입니까?

이 분야의 비교