Управление ресурсами в ОС UNIX

       

Int msgctl (int msgqid, int command, struct msqid_ds *msg_stat)


используется

  • для опроса состояния описателя очереди сообщений (command = IPC_STAT) и помещения его в структуру msg_stat (детали опускаем);
  • изменения его состояния (command = IPC_SET), например, изменения прав доступа к очереди;
  • для уничтожения указанной очереди сообщений (command = IPC_RMID).
  • III. Работа с разделяемой памятью.

    Для работы с разделяемой памятью используются системные вызовы:

  • shmget() создает новый сегмент разделяемой памяти или находит существующий сегмент с тем же ключом;
  • shmat() подключает сегмент с указанным описателем к виртуальной памяти обращающегося процесса;
  • shmdt() отключает от виртуальной памяти ранее подключенный к ней сегмент с указанным виртуальным адресом начала;
  • shmctl() служит для управления разнообразными параметрами, связанными с существующим сегментом.
  • Прототипы перечисленных системных вызовов описаны в файлах

    #include <sys/ipc.h>

    #include <sys/shm.h>

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

    Системный вызов



    Содержание раздела