- •Назначение, состав и функции операционных систем (ос).
- •Классификация ос. Особенности ос реального времени. Виды ос реального времени. Примеры ос реального времени.
- •Вычислительные процессы и ресурсы. Виды ресурсов. Управление ресурсами.
- •Переносимость приложений и способы ее достижения. Платформа и технологии .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
- •Планирование в системах пакетной обработки. Кратчайшее задание первое.
Файлы, проецируемые в память. Области применения. Этапы проецирования. Назначение каждого этапа, используемые функции Win32.
Файлы, проецируемые в память (с памятью которых объекты, которые расположены на диске могут быть перемещены в оперативную память без операций ввода/вывода).
Проецируемые файлы применяются для:
загрузки и выполнения EXE- и DLL-файлов Это позволяет существенно экономить как на размере страничного файла, так и на времени, необходимом для подготовки приложения к выполнению,
доступа к файлу данных, размещенному на диске. Это позволяет обойтись без операций файлового ввода-вывода и буферизации его содержимого,
разделения данных между несколькими процессами, выполняемыми на одной машине (В Windows есть и другие методы для совместного доступа разных процессов к одним данным — но все они так или иначе реализованы на основе проецируемых в память файлов.)
Read (F, MS) – размещение F в ОП, фактически в ВАП, затем будет размещена в ОП.
Этапы:
Создать (открыть) объект ядра-файл
Handle F=CreateFile(F, условие доступа, …)
Создание объекта ядра «проекция файла». Система зарезервировала в ВАП участок для размещения файла.
Handle P = CreateFileMapping(Handle F, …);
Выполн. проекции файла (проецировать)
pointer=MapViewOfFile(Handle P, …);
(физ.память)
Обработка данных, исполн. Pointer
Разорвали связь между физ.памятью и ВАП
MnMapViewOfFile(…);
CloseHandle(Handle P);
CloseHandle(Handle F);
(+ картинки в лк.)
Динамически загружаемые библиотеки. Области применения. Основные dll ms Windows. Достоинства и недостатки dll. Создание dll.
DLL (dynamic-link library) – динамически загружаемая библиотека, позволяющая многократное использование различными программными приложениями.
Преимущества:
Экономия памяти -1 DLL может быть исполнена различными приложениями, и в ОП кажд. ф-я присутствует в 1 экземпляре
Упрощение локализации – добавление фраз на национ.языке
Расширение функциональности приложения
Разработка приложений на различных языках программирования
Недостатки:
Проблема совместимости версий DLL
Упадок быстродействия
Исполн. манифеста определяет, какому приложению какая соответствует:
После удаления остаются DLL в памяти
Модификатор и Квалификатор используют для описания функций, чтобы они были видны
Модификатор определяет, каким образом будут задаваться имена. Имеет вид extern “с“.
Он указывает компилятору, как описать имя.
Квалификатор имеет вид _ _ declspec(dllexport)
В мастере задаются:
Тип проекта Win32
Тип приложения DLL
Bool WinAPI Main()
{…
}
extern “с“ _ _ declspec(dllexport) int count=0;
extern “с“ _ _ declspec(dllexport) int Add (int n)
{count +=n;
return count;
}
Способы передачи данных между процессами. Схема передачи данных между процессами без использования средств ос и с использованием средств ос. Обмен сообщениями. Каналы и почтовые ящики.
Потоки одного процесса не имеют доступа к адресному пространству другого процесса. Однако существуют специализированные механизмы для передачи данных между процессами.
Некоторые из способов:
-Буфер обмена(clipboard)
-Каналы (pipes)
-Сокеты (sockets)
-Почтовые ящики (mailslots)
Pipes (каналы) – локальная сеть:
- неименованные
-именованные
Через канал можно передавать данные только между двумя процессами. Один из процессов создает канал, другой открывает его. После этого оба процесса могут передавать данные через канал в одну или обе стороны.
Для создания именованного канала Pipe вы должны использовать функцию CreateNamedPipe.
Почтовые ящики позволяют выполнять одностороннюю передачу данных от одного или нескольких клиентов к одному или нескольким серверам. Главная особенность почтовых ящиков заключается в том, что они, в отличие от каналов позволяют передавать данные в широковещательном режиме. Это означает, что на компьютере или в сети могут работать несколько серверных процессов, способных получать сообщения через почтовые ящики. При этом один клиентский процесс может посылать сообщения сразу всем этим серверным процессам.
