OS와 하드웨어

장치의 상태를 인터럽트를 쓰지 않고 CPU가 반복해서 조사하는 방식(폴링)이 유리한 경우는 무엇입니까?

  1. A처리가 매우 높은 빈도로 발생하여 인터럽트 때마다의 전환 부담이 큰 경우
  2. B처리가 아주 드물게만 발생하고 CPU를 다른 작업에 사용하고 싶은 경우
  3. C소비 전력을 최대한 낮추기 위해 CPU를 오래 쉬게 하고 싶은 경우
정답과 해설 보기

정답: A. 처리가 매우 높은 빈도로 발생하여 인터럽트 때마다의 전환 부담이 큰 경우

인터럽트는 처리가 드물 때 CPU를 낭비하지 않아도 되지만, 한 번마다 상태 저장이나 핸들러로의 이동이라는 부담이 있습니다. 고속 네트워크처럼 처리가 매우 빈번하게 발생하면 인터럽트의 부담이 쌓여 처리가 따라가지 못하므로, 모아서 폴링하는 편이 효율적입니다. 처리가 드물거나 CPU를 쉬게 하여 전력을 낮추고 싶을 때는 헛돌며 계속 조사하는 폴링은 낭비가 많아 인터럽트가 적합합니다.

  • A. 올바릅니다. 빈번한 처리에서는 인터럽트의 부담보다 폴링이 효율적입니다.
  • B. 드문 처리에서는 폴링이 CPU를 낭비합니다.
  • C. 계속 조사하는 폴링은 CPU를 쉬게 할 수 없어 전력이 늘어납니다.
이 분야 연습하기 분야로 돌아가기

OS와 하드웨어의 다른 문제

  1. 캐시 일관성을 하드웨어가 유지하지 않는(비코히런트) 시스템에서, 장치가 DMA로 주기억장치에 쓴 데이터를 CPU가 읽기 전에 소프트웨어가 해야 하는 처리는 무엇입니까?
  2. IOMMU의 주된 역할로 올바른 것은 무엇입니까?
  3. 디바이스 드라이버의 역할로 올바른 것은 무엇입니까?
  4. 일반적인 OS에서 애플리케이션이 장치의 레지스터를 직접 읽고 쓰지 못하게 하는 주된 이유는 무엇입니까?
  5. 한 대의 컴퓨터 위에서 여러 OS를 각각 독립된 가상 머신으로 동시에 실행하기 위한 소프트웨어를 무엇이라고 합니까?

이 분야의 비교