Рубрики

Операционные системы | Набор 16

На экзамене GATE CS 2005 были заданы следующие вопросы.

1) Обычно пользовательские программы не могут обрабатывать ввод-вывод напрямую, используя в них инструкции ввода-вывода. Для процессоров, имеющих явные инструкции ввода / вывода, такая защита ввода / вывода обеспечивается привилегированными инструкциями ввода / вывода. В процессоре с отображенным в память вводом / выводом нет явной инструкции ввода / вывода. Какое из следующих утверждений верно для процессора с отображенным в память вводом / выводом?
(а) Защита ввода / вывода обеспечивается подпрограммой (ами) операционной системы
(б) Защита ввода / вывода обеспечивается аппаратной ловушкой
(c) Защита ввода / вывода обеспечивается во время конфигурации системы
(г) защита ввода / вывода невозможна

Ответ (а)
Ввод-вывод с отображением в памяти означает доступ к вводу-выводу через общий доступ к памяти, а не к специальным инструкциям ввода-вывода. Пример,

  unsigned int volatile const *pMappedAddress const = (unsigned int *)0x100;

Таким образом, программист может напрямую получить доступ к любой ячейке памяти. Чтобы предотвратить такой доступ, ОС (ядро) разделит адресное пространство на пространство ядра и пространство пользователя. Пользовательское приложение может легко получить доступ к пользовательскому приложению. Чтобы получить доступ к пространству ядра, нам нужны системные вызовы (ловушки).
Спасибо Venki за предоставленное объяснение.

2) Для чего используется пространство подкачки на диске?
(а) Сохранение временных HTML-страниц
(б) Сохранение данных процесса
(в) Хранение суперблока
(d) Хранение драйверов устройств

Ответ (б)
Пространство подкачки обычно используется для хранения данных процесса. Смотрите это для более подробной информации.

3) Увеличение ОЗУ компьютера обычно повышает производительность, потому что:
(а) Виртуальная память увеличивается
(б) Большие ОЗУ быстрее
(c) меньше ошибок страницы
(d) Меньше ошибок сегментации

Ответ (с)

4) Пусть n процессов, P1,…. Pn совместно используют m идентичных ресурсных единиц, которые могут быть зарезервированы и освобождены по одной за раз. Максимальным требованием к ресурсам процесса Pi является Si, где Si> 0. Что из перечисленного является достаточным условием для предотвращения возникновения тупика?

Ответ (с)
В экстремальных условиях все процессы получают ресурсы Si-1 и нуждаются в еще одном ресурсе. Поэтому следующее условие должно быть истинным, чтобы гарантировать, что тупик никогда не возникнет.

5) Рассмотрим следующий фрагмент кода:

  if (fork() == 0)
  { a = a + 5; printf(“%d,%d\n”, a, &a); }
  else { a = a –5; printf(“%d, %d\n”, a, &a); } 

Пусть u, v будут значениями, напечатанными родительским процессом, а x, y будут значениями, напечатанными дочерним процессом. Что из следующего является ИСТИННЫМ?
(а) и = х + 10 и v = у
(б) u = x + 10 и v! = y
(c) u + 10 = x и v = y
(d) u + 10 = x и v! = y

Ответ (с)
fork () возвращает 0 в дочернем процессе и идентификатор процесса дочернего процесса в родительском процессе.
У ребенка (х), а = а + 5
В Parent (u) a = a — 5;
Следовательно, х = и + 10.
Физические адреса «а» в родительском и дочернем элементах должны быть разными. Но наша программа обращается к виртуальным адресам (при условии, что мы работаем в операционной системе, которая использует виртуальную память). Дочерний процесс получает точную копию родительского процесса, и виртуальный адрес «а» не изменяется в дочернем процессе. Таким образом, мы получаем одинаковые адреса как родительского, так и дочернего. Смотрите этот прогон, например.
Спасибо Smart Pointer за предоставленное объяснение.

Пожалуйста, смотрите GATE Corner для всех документов / решений / объяснений предыдущего года, учебных планов, важных дат, заметок и т. Д.

Пожалуйста, пишите комментарии, если вы найдете какие-либо неправильные ответы / объяснения, или вы хотите поделиться дополнительной информацией по темам, обсужденным выше.

Рекомендуемые посты:

Операционные системы | Набор 16

0.00 (0%) 0 votes