OS와 하드웨어

프로세스의 컨텍스트 스위치가 레지스터를 저장하고 복원하는 시간보다 실제로는 더 큰 성능 저하를 일으키는 경우가 있습니다. 그 주된 이유는 무엇입니까?

  1. A전환할 때마다 CPU의 클록 주파수가 내려가기 때문에
  2. B전환할 때마다 프로그램을 디스크에서 다시 읽기 때문에
  3. C전환 후 캐시나 TLB 미스가 늘어나기 때문에
정답과 해설 보기

정답: C. 전환 후 캐시나 TLB 미스가 늘어나기 때문에

레지스터의 저장과 복원 자체는 짧은 시간에 끝나지만, 전환된 뒤의 프로세스 입장에서 캐시나 TLB의 내용은 이전 프로세스의 것이므로, 필요한 데이터나 변환 결과를 다시 읽어 들일 때까지 미스가 이어집니다. ASID가 없는 CPU에서는 주소 공간을 전환할 때 TLB를 비워야 하기도 합니다. 이 간접 비용이 직접적인 전환 시간보다 커질 수 있습니다. 클록이 내려가거나 프로그램을 디스크에서 다시 읽는 일은 없습니다.

  • A. 전환으로 클록 주파수가 내려가는 것은 아닙니다.
  • B. 프로그램은 메모리에 있으며 다시 읽지 않습니다.
  • C. 올바릅니다. 캐시나 TLB 미스가 늘어나는 간접 비용입니다.
이 분야 연습하기 분야로 돌아가기

OS와 하드웨어의 다른 문제

  1. TLB의 각 항목에 ASID(주소 공간 식별자)를 붙이는 이점으로 올바른 것은 무엇입니까?
  2. OS가 스스로 CPU를 내놓지 않는 프로그램에서도 일정 시간마다 CPU를 되찾아 다른 프로세스로 전환할 수 있는 것은 주로 어떤 구조 덕분입니까?
  3. 위와 같이 장치의 상태 레지스터를 메모리 맵 I/O로 읽을 때 volatile을 붙이고 그 영역을 캐시하지 않도록 설정하는 이유로 올바른 것은 무엇입니까?
  4. 장치의 상태를 인터럽트를 쓰지 않고 CPU가 반복해서 조사하는 방식(폴링)이 유리한 경우는 무엇입니까?
  5. 캐시 일관성을 하드웨어가 유지하지 않는(비코히런트) 시스템에서, 장치가 DMA로 주기억장치에 쓴 데이터를 CPU가 읽기 전에 소프트웨어가 해야 하는 처리는 무엇입니까?

이 분야의 비교