84
режиме задачи процесс может перейти в режим ядра по внешнему
прерыванию или выдав системный вызов (программное прерывание) –
переход 6. Выполнение обработчика прерывания или системного вызова
происходит в режиме ядра, но в контексте процесса. Выполнение в режиме
ядра может прерываться, как было описано выше, но с возвратом в
прерванный уровень – переход 7. Если переход в режим ядра произошел
по причине прерывания от таймера, и планировщик процессов ОС
принимает решение о том, что необходимо запустить другой процесс, то
процесс переходит в зарезервированное состояние – переход 8.
Зарезервированное состояние в принципе идентично состоянию
готовности в памяти, различие между ними состоит в том, что выполнение
зарезервированного процесса (когда до него дойдет очередь)
возобновляется сразу в режиме задачи – переход 9. Если же переход в
режим ядра произошел в связи с выполнением, а это выполнение связано с
необходимостью ожидания или планировщик процессов ОС принимает
решение о том, что необходимо запустить другой процесс, то процесс
переходит в состояние приостановки – переход 10. Когда процесс получит
те ресурсы, которых он ожидает, он переводится в состояние готовности –
переход 11, из которого он может быть вновь запущен в режиме ядра –
переход 4, а из него вернуться в выполнение в состоянии задачи – переход
5. При нехватке памяти приостановленный или даже готовый процесс
может быть выгружен на внешнюю память – переходы 12. Процесс,
ожидающий ресурса на внешней памяти, там же на внешней памяти может
быть переведен в состояние готовности – переход 11. Готовый процесс на
внешней памяти (перешедший в состояние готовности из приостановки
или созданный на внешней памяти) загружается (подкачивается) в память
– переход 13. Когда выполнение процесса завершается (выполнением
системного вызова exit), процесс переходит в режим ядра, а из него – в
состояние завершения – переход 14. В этом состоянии большинство