XSI IPC
.pdfПример выполнения операции
semd = semget(IPC_PRIVATE, 1, 0666 | IPC_CREAT); struct sembuf mybuf;
// задаем начальное значение семафора равное 1 mybuf.sem_num = 0;
mybuf.sem_op = 1; mybuf.sem_flg = 0;
semop(semd,&mybuf,1);
Удаление семафоров
Аналогично разделяемой памяти:
semctl(semd, 0, IPC_RMID, NULL);
Лабораторная работа №4
Вычисление числа Пи несколькими процессами.
Хранение переменной с суммой в разделяемой памяти
Очереди сообщений
Можно представить как почтовый ящик, в который различные процессы
системы отправляют сообщения помечая их некоторым типом.
Выборка сообщений из этого почтового ящика производится процессами по собственному желанию следующими способами:
1.Независимо от типа сообщения в порядке FIFO (First In First Out).
2.В рамках определенного типа в порядке FIFO.
3.Первым выбирается самое старое сообщение имеющее минимальный тип.
Использование
Данный вид IPC считается устаревшим и не рекомендуется к применению в реальных системах.
Недостатки
●XSI IPC привязаны к ядру, а не к процессу
●Не имеют счетчика ссылок
●Не имеют имени в файловой систем (возникает необходимость использования специальных системных вызовов)