- •2. Поясните принцип многозадачности современных операционных систем.
- •3.Каким образом осуществляется синхронизация потоков? Что такое критический ресурс? Что такое критическая секция?
- •4. Изложите алгоритм Деккера, позволяющий разрешить проблему взаимного исключения путем использования одной только блокировки памяти.
- •5. Расскажите о семафорах Дейкстры. Чем обеспечивается взаимное исключение при выполнении примитивов p(открытие) и V (закрытие)?
- •6 Что такое семафор? Изложите, алгоритм взаимного исключения с использованием семафоров?
- •7. Что такое Мьютекс? Изложите, алгоритм взаимного исключения с использованием Мьютексов?
- •8. Изложите алгоритм решения задачи «поставщик-потребитель» при исполь¬зовании семафоров Дейкстры
- •9. Изложите алгоритм решения задачи «читатели-писатели» при использова¬нии семафоров Дейкстры
- •10. Что такое «монитор Хоара»? Приведите пример такого монитора
- •11. Перечислите и поясните основные функции операционных систем, которые связаны с управлением задачами.
- •12. В чем заключается основное различие между планированием процессов и дис¬петчеризацией задач? Какие виды планирования Вам известны?
- •13. Что такое стратегия обслуживания? Перечислите известные вам стратегии об¬служивания.
- •14. Какие дисциплины диспетчеризации задач вы знаете? Поясните их основные идеи, перечислите достоинства и недостатки.
- •15. В чем суть вытесняющей и невытесняющей многозадачности. Какие дисциплины диспетчеризации следует отнести к вытесняю¬щим, а какие – к невытесняющим.
- •16. Как можно реализовать механизм разделения времени, если диспетчер задач работает только по принципу предоставления процессорного времени задаче с максимальным приоритетом?
- •17. Что такое «гарантия обслуживания»? Как ее можно реализовать?
- •18. Опишите механизм динамической диспетчеризации, реализованный в системах Windows nt.
- •20. Объясните и сравните алгоритмы «первый подходящий», «самый подходящий» и «самый неподходящий», используемые при поиске и выделении фрагмента памяти.
- •21. Что такое «фрагментация памяти»? Какой метод распределения памяти позволяет добиться минимальной фрагментации и почему? Что такое «уплотнение памяти»? Когда оно применяется?
- •22. Объясните сегментный способ организации виртуальной памяти. Что представляет собой (в общем случае) дескриптор сегмента? Каким образом вычисляется физический адрес в памяти?
- •23. Объясните страничный способ организации виртуальной памяти. Что представляет собой (в общем случае) дескриптор страницы? Каким образом вычисляется физический адрес в памяти?
- •28 Каким образом устанавливается соответствие между окном и его обработчиком?
- •29. Каким образом создаются окна и элементы управления?
- •30. Что такое файл, файловая система, система управления файлами?
- •31. Основные функции систем управления файлами и их назначение. Перечислите известные Вам файловые системы.
- •32. Опишите структуру раздела с файловой системой fat32. В чем её преимущества и недостатки?
- •33. Опишите структуру раздела с файловой системой ntfs. В чем её преимущества и недостатки?
- •34. Опишите структуру раздела с файловой системой hpfs. В чем её преимущества и недостатки?
15. В чем суть вытесняющей и невытесняющей многозадачности. Какие дисциплины диспетчеризации следует отнести к вытесняю¬щим, а какие – к невытесняющим.
Существующие дисциплины диспетчеризации процессов могут быть разбиты на два класса: вытесняющие (preemptive) и не вытесняющие (non-preemptive).
Диспетчеризация с перераспределением процессорного времени между задачами, то есть вытесняющая многозадачность (preemptive multitasking), — это такой способ, при котором решение о переключении процессора с выполнения одной задачи на выполнение другой принимается диспетчером задач, а не самой активной задачей. При вытесняющей многозадачности механизм диспетчеризации задач целиком сосредоточен в операционной системе. При этом операционная система выполняет следующие функции: определяет момент снятия с выполнения текущей задачи, сохраняет ее контекст в дескрипторе задачи, выбирает из очереди готовых задач следующую и запускает ее на выполнение, загружая ее контекст.
При не вытесняющей многозадачности процессорное время распределено между системой и прикладными программами. Прикладная программа, получив управление от операционной системы, сама должна определить момент завершения своей очередной итерации и передачи управления супервизору операционной системы с помощью соответствующего системного вызова. При этом естественно, что диспетчер задач, так же как и в слз^ае вытесняющей мультизадачности, формирует очереди задач и выбирает в соответствии с некоторым алгоритмом (например, с учетом порядка поступления задач или их приоритетов) следующую задачу на выполнение.
16. Как можно реализовать механизм разделения времени, если диспетчер задач работает только по принципу предоставления процессорного времени задаче с максимальным приоритетом?
Использовать динамические приоритеты.
17. Что такое «гарантия обслуживания»? Как ее можно реализовать?
Одна из проблем, которая возникает при выборе подходящей дисциплины обслуживания — это гарантия обслуживания.
Гарантировать обслуживание можно, например, следующими тремя способами.
Выделять минимальную долю процессорного времени некоторому классу процессов, если по крайней мере один из них готов к исполнению. Например, можно отводить 20 % от каждых 10 мс процессам реального времени, 40 % от каждых 2 с — интерактивным процессам и 10 % от каждых 5 мин — пакетным (фоновым) процессам.
• Вьщелять минимальную долю процессорного времени некоторому конкретному процессу, если он готов к выполнению.
. Выделять столько процессорного времени некоторому процессу, чтобы он мог выполнить свои вычисления к сроку.
18. Опишите механизм динамической диспетчеризации, реализованный в системах Windows nt.
При выполнении программ, реализующих какие-нибудь задачи контроля и управления (что характерно, прежде всего, для систем реального времени), может случиться такая ситуация, когда одна или несколько задач не могут быть реализованы (решены) в течение длительного промежутка времени из-за возросшей нагрузки в вычислительной системе. Потери, связанные с невыполнением таких задач, могут оказаться больше, чем потери от невыполнения программ с более высоким приоритетом. При этом оказывается целесообразным временно изменить приоритет «аварийрп>1х» задач (для которых истекает отпущенное для них время обработки). После выполнения этих задач их приоритет восстанавливается.
19. Что такое «виртуальный адрес», «виртуальное адресное пространство»? Чем (в общем случае) определяется максимально возможный объем виртуального адресного пространства программы? Каким образом распределяется виртуальное адресное пространство в программах для ОС Windows?
Виртуальное адресное пространство (ВАП) – это множество допустимых значений виртуального адреса, оно определяется вычислительной системой программами и ОС для которой разрабатывается программа.
Физическим адресным пространством наз. память физически установленная в вычислительной системе.
Для увеличения объёмов физ. памяти часто используют участок на диске, куда выгружаются временно неиспользуемые участки физ. памяти. Совокупность физ. памяти и памяти на диске наз. виртуальной памятью.
Максимально возможное виртуальное адресное пространство процесса - определяется только разрядностью виртуального адреса и архитектурой компьютера, и назначенное (выделенное) процессу виртуальное адресное пространство, состоящее из набора виртуальных адресов, действительно нужных процессу для работы.