Главная » Просмотр файлов » Гордеев А.В. Операционные системы (2-е изд., 2004)

Гордеев А.В. Операционные системы (2-е изд., 2004) (1186250), страница 63

Файл №1186250 Гордеев А.В. Операционные системы (2-е изд., 2004) (Гордеев А.В. Операционные системы (2-е изд., 2004)) 63 страницаГордеев А.В. Операционные системы (2-е изд., 2004) (1186250) страница 632020-08-27СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 63)

В системе с одним процессоромпосылающий и получающий процессы не могут работать одновременно. В мульти­процессорных системах также нет никакой гарантии их одновременного испол­нения. Следовательно, для хранения посланного, но еще не полученного сооб­щения необходимо место. Оно называется буфером сообщений, или почтовымящиком1.Если процесс Р1 хочет общаться с процессом Р2, то Р1 просит систему предоста­вить или образовать почтовый ящик, который свяжет эти два процесса так, чтобыони могли передавать друг другу сообщения. Для того чтобы послать процессу Р2какое-то сообщение, процесс Р1 просто помещает это сообщение в почтовый ящик,откуда процесс Р2 может его в любое время получить.

При применении почтовогоящика процесс Р2 в конце концов обязательно получит сообщение, когда обратит­ся за ним (если вообще обратится). Естественно, что процесс Р2 должен знать осуществовании почтового ящика. Поскольку в системе может быть много почто­вых ящиков, необходимо обеспечить доступ процессу к конкретному почтовомуящику. Почтовые ящики являются системными объектами, и для пользования та­ким объектом необходимо получить его у операционной системы, что осуществ­ляется с помощью соответствующих запросов.Если объем передаваемых данных велик, то эффективнее не передавать их непос­редственно, а отправлять в почтовый ящик сообщение, информирующее процессполучатель о том, где можно их найти.Почтовый ящик может быть связан с парой процессов, только с отправителем, толь­ко с получателем, или его можно получить из множества почтовых ящиков, кото­рые используют все или несколько процессов.

Почтовый ящик, связанный с про­цессом-получателем, облегчает посылку сообщений от нескольких процессов вфиксированный пункт назначения. Если почтовый ящик не связан жестко с процессами, то сообщение должно содержать идентификаторы и процесса-отправителя, и процесса-получателя.Название «почтовый ящик» происходит от обычного приспособления для отправки почты.рпчтовые ящикигч!Итак, почтовый ящик — это информационная структура, поддерживаемая опера­ционной системой. Она состоит из головного элемента, в котором находится ин­формация о данном почтовом ящике, и нескольких буферов (гнезд), в которыепомещают сообщения.

Размер каждого буфера и их количество обычно задаютсяпри образовании почтового ящика.Правила работы почтового ящика могут быть различными в зависимости от егосложности [17]. В простейшем случае сообщения передаются только в одном на­правлении. Процесс Р1 может посылать сообщения до тех пор, пока имеются сво­бодные гнезда. Если все гнезда заполнены, то Р1 может либо ждать, либо занятьсядругими делами и попытаться послать сообщение позже.

Аналогично процесс Р2может получать сообщения до тех пор, пока имеются заполненные гнезда. Еслисообщений нет, то он может либо ждать сообщений, либо продолжать свою работу.Эту простую схему работы почтового ящика можно усложнять в нескольких на­правлениях и получать более хитроумные системы общения — двунаправленныеи миоговходовые почтовые ящики.Двунаправленный почтовый ящик, связанный с парой процессов, позволяет под­тверждать прием сообщений. При наличии множества гнезд каждое из них хранитлибо сообщение, либо подтверждение. Чтобы гарантировать передачу подтверж­дений, когда все гнезда заняты, подтверждение на сообщение помещается в то жегнездо, в котором находится сообщение, и это гнездо уже не используется дл? дру­гого сообщения до тех пор, пока подтверждение не будет получено. Из-за того, чтонекоторые процессы не забрали свои сообщения, связь может быть приостановле­на.

Если каждое сообщение снабдить пометкой времени, то управляющая програм­ма может периодически удалять старые сообщения.Процессы могут быть также остановлены в связи с тем, что другие процессы несмогли послать им сообщения. Если время поступления каждого остановленногопроцесса в очередь заблокированных процессов регистрируется, то управляющаяпрограмма может периодически посылать им пустые сообщения, чтобы они неждали чересчур долго.Реализация почтовых ящиков требует использования примитивных операторовнизкого уровня, таких как операции Р и V или каких-либо других, но пользовате­лям может дать средства более высокого уровня (наподобие мониторов Хоара),например, такие, как представлены ниже.SEND_MESSAGE ( Получатель, Сообщение.

Буфер )Эта операция переписывает сообщение в некоторый буфер, помещает егоадрес в переменную Буфер и добавляет буфер к очереди Получатель. Процесс,выдавший операцию SEND_MESSAGE, продолжит свое исполнение.WAITJCSSAGE ( Отправитель. Сообщение. Буфер )Эта операция блокирует процесс, выдавший операцию, до тех пор, пока в егоочереди не появится какое-либо сообщение. Когда процесс передается напроцессор, он получает имя отправителя с помощью переменной Отправитель,текст сообщения через переменную Сообщение и адрес буфера в переменнойБуфер. Затем буфер удаляется из очереди, и процесс может записать в негоответ отправителю.242Глава 7, Организация параллельных взаимодействующих вычисленийSEND_ANSWER ( Результат, Ответ, Буфер )Эта операция записывает информацию, определяемую через переменную Ответв тот буфер, номер которого указывается переменной Буфер (из этого буферабыло получено сообщение), и добавляет буфер к очереди отправителя.

Еслиотправитель ждет ответ, он деблокируется.WAIT_ANSWER ( Результат, Ответ, Буфер ) .Эта операция блокирует процесс, выдавший операцию, до тех пор, пока в буферне поступит ответ; доступ к нему возможен через переменную Буфер. После тогокак ответ поступил и процесс передан на процессор, ответ, доступ к которомуопределяется через переменную Ответ, переписывается в память процессу, абуфер освобождается. Значение переменной Результат указывает, является лиответ пустым, то есть выданным операционной системой, так как сообщениебыло адресовано несуществующему (или так и не ставшему активным) процессу.Основные достоинства почтовых ящиков:•процессу не нужно знать о существовании других процессов до тех пор, пока онне получит сообщения от них;Q два процесса могут обменяться более чем одним сообщением за один раз;а операционная система может гарантировать, что никакой иной процесс не вме­шается во взаимодействие процессов, ведущих между собой «переписку»;•очереди буферов позволяют процессу-отправителю продолжать работу, не об­ращая внимания на получателя.Основным недостатком буферизации сообщений является появление еще одногоресурса, которым нужно управлять.

Этим ресурсом являются сами почтовые ящики.К другому недостатку можно отнести статический характер этого ресурса: количествобуферов для передачи сообщений через почтовый ящик фиксировано. Поэтому есте­ственным стало появление механизмов, подобных почтовым ящикам, но реализован­ных на принципах динамического выделения памяти под передаваемые сообщения.В операционных системах компании Microsoft тоже имеются почтовые ящики(mailslots). В частности, они достаточно часто используются при создании распре­деленных приложений для сети.

При работе с ними в приложении, которое долж­но отправить сообщение другому приложению, необходимо указывать класс дос­тавки сообщений. Различают два класса доставки. Первый класс (first-class delivery)гарантирует доставку сообщений; он ориентирован на сеансовое взаимодействиемежду процессами и позволяет организовать посылки типа «один к одному» и «одинко многим». Второй класс (second-class delivery) основан на механизме датаграмм,и он уже не гарантирует доставку сообщений получателю.Конвейеры и очереди сообщенийКонвейерыПрограммный канал связи (pipe), или, как его иногда называют, конвейер, транспортер, является средством, с помощью которого можно обмениваться даннымежду процессами. Принцип работы конвейера основан на механизме ввода-выяода файлов в UNIX, то есть задача, передающая информацию, действует так, какбудто она записывает данные в файл, в то время как задача, для которой предна­значается эта информация, читает ее из этого файла.

Операции записи и чтенияосуществляются не записями, как это делается в обычных файлах, а потоком бай­тов, как это принято в UNIX-системах. Таким образом, функции, с помощью кото­рых выполняется запись в канал и чтение из него, являются теми же самыми, что ипри работе с файлами. По сути, канал представляет собой поток данных междудвумя (или более) процессами. Это упрощает программирование и избавляет про­граммистов от использования каких-то новых механизмов. На самом деле конвей­еры не являются файлами на диске, а представляют собой буферную память, рабо­тающую по принципу FIFO, то есть по принципу обычной очереди.

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6551
Авторов
на СтудИзбе
299
Средний доход
с одного платного файла
Обучение Подробнее