<<
>>

Вопросы 1.

Назовите одно преимущество и один недостаток реестра по сравнению с отдельными .ini-файлами.

2. У мыши могут быть одна, две или три кнопки. Используются все три разновидности мыши.

Прячет ли HAL эти различия от всей остальной операционной системы? Почему прячет или почему не прячет?

3. HAL отсчитывает время от 1601 года. Дайте пример такого приложения, где нужна эта функциональная возможность.

4. В разделе 11.3.2 мы описывали проблемы, вызываемые многопоточными приложениями, которые закрывают описатели в одном потоке, но продолжают использовать их в другом. Одним из способов исправления этой ситуации может стать добавление поля порядкового номера. Как это может помочь? Какие изменения в системе потребуются?

5. Многие компоненты исполнительной системы, показанные на рис. 11.4, вызывают другие компоненты этой же системы. Приведите три примера, когда один компонент вызывает другой компонент, но при этом используйте шесть разных компонентов.

6. Win32 не имеет сигналов. Если их ввести, они могли бы быть привязаны к процессам, потокам, процессам и потокам или не иметь привязки.

Предложите свой вариант и объясните, почему это хорошая идея.

7. Альтернатива использования DLL — статические ссылки из каждой программы на те процедуры библиотек, которые она фактически вызывает. Если ввести такую схему, то на каких компьютерах в ней будет больше смысла — на клиентских или на серверных?

8. При рассмотрении осуществляемого в Windows планирования в пользовательском режиме упоминалось, что у потоков пользовательского режима и режима ядра разные стеки. Назовите несколько причин необходимости разделения стеков.

9. Windows использует страницы по 2 Мбайт, поскольку это повышает эффективность буфера TLB, что может иметь существенное влияние на производительность. Почему это так? Почему страницы рамером 2 Мбайт не используются все время?

10.

Есть ли предел количеству различных операций, которые можно определить для объекта исполнительной системы? Если да, то чем обусловлен этот предел? Если нет, то почему?

11. Вызов WaitForMultipleObjects интерфейса Win32 позволяет потоку блокироваться на наборе объектов синхронизации, описатели которых передаются как параметры. Как только один из них сигнализирует, вызывающий поток освобождается. Возможно ли иметь такой набор объектов синхронизации, в который входят два семафора, один мьютекс и одна критическая секция? Почему можно или почему нельзя?

Подсказка: это несложный вопрос, но он требует внимательного обдумывания.

12. Когда в программе, использующей несколько потоков, инициализируется глобальная переменная, программисты часто допускают ошибку, позволяя возникновение конкуренции, когда переменная инициализируется дважды. Почему это может вызвать проблему? Чтобы воспрепятствовать такой конкуренции, Windows предоставляет API-функцию InitOnceExecuteOnce. Как она может быть реализована?

13. Назовите три причины, по которым процесс может быть прекращен. Какая дополнительная причина может заставить прекратить свою работу процесс, выполняющий современное приложение?

14. Современные приложения должны сохранять свое состояние на диске после каждого переключения пользователя на другое приложение. Это требование представляется неэффективным, так как пользователи могут переключаться на это приложение неоднократно и приложение просто возобновит свое выполнение. Зачем операционная система заставляет приложения сохранять свое состояние так часто, вместо того чтобы просто дать им возможность прервать свою работу в той точке, до которой они дошли?

15. Как описано в разделе 11.4, существует специальная таблица описателей для выделения идентификаторов процессам и потокам. Алгоритмы этих таблиц обычно выделяют первый доступный описатель (поддерживая список свободных по принципу LIFO). В последних версиях Windows это было изменено — теперь таблица идентификаторов всегда поддерживает список свободных по принципу FIFO.

В чем состоит проблема, которая возникает при выделении идентификаторов процессов с использованием LIFO, и почему этой проблемы нет в UNIX?

16. Предположим, что установлен размер кванта 20 мс и текущий поток (с приоритетом 24) только что начал квант. Внезапно операция ввода-вывода завершается, и поток с приоритетом 28 получает готовность. Сколько примерно времени ему придется ждать своего выполнения?

17. В Windows текущий приоритет всегда выше базового приоритета или равен ему. Бывают ли такие обстоятельства, когда имеет смысл сделать текущий приоритет ниже базового? Если да, приведите пример. Если нет, почему?

18. В Windows есть свойство Autoboost, которое применяется для временного повышения приоритета потока, удерживающего ресурс, необходимый потоку с более высоким уровнем приоритета. Как, по-вашему, все это работает?

19. В Windows легко реализовать такую возможность, чтобы работающие в ядре потоки могли временно прикрепиться к адресному пространству другого процесса. Почему это гораздо труднее реализовать в пользовательском режиме? Почему было бы интересно сделать это?

20. Назовите два способа уменьшения времени отклика для потоков в важном процессе.

21. Даже при наличии большого количества свободной памяти и отсутствии необходимости для диспетчера памяти усекать рабочие наборы система подкачки может часто писать на диск. Почему?

22. Для современных приложений Windows вместо сокращения их рабочего набора и применения подкачки производит замену процессов. Почему такой прием может оказаться более эффективным?

Подсказка: при применении твердотельных дисков разница в эффективности становится гораздо меньше.

23. Почему карта self-map (используемая для доступа к физическим страницам каталога страниц) и таблицы страниц для процесса всегда занимают одни и те же 4 Мбайт виртуальных адресов ядра (на процессорах х86)?

24. В системе x86 в таблице страниц могут использоваться как 64-, так и 32-разрядные записи. Windows использует 64-разрядные PTE-записи, следовательно, система может обращаться к более чем 4 Гбайт памяти. При использовании 32-разрядных PTE-записей карта self-map использует в каталоге страниц только одну PTE и занимает, таким образом, только 4 Мбайт адресов вместо 8 Мбайт.

Почему?

25. Если область виртуального адресного пространства зарезервирована, но не зафиксирована, создан ли для нее дескриптор VAD? Обоснуйте свой ответ.

26. Какой из показанных на рис. 11.20 переходов является стратегическим решением (в отличие от необходимых перемещений, обусловленных системными событиями, например выходом процесса и освобождением его страниц)?

27. Предположим, что страница используется совместно в двух рабочих наборах. Если она удаляется из одного рабочего набора, куда она попадет на рис. 11.20? Что случится, когда она будет удалена из второго рабочего набора?

28. Когда процесс отменяет отображение неизмененной страницы стека, он делает переход 5, изображенный на рис. 11.20. Куда попадает измененная страница стека после отмены отображения? Почему нет перехода в список модифицированных страниц при отмене отображения измененной страницы стека?

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

Почему это плохо? Насколько ответ зависит от времени удержания блокировки, длины кванта, а также от того, является ли система многопроцессорной?

30. Для поддержки POSIX исходная API-функция NtCreateProcess поддерживает дублирование процесса, чтобы обеспечить поддержку функции fork. В UNIX за функцией fork в большинстве случаев практически сразу же следует функция exec. Одним из примеров, где это используется исторически, была разработанная в Berkeley программа dump(8S), предназначавшаяся для создания резервной копии дисков на магнитной ленте. Функция fork использовалась в качестве способа установки контрольных точек в программе dump, чтобы ее можно было повторно запустить при ошибке накопителя на магнитной ленте. Приведите пример того, как Windows сможет сделать то же самое с помощью NtCreateProcess.

Подсказка: рассмотрите процессы, в которых запущены DLL-библиотеки для реализации функций, предоставляемых сторонними разработчиками.

31. Файл имеет следующее отображение.

Определите элементы MFT для участков.

32. Возьмем запись MFT из рис. 11.25. Предположим, что файл рос и в конце файла был выделен десятый блок. Номер этого блока 66. Как теперь будет выглядеть запись MFT?

33. На рис. 11.28, б первые два участка имеют длину по 8 блоков каждый. Случайно ли они имеют равную длину или это вызвано способом работы сжатия? Объясните ответ.

34. Предположим, что вы хотите создать Windows Vista Lite. Какие поля, изображенные на рис. 11.29, можно убрать без ослабления безопасности системы?

35. Стратегия смягчения последствий, применяемая для повышения безопасности, несмотря на наличие уязвимостей оказалась вполне удачной. Современные атаки отличаются высокой изощренностью, и для создания надежно работающего вредоносного кода зачастую требуется наличие нескольких уязвимостей. Одной из обычно востребуемых уязвимостей является утечка информации. Объясните, как такая утечка может использоваться для обхода рандомизации адресного пространства при атаке на основе возвратно-ориентированного программирования.

36. Используемая многими программами (веб-браузеры, Office, СОМ-серверы) модель расширения состоит в том, чтобы разместить DLL, которые перехватывают и расширяют базовую функциональность. Хороша ли эта модель для службы на основе RPC, если она олицетворяет клиентов до загрузки DLL? Почему нет?

37. Когда при работе на компьютере с архитектурой NUMA диспетчеру памяти Windows нужно выделить физическую страницу для обработки страничной ошибки, то он пытается использовать страницу из узла NUMA идеального процессора для текущего потока. Почему? Что будет, если поток выполняется на другом процессоре?

38. Приведите пару примеров, когда приложение может легко восстановиться из резервной копии на основе теневой копии тома.

32. В разделе 11.10 обеспечение новой памяти для кучи процесса было упомянуто как один из тех случаев, когда требуется подача обнуленных страниц (чтобы выполнить требования по безопасности).

Дайте один или несколько дополнительных примеров таких операций с виртуальной памятью, которые требуют обнуленных страниц.

33. Windows содержит гипервизор, позволяющий нескольким операционным системам работать одновременно. Эта функция доступна клиентам, но ярче всего она проявляется в облачных вычислениях. Когда к гостевой операционной системе применяется обновление системы безопасности, это практически ничем не отличается от установки исправлений. Но когда обновление системы безопасности применяется к основной операционной системе, для пользователей облачных вычислений это может превратиться в большую проблему. Каков характер этой проблемы? Что тут можно предпринять?

34. Команда regedit может использоваться для экспортирования части (или всего) реестра в текстовый файл во всех текущих версиях Windows. Сохраните реестр несколько раз в течение рабочего сеанса и посмотрите, что изменилось. Если у вас есть доступ к компьютеру, на котором вы можете инсталлировать программное или аппаратное обеспечение, — найдите те изменения, которые происходят при добавлении или удалении программы или устройства.

35. Напишите программу для UNIX, которая имитирует запись в NTFS файла с несколькими потоками. Она должна принимать в качестве аргументов список из одного или нескольких файлов и записывать выходной файл, который содержит один поток с атрибутами всех аргументов и дополнительные потоки с содержимым каждого аргумента. Затем напишите вторую программу для отчета по атрибутам и потокам и извлечения всех компонентов.

<< | >>
Источник: Э. ТАНЕНБАУМ Х. БОС. СОВРЕМЕННЫЕ ОПЕРАЦИОННЫЕ СИСТЕМ Ы 4-е ИЗДАНИЕ. 2015

Еще по теме Вопросы 1.:

  1. Основные ошибки при задавании вопросов. Слишком открытые вопросы.
  2. ВОПРОС О РЕЛИГИИ - ЭТО ВОПРОС О ВЛАСТИ Молитва Господня и семейные порядки
  3. Вопросы без альтернатив, или открытые вопросы
  4. 2.6. Умеем ли мы задавать вопросы? Классификация типов вопросов
  5. § 9 Критика гражданской формы брака. – Вопрос о введении ее в русское законодательство. – Браки у раскольников и вопрос о законности сих браков.
  6. Вопрошающее наблюдение: вопрос без вопроса
  7. 7.1. СКРЫТЫЕ ВОПРОСЫ
  8. 3.3.1. Неструктурированные вопросы
  9. Вопросы
  10. Вопросы
  11. Ключевой вопрос
  12. Наводящие вопросы.