컴파일러
컴파일러의 명령 스케줄링의 주된 목적은?
- A프로그램의 결과가 바뀌더라도 어쨌든 명령의 수를 줄이는 것
- B결과를 바꾸지 않고 명령을 재배열하여 대기 시간을 메우는 것
- C실행할 명령을 OS 스케줄러가 고른 순서대로 다시 나열하는 것
정답과 해설 보기
정답: B. 결과를 바꾸지 않고 명령을 재배열하여 대기 시간을 메우는 것
로드나 곱셈의 결과를 바로 사용할 수 없는 경우, 그 결과를 사용하는 명령을 바로 뒤에 두면 CPU는 대기하게 됩니다. 명령 스케줄링은 데이터 의존 관계를 지켜 결과를 바꾸지 않는 범위에서, 의존이 없는 다른 명령을 사이에 넣도록 순서를 재배열하여 대기 시간을 유효하게 활용할 수 있게 합니다. 순서대로 실행하는 CPU에서 특히 효과가 큽니다. 결과를 바꾸는 변환은 허용되지 않으며, OS 스케줄러는 프로세스 전환을 결정하는 별개의 구조입니다.
- A. 결과를 바꾸는 변환은 허용되지 않습니다.
- B. 올바릅니다. 의존을 지켜 재배열하여 대기 시간을 메웁니다.
- C. OS 스케줄러는 프로세스 전환을 결정하는 별개의 구조입니다.