Библиотека Рефераты Курсовые Дипломы Поиск
Библиотека Рефераты Курсовые Дипломы Поиск
сделать стартовой добавить в избранное
Кефирный гриб на сайте www.za4et.net.ru

Компьютеры, Программирование Компьютеры, Программирование     Программное обеспечение Программное обеспечение

Механизмы межпроцессных взаимодействий в операционной системе Unix

Наклейки для поощрения "Смайлики 2".
Набор для поощрения на самоклеящейся бумаге. Формат 95х160 мм.
19 руб
Раздел: Наклейки для оценивания, поощрения
Браслет светоотражающий, самофиксирующийся, желтый.
Изготовлены из влагостойкого и грязестойкого материала, сохраняющего свои свойства в любых погодных условиях. Легкость крепления позволяет
66 руб
Раздел: Прочее
Совок большой.
Длина 21,5 см. Расцветка в ассортименте, без возможности выбора.
21 руб
Раздел: Совки

Сергей Кузнецов Возникшие проблемы Избыточный набор системных средств, предназначенных для обеспечения возможности взаимодействия и синхронизации процессов, которые не обязательно связаны отношением родства IPC - I er-Process Commu ica io Facili ies с появлением U IX Sys em V Release 4.0 все эти средства были узаконены и вошли в фактический стандарт ОС U IX современного образца в разных вариантах системы средства IPC реализуются по-разному эффективность реализации различается усложняется разработка мобильных асинхронных программных комплексов Пакет средств IPC U IX Sys em V Release 3.0 средства, обеспечивающие возможность наличия общей памяти между процессами (сегменты разделяемой памяти - shared memory segme s) средства, обеспечивающие возможность синхронизации процессов при доступе с совместно используемым ресурсам, например, к разделяемой памяти (семафоры - semaphores) средства, обеспечивающие возможность посылки процессом сообщений другому произвольному процессу (очереди сообщений - message queues) Общие свойства всех трех механизмов: для каждого механизма поддерживается общесистемная таблица, элементы которой описывают всех существующих в данный момент представителей механизма (конкретные сегменты, семафоры или очереди сообщений) элемент таблицы содержит некоторый числовой ключ, который является выбранным пользователем именем представителя соответствующего механизма процесс, желающий начать пользоваться одним из механизмов, обращается к системе с системным вызовом из семейства "ge ", ответным параметром является числовой дескриптор ключ IPC PRIVA E ключ IPC CREA защита доступа основывается на тех же принципах, что и защита доступа к файлам Разделяемая память shmge создает новый сегмент разделяемой памяти или находит существующий сегмент с тем же ключом shma подключает сегмент с указанным дескриптором к виртуальной памяти обращающегося процесса shmd отключает от виртуальной памяти ранее подключенный к ней сегмент с указанным виртуальным адресом начала shmc l служит для управления параметрами, связанными с существующим сегментом После подключения сегмента разделяемой памяти к виртуальной памяти процесса, он может обращаться к соответствующим элементам памяти с использованием обычных машинных команд чтения и записи shmid = shmge (key, size, flag); size определяет желаемый размер сегмента в байтах если в таблице разделяемой памяти находится элемент, содержащий заданный ключ, и права доступа не противоречат текущим характеристикам процесса, то значением системного вызова является дескриптор существующего сегмента реальный размер сегмента можно узнать с помощью системного вызова shmc l иначе создается новый сегмент с размером не меньше установленного в системе минимального размера сегмента разделяемой памяти и не больше установленного максимального размера создание сегмента не означает немедленного выделения под него основной памяти откладывается до выполнения первого системного вызова подключения сегмента к виртуальной памяти некоторого процесса при выполнении последнего системного вызова отключения сегмента от виртуальной памяти соответствующая основная память освобождается vir addr = shma (id, addr, flags); id - это ранее полученный дескриптор сегмента addr - желаемый процессом виртуальный адрес, который должен соответствовать началу сегмента в виртуальной памяти vir addr - реальный виртуальный адрес начала сегмента не обязательно совпадает со значением прямого параметра addr если addr == 0, ядро выбирает наиболее удобный виртуальный адрес начала сегмента shmd (addr); addr - виртуальный адрес начала сегмента в виртуальной памяти, ранее полученный от системного вызова shma shmc l(id, cmd, shss a buf); cmd идентифицирует требуемое конкретное действие важна функция уничтожения сегмента разделяемой памяти Семафоры Обобщение классического механизма семафоров общего вида Диекстры Целесообразность обобщения сомнительна Обычно использовался облегченный вариант двоичных семафоров Известен алгоритм реализации семафоров общего вида на основе двоичных Семафор в ОС U IX: значение семафора идентификатор процесса, который хронологически последним работал с семафором число процессов, ожидающих увеличения значения семафора число процессов, ожидающих нулевого значения семафора Три системных вызова: semge для создания и получения доступа к набору семафоров semop для манипулирования значениями семафоров semc l для выполнения управляющих операций над набором семафоров id = semge (key, cou , flag); key, flag и id - обычный смысл cou - число семафоров в наборе семафоров, обладающих одним и тем же ключом индивидуальный семафор идентифицируется дескриптором набора семафоров и номером семафора в наборе если набор семафоров с указанным ключом уже существует, то число семафоров в группе можно узнать с помощью системного вызова semc l oldval = semop(id, oplis , cou ); id - дескриптор группы семафоров oplis - массив описателей операций над семафорами группы cou - размер этого массива возвращается значение последнего обработанного семафора Элемент массива oplis : номер семафора в указанном наборе семафоров операция флаги Если проверка прав доступа проходит нормально указанные в массиве oplis номера семафоров не выходят за пределы общего размера набора семафоров для каждого элемента массива oplis значение семафора изменяется в соответствии со значением поля "операция" Значение поля операции положительно значение семафора увеличивается на единицу все процессы, ожидающие увеличения значения семафора, активизируются (пробуждаются) Значение поля операции равно нулю если значение семафора равно нулю, выбирается следующий элемент массива oplis иначе число процессов, ожидающих нулевого значения семафора, увеличивается на единицу обратившийся процесс переводится в состояние ожидания (усыпляется) Значение поля операции отрицательно (1) его абсолютное значение меньше или равно значению семафора это отрицательное значение прибавляется к значению семафора если значение семафора стало нулевым, то ядро активизирует все процессы, ожидающие нулевого значения этого семафора (2) значение семафора меньше абсолютной величины поля операции число процессов, ожидающих увеличения значения семафора увеличивается на единицу текущий процесс откладывается Стремление добиться возможности избегать тупиковых ситуаций Системный вызов semop выполняется как атомарная операция Флаг IPC OWAI заставляет ядро ОС U IX не блокировать текущий процесс лишь сообщать в ответных параметрах о возникновении ситуации, приведшей бы к блокированию процесса semc l(id, umber, cmd, arg); id - это дескриптор группы семафоров umber - номер семафора в группе cmd - код операции arg - указатель на структуру, содержимое которой интерпретируется в зависимости от операции Можно уничтожить индивидуальный семафор в указанной группе Очереди сообщений Четыре системных вызова: msgge для образования новой очереди сообщений или получения дескриптора существующей очереди msgs d для посылки сообщения (его постановки в очередь сообщений) msgrcv для приема сообщения (выборки сообщения из очереди) msgc l для выполнения управляющих действий msgqid = msgge (key, flag); Сообщения хранятся в виде связного списка Декскриптор очереди сообщений - индекс в массиве заголовков очередей сообщений В заголовке очереди хранятся: указатели на первое и последнее сообщение в данной очереди число сообщений общий размер в байтах сообщений, находящихся в очереди идентификаторы процессов, которые последними послали или приняли сообщение через данную очередь временные метки последних выполненных операций msgs d, msgrsv и msgc l Структуры данных, используемые для организации очередей сообщений msgs d(msgqid, msg, cou , flag); msg - это указатель на структуру, содержащую целочисленный тип сообщения и символьный массив cou - задает размер сообщения в байтах flag определяет действия ядра при выходе за пределы допустимых размеров внутренней буферной памяти Условия успешной постановки сообщения в очередь: процесс должен иметь право на запись в очередь длина сообщения не должна превосходить верхний предел общая длина сообщений не должна превосходить установленного предела тип сообщения должен быть положительным целым числом Процесс продолжает свое выполнение Ядро активизирует (пробуждает) все процессы, ожидающие поступления сообщений из очереди Превышается верхний предел суммарной длины сообщений обратившийся процесс откладывается до разгрузки очереди но есть флаг IPC OWAI (как для семафоров) cou = msgrcv(id, msg, maxcou , ype, flag); msg - указатель на структуру данных в адресном пространстве пользователя для размещения принятого сообщения maxcou - размер области данных (массива байтов) в структуре msg ype специфицирует тип сообщения, которое желательно принять flag указывает ядру, что следует предпринять, если в указанной очереди сообщений отсутствует сообщение с указанным типом cou - реальное число байтов, переданных пользователю Значением параметра ype является нуль выбирается первое сообщение копируется в заданную пользовательскую структуру данных процессы, отложенные по причине переполнения очереди сообщений, активизируются если значение параметра maxcou оказывается меньше реального размера сообщения, ядро не удаляет сообщение из очереди и возвращает код ошибки если задан флаг MSG OERROR, то выборка сообщения производится, и в буфер пользователя переписываются первые maxcou байтов сообщения Значение ype есть положительное целое число выбирается первое сообщение с таким же типом Значение ype есть отрицательное целое число выбирается первое сообщение, значение типа которого меньше или равно абсолютному значению ype В очереди отсутствуют сообщения, соответствующие спецификации ype процесс откладывается до появления в очереди требуемого сообщения но есть флаг IPC OWAI msgc l(id, cmd, ms a buf); опрос состояния описателя очереди сообщений изменение его состояния уничтожение очереди сообщений Программные каналы Создание неименованного программного канала pipe(fdp r); fdp r - это указатель массива из двух целых чисел для размещения дескриптора для чтения из программного канала (с помощью read) и записи в программный канал (с помощью wri e) обычные дескрипторы файлов два элемента таблицы открытых файлов процесса Создание именованных программных каналов (или получение доступа к существующим) Обычный системный вызов ope если канал открывается на запись, и ни один процесс не открыл его для чтения, то процесс блокируется до тех пор, пока некоторый процесс не откроет этот канал для чтения аналогично обрабатывается открытие для чтения имеется флаг O DELAY Запись и чтение: read и wri e при записи данные помещаются в начало канала при чтении выбираются из конца канала возможны откладывания процессов Окончание работы процесса: close при выполнении последнего закрытия канала по записи все процессы, ожидающие чтения из программного канала, активизируются с возвратом кода ошибки из системного вызова Программные гнезда (socke s) Поддерживаемый ядром механизм, скрывающий особенности сетевой среды и позволяющий единообразно взаимодействовать процессам выполняющимся на одном компьютере в пределах одной локальной сети разнесенным на разные компьютеры территориально распределенной сети Первое решение: U IX BSD 4.1

ргей Кузнецов Возникшие проблемы Избыточный набор системных средств, предназначенных для обеспечения возможности взаимодействия и синхронизации процессов, которые не обязательно связаны отношением родства IPC - I er-Process Commu ica io Facili ies с появлением U IX Sys em V Release 4.0 все эти средства были узаконены и вошли в фактический стандарт ОС U IX современного образца в разных вариантах системы средства IPC реализуются по-разному эффективность реализации различается усложняется разработка мобильных асинхронных программных комплексов Пакет средств IPC U IX Sys em V Release 3.0 средства, обеспечивающие возможность наличия общей памяти между процессами (сегменты разделяемой памяти - shared memory segme s) средства, обеспечивающие возможность синхронизации процессов при доступе с совместно используемым ресурсам, например, к разделяемой памяти (семафоры - semaphores) средства, обеспечивающие возможность посылки процессом сообщений другому произвольному процессу (очереди сообщений - message queues) Общие свойства всех трех механизмов: для каждого механизма поддерживается общесистемная таблица, элементы которой описывают всех существующих в данный момент представителей механизма (конкретные сегменты, семафоры или очереди сообщений) элемент таблицы содержит некоторый числовой ключ, который является выбранным пользователем именем представителя соответствующего механизма процесс, желающий начать пользоваться одним из механизмов, обращается к системе с системным вызовом из семейства "ge ", ответным параметром является числовой дескриптор ключ IPC PRIVA E ключ IPC CREA защита доступа основывается на тех же принципах, что и защита доступа к файлам Разделяемая память shmge создает новый сегмент разделяемой памяти или находит существующий сегмент с тем же ключом shma подключает сегмент с указанным дескриптором к виртуальной памяти обращающегося процесса shmd отключает от виртуальной памяти ранее подключенный к ней сегмент с указанным виртуальным адресом начала shmc l служит для управления параметрами, связанными с существующим сегментом После подключения сегмента разделяемой памяти к виртуальной памяти процесса, он может обращаться к соответствующим элементам памяти с использованием обычных машинных команд чтения и записи shmid = shmge (key, size, flag); size определяет желаемый размер сегмента в байтах если в таблице разделяемой памяти находится элемент, содержащий заданный ключ, и права доступа не противоречат текущим характеристикам процесса, то значением системного вызова является дескриптор существующего сегмента реальный размер сегмента можно узнать с помощью системного вызова shmc l иначе создается новый сегмент с размером не меньше установленного в системе минимального размера сегмента разделяемой памяти и не больше установленного максимального размера создание сегмента не означает немедленного выделения под него основной памяти откладывается до выполнения первого системного вызова подключения сегмента к виртуальной памяти некоторого процесса при выполнении последнего системного вызова отключения сегмента от виртуальной памяти соответствующая основная память освобождается vir addr = shma (id, addr, flags); id - это ранее полученный дескриптор сегмента addr - желаемый процессом виртуальный адрес, который должен соответствовать началу сегмента в виртуальной памяти vir addr - реальный виртуальный адрес начала сегмента не обязательно совпадает со значением прямого параметра addr если addr == 0, ядро выбирает наиболее удобный виртуальный адрес начала сегмента shmd (addr); addr - виртуальный адрес начала сегмента в виртуальной памяти, ранее полученный от системного вызова shma shmc l(id, cmd, shss a buf); cmd идентифицирует требуемое конкретное действие важна функция уничтожения сегмента разделяемой памяти Семафоры Обобщение классического механизма семафоров общего вида Диекстры Целесообразность обобщения сомнительна Обычно использовался облегченный вариант двоичных семафоров Известен алгоритм реализации семафоров общего вида на основе двоичных Семафор в ОС U IX: значение семафора идентификатор процесса, который хронологически последним работал с семафором число процессов, ожидающих увеличения значения семафора число процессов, ожидающих нулевого значения семафора Три системных вызова: semge для создания и получения доступа к набору семафоров semop для манипулирования значениями семафоров semc l для выполнения управляющих операций над набором семафоров id = semge (key, cou , flag); key, flag и id - обычный смысл cou - число семафоров в наборе семафоров, обладающих одним и тем же ключом индивидуальный семафор идентифицируется дескриптором набора семафоров и номером семафора в наборе если набор семафоров с указанным ключом уже существует, то число семафоров в группе можно узнать с помощью системного вызова semc l oldval = semop(id, oplis , cou ); id - дескриптор группы семафоров oplis - массив описателей операций над семафорами группы cou - размер этого массива возвращается значение последнего обработанного семафора Элемент массива oplis : номер семафора в указанном наборе семафоров операция флаги Если проверка прав доступа проходит нормально указанные в массиве oplis номера семафоров не выходят за пределы общего размера набора семафоров для каждого элемента массива oplis значение семафора изменяется в соответствии со значением поля "операция" Значение поля операции положительно значение семафора увеличивается на единицу все процессы, ожидающие увеличения значения семафора, активизируются (пробуждаются) Значение поля операции равно нулю если значение семафора равно нулю, выбирается следующий элемент массива oplis иначе число процессов, ожидающих нулевого значения семафора, увеличивается на единицу обратившийся процесс переводится в состояние ожидания (усыпляется) Значение поля операции отрицательно (1) его абсолютное значение меньше или равно значению семафора это отрицательное значение прибавляется к значению семафора если значение семафора стало нулевым, то ядро активизирует все процессы, ожидающие нулевого значения этого семафора (2) значение семафора меньше абсолютной величины поля операции число процессов, ожидающих увеличения значения семафора увеличивается на единицу текущий процесс откладывается Стремление добиться возможности избегать тупиковых ситуаций Системный вызов semop выполняется как атомарная операция Флаг IPC OWAI заставляет ядро ОС U IX не блокировать текущий процесс лишь сообщать в ответных параметрах о возникновении ситуации, приведшей бы к блокированию процесса semc l(id, umber, cmd, arg); id - это дескриптор группы семафоров umber - номер семафора в группе cmd - код операции arg - указатель на структуру, содержимое которой интерпретируется в зависимости от операции Можно уничтожить индивидуальный семафор в указанной группе Очереди сообщений Четыре системных вызова: msgge для образования новой очереди сообщений или получения дескриптора существующей очереди msgs d для посылки сообщения (его постановки в очередь сообщений) msgrcv для приема сообщения (выборки сообщения из очереди) msgc l для выполнения управляющих действий msgqid = msgge (key, flag); Сообщения хранятся в виде связного списка Декскриптор очереди сообщений - индекс в массиве заголовков очередей сообщений В заголовке очереди хранятся: указатели на первое и последнее сообщение в данной очереди число сообщений общий размер в байтах сообщений, находящихся в очереди идентификаторы процессов, которые последними послали или приняли сообщение через данную очередь временные метки последних выполненных операций msgs d, msgrsv и msgc l Структуры данных, используемые для организации очередей сообщений msgs d(msgqid, msg, cou , flag); msg - это указатель на структуру, содержащую целочисленный тип сообщения и символьный массив cou - задает размер сообщения в байтах flag определяет действия ядра при выходе за пределы допустимых размеров внутренней буферной памяти Условия успешной постановки сообщения в очередь: процесс должен иметь право на запись в очередь длина сообщения не должна превосходить верхний предел общая длина сообщений не должна превосходить установленного предела тип сообщения должен быть положительным целым числом Процесс продолжает свое выполнение Ядро активизирует (пробуждает) все процессы, ожидающие поступления сообщений из очереди Превышается верхний предел суммарной длины сообщений обратившийся процесс откладывается до разгрузки очереди но есть флаг IPC OWAI (как для семафоров) cou = msgrcv(id, msg, maxcou , ype, flag); msg - указатель на структуру данных в адресном пространстве пользователя для размещения принятого сообщения maxcou - размер области данных (массива байтов) в структуре msg ype специфицирует тип сообщения, которое желательно принять flag указывает ядру, что следует предпринять, если в указанной очереди сообщений отсутствует сообщение с указанным типом cou - реальное число байтов, переданных пользователю Значением параметра ype является нуль выбирается первое сообщение копируется в заданную пользовательскую структуру данных процессы, отложенные по причине переполнения очереди сообщений, активизируются если значение параметра maxcou оказывается меньше реального размера сообщения, ядро не удаляет сообщение из очереди и возвращает код ошибки если задан флаг MSG OERROR, то выборка сообщения производится, и в буфер пользователя переписываются первые maxcou байтов сообщения Значение ype есть положительное целое число выбирается первое сообщение с таким же типом Значение ype есть отрицательное целое число выбирается первое сообщение, значение типа которого меньше или равно абсолютному значению ype В очереди отсутствуют сообщения, соответствующие спецификации ype процесс откладывается до появления в очереди требуемого сообщения но есть флаг IPC OWAI msgc l(id, cmd, ms a buf); опрос состояния описателя очереди сообщений изменение его состояния уничтожение очереди сообщений Программные каналы Создание неименованного программного канала pipe(fdp r); fdp r - это указатель массива из двух целых чисел для размещения дескриптора для чтения из программного канала (с помощью read) и записи в программный канал (с помощью wri e) обычные дескрипторы файлов два элемента таблицы открытых файлов процесса Создание именованных программных каналов (или получение доступа к существующим) Обычный системный вызов ope если канал открывается на запись, и ни один процесс не открыл его для чтения, то процесс блокируется до тех пор, пока некоторый процесс не откроет этот канал для чтения аналогично обрабатывается открытие для чтения имеется флаг O DELAY Запись и чтение: read и wri e при записи данные помещаются в начало канала при чтении выбираются из конца канала возможны откладывания процессов Окончание работы процесса: close при выполнении последнего закрытия канала по записи все процессы, ожидающие чтения из программного канала, активизируются с возвратом кода ошибки из системного вызова Программные гнезда (socke s) Поддерживаемый ядром механизм, скрывающий особенности сетевой среды и позволяющий единообразно взаимодействовать процессам выполняющимся на одном компьютере в пределах одной локальной сети разнесенным на разные компьютеры территориально распределенной сети Первое решение: U IX BSD 4.1

ргей Кузнецов Возникшие проблемы Избыточный набор системных средств, предназначенных для обеспечения возможности взаимодействия и синхронизации процессов, которые не обязательно связаны отношением родства IPC - I er-Process Commu ica io Facili ies с появлением U IX Sys em V Release 4.0 все эти средства были узаконены и вошли в фактический стандарт ОС U IX современного образца в разных вариантах системы средства IPC реализуются по-разному эффективность реализации различается усложняется разработка мобильных асинхронных программных комплексов Пакет средств IPC U IX Sys em V Release 3.0 средства, обеспечивающие возможность наличия общей памяти между процессами (сегменты разделяемой памяти - shared memory segme s) средства, обеспечивающие возможность синхронизации процессов при доступе с совместно используемым ресурсам, например, к разделяемой памяти (семафоры - semaphores) средства, обеспечивающие возможность посылки процессом сообщений другому произвольному процессу (очереди сообщений - message queues) Общие свойства всех трех механизмов: для каждого механизма поддерживается общесистемная таблица, элементы которой описывают всех существующих в данный момент представителей механизма (конкретные сегменты, семафоры или очереди сообщений) элемент таблицы содержит некоторый числовой ключ, который является выбранным пользователем именем представителя соответствующего механизма процесс, желающий начать пользоваться одним из механизмов, обращается к системе с системным вызовом из семейства "ge ", ответным параметром является числовой дескриптор ключ IPC PRIVA E ключ IPC CREA защита доступа основывается на тех же принципах, что и защита доступа к файлам Разделяемая память shmge создает новый сегмент разделяемой памяти или находит существующий сегмент с тем же ключом shma подключает сегмент с указанным дескриптором к виртуальной памяти обращающегося процесса shmd отключает от виртуальной памяти ранее подключенный к ней сегмент с указанным виртуальным адресом начала shmc l служит для управления параметрами, связанными с существующим сегментом После подключения сегмента разделяемой памяти к виртуальной памяти процесса, он может обращаться к соответствующим элементам памяти с использованием обычных машинных команд чтения и записи shmid = shmge (key, size, flag); size определяет желаемый размер сегмента в байтах если в таблице разделяемой памяти находится элемент, содержащий заданный ключ, и права доступа не противоречат текущим характеристикам процесса, то значением системного вызова является дескриптор существующего сегмента реальный размер сегмента можно узнать с помощью системного вызова shmc l иначе создается новый сегмент с размером не меньше установленного в системе минимального размера сегмента разделяемой памяти и не больше установленного максимального размера создание сегмента не означает немедленного выделения под него основной памяти откладывается до выполнения первого системного вызова подключения сегмента к виртуальной памяти некоторого процесса при выполнении последнего системного вызова отключения сегмента от виртуальной памяти соответствующая основная память освобождается vir addr = shma (id, addr, flags); id - это ранее полученный дескриптор сегмента addr - желаемый процессом виртуальный адрес, который должен соответствовать началу сегмента в виртуальной памяти vir addr - реальный виртуальный адрес начала сегмента не обязательно совпадает со значением прямого параметра addr если addr == 0, ядро выбирает наиболее удобный виртуальный адрес начала сегмента shmd (addr); addr - виртуальный адрес начала сегмента в виртуальной памяти, ранее полученный от системного вызова shma shmc l(id, cmd, shss a buf); cmd идентифицирует требуемое конкретное действие важна функция уничтожения сегмента разделяемой памяти Семафоры Обобщение классического механизма семафоров общего вида Диекстры Целесообразность обобщения сомнительна Обычно использовался облегченный вариант двоичных семафоров Известен алгоритм реализации семафоров общего вида на основе двоичных Семафор в ОС U IX: значение семафора идентификатор процесса, который хронологически последним работал с семафором число процессов, ожидающих увеличения значения семафора число процессов, ожидающих нулевого значения семафора Три системных вызова: semge для создания и получения доступа к набору семафоров semop для манипулирования значениями семафоров semc l для выполнения управляющих операций над набором семафоров id = semge (key, cou , flag); key, flag и id - обычный смысл cou - число семафоров в наборе семафоров, обладающих одним и тем же ключом индивидуальный семафор идентифицируется дескриптором набора семафоров и номером семафора в наборе если набор семафоров с указанным ключом уже существует, то число семафоров в группе можно узнать с помощью системного вызова semc l oldval = semop(id, oplis , cou ); id - дескриптор группы семафоров oplis - массив описателей операций над семафорами группы cou - размер этого массива возвращается значение последнего обработанного семафора Элемент массива oplis : номер семафора в указанном наборе семафоров операция флаги Если проверка прав доступа проходит нормально указанные в массиве oplis номера семафоров не выходят за пределы общего размера набора семафоров для каждого элемента массива oplis значение семафора изменяется в соответствии со значением поля "операция" Значение поля операции положительно значение семафора увеличивается на единицу все процессы, ожидающие увеличения значения семафора, активизируются (пробуждаются) Значение поля операции равно нулю если значение семафора равно нулю, выбирается следующий элемент массива oplis иначе число процессов, ожидающих нулевого значения семафора, увеличивается на единицу обратившийся процесс переводится в состояние ожидания (усыпляется) Значение поля операции отрицательно (1) его абсолютное значение меньше или равно значению семафора это отрицательное значение прибавляется к значению семафора если значение семафора стало нулевым, то ядро активизирует все процессы, ожидающие нулевого значения этого семафора (2) значение семафора меньше абсолютной величины поля операции число процессов, ожидающих увеличения значения семафора увеличивается на единицу текущий процесс откладывается Стремление добиться возможности избегать тупиковых ситуаций Системный вызов semop выполняется как атомарная операция Флаг IPC OWAI заставляет ядро ОС U IX не блокировать текущий процесс лишь сообщать в ответных параметрах о возникновении ситуации, приведшей бы к блокированию процесса semc l(id, umber, cmd, arg); id - это дескриптор группы семафоров umber - номер семафора в группе cmd - код операции arg - указатель на структуру, содержимое которой интерпретируется в зависимости от операции Можно уничтожить индивидуальный семафор в указанной группе Очереди сообщений Четыре системных вызова: msgge для образования новой очереди сообщений или получения дескриптора существующей очереди msgs d для посылки сообщения (его постановки в очередь сообщений) msgrcv для приема сообщения (выборки сообщения из очереди) msgc l для выполнения управляющих действий msgqid = msgge (key, flag); Сообщения хранятся в виде связного списка Декскриптор очереди сообщений - индекс в массиве заголовков очередей сообщений В заголовке очереди хранятся: указатели на первое и последнее сообщение в данной очереди число сообщений общий размер в байтах сообщений, находящихся в очереди идентификаторы процессов, которые последними послали или приняли сообщение через данную очередь временные метки последних выполненных операций msgs d, msgrsv и msgc l Структуры данных, используемые для организации очередей сообщений msgs d(msgqid, msg, cou , flag); msg - это указатель на структуру, содержащую целочисленный тип сообщения и символьный массив cou - задает размер сообщения в байтах flag определяет действия ядра при выходе за пределы допустимых размеров внутренней буферной памяти Условия успешной постановки сообщения в очередь: процесс должен иметь право на запись в очередь длина сообщения не должна превосходить верхний предел общая длина сообщений не должна превосходить установленного предела тип сообщения должен быть положительным целым числом Процесс продолжает свое выполнение Ядро активизирует (пробуждает) все процессы, ожидающие поступления сообщений из очереди Превышается верхний предел суммарной длины сообщений обратившийся процесс откладывается до разгрузки очереди но есть флаг IPC OWAI (как для семафоров) cou = msgrcv(id, msg, maxcou , ype, flag); msg - указатель на структуру данных в адресном пространстве пользователя для размещения принятого сообщения maxcou - размер области данных (массива байтов) в структуре msg ype специфицирует тип сообщения, которое желательно принять flag указывает ядру, что следует предпринять, если в указанной очереди сообщений отсутствует сообщение с указанным типом cou - реальное число байтов, переданных пользователю Значением параметра ype является нуль выбирается первое сообщение копируется в заданную пользовательскую структуру данных процессы, отложенные по причине переполнения очереди сообщений, активизируются если значение параметра maxcou оказывается меньше реального размера сообщения, ядро не удаляет сообщение из очереди и возвращает код ошибки если задан флаг MSG OERROR, то выборка сообщения производится, и в буфер пользователя переписываются первые maxcou байтов сообщения Значение ype есть положительное целое число выбирается первое сообщение с таким же типом Значение ype есть отрицательное целое число выбирается первое сообщение, значение типа которого меньше или равно абсолютному значению ype В очереди отсутствуют сообщения, соответствующие спецификации ype процесс откладывается до появления в очереди требуемого сообщения но есть флаг IPC OWAI msgc l(id, cmd, ms a buf); опрос состояния описателя очереди сообщений изменение его состояния уничтожение очереди сообщений Программные каналы Создание неименованного программного канала pipe(fdp r); fdp r - это указатель массива из двух целых чисел для размещения дескриптора для чтения из программного канала (с помощью read) и записи в программный канал (с помощью wri e) обычные дескрипторы файлов два элемента таблицы открытых файлов процесса Создание именованных программных каналов (или получение доступа к существующим) Обычный системный вызов ope если канал открывается на запись, и ни один процесс не открыл его для чтения, то процесс блокируется до тех пор, пока некоторый процесс не откроет этот канал для чтения аналогично обрабатывается открытие для чтения имеется флаг O DELAY Запись и чтение: read и wri e при записи данные помещаются в начало канала при чтении выбираются из конца канала возможны откладывания процессов Окончание работы процесса: close при выполнении последнего закрытия канала по записи все процессы, ожидающие чтения из программного канала, активизируются с возвратом кода ошибки из системного вызова Программные гнезда (socke s) Поддерживаемый ядром механизм, скрывающий особенности сетевой среды и позволяющий единообразно взаимодействовать процессам выполняющимся на одном компьютере в пределах одной локальной сети разнесенным на разные компьютеры территориально распределенной сети Первое решение: U IX BSD 4.1

Точно так же у хороших системных администраторов вырабатывается умение определять, нормально ли функционирует компьютер, по внешним, малозаметным признакам. И они умеют распознавать малейшие отклонения. Компьютеры предназначены для того, чтобы выполнять одни и те же операции по многу раз, и если операция выполняется не так, как обычно,P значит, это неспроста. Опытные специалисты улавливают внутренний ритм компьютера по задержкам отклика на нажатие клавиш, по миганию огоньков на панели модема, по ежедневным записям в журнале регистрации подключений. Фирма Santa Cruz Operation (названная как бы в честь небольшого городка в северной части Калифорнии, где находился главный офис фирмы) начинала свою деятельность с того, что организовала продажу одной из версий операционной системы UNIX, предназначенной для персональных компьютеров. За восемь лет скромная фирма превратилась в преуспевающую компанию с капиталом во много миллионов долларов. Стеф Марр был одним из тех специалистов, которые отвечали за бесперебойную работу компьютерных систем

1. Автоматизация информационного взаимодействия в системе органов государственного финансового контроля

2. Операционные системы, разновидности ОС, краткие характеристики

3. Нелинейные многоволновые взаимодействия в упругих системах

4. Инквизиционный процесс. Формальная система доказательств

5. Операционные системы

6. Несанкционированный доступ к терминалам серверов с операционными системами семейства UNIX. На примере octopus.stu.lipetsk.ru
7. Сетевые операционные системы
8. Лекции по предмету "Операционные системы"

9. Операционная система MS-DOS

10. Операционная система MS DOS. Приглашение MS DOS. Диалог Пользователя с MS DOS

11. Теоретический анализ эффективности использования операционной системы ЛИНУКС

12. Операционная система DOS

13. Операционные системы (шпаргалка)

14. Операционная система LINUX

15. Работа с командами операционной системы MS - DOS

16. Бизнес-процессы в системе управления предприятием

Развивающая игра "Чудо - молоток".
Игра развивает творческий потенциал ребенка, способствует тренировке мелкой моторики, внимания, памяти. Играть в нее можно как одному,
1053 руб
Раздел: Прочие
Игра-головоломка "Орбо" (Orbo).
Головоломка Орбо – это абстрактная головоломка в виде белого шара с разноцветными шариками внутри. Она понравится как детям, так и
616 руб
Раздел: Головоломки
Пробковая доска с деревянной рамкой SP, 60х40 см.
Пробковые доски, тип SP применяются в качестве персональных информационных дисплеев. На их поверхность с помощью кнопок или булавок можно
722 руб
Раздел: Прочее

17. Восстановительный процесс субъекта системы "специалист-специальность" по годам обучения в зависимости от типа темперамента

18. Операционные системы

19. Реализация сети в операционной системе Linux

20. Операционная система UNIX

21. Несанкционированный доступ к терминалам серверов с операционными системами семейства UNIX

22. Локальные вычислительные сети. Операционная система NetWare фирмы Novell
23. Лекции по операционным системам
24. Операционная система Windows95 и ее характеристики

25. Операционные системы описание

26. Построение локальной вычислительной сети подразделения организации под управлением операционной системы Windows NT

27. Сети, операционная система Netware

28. Планировщик и диспетчер процессов в системе разделения времени

29. Система информационной поддержки процессов принятия решений в сельскохозяйственном производстве

30. Система внебюджетных фондов: назначение, источники и механизм действия

31. Гражданский процесс в системе юридического

32. Безопасность в системе Windows Vista. Основные службы и механизмы безопасности

Тетрадь на резинке "Study Up", В5, 120 листов, клетка, желтая.
Тетрадь общая на резинке. Формат: В5. Количество листов: 120 в клетку. Бумага: офсет. Цвет обложки: желтый.
442 руб
Раздел: Прочие
Накладка на унитаз "Бегемотик".
Унитазная накладка подходит ко всем стандартным туалетам. Кроме того, благодаря краям предотвращающим скольжение легко и твердо
419 руб
Раздел: Сиденья
Ватман "Kroyter Проф", А1, 100 листов.
Нарезанные листы ватмана для черчения. Формат: А1 (600Х840 мм). Плотность: 200 г/м2. В наборе: 100 листов.
2739 руб
Раздел: Прочее

33. Настройка интерфейса операционной системы Windows

34. Операционная система FreeBSD

35. Операционная система NetWare

36. Операционная система Unix

37. Операционная система Windows

38. Операционная система Windows
39. Операционная система Windows XP
40. Операционные системы

41. Операционные системы Unix и Windows NT

42. Операционные системы локальной сети

43. Операционные системы, альтернативные Windows

44. Операционный система Windows ХР

45. Основы работы в операционной системе Windows

46. Переход на 64-битные операционные системы

47. Работа с операционной системой Windows 95

48. Разработка статических и динамических библиотек на языке программирования С/C++ в операционных системах UNIX

Песочные часы "Обратные".
Песочные часы «Волшебные Обратные» - антистресс. Часы направлены на то, чтобы отвлечь Вас от напряжения и снизить стресс. Они не только
330 руб
Раздел: Часы песочные
Игра настольная "Тараканы в холодильнике".
Настольная игра предназначена для детей старше 7 лет. В распоряжении каждого игрока команда из трех тараканов, цель которых унести из
391 руб
Раздел: Карточные игры
Настольная игра "Друг-утюг".
Очень веселая игра для шумной компании, которая одинаково понравится и детям, и взрослым. Игровой процесс прост и в то же время невероятно
780 руб
Раздел: Игры на ассоциации, воображение

49. Современные операционные системы и системное программирование в Delphi

50. Способы защиты операционной системы от вирусных программ

51. Что такое операционная система вообще и Linux в частности

52. Операционная: системы медицинского газоснабжения, микроклимат и электробезопасность

53. Средства обеспечения коррекционно-образовательного процесса в системе специального образования

54. Участники арбитражного процесса: классификация, права и обязанности, характеристика правового положения. Представительство в арбитражном процессе
55. Информационное обеспечение процесса управления
56. Технология комплексного тестирования - инструмент формирования информационного пространства процесса физического воспитания

57. Мобильное программирование в среде ОС UNIX

58. Наблюдение за ресурсами, пользователями ОС UNIX. Передача сообщений. Управление ресурсами

59. Информационные основы процессов управления

60. Информационное обеспечение процессов бизнес-планирования

61. Налоговая система и налогоплательщики в России: варианты взаимодействия

62. Дистанционные взаимодействия в системе отношений человек-человек

63. Социальные роли как механизм взаимодействия личности и общества

64. Управление взаимодействием процессов в вычислительных сетях. Семиуровневая модель протоколов взаимодействия открытых систем

16 разноцветных восковых смываемых, треугольных мелков.
Мамы и папы могут быть уверены, что выбрав восковые мелки Crayola, они доставят радость своим детям. С их помощью можно нарисовать
419 руб
Раздел: Восковые
Подгузники-трусики "Pampers Pants", 6 ( 15+ кг), 44 штуки.
Когда малыши вертятся или ползают, подгузники надевать сложно. Тогда стоит использовать трусики Pampers Pants. Трусики Pampers легко
1117 руб
Раздел: Более 11 кг
Кружка с сердцем на дне (для правши или левши).
Пусть утро станет добрым! Кружка с забавной фигуркой на дне - это шанс вызвать улыбку близкого человека. По мере выпивания напитка фигурка
390 руб
Раздел: Оригинальная посуда

65. Теории механизмов взаимодействия и гипотеза об их синтезе

66. Современные нейролептики: взаимодействие с системами нейротрансмиттеров мозга

67. Объекты вселенной и процессы их взаимодействия

68. Изучение взаимодействия в системе NaF-Bi2O3-BiF3 при 600 и 650 градусах Цельсия

69. Информационный обмен между изолированными системами (Взаимодействие информационных систем)

70. Механизм взаимодействия экономики и политики
71. Влияние характера взаимодействия банковского и производственного секторов на развитие банковской системы и экономики регионов
72. Взаимодействие эндокринной и нервной системы

73. Активизация речевого взаимодействия учащихся в процессе обучения иноязычному общению

74. Развитие и уровни корпоративности библиотечных технологий, как неизбежный механизм разработки АБИС и межбиблиотечного взаимодействия

75. Отравления: характеристика процессов взаимодействия организма с ядом

76. Взаимодействие социальных институтов в управлении педагогическим процессом

77. Процессы межличностного взаимодействия

78. Исследование взаимодействия в системах нитраты целлюлозы – уретановые каучуки

79. Классическое содержание экологии как науки о взаимодействиях в системе "организм - среда"

80. Гравитационные взаимодействия

Электронная энциклопедия для малышей "Уроки Божьей Коровки".
Уроки божьей коровки – это электронная энциклопедия для малышей в формате книжки-планшетика! 120 обучающих картинок, 60 логических пар, 8
655 руб
Раздел: Викторины
Книга-сейф "Двенадцать стульев", 24x17x6 см.
Регулярно удалять пыль сухой, мягкой тканью. Материал: картон, металл. Товар не подлежит обязательной сертификации.
1322 руб
Раздел: Шкатулки сувенирные
Велобег "Slider" с ручным тормозом (цвет: матовый черный, 12").
Беговел от бренда Slider матового черного цвета привлечет внимание ребенка и понравится ему благодаря современному стильному дизайну.
2779 руб
Раздел: Беговелы

81. Разработка основных биотехнологических процессов производства и системы управления качеством липидных косметических препаратов (на примере тоников для проблемной кожи)

82. Письменные доказательства в системе доказательств гражданского процесса

83. Избирательная система РФ (избирательное право, виды избирательных систем, избирательный процесс)

84. Особенности взаимодействия актера и зрителя

85. Взаимодействие человека и природы

86. Взаимодействия с ЭВМ на естественном языке
87. Семейство операционных систем W2k. Обзор версий. Процессы и очереди
88. Взаимодействие следователя и органа дознания

89. Воспитание как развитие, сохранение и преобразование человеческого качества в педагогическом взаимодействии

90. Одаренные дети, особенности учебно-воспитательного взаимодействия с ними

91. Моделирование процессов функционирования технологических жидкостей в системе их применения

92. Взаимодействие в конфликте

93. Одаренные дети, особенности учебно-воспитательного взаимодействия с ними

94. Понятие общества. Общество и природа. Взаимодействие основных сфер общественной жизни

95. Социокультурная динамика межпоколенных взаимодействий

96. Двигательная активность как важнейший фактор взаимодействия организма человека с внешней средой и повышение его устойчивости к вредным воздействиям

Игра настольная "Тише, не будите спящего папу".
Шшшш! Тише! Не разбудите папу! Кто может устоять перед вкусным шоколадным тортом? Не дети в любом случае! Пока папа спал и храпел в
1458 руб
Раздел: Игры на ловкость
Аппарат для приготовления домашнего творога и сыра "Нежное лакомство".
Сладкая творожная запеканка, мягкий пряный сыр, чесночная паста на бутерброды — сколько вкуснятины можно приготовить из домашнего творога
464 руб
Раздел: Прочее
Детское подвесное кресло Polini "Кокон" (цвет: голубой).
Подвесные детские качели яркого цвета создадут ощущение собственного укромного уголка. Надежные крепления кресла обеспечат безопасность
1225 руб
Раздел: Качели, кресла-качалки, шезлонги

97. Философский аспект проблемы взаимодействия интеллектуальных систем

98. Взаимодействие жизненного цикла товара и рекламы

99. Программирование и планирование в ситуациях коллективного взаимодействия


Поиск Рефератов на сайте za4eti.ru Вы студент, и у Вас нет времени на выполнение письменных работ (рефератов, курсовых и дипломов)? Мы сможем Вам в этом помочь. Возможно, Вам подойдет что-то из ПЕРЕЧНЯ ПРЕДМЕТОВ И ДИСЦИПЛИН, ПО КОТОРЫМ ВЫПОЛНЯЮТСЯ РЕФЕРАТЫ, КУРСОВЫЕ И ДИПЛОМНЫЕ РАБОТЫ. 
Вы можете поискать нужную Вам работу в КОЛЛЕКЦИИ ГОТОВЫХ РЕФЕРАТОВ, КУРСОВЫХ И ДИПЛОМНЫХ РАБОТ, выполненных преподавателями московских ВУЗов за период более чем 10-летней работы. Эти работы Вы можете бесплатно СКАЧАТЬ.