Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к экзамену Операционные Системы 2012.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
456 Кб
Скачать
☆

26. Взаимодействие процессов в ос unix. System V ipc.

- Разделяемая память

- Семафоры

- Очереди сообщений

get() – используется для создания средства IPC, возвращает идентификатор средства.

ctl() – Определяет состояние, устанавливает различные опции и права доступа или удаляет идентификатор IPC

op() – Выполняет операции над средством IPC

Общие свойства средств IPC:

- Средства могут быть созданы за любое время до их использования

- В момент создания для средства IPC устанавливаются собственность и права доступа, которые могут позднее быть изменены.

- Содержимое средства IPC может сохраняться после того, как все использовавшие его процессы завершились.

- Средства должны удаляться явным образом, командной или соответствующим системным вызовом.

- Средства IPC теряются при перезагрузке системы.

get() – основные сведения: Создатель задает IPC_CREAT и права доступа в параметре flg; можно дополнительно задать IPC_EXCL; IPC_PRIVATE предоставляет приватный ключ

ctl – основные сведения: IPC_STAT – информация о состоянии; IPC_SET – изменяет хозяина и права доступа; IPC_RMID – удаляет средство.

ipcs() – Состояние всех существующих в данный момент средств IPC.

ipcrm() – удаление средства IPC.

Очереди сообщений:

msgget – создать очередь или получить доступ к ней

msgctl – определить состояние очереди; изменить хозяина или права доступа; изменить максимальный размер очереди или удалить ее

msgop – послать (msgsnd) или получить (msgrcv) сообщение

Семафоры:

Разделяемое короткое без знаковое целое значение.

Используется для: блокировки; управление доступом к ресурсам; подсчета; разделения небольшого без знакового значения между процессами.

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

shmget – создать или получить доступ к сегменту памяти

shmctl – определить состояние сегмента; изменить хозяина/группу сегмента и права доступа; удалить сегмент

shmop – присоединить (shmat) сегмент к области данных процесса, или отсоединить его (shmdt)

27. Взаимодействие процессов в ОС UNIX. Сокеты, определение, основные типы. Системные вызовы.

Сокеты – одно из средств коммуникации между процессами. Главное отличие сокетов от других средств межпроцессного взаимодействия, таких как пайпы и очереди соообщений состоит в том, что обменивающимся информацией процессам не обязательно находится на одном компьютере.

socket() – создание сокета

connect() – его привязка к адресу и порту, установка соединения

write() – посылка запроса

read() – прием ответа

close() – закрытие сокета.

bind() – привязка сокета к адресу

listen() – перевод сокета в пассивный режим

accept() – прием полностью установленного соединения

int socket(int domain, int type, int protocol); domain – определяет семейство протоколов. type – тип сокета; protocol – протокол для данного типа сокета.

int connect(int sockfd, struct sockaddr *serv_addr, socklen_t addrlen); sockfd – дескриптор сокета; *serv_addr – указатель на структуру, содержащую инфу о сокете; addrlen – размер этой структуры.

Структура sockaddr:

struct sockaddr{

unsigned short sa_family;

char sa_data[14];

};

int close(int sockfd); - Закрывает дескриптор сокет, тем самым, завершая соединение.

28. Взаимодействие процессов в ОС UNIX. Сокеты. Общая схема работы с сокетами без предварительного установления соединения.

29. Взаимодействие процессов в ОС UNIX. Сокеты. Общая схема работы с сокетами c предварительным установлением соединения.

30. Взаимодействие процессов в ОС UNIX. Среда MPI, индивидуальные и коллективные коммуникации.