Диспетчер процессора и прерывания работы

Это вопрос из моего домашнего задания в классе CIS-21: Операционные системы, и у меня уже есть ответ, потому что инструктор дал его нам, но он не хотел объяснять, почему ЭТО был ответ. Итак, вот вопрос:

Для выполнения задания, выполняемого в системе с переменным квантом времени на очередь, требуется 30 миллисекунд. Если первая очередь имеет квант времени 5 миллисекунд, а каждая последующая очередь имеет квант времени, который вдвое больше, чем у предыдущей, сколько раз задание будет прервано и в какой очереди оно завершит свое выполнение?

Вторая часть проста: задание завершит свое выполнение в очереди 3-го уровня (очередь первого уровня - 5 миллисекунд, очередь второго уровня - 10 миллисекунд, а очередь третьего уровня - 20 миллисекунд). Поскольку для задания требуется 30 миллисекунд, оно будет выполняться в течение 5 миллисекунд в очереди первого уровня, затем в течение 10 миллисекунд в очереди второго уровня и в течение 15 миллисекунд в очереди третьего уровня.

Первая часть вопроса - это то, что не получили все, я имею в виду всех, в классе. Инструктор сказал, что всего будет 3 прерывания. Но когда мы все говорили, что это будет 2 прерывания, он рассердился и двинулся дальше .... странно, да? Так много за то, что я заплатил деньги за хорошее образование.

В любом случае, мы думали, что задание выполняется в течение 5 миллисекунд в первой очереди, затем выдается прерывание, его PCB (Personal Control Block) обновляется, и оно перемещается в следующую более низкую очередь, которая является очередью 10 миллисекунд. . По достижении своей очереди задание будет выполнено в очереди второго уровня в течение 10 миллисекунд и будет выдано прерывание. Информация будет обновлена ​​на плате, и задание будет перемещено в следующую нижнюю очередь, то есть очередь на 20 миллисекунд. Пока что было два прерывания. Как только задание достигает вершины очереди третьего уровня, оно выполняется в течение 15 секунд и завершает свое выполнение до истечения кванта времени для очереди.

Итак, откуда у него третье прерывание? Будет ли выдано третье прерывание, когда программа завершит свое выполнение? Я думал, что прерывания задания возникают только тогда, когда есть внутреннее прерывание, например, для запроса ввода-вывода, когда истекает квант времени и циклы задания не завершены, или когда в задании есть недопустимая операция / инструкция.

Итак, есть ли 2 или 3 прерывания работы и почему?

РЕДАКТИРОВАТЬ: Я написал инструктору по электронной почте после получения противоречивых ответов в Интернете, и он признал, что допустил ошибку и это всего 2 прерывания, так как работа завершается в очереди 20 мс. На всякий случай кому интересно.


person B.K.    schedule 17.03.2013    source источник


Ответы (2)


3 прерывание - когда задание завершает свое выполнение до использования полного кванта на третьем уровне, т. Е. 20 мс, - чтобы планировщик мог запланировать другой процесс.

person neham    schedule 17.03.2013
comment
Итак, вы говорите, что в конце выполнения задание прерывается для переключения контекста на другое задание? Но если задание завершает свое выполнение, как его можно прервать? - person B.K.; 18.03.2013
comment
Оказалось, что это всего 2 прерывания, пожалуйста, обратитесь к моей редакции исходного сообщения. - person B.K.; 19.03.2013

2 Перебивает, инструктор допустил ошибку. Работа завершается очередью 20 мс.

person B.K.    schedule 01.06.2013