Операционные системы. Теория и практика. Замятин А.В. - 259 стр.

UptoLike

Составители: 

259
виртуальный адрес начала сегмента. Флаги системного вызова shmat
приведены ниже в таблице.
Таблица 4.3
Флаги системного вызова shmat
Флаг
Описание
SHM_RDONLY
Ядро подключает участок памяти только для
чтения
SHM_RND
Определяет, если возможно, способ обработки
ненулевого значения daddr.
Для отключения сегмента от виртуальной памяти используется си-
стемный вызов shmdt:
int shmdt (*daddr)
где daddr это виртуальный адрес начала сегмента в виртуальной памя-
ти, ранее полученный от системного вызова shmat.
Системный вызов shmctl
int shmctl (int shmid, int command, struct shmid_ds *shrn_stat)
по синтаксису и назначению аналогичен msgctl.
9.4.3 Примеры практической реализации
Семафоры
Программа semsyn, исходный код которой приведен ниже, создает
семафор и два процесса, синхронизирующихся с помощью созданного
семафора. В программе дочерний процесс является главным, он блоки-
рует и разблокирует семафор, родительский процесс ждет освобождения
семафора.
#include <unistd.h>
#include <stdio.h>
#include <error.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <sys/sem.h>
#include <sys/ipc.h>
#include <fcntl.h>
#include <time.h>
#include <iostream.h>
#define MAXLINE 128