
- •Управление процессами и потоками в мультипрограммных ос. Общие сведения о процессах и потоках в ос Windows. Понятие объекта ядра. Типы объектов ядра.
- •Описатель, командная строка, и переменные окружения процесса.
- •Создание процессов.
- •Завершение процесса.
- •Общие сведения о потоках. Создание потоков.
- •Выполнение потоков.
- •Завершение потоков.
- •Планирование потоков. Приостановка и возобновление процессов и потоков.
- •Приоритеты потоков. Классы приоритетов процессов и относительные приоритеты потоков.
- •Синхронизация процессов и потоков в мультипрограммных ос. Независимые и взаимодействующие процессы. Понятие критических ресурсов и критических секций.
- •Синхронизация процессов и потоков в ос Windows. Объекты синхронизации и функции ожидания.
- •Синхронизация с помощью критических секций.
- •Мьютексы.
- •События.
- •Семафоры.
- •Передача и обмен данными между процессами. Способы передачи данных и типы связей между процессами.
- •Средства передачи и обмена данными между процессами в ос Windows.
- •Обмен данными с помощью буфера обмена данными Clipboard.
- •Обмен данными по технологии dde.
- •Обмен данными по технологии ole. Понятие документно-ориентированной среды.
- •Принципы технологии ole.
- •Особенности ole 2.0
- •Обмен данными через разделяемые файлы.
- •Обмен данными через файлы, проецируемые в память. Создание файлов, проецируемых в память.
- •Обмен данными через проекцию файлов в память.
- •Обмен данными через страничный файл.
- •Обмен данными через программные каналы.
- •Средства организации анонимных и именованных каналов в Windows.
- •Концепция почтовых ящиков.
- •Создание почтовых ящиков.
- •Соединение клиентов с почтовым ящиком.
- •Обмен данными через почтовый ящик.
- •Закрытие почтового ящика.
- •Получение информации о почтовом ящике.
- •Обмен данными с помощью очередей сообщений.
- •Подсистема управления памятью. Функции подсистемы управления памятью.
- •Физическая и логическая память. Виртуальное (логическое) и физическое адресное пространство.
- •Способ построения вап процессов.
- •Способы распределения памяти на уровне управления процессами. Односвязное непрерывное распределение памяти.
- •Распределение памяти фиксированными разделами.
- •Распределение памяти динамическими и перемещаемыми разделами.
- •Виртуализация оперативной памяти. Свопинг и виртуальная память.
- •Страничное распределение памяти.
- •Преобразование адресов страниц прямым отображением.
- •Преобразование адресов страниц ассоциативным отображением.
- •Преобразование адресов страниц комбинированным ассоциативно-прямым отображением.
- •Совместное использование программ и данных в системах со страничной организацией памяти. Выбор размера страниц.
- •Сегментное распределение памяти.
- •Управление доступом в системах с сегментной организацией памяти.
- •Сегментно-страничное распределение памяти.
- •Реализация режима виртуальной памяти. Стратегии замещения страниц.
- •Стратегия замещения случайной страницы.
- •Стратегия замещения по принципу fifo.
- •Замещение страницы, которая использовалась наименее часто (lfu).
- •Замещение страницы, которая не использовалась в последнее время (nur).
- •Концепция локального и рабочего множества программ в системах с виртуальной памятью.
- •Уровни привилегий и защита по привилегиям.
- •Кеширование данных в памяти эвм. Иерархия устройств памяти. Понятие и принцип действия кэш-памяти.
- •Способы отображения основной памяти на кэш.
- •Двухуровневое кэширование.
- •Кеширование в процессорах моделей Pentium.
- •Структура линейного виртуального адресного пространства процесса в ос Windows.
- •Раздел 4 используется для хранения совместно используемых всеми процессами данных. Сюда же загружаются все системные .Dll модули, поэтому же доступны любому пользовательскому процессу.
- •Управление устройствами. Основные понятия и концепции организации.
Обмен данными через проекцию файлов в память.
Применение файлов, спроецированных в память для обмена данными между процессами, основывается на том, что объект типа «проекция файла» после своего создания оказывается доступным для всех процессов, выполняемых в системе.
Если требуется передать данные из одного процесса в другой, то в одном из процессов создается объект типа «проекция файла». При этом сам файл должен быть создан или открыт. Доступ к уже созданной проекции со стороны любого клиента включает два действия:
Открытие имеющейся проекции с помощью функции OpenFileMapping;
Отображение открытой проекции на ВАП клиента с помощью MapViewOfFile;
Для того, чтобы объект типа «проекция файла» мог использоваться в любом клиенте, ему присваивается имя, которое указывается в функции CreateFileMapping. Имя объекта, в отличие от дескриптора, является общесистемной характеристикой, которая служит для передачи информации о созданном объекте любому другому процессу, что и позволяет использовать объект для обмена между сервером и клиентом.
Функция MapViewOfFile, используя имя созданной проекции, возвращает другому процессу указатель на созданный регион ВАП, содержащий проекцию файла. Так как данные файла, в общем случае, могут иметь различную структуру, то эта функция возвращает указатель обобщенного типа, который в программе процесса явно преобразуется в требуемый тип.
Обмен данными через страничный файл.
В системе Windows, страничный файл pagefile.sys используется в подсистеме виртуальной памяти и является частью всей физической памяти системы.
Страничный файл создается системой при инсталляции её на компьютер, и используется для хранения в нем программ и данных, временно выгружаемых из ОП. Файл структурируется на части, называемые страницами. Каждая страница в системе имеет фиксированный размер, а именно – 4кб для 32-разрядной ОС и 8 – для 64-разрядной. Обмен информацией между ОП и этим файлом осуществляется блоками данных, размер каждого равен размеру страницы.
Явное обращение осуществляется в основном лишь при обмене данными через этот файл между несколькими приложениями.
Сущность этого способа обмена состоит в том, что в физической памяти системы создается проекция страничного файла или его части, которая затем отображается на регионы ВАП процессов, участвующих в обмене.
В ходе обмена через страничный файл участвуют два процесса – сервер и клиент. Сервер готовит данные для обмена, а клиент читает их. Чтобы использовать страничный файл, процесс-сервер создает в ФП системы создает проекцию страничного файла, используя для этого функцию CreateFileMapping,. В параметрах этой функции указывается размер файла и имя объекта.
Затем, в процессе-сервере с помощью функции MapViewOfFile создается регион с отображением созданной проекции файла или его части. В этот регион из программы первого процесса записываются данные, участвующие в обмене.
Второй процесс, то есть клиент, также осуществляет отображение проекции страничного файла на регион своего ВАП с использованием той же функции. При этом, в этой функции используется имя созданной ранее проекции. Второй процесс может выполнять чтение данных, записанных в область проекции процессом-сервером при условии, что эта операция синхронизирована с операцией записи в сервере.