OS와 하드웨어

캐시 일관성을 하드웨어가 유지하지 않는(비코히런트) 시스템에서, 장치가 DMA로 주기억장치에 쓴 데이터를 CPU가 읽기 전에 소프트웨어가 해야 하는 처리는 무엇입니까?

  1. ACPU의 클록 주파수를 일시적으로 낮춘다
  2. B해당 범위의 캐시 내용을 무효화하여 주기억장치에서 다시 읽도록 한다
  3. C캐시 내용을 모두 주기억장치에 다시 쓴 뒤, DMA로 도착한 결과를 폐기한다
정답과 해설 보기

정답: B. 해당 범위의 캐시 내용을 무효화하여 주기억장치에서 다시 읽도록 한다

DMA는 CPU를 거치지 않고 장치와 주기억장치 사이에서 데이터를 전송하므로, 하드웨어가 일관성을 유지하지 않는 시스템에서는 CPU 캐시에 그 범위의 오래된 데이터가 남아 있을 수 있습니다. 그대로 읽으면 DMA로 도착한 새 데이터가 아니라 오래된 값을 읽게 됩니다. 그래서 드라이버는 읽기 전에 그 범위의 캐시를 무효화하여 주기억장치에서 새 값을 읽게 합니다. 반대로 장치로 보낼 데이터는 DMA를 시작하기 전에 캐시에서 다시 써 둡니다.

  • A. 클록 주파수는 일관성과 관계없습니다.
  • B. 올바릅니다. 오래된 캐시 내용을 무효화하여 새 데이터를 읽게 합니다.
  • C. DMA 결과를 폐기해서는 의미가 없습니다.
이 분야 연습하기 분야로 돌아가기

OS와 하드웨어의 다른 문제

  1. IOMMU의 주된 역할로 올바른 것은 무엇입니까?
  2. 디바이스 드라이버의 역할로 올바른 것은 무엇입니까?
  3. 일반적인 OS에서 애플리케이션이 장치의 레지스터를 직접 읽고 쓰지 못하게 하는 주된 이유는 무엇입니까?
  4. 한 대의 컴퓨터 위에서 여러 OS를 각각 독립된 가상 머신으로 동시에 실행하기 위한 소프트웨어를 무엇이라고 합니까?
  5. 하이퍼바이저의 유형에 대한 설명으로 올바른 것은 무엇입니까?

이 분야의 비교