Межпроцессное взаимодействие (IPC)
Цели кооперации процессов
Логическая организация взаимодействия: адресация
Логическая организация взаимодействия: валентность
Логическая организация взаимодействия: направленность
Сигнальные средства связи
Канальные средства связи
Канальные средства связи
Канальные средства связи: программные каналы
Канальные средства связи: именованные каналы
Канальные средства связи: сообщения
Разделяемая память
Вопросы?
134.70K
Category: softwaresoftware

Межпроцессное взаимодействие. (Тема 8)

1. Межпроцессное взаимодействие (IPC)

МЕЖПРОЦЕССНОЕ
ВЗАИМОДЕЙСТВИЕ
(IPC)
Курс лекций
«Системное программное обеспечение»
«System Software»
«Операционные системы»
для студентов специальностей АСОИ и ИИ
Павел Кочурко
доцент кафедры ИИТ, к.т.н.

2. Цели кооперации процессов

• Повышение скорости работы
Один ждёт события, пока второй работает
• Совместное использование данных
Общая БД, разделяемые файлы
• Модульная конструкция системы
Программы-серверы микроядерной ОС
• Удобство работы пользователя
Редактор+отладчик
Процессы, которые влияют на поведение друг друга путем обмена
информацией, принято называть кооперативными или
взаимодействующими процессами, в отличие от независимых
процессов, не оказывающих друг на друга никакого воздействия.

3. Логическая организация взаимодействия: адресация

• прямая
• непрямая
B
B
A
A
B
• симметричная прямая
B
B
A
A
асимметричная прямая
B
A
B
group
interim

4. Логическая организация взаимодействия: валентность

B
A
B
A
A
B
C
D
interim
E
Информационная валентность связи – максимальное количество
процессов, которые могут одновременно воспользоваться данной связью

5. Логическая организация взаимодействия: направленность

• Однонаправленная (симплексная)
Передача только в одном направлении
B
A
• Двунаправленная (полудуплексная)
Поочередная передача в обе стороны
B
A
• Двунаправленная (дуплексная)
Одновременная передача в обе стороны
B
A

6. Сигнальные средства связи

B
A
11
1
• Передается минимальное количество информации –
вплоть до одного бита
• Степень воздействия минимальна.
• Адресат должен ожидать сигнал и знать, что он
означает

7. Канальные средства связи

B
A
• В общем случае – передача неструктурированного
потока байт
• Взаимодействие по логическим линиям связи,
предоставленным ОС
• Объём передаваемой информации ограничен
пропускной способностью

8. Канальные средства связи

B
A
buf
• Буфер нулевой емкости или отсутствует.
Никакая информация не может сохраняться на линии связи.
• Буфер ограниченной емкости.
Размер буфера равен n, то есть линия связи не может хранить до
момента получения более чем n единиц информации.
• Буфер неограниченной емкости.
Теоретически это возможно, но практически вряд ли реализуемо.

9. Канальные средства связи: программные каналы

var
A
B
var
RAM
pipe
• Программный канал (PIPE) реализует потоковую
модель ввода/вывода
• PIPE создаётся в памяти, где именно – знает только
сам процесс (переменная с адресом)
• Дочерние наследуют это знание – использовать PIPE
могут только генеалогически связанные процессы

10. Канальные средства связи: именованные каналы

A filename
RAM
B
filename
fifo
File
system
• Именованный канал (FIFO) размещается в
файловой системе и имеет имя
• По имени FIFO доступен любому процессу
• FIFO является файлом специального типа, который
имеет только имя, но не имеет содержимого в
файловой системе – отображается в область памяти

11. Канальные средства связи: сообщения

A
• Сообщения накладывают на поток данных структуру
• Сообщение может включать заголовок, тело
(необязательно), хвостовик (необязательно)
• Заголовок описывает: тип сообщения, адрес
получателя, состав тела данных и т.п.
B

12. Разделяемая память

A
B
RAM
• Область разделяемой памяти создаётся ОС и доступна
для использования одновременно нескольким процессам
• Наиболее быстрый способ взаимодействия – чтение/запись
в память
• Опасно – процессы могут портить данные друг друга в
общей памяти

13. Вопросы?

ВОПРОСЫ?
http://iit.bstu.by/ss
English     Русский Rules