Глава 1
Вопрос 13. Почему таблица процессов необходима в системах разделения времени? Нужна ли она в системах, где в каждый момент времени существует единственный процесс, занимающий все ресурсы компьютера до окончания своего выполнения?
Давайте сначала разберемся с тем, что представляет собой таблица процессов.
Во многих операционных системах вся информация каждого процесса, дополняющая содержимое его собственного адресного пространства, хранится в таблице операционной системы. Эта таблица называется таблицей процессов и представляет собой массив (или связанный список) структур, по одной на каждый существующий в данный момент процесс. Таким образом, приостановленный процесс состоит из собственного адресного пространства, обычно называемого образом памяти (core image), и компонентов таблицы процесса, содержащей, помимо других величин, значения его регистров[1].
Без таблицы процессов информация о процессе (значения его регистров, открытые файлы и т.д.) терялась бы после каждого переключения между процессами, следовательно каждый раз программы запускались бы заново, именно поэтому она так важна.
Теперь давайте разберемся с системами, в которых в каждый момент времени существует единственный процесс, занимающий все ресурсы компьютера. Предположим, что в ходе выполнения процесса сработало прерывание. Операционная система должна приостановить процесс и запустить процедуру обработки прерывания (предварительно сохранив в памяти регистры процесса) а затем восстановить дальнейшую его работу. Таблица процессов ей не понадобиться, она просто вытолкнет необходимые данные в стек.
Используемые источники:
- "Операционные системы. Разработка и реализация." Э. Таненбаум А. Вудхалл;
Комментариев нет:
Отправить комментарий