ВУЗ:
скоростью выполнения. В такой ситуации операционная система может хранить в основной памяти только одну копию про-
граммы редактирования и разрешить каждому из процессов пользоваться ею на время выделенного ему кванта времени.
В типичной компьютерной установке с разделением времени в состязании за кванты времени обычно принимает уча-
стие множество процессов. Эти процессы включают выполнение прикладных программ, утилит и программных элементов
операционной системы. Задача операционной системы состоит в координации выполнения всех этих процессов. Координа-
ция подразумевает получение гарантий в том, что каждый процесс получит все необходимые ему ресурсы (доступ к перифе-
рийным устройствам, место в основной памяти, доступ к данным и центральному процессору); что независимые процессы не
влияют друг на друга, а процессы, которым необходимо обмениваться информацией, имеют возможность делать это. Взаи-
модействие между процессами называется межпроцессным взаимодействием.
Управление процессами. Задачи, связанные с координацией процессов, решаются планировщиком и диспетчером,
входящими в состав ядра операционной системы. Планировщик ведет пул записей о процессах, присутствующих в вычисли-
тельной системе, вводит в него сведения о новых процессах и удаляет информацию о завершившихся. Для отслеживания
состояния всех процессов планировщик организует в основной памяти блок информации, называемый таблицей процессов
(process table). Каждый раз, когда машине дается новое задание, планировщик создает процесс для этого задания посредст-
вом занесения новой записи в таблицу процессов. Эта запись содержит сведения об объеме выделенной процессу памяти
(эта информация поступает от модуля управления памятью), о присвоенном ему приоритете, а также о том, находится про-
цесс в состоянии готовности или ожидания. Процесс находится в состоянии готовности (ready), если его развитие может
продолжаться, и переводится в состояние ожидания (waiting), когда его развитие приостанавливается до тех пор, пока не
произойдут некоторые внешние события, например, завершится процедура доступа к диску или поступит сообщение от дру-
гого процесса.
Диспетчер – это компонент ядра, отвечающий за то, чтобы запланированные процессы действительно выполнялись. В
системе с разделением времени эта задача решается посредством разбиения времени процессора на короткие интервалы,
называемые квантами (обычно продолжительностью около 50 миллисекунд). По истечении этого времени происходит при-
нудительное переключение центрального процессора от одного процесса к другому; так что каждому процессу предоставля-
ется возможность непрерывного выполнения лишь в течение одного кванта времени (рис. 3.6). Процедура смены одного
процесса другим называется переключением процессов (process switch).
Рис. 3.6. Разделение времени между процессами А и В
Каждый раз, когда процессу предоставляется очередной квант времени, диспетчер инициирует цепь таймера, подготав-
ливая его к измерению продолжительности следующего кванта. По окончании установленного кванта цепь таймера генери-
рует сигнал, называемый прерыванием (interrupt). Центральный процессор реагирует на этот сигнал так же, как и человек,
которого останавливают во время выполнения определенного задания. Человек прекращает свою работу, записывает теку-
щее состояние задачи и обращает внимание на то, что его отвлекло. При получении сигнала прерывания центральный про-
цессор завершает текущий машинный цикл, сохраняет свое положение в текущем процессе (подробнее мы обсудим это чуть
ниже) и начинает выполнять программу, называемую обработчиком прерываний (interrupt handler), помещенную в заранее
определенное место в основной памяти.
В нашем сценарии разделения времени обработчик прерываний – это часть диспетчера. Таким образом, результатом
поступления сигнала прерывания является приостановка текущего процесса и передача управления диспетчеру. В этот мо-
мент диспетчер разрешает планировщику обновить состояние таблицы процессов (например, возможно, что приоритет толь-
ко что отработавшего свой квант времени процесса следует понизить, а приоритеты других процессов – повысить). Затем из
таблицы процессов диспетчер выбирает процесс с наивысшим приоритетом из числа процессов, находящихся в состоянии
готовности, заново инициализирует цепь таймера, после чего разрешает выбранному процессу использовать новый квант
времени.
Главным условием успешной работы системы с разделением времени является ее способность остановить, а затем по-
вторно запустить процесс. Если вас прерывают во время чтения книги, то возможность продолжить чтение позднее зависит
от вашей способности вспомнить, на чем вы остановились и что прочли до этого момента. Короче говоря, вы должны иметь
возможность воссоздать ситуацию такой, какой она была непосредственно в момент прерывания. В отношении процесса эта
ситуация есть его состояние. Напомним, что состояние процесса включает в себя значение счетчика адреса, а также содер-
жимое регистров ЦП и ячеек памяти, к которым выполняется обращение. Машины, разработанные для систем с разделением
времени, включают средства, позволяющие сохранять эту информацию как реакцию центрального процессора на сигнал
прерывания. Кроме того, машинный язык таких процессоров обычно включает специальные команды для перезагрузки ра-
нее сохраненной информации о состоянии. Подобные функциональные возможности вычислительных машин упрощают
задачу диспетчера по переключению процессов и служат примером того, как потребности современных операционных сис-
тем оказывают влияние на разработку компьютеров.
Иногда использование процессом предоставленного ему кванта времени заканчивается раньше, чем истекает интервал,
Страницы
- « первая
- ‹ предыдущая
- …
- 57
- 58
- 59
- 60
- 61
- …
- следующая ›
- последняя »
