- •3. Язык Си-средство разработки ос. Базовые конструкции. Массивы и указатели.
- •4. Язык Си-средство разработки ос. Структура программы. Препроцессор.
- •5. Язык Си-средство разработки ос. Организация ввода-вывода в Си, форматированный ввод-вывод.
- •7. Язык Си-средство разработки ос. Динамическое выделение памяти. Структуры и объединения.
- •Динамические структуры данных
- •Архитектура ос
- •Контекст процесса
- •Некоторые типы процессов.
- •Жизненный цикл процесса
- •Классификация алгоритмов:
- •Контекст процесса
- •17. Аппарат системных вызовов в ос unix. Порождение новых процессов.
- •21. Управление процессами. Жизненный цикл процесса в oс unix.
- •26. Взаимодействие процессов в ос unix. System V ipc.
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, индивидуальные и коллективные коммуникации.
