В данном блоге я выкладываю свои версии ответов на вопросы, приведенные в конце глав книги Э. Таненбаума, А Вудхалла "Операционные системы разработка и реализация". Я стараюсь давать максимально точные ответы, но, все же если вы найдете ошибку, пожалуйста, оставьте комментарий, или напишите мне лично.
Translate
вторник, 9 апреля 2013 г.
Глава 2
Вопрос 8. Если в системе используются программные потоки, выделяется ли каждому из них собственный стек или стеки имеются лишь у процессов? Поясните ответ.
Стек необходимо выделять каждому программному потоку, т.к. каждый поток выполняет собственный код, соответственно вызывает собственные процедуры, а т.к. для корректного вызова процедур нужен собственный стек, то каждому потоку его нужно выделять индивидуально.
понедельник, 8 апреля 2013 г.
среда, 3 апреля 2013 г.
Глава 2
Вопрос 5. Измените рис. 2.2, добавив в него два состояния процесса - "новый" и "завершенный". Процесс находится в состоянии "новый" после создания, а в состоянии "завершенный" - после окончания своей работы.
Ниже приведен рисунок, на котором показано, как, предположительно, будет выглядеть такая ситуация. Новый процесс переходит в состояние готовности и ждет, когда планировщик выберет его для запуска. Завершиться процесс может либо во время действия (нормальное завершение, или завершение вследствие ошибки) а так же он может быть уничтожен другим процессом, будучи в состоянии блокировки или готовности.
Глава 2
Вопрос 3. Представьте, что вы разрабатываете усовершенствованную компьютерную архитектуру, в которой процессы переключаются аппаратно, а не с помощью прерываний. Какая информация потребуется процессору? Опишите возможную реализацию аппаратного переключения процессов.
Для переключения процессов процессору понадобится информация, хранимая в таблице процессов. В частности, ему нужно восстановить состояние процесса в точности в таком же виде, в котором он находился до переключения в состояние готовности (блокировки). Можно предложить следующие шаги (дальше подразумевается, что все операции совершают аппаратные средства):
- Из структуры, хранящей информацию о выполняемом в данный момент процессе копируется адрес, по которому находится запись в таблице процессов о текущем процессе. Далее информация о выполняемом процессе (регистры, счетчики команд и стека, слово состояния программы) сохраняется в таблице процессов в ячейке с полученным ранее адресом.
- Теперь производятся обратные действия - компьютер запоминает адрес ячейки с новым запущенным процессом, затем копирует из нее данные в регистры процессора.
- Наконец управление передается процессу.
Подписаться на:
Сообщения (Atom)