- •Список вопросов к экзамену по дисциплине ос 2013/14 уч. Год
- •Определение ос. Назначение и функции операционной системы.
- •Место ос в структуре вычислительной системы.
- •Понятие ресурса. Управление ресурсами в вычислительной системе.
- •Критерии эффективности и классы ос.
- •Эволюция ос.
- •Современный этап развития ос.
- •Функциональные компоненты ос персонального компьютера.
- •Требования, предъявляемые к современным ос.
- •Классификации ос.
- •Системные вызовы.
- •Архитектура ос. Ядро и вспомогательные модули.
- •Классическая архитектура ос. Монолитные и многослойные ос.
- •Микроядерная архитектура ос.
- •Многослойная модель ядра ос.
- •Функции ос по управлению процессами.
- •Процессы и потоки.
- •Состояния потока.
- •Планирование и диспетчеризация потоков, моменты перепланировки.
- •Алгоритм планирования, основанный на квантовании.
- •Приоритетное планирование.
- •Алгоритмы планирования ос пакетной обработки: «первым пришел – первым обслужен», «кратчайшая задача – первая», «наименьшее оставшееся время выполнения».
- •Алгоритмы планирования в интерактивных ос: циклическое, приоритетное, гарантированное, лотерейное, справедливое планирование.
- •Алгоритм планирования Windows nt.
- •Алгоритм планирования Linux.
- •Планирование в ос реального времени.
- •Синхронизация процессов и потоков: цели и средства синхронизации.
- •Ситуация состязаний (гонки). Способы предотвращения.
- •Способы реализации взаимных исключений: блокирующие переменные, критические секции, семафоры Дейкстры. Блокирующие переменные
- •Критические секции
- •Семафоры
- •Взаимные блокировки. Условия, необходимые для возникновения тупика.
- •Обнаружение взаимоблокировки при наличии одного ресурса каждого типа.
- •Обнаружение взаимоблокировок при наличии нескольких ресурсов каждого типа.
- •Предотвращение взаимоблокировки. Алгоритм банкира для одного вида ресурсов.
- •Предотвращение взаимоблокировки. Алгоритм банкира для нескольких видов ресурсов.
- •Синхронизирующие объекты ос: системные семафоры, мьютексы, события, сигналы, ждущие таймеры.
- •Организация обмена данными между процессами (каналы, разделяемая память, почтовые ящики, сокеты).
- •Прерывания (понятие, классификация, обработка прерываний).
- •Обработка аппаратных прерываний
- •Функции ос по управлению памятью.
- •Виртуальная память.
- •Алгоритмы распределения памяти без использования внешних носителей (фиксированные, динамические, перемещаемые разделы).
- •Страничное распределение памяти.
- •Алгоритмы замещения страниц.
- •Сегментное распределение памяти.
- •Сегментно-страничное распределение памяти.
- •Средства поддержки сегментации памяти в мп Intel Pentium.
- •Сегментный режим распределения памяти в мп Intel Pentium.
- •Сегментно-страничный режим распределения памяти в мп Intel Pentium.
- •Средства защиты памяти в мп Intel Pentium.
- •Случайное отображение основной памяти на кэш.
- •Детерминированное отображение основной памяти на кэш.
- •Кэширование в мп Intel Pentium. Буфер ассоциативной трансляции.
- •Кэширование в мп Intel Pentium. Кэш первого уровня.
- •Задачи ос по управлению файлами и устройствами.
- •Многослойная модель подсистемы ввода-вывода.
- •Физическая организация жесткого диска.
- •Файловая система. Определение, состав, типы файлов. Логическая организация файловой системы.
- •Физическая организация и адресация файлов.
- •Fat. Структура тома. Формат записи каталога. Fat12, fat16, fat32.
- •Ufs : структура тома, адресация файлов, каталоги, индексные дескрипторы.
- •Ntfs: структура тома.
- •Ntfs: типы файлов, организация каталогов.
- •Файловые операции. Процедура открытия файла.
- •Организация контроля доступа к файлам.
- •Отказоустойчивость файловых систем.
- •Процедура самовосстановления ntfs.
- •Избыточные дисковые подсистемы raid.
- •Многоуровневые драйверы.
- •Дисковый кэш.
- •Классификация угроз вс.
- •Системный подход к обеспечению безопасности.
- •Шифрование.
- •Аутентификация, авторизация аудит.
- •Показатели эффективности ос
- •Настройка и оптимизация ос.
Синхронизирующие объекты ос: системные семафоры, мьютексы, события, сигналы, ждущие таймеры.
В случае синхронизации потоков разных процессов операционная система должна предоставлять потокам системные объекты синхронизации, которые были бы видны для всех потоков, даже если они принадлежат разным процессам и работают в разных адресных пространствах. Примерами таких синхронизирующих объектов ОС являются системные семафоры, мьютексы, события, таймеры и другие.
Все синхронизирующие объекты могут находиться в двух состояниях:
сигнальном
несигнальном (свободном).
Мьютексы
Объекты-взаимоисключения (мьютексы, mutex - от MUTual EXclusion) позволяют координировать взаимное исключение доступа к разделяемому ресурсу. Сигнальное состояние объекта (т.е. состояние "установлен") соответствует моменту времени, когда объект не принадлежит ни одному потоку и его можно "захватить". Предположим, что мьютекс находится в сигнальном состоянии, в этом случае поток тут же становится его владельцем, устанавливая его в несигнальное состояние, и входит в критическую секцию. После того как поток выполнил работу с критическими данными, он «отдает» мьютекс, устанавливая его в сигнальное состояние. Если какой-либо поток ожидает его освобождения, то он становится следующим владельцем этого мьютекса, одновременно мьютекс переходит в несигнальное состояние.
Системные семафоры
Существует еще один метод синхронизации потоков, в котором используются семафорные объекты API. В семафорах применен принцип действия мьютексов, но с добавлением одной существенной детали. В них заложена возможность подсчета ресурсов, что позволяет заранее определенному числу потоков одновременно войти в синхронизуемый участок кода. Для создания семафора используется функция CreateSemaphore.
События
События используются в качестве сигналов о завершении какой-либо операции. В отличие от мьютексов, они не принадлежат ни одному потоку. Объект-событие обычно используется не для доступа к данным, а для того, чтобы оповестить другие потоки о том, что некоторые действия завершены. Пусть, например, в некотором приложении работа организована таким образом, что один поток читает данные из файла в буфер памяти, а другие потоки обрабатывают эти данные, затем первый поток считывает новую порцию данных, а другие потоки снова ее обрабатывают и так далее. В начале работы первый поток устанавливает объект-событие в несигнальное состояние. Все остальные потоки выполнили вызов Wait(X), где X — указатель события, и находятся в приостановленном состоянии, ожидая наступления этого события. Как только буфер заполняется, первый поток сообщает об этом операционной системе, выполняя вызов Set(X). Операционная система просматривает очередь ожидающих потоков и активизирует все потоки, которые ждут этого события.
Ждущие таймеры
Ждущий таймер (waitable timer) представляет собой новый тип объектов синхронизации, поддерживаемый в Windows NT версии 4.0 и выше. Это полноценный объект синхронизации, который может использоваться для организации задержки в одном или нескольких приложениях. Ждущий таймер работает в трех режимах. В режиме «ручного сброса» таймер переходит в установленное состояние при истечении заданной задержки и остается установленным до тех пор, пока функция SetWaitableTimer не задаст новую задержку. В режиме «автоматического сброса» таймер переходит в установленное состояние при истечении заданной задержки и остается установленным до первого успешного вызова функции ожидания. Каждый раз при истечении времени задержки разрешается выполнение лишь одной нити. Наконец, ждущий таймер может выполнять функции интервального таймера, который перезапускается с заданной задержкой после каждого срабатывания объекта.
Главная особенность, отличающая ждущие таймеры от системных, — то, что ждущие таймеры могут совместно использоваться несколькими приложениями. Процессы получают дескрипторы ждущих таймеров так же, как они получают дескрипторы мьютексов: дублированием, наследованием или открытием по имени.
