2013-03-17 3 views
1

이것은 CIS-21 : Operating Systems 수업의 숙제에서 얻은 질문입니다. 강사가이 질문을 던지기 때문에 이미 답변을 얻었지만 그 이유는 설명하지 않으려 고합니다. 대답. 따라서 여기에 질문이 있습니다 :프로세서 관리자 및 작업 인터럽트

대기열 당 가변 시간 퀀텀을 사용하는 작업이 완료까지 실행하려면 30 밀리 초가 필요합니다. 첫 번째 큐의 시간 퀀텀이 5 밀리 초이고 이후 각 큐의 시간 퀀텀이 이전 큐의 두 배인 경우 작업이 몇 번 중단되고 어떤 큐에서 실행이 완료됩니까?

두 번째 부분은 쉽습니다. 작업은 3 차 대기열 (첫 번째 레벨 대기열은 5 밀리 초, 두 번째 레벨 대기열은 10 밀리 초, 세 번째 레벨 대기열은 20 밀리 초)에서 실행이 완료됩니다. 작업에 30 밀리 초가 필요하기 때문에 첫 번째 레벨 대기열에서 5 밀리 초, 두 번째 레벨 대기열에서 10 밀리 초, 세 번째 레벨 대기열에서 15 밀리 초 동안 실행됩니다.

질문의 첫 번째 부분은 수업에 참여하지 않은 모든 사람과 모든 사람이 의미하는 바입니다. 강사는 총 3 회의 인터럽트가있을 것이라고 말했다. 하지만 우리가 모두 2 번의 인터럽트가 될 것이라고 말하면서, 그는 화가 나서 움직였다. 이상하게, 응? 적절한 교육을 받기 위해 돈을 지불하는 것만큼이나.

어쨌든 우리가 생각한 것은 작업이 첫 번째 대기열에서 5 밀리 초 동안 실행 된 다음 인터럽트가 발행되고 PCB (개인 제어 블록)가 업데이트되고 다음 하위 대기열로 이동한다는 것입니다. 10 밀리 초 대기열. 작업이 끝나면 작업은 10 밀리 초 동안 두 번째 레벨 대기열에서 실행되고 인터럽트가 발행됩니다. 정보는 PCB에서 업데이트되고 작업은 20 밀리 초 대기열 인 다음 하위 대기열로 이동합니다. 지금까지 두 차례의 인터럽트가있었습니다. 작업이 세 번째 레벨 대기열의 대기열 맨 위에 도달하면 작업이 15 초 동안 실행되고 대기열의 시간 퀀텀이 만료되기 전에 실행이 완료됩니다.

그래서 그는 어디에서 3 번째 인터럽트를 얻었습니까? 프로그램이 실행을 끝내면 세 번째 인터럽트가 발행됩니까? 작업 인터럽트는 I/O 요청, 시간 퀀텀이 만료되어 작업의 사이클이 완료되지 않았거나 작업 내에 잘못된 작업/명령이있는 경우와 같은 내부 인터럽트가있는 경우에만 발생한다고 생각했습니다.

그래서 2 또는 3 개의 작업 인터럽트가 있으며 그 이유는 무엇입니까?

편집

: 나는 인터넷에 충돌하는 답변을받은 후 강사에게 이메일을 보내, 그는 자신이 실수를하고 작업이 20ms의 큐가 완료됩니다 이후는 만 2 인터럽트 있다고 인정했다. 누군가가 궁금해하는 경우를 대비하여.

답변

0

2 인터럽트가 발생하여 강사가 오류를 발생했습니다. 작업은 20ms 대기열로 완료됩니다.

0

3 인터럽트 - 세 번째 레벨, 즉 20ms에서 전체 퀀텀을 사용하기 전에 작업이 실행을 완료하면 친밀한 스케줄러가 다른 프로세스를 예약합니다.

+0

그렇다면 실행이 끝나면 다른 작업으로의 컨텍스트 전환으로 인해 작업이 중단된다는 말입니까? 그러나 작업이 실행을 완료하면 어떻게 중단 될 수 있습니까? –

+0

2 개의 인터럽트 밖에 없으므로 원래 게시물을 편집하십시오. –