- •Назначение, состав и функции операционных систем (ос).
- •Классификация ос. Особенности ос реального времени. Виды ос реального времени. Примеры ос реального времени.
- •Вычислительные процессы и ресурсы. Виды ресурсов. Управление ресурсами.
- •Переносимость приложений и способы ее достижения. Платформа и технологии .Net. Управляемый и неуправляемый код. Сборка мусора – достоинства и недостатки.
- •Процессы и управление процессами в ос Linux. Средства получения информации о процессах ос Linux.
- •Функции Win api для мониторинга процессов и потоков ос Windows.
- •Функции Win api для получения дополнительной информации о процессах и потоках.
- •Планирование и диспетчеризация потоков в ос. Алгоритмы планирования в системах пакетной обработки и диалоговых системах.
- •Уровни приоритета процесса и потока в ms Windows xp. Функции Win api для изменения приоритетов процесса и потока. Недостижимые значения приоритетов потока.
- •Динамическое повышение приоритета потока. Необходимость. Графики изменения величины приоритета для различных ситуаций динамического повышения приоритета.
- •1)Динамическое повышение приоритета после завершения ввода-вывода
- •2)Динамическое повышение приоритета по окончании ожидания событий и семафоров.
- •Типы потоков по способу их взаимодействия. Понятие критического участка. Необходимость использования синхронизации.
- •Семафорные примитивы Дейкстры – назначение и использование для синхронизации конкурирующих и сотрудничающих (поставщик-потребитель) потоков.
- •Средства синхронизации потоков пользовательского режима. Достоинства и недостатки.
- •Объекты ядра ос ms Windows, используемые для синхронизации потоков.
- •Мьютексы как средство синхронизации потоков. Функции Win32 api для создания и использования мьютекса. Отказ от мьютекса. Пример использования мьютекса.
- •Семафоры. Виды семафоров и их применение. Функции Win32 api для создания и использования семафора. Пример использования семафора.
- •События. Виды событий. Примеры записи функций Win32 api для создания и использования событий. Пример использования событий для синхронизации конкурирующих и сотрудничающих потоков.
- •Функция Win32 api ожидания нескольких событий. Пример использования функции.
- •Var pHandles; // адрес массива объектов
- •Понятие тупиковой ситуации. Модель Холта и её использование. Пример модели Холта. Средства анализа тупиковых ситуаций от компании Microsoft.
- •Условия возникновения тупика. Стратегии Хавендера. Методы борьбы с тупиками.
- •Сегментация, страничная и сегментно-страничная организация памяти. Виды фрагментации памяти. Оценка потерь памяти вследствие фрагментации. Методы борьбы с фрагментацией.
- •Формат дескрипторов мп Intel в защищенном режиме i80386.
- •Байт доступа. Назначение битов. Условие доступа программы к сегменту данных. Поле доступа. Назначение бита дробности.
- •Алгоритмы замещения страниц виртуальной памяти (сам)
- •Четыре метода управления виртуальной памятью. Области применения каждого метода. Понятие региона виртуального адресного пространства (вап). Свойства региона вап.
- •Резервирование регионов в адресном пространстве и передача физической памяти региону. Используемые функции Win32 и их параметры.
- •Кучи. Необходимость создания дополнительных куч процесса. Методы доступа к куче. Операции с кучами. Используемые функции Win32.
- •Функция Win32 api получения сведений о регионах виртуального адресного пространства. Пример использования.
- •Файлы, проецируемые в память. Области применения. Этапы проецирования. Назначение каждого этапа, используемые функции Win32.
- •Динамически загружаемые библиотеки. Области применения. Основные dll ms Windows. Достоинства и недостатки dll. Создание dll.
- •Способы передачи данных между процессами. Схема передачи данных между процессами без использования средств ос и с использованием средств ос. Обмен сообщениями. Каналы и почтовые ящики.
- •Использование именованных каналов. Сокеты. Назначение. Области применения.
- •Дополнительный вопросы: Назначение планировщика задач
- •Краткосрочный планировщик
- •Диспетчер
- •Статическое и динамическое планирование
- •Алгоритм планирования rr
- •Планирование в системах пакетной обработки. Кратчайшее задание первое.
Var pHandles; // адрес массива объектов
fWaitAll: BOOL; // Задает, требуется ли ожидание всех
// объектов или любого
dwMilliseconds, // Период ожидания
dwWakeMask: DWORD // Тип события, прерывающего ожидание
): DWORD; stdcall;
Использование ожидающих функций и вообще сихронизации опасны появлением ситуации названной deadlock или тупиковой ситуацией, когда один поток ожидает освобождения ресурса от другого потока.
Понятие тупиковой ситуации. Модель Холта и её использование. Пример модели Холта. Средства анализа тупиковых ситуаций от компании Microsoft.
Тупик – такое состояние ВС, при котором 2 или более потоков находятся в заблокированном состоянии, и каждый из них ожидает освобождение ресурса, занятого другими потоками.
Для исследования параллельных процессов и тупиков было разработано несколько моделей. Одной из них является модель повторно используемых ресурсов Холта. Согласно этой модели система представляется как множество процессов и множество ресурсов, причем каждый из ресурсов состоит из фиксированного числа единиц. Любой процесс может изменять состояние системы с помощью запроса, получения или освобождения единицы ресурса. В графической форме процессы представляются квадратами, ресурсы – кружками, каждый кружок содержит некоторое количество точек – единиц этого ресурса. Дуга, указывающая из процесса на ресурс, означает запрос одной единицы ресурса. Дуга, указывающая из ресурса на процесс, представляет выделение ресурса процессу. Число дуг, исходящих из ресурса к различным процессам, не может превышать общего числа единиц ресурса. Такая модель называется графом повторно используемых ресурсов.
Условием тупика является цикл.
Потоки нуждаются в синхронизации. Использование синхронизации приводит к тупикам.(признаки Хавендера)
Условия возникновения тупика. Стратегии Хавендера. Методы борьбы с тупиками.
Четыре необходимых условия возникновения тупика (условия Хавендера): 1.Условие взаимоисключения: процессы требуют предоставления им права монопольного управления ресурсами, которые им выделяются;
2.Условие ожидания ресурсов: процесс удерживает за собой ресурсы, уже выделенные им, ожидая в то же время выделения дополнительных ресурсов;
3.Условие нераспределяемости: Ресурсы нельзя отобрать у процессов, удерживающих их, пока эти ресурсы не будут использованы для завершения работы;
4.Условие кругового ожидания: существует кольцевая цепь процессов, в которой каждый процесс удерживает за собой один или более ресурсов, требующихся следующему процессу цепи.
Возникновение тупика невозможно, если нарушено хотя бы одно из указанных выше четырех необходимых условий.
Борьба с тупиками основывается на одной из 3х стратегий: - предотвращение тупика; - обход тупика; - распознавание тупика с последующим восстановлением.
Дисциплина, предотвращая тупик должна гарантировать, что какое либо из них условий необходимых для его наступления не может возникнуть. Условие взаимного исключения можно подавить путем разрешения неограниченного разделения ресурсов. Условие ожидания можно подавить, предварительно выделяя ресурсы. Условие отсутствия перераспределения можно исключить, позволяя ОС отнимать ресурсы у процессора. Условие кругового ожидания можно исключить, предотвращая образование цепи запросов. Это можно обеспечить с помощью принципа выделения ресурсов. Все ресурсы образуют некоторую иерархию. Процесс, затребовавший ресурс на одном уровне ,может потом потребовать ресурсы только на более высоком уровне. Он может освободить ресурсы на данном уровне, только если освободить ресурсы на более высоких уровнях.
Средства обнаружения тупиков в ОС:
Модель Холта (1970г.)
Ф-я WCT (ОС Vista 2006г.)
