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




Методические указания к лабораторной работе


Механизм IPC (Inter-Process Communication Facilities) включает:

  • средства, обеспечивающие возможность синхронизации процессов при доступе к совместно используемым ресурсам (семафоры - semaphores);
  • средства, обеспечивающие возможность посылки процессом сообщений другому произвольному процессу (очереди сообщений - message queries);
  • средства, обеспечивающие возможность наличия общей для процессов памяти (сегменты разделяемой памяти - shared memory segments).
  • Наиболее общим понятием IPC является ключ, хранимый в общесистемной таблице и обозначающий объект межпроцессного взаимодействия, доступный нескольким процессам. Обозначаемый ключом объект может быть очередью сообщений, набором семафоров или сегментом разделяемой памяти. Ключ имеет тип key_t, состав которого зависит от реализации и определяется в файле <sys/types.h&gt. Ключ используется для создания объекта межпроцессного взаимодействия или получения доступа к существующему объекту. Обе операции выполняются посредством операции get. Результатом операции get является его целочисленный идентификатор, который может использоваться в других функциях межпроцессного взаимодействия.

    I. Семафоры.

    Для работы с семафорами поддерживаются три системных вызова:

  • semget() для создания и получения доступа к набору семафоров;
  • semop() для манипулирования значениями семафоров (это тот системный вызов, который позволяет процессам синхронизоваться на основе использования семафоров
  • semctl() для выполнения разнообразных управляющих операций над набором семафоров
  • Прототипы перечисленных системных вызовов описаны в файлах

    #include <sys/ipc.h>

    #include <sys/sem.h>

    Системный вызов semget() имеет следующий синтаксис:




    Содержание  Назад  Вперед