C++ программы НОВИКОВ / Лекция 4
.pdf11
информацию о них в область оперативной памяти, которая называется таблицей процессов. Каждый раз, когда ПК назначается задача, планировщик создает для нее процесс, помещая новые данные в таблицу процессов.
Диспетчер – компонент ядра операционной системы, который управляет выполнением запланированных процессов. В системах с разделением времени эта задача решается разделением времени на короткие интервалы (не более 50мс), которые называются квантами, и переключением центрального процессора с одного процесса на другой. Процедура смены процессов называется переключением процессов. Когда время, отведенное процессу, заканчивается (квант времени), таймер генерирует сигнал, который называется сигналом прерывания. Центральный процессор останавливает выполнение текущего машинного цикла, сохраняет информацию о текущем процессе и начинает выполнение программы, которая называется обработчиком прерываний, которая в системах с разделением времени является частью диспетчера. Затем диспетчер выбирает из таблицы процессов процесс с наивысшим приоритетом, перезапускает таймер и позволяет выбранному процессу начать его временной квант. Если процесс выполнится за время меньшее, чем за квант, то сигнал прерывания будет генерирован ранее. Главным достоинством систем с разделением времени является возможность остановить, а затем возобновить процесс.
Для некоторых процедур устанавливается блокировка прерываний (т.е. процедура не может быть прервана – например, проверка состояния принтера и передача ему данных), а после выполнения процедуры выполняется команда разрешения прерываний. [1, 2]