
- •Управление процессами и потоками в мультипрограммных ос. Общие сведения о процессах и потоках в ос Windows. Понятие объекта ядра. Типы объектов ядра.
- •Описатель, командная строка, и переменные окружения процесса.
- •Создание процессов.
- •Завершение процесса.
- •Общие сведения о потоках. Создание потоков.
- •Выполнение потоков.
- •Завершение потоков.
- •Планирование потоков. Приостановка и возобновление процессов и потоков.
- •Приоритеты потоков. Классы приоритетов процессов и относительные приоритеты потоков.
- •Синхронизация процессов и потоков в мультипрограммных ос. Независимые и взаимодействующие процессы. Понятие критических ресурсов и критических секций.
- •Синхронизация процессов и потоков в ос Windows. Объекты синхронизации и функции ожидания.
- •Синхронизация с помощью критических секций.
- •Мьютексы.
- •События.
- •Семафоры.
- •Передача и обмен данными между процессами. Способы передачи данных и типы связей между процессами.
- •Средства передачи и обмена данными между процессами в ос Windows.
- •Обмен данными с помощью буфера обмена данными Clipboard.
- •Обмен данными по технологии dde.
- •Обмен данными по технологии ole. Понятие документно-ориентированной среды.
- •Принципы технологии ole.
- •Особенности ole 2.0
- •Обмен данными через разделяемые файлы.
- •Обмен данными через файлы, проецируемые в память. Создание файлов, проецируемых в память.
- •Обмен данными через проекцию файлов в память.
- •Обмен данными через страничный файл.
- •Обмен данными через программные каналы.
- •Средства организации анонимных и именованных каналов в Windows.
- •Концепция почтовых ящиков.
- •Создание почтовых ящиков.
- •Соединение клиентов с почтовым ящиком.
- •Обмен данными через почтовый ящик.
- •Закрытие почтового ящика.
- •Получение информации о почтовом ящике.
- •Обмен данными с помощью очередей сообщений.
- •Подсистема управления памятью. Функции подсистемы управления памятью.
- •Физическая и логическая память. Виртуальное (логическое) и физическое адресное пространство.
- •Способ построения вап процессов.
- •Способы распределения памяти на уровне управления процессами. Односвязное непрерывное распределение памяти.
- •Распределение памяти фиксированными разделами.
- •Распределение памяти динамическими и перемещаемыми разделами.
- •Виртуализация оперативной памяти. Свопинг и виртуальная память.
- •Страничное распределение памяти.
- •Преобразование адресов страниц прямым отображением.
- •Преобразование адресов страниц ассоциативным отображением.
- •Преобразование адресов страниц комбинированным ассоциативно-прямым отображением.
- •Совместное использование программ и данных в системах со страничной организацией памяти. Выбор размера страниц.
- •Сегментное распределение памяти.
- •Управление доступом в системах с сегментной организацией памяти.
- •Сегментно-страничное распределение памяти.
- •Реализация режима виртуальной памяти. Стратегии замещения страниц.
- •Стратегия замещения случайной страницы.
- •Стратегия замещения по принципу fifo.
- •Замещение страницы, которая использовалась наименее часто (lfu).
- •Замещение страницы, которая не использовалась в последнее время (nur).
- •Концепция локального и рабочего множества программ в системах с виртуальной памятью.
- •Уровни привилегий и защита по привилегиям.
- •Кеширование данных в памяти эвм. Иерархия устройств памяти. Понятие и принцип действия кэш-памяти.
- •Способы отображения основной памяти на кэш.
- •Двухуровневое кэширование.
- •Кеширование в процессорах моделей Pentium.
- •Структура линейного виртуального адресного пространства процесса в ос Windows.
- •Раздел 4 используется для хранения совместно используемых всеми процессами данных. Сюда же загружаются все системные .Dll модули, поэтому же доступны любому пользовательскому процессу.
- •Управление устройствами. Основные понятия и концепции организации.
Обмен данными по технологии dde.
На практике, обмен через Clipboard, как правило, выполняется при непосредственном участии пользователя. В том случае, когда требуется непосредственный обмен данными между работающими приложениями, может быть использован протокол обмена DDI.
Это вид взаимодействия между приложениями, который для обмена данными использует память, разделяемую приложениями. Обмен по данному протоколу осуществляется между двумя приложениями, одно из которых является сервером, а второе – клиентом.
Сервер запускается на выполнение и ожидает запрос на обслуживание клиента. Клиент посылает серверу запрос на получение данных или выполнение некоторой работы. Сервер, получив запрос, выполняет действия, указанные в запросе, и посылает ответ.
Один и тот же сервер может иметь множество клиентов, и один клиент может запрашивать данные от множества серверов. Кроме того, одно и то же приложение может реализовывать функции как клиента, так и сервера.
Первоначально, DDE создавался для организации обмена данными между приложениями, выполняющимися на одной ЭВМ. В настоящее время существует развитие этой технологии для приложений, которые выполняются на разных ЭВМ – NetDDE.
Впервые появилась в ОС, принцип действия которых основан на управлении событиями.
Сущность этого принципа в том, что ОС отслеживает все возможные события, происходящие в системе, такие как нажатие клавиш, перемещение мыши, сигналы от внешней среды, прием сообщений от приложений и так далее. Обрабатывая эти события, ОС формирует сообщения, которые передаются приложениям. Каждое приложение находится в состоянии выполнения бесконечного цикла, в котором проверяется наличие сообщений, поступающих от ОС. В соответствии с характером принимаемых сообщений, приложение выполняет ответные действия, и в свою очередь, снова посылает сообщения в систему. Такой процесс выполняется в течение всего периода работы приложения.
С учетом этого принципа, первые варианты реализации DDE основывались на непосредственном обмене сообщениями между приложениями. В этом случае, для посылки сообщений использовались системные функции SendMessage и PostMessage. Первая является синхронной, а вторая – асинхронной.
Для DDE обмена в Windows выделена специальная группа сообщений:
wm_DDE_...
Инициировать сеанс обмена данными или выполнить команду, установить связь с сервером, послать данные серверу, послать данные клиенту, завершить связь с сервером, завершить сеанс обмена данными, и другие.
Программы для обмена по этой технологии оказывались достаточно сложными, поэтому для снижения трудоемкости разработки DDE-приложений была разработана библиотека DDEML, в которой содержались все необходимые функции.
С появлением визуальных средств разработки приложений процесс стал еще проще. Например, в системе Delphi приложения DDE-сервер и DDE-клиент создаются путем включения в форму специализированных невизуальных компонентов, а именно – TDDEServerConv, TDDEServerItem, TDDEClientConv, TDDEClientItem.
Настройка свойств этих компонентов позволяет реализовать обмен данными между приложениями в момент их выполнения.