Главная » Просмотр файлов » В. Столлингс - Операционные системы

В. Столлингс - Операционные системы (1114679), страница 64

Файл №1114679 В. Столлингс - Операционные системы (В. Столлингс - Операционные системы) 64 страницаВ. Столлингс - Операционные системы (1114679) страница 642019-05-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

ппз1 (1агк ('-.) ';; , 1ааа1 ( .аагэ); п1в.,п () „-,е-(,е1- и (ра11авс раей (б), рп11аэар1~ег (' ), р)~( 1аэарйех' (2),рй(1авар)1ет ( ~), р). 11аэар)1ег ( 4 ) ); ~. МЕХАНИЗМЫ ПАРАЛЛЕЛЬНЫХ;, вычислвний в ~балх ПХ1Х предоставляет различные механизмы для синхронизации и с процессами. В этом разделе мы рассмотрим важнейшие из них: каналы; сообщения; разделяемую память; семафоры; сигналы. Каналы, сообщения и разделяемая память обеспечивают обмен д 1У процессами, в то время как семафоры и сигналы используются ,ии некоторых действий другого процесса. 1алы Каналы (р1рев) являются одним из наиболее значительных вкладов зтие операционных систем. Разработанные на основе концепции соп С84$ каналы представляют собой циклические буфера, которые пов.„ процессам связываться друг с другом в соответствии с моделью про ~потребитель.

Следовательно, канал — не что иное, как очередь, Ра. по принципу "первым вошел — первым вышел", запись в которую тся одним процессом, а чтение — другим. При создании канала он получает буфер определенного размера. При' чал при наличии свободного места соответствующий запрос удовле дленно; в противном случае процесс блокируется. Аналогично блок есс, пытающийся прочесть из канала большее количество информа эщееся в нем; в противном случае запрос на чтение выполняется не. 1перационная система обеспечивает вззимоисключения — одновреме ~а;,:,' < каналу имеет только один процесс.

СУществует два типа каналов: именованные и неименованные. Сов,. льзовать неименованные каналы могут только связанные друг с др ы; не связанные друг с другом процессы могут совместно использова,, менованные каналы. .4 ~о об)(дения Сообщение пРедставлЯет собой блок текста опРеделенного типа. БИ1Х длЯ боты с системой передачи сообщений предоставляет процессам системные вывь1 э;эдвпс) и л1вагаэ. С каждым процессом связана очередь сообщений, функ„паннруюшая подобно почтовому ящику.

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

Если же процесс пытается прочесть сообщение определенного ива, но такого сообщения в очереди нет, процесс не приостанавливается. Разделяемая память Наиболее быстрым видом связи между процессами, обеспечиваемым операционной системой ПХ1Х, является разделяемая память. Это общий блок виртуальной памяти, совместно используемый многими процессами.

Процессы читают информацию и записывают ее в разделяемую память с помощью тех же инструкций чтения и записи, что и при работе с другими частями своего виртуального пространства памяти. Права доступа (чтение и запись или только чтение) к разделяемой памяти предоставляются каждому из процессов в отдельности. Взанмонсключения не являются частью механизма разделяемой памяти и должны обеспечиваться процессами, использующими разделяемую память. Семафоры Система вызовов семафоров в СХ1Х Буз(ет 'Ч представляет собой обобщение примитивов на(г и вуапа1, определенных в главе 5, "Параллельные вычисления: взанмоисключения и многозадачность'".

Все требуемые при работе с семафорами операции выполняются ядром автоматически; ни один процесс не может получить доступ к семафору, пока с ним выполняется операция, вызванная другим процессом. Семафор состоит из следующих элементов. Текущее значение семафора. И ен дентификатор последнего процесса, работавшего с семафором. Количе .

° и ~ество процессов, ожидающих, пока значение семафора не превысит текущее. Количест ество процессов, ожидающих, пока значение семафора не станет равным нулю. С семаф -' аферам связаны очереди приостановленных процессов. дании семафоры принадлежат множествам. Множество может соПри соз а ерж, -ак олин так и несколько создаваемых семафоров. Системный вызов '- позволяет установить значения всех семафоров множества одновременно. Роме того нме т , имеется системный вызов эегар, в качестве аргумента которому пеДается исок операций с семафорами (по одной для каждого семафора из о;~;е 1. При этом вызове ядро выполняет указанные операции одновремен"ен ая я из операций определяется значением еев1 ар.

341 а 6. 6. Взаимоблокировка и голодание Часть 2. Оьакчанае табл. 5.1 Имя Оп»сан не 8ваче"пе 310К1Ы 310ВОЯ 3103ЕСЧ Прекращение работы процесса Ошибка шины 09 10 310ЯУЯ 31СР1РЕ 14 310ТЕВМ 310 СЯВ1 310113К2 310 С1,0 61СРЖй Завершение работы программы Пользовательский сигнал 1 Пользовательский сигнал 2 1б 17 18 19 Завершение дочернего процесса Сбой питания ~блица 6.1. Сигналы ЮХ1Х Описание ~ачение Имя Б10 НОР 310 114Т 310Я01Т 31011Л. 310 ТИАР 31010Т 310ЕМТ 310ГРТ 3 Оги еп 'ш~ех — шп$иа( ехе1из~оп. — Прям. пе Часть 2.

Взаимоблокиронка и голодание з4з Если яепч ср положительно, ядро увеличивает значение семафор». зирует все процессы, ожидающие увеличения значения семафора. Если зеш ср равно О,ядро проверяет значение семафора. Если ои ','' то ядро переходит к выполнению операций со следующим сем» "': противном случае количество процессов, ожидающих обнуления "" увеличивается, и процесс приостанавливается до тех пор, пока зн» мяфора не станет равным нулю. Если -ег; ср отрицательно, а его абсолютное значение не превыпта"""''" ' ние семафора, ядро добавляет зет ср (отрицательное число1) к' " семафора.

Если полученный результат равен нулю, ядро активна "'' процессы, ожидавшие обнуления значения семафора. в Если реп ар отрицательно, а его абсолютное значение больше зн» "' мафора, ядро приостанавливает процесс до тех пор, пока значение ' не увеличится. Такое обобщение семафоров обеспечивает значительную гибкость,.'" ' лнении синхронизации и координации процессов.

игналы Сигнал представляет собой программный механизм, информирующий ступлении асинхронного события. Сигнал подобен аппаратному прер пользует систему приоритетов, т.е. все сигналы обрабатываются о сс получает сигналы по одному, без специального упорядочения. Процессы могут посылать сигналы друг другу; в обмене сигнал в ~инимать участие и ядро. Доставка сигнала выполняется путем обнойа : в таблице процесса, которому послан данный сигнал. Поскольку л соответствует отдельному биту, сигналы одного типа не могут нак виде очереди. Сигнал обрабатывается сразу же после активизации ~и возврата его из системного вызова.

Процесс может ответить на ~лнением некоторых действий по умолчанию (например, завершением ~полнить функцию обработки сигнала или проигнорировать его. В табл. 6.1 перечислены сигналы 1ЛЧ1Х ЯЪ'Н4. Завесить.„посылается процессу, когда ядро полагает, зователь этого процесса выполняет бесполезную работу,.: Прерывание Выход; посылаетея пользователем, для того чтобы в ''Ф тановку процесса и сброс лампа памяти Некорректная инструкция к Запуск кода трассировки процесса Инструкция 10Т Инструкция ЕМТ Исключение прн работе с числами с плавающей точкой'.;, Нарушение сегментации; процесс пытается обратиться к ячейке памяти вне своего виртуального адресного пространства Неверный аргумент системного вызова Запись в канал, к которому не присоедияены процессы, ечп- тывсющие нэ него ияформацию Сигнал от часов; используется, когда процесс должен полу- чить сигнал после определенного периода времени 8.

ПРИМИТИВЫ С~ХР0~3АЦЙИ. ПОТОКОВ 8ОЬАК18 - ----";.;:::. В дополнение к механизмам параллельных вычислений 1ЛЧ1Х ЯУЙ4, Яо1аг1в поддерживает четыре примитива синхронизации потоков. ° Блокировки взаимоисключений (п1пФех). ° Семафоры. Блокировки читатели~писатель (несколько читателей, один писатель). Переменные условий.

Примитивы для потоков ядра в Яо1апз реализованы в самом ядре; для работы с пользе ользовательскнмп потоками имеется соответствующая библиотека. Работа с примитивами ами осуществляется через структуры данных, содержащие определяемые соз'цим эти структуры потоком параметры. После создания синхронизирующего даю объекта с кта с ним, по сути, могут выполняться только две операции: войти (захватить, а»блоки кнровать) и освободить (деблокировать), Ни в ядре, ни в библиотеке нет меха»замов, обе Все и в обеспечивающих взаимоисключения пли отсутствие взаимоблокировок. е примитивы синхронизации требуют наличия машинных команд, которые позволя - яют атомарно проверить и установить значение объекта (см.

раздел 5.3). В 110К ОИИРОВИИ ВЗаимОИСИдЮЧЕНИЙ раб " цровки взаимоисключений (мьютексыз) предотвращают одновременную оту „ бе~ кольких потоков при захвате блокировки. Поток, блокировавший ра® " х потоков (посредством вызова примитива шп~ех еп1.ег), должен остальны Дебло -,, кровать их (посредством вызова примитива юп~ех ехуь). Если прими- ,=а~ег не в состоянии установить блокировку (поскольку она,', алена другим потоком), то его дальнейшие действия зависят от инФо"" ,руктуры данных блокировки. По умолчанию поток циклически оп ~янис блокировки, однако может применяться и механизм преры '". едью заблокированных потоков.

Для работы с блокировками используются следующие примитивы. 'х еп( ех Захват блокировки; если уже захвачена — блокиро" потока х ех(. Освобождение блокировки с возможным деблокир(~"'" ем ожидающего патока х ~ ~ уев (. е г ( ) Определение состояния блокировки (захвачена каким-либо патокам в настоящее время) Примитив жагех ~гуепсег () обеспечивает программисту вазм " аенять на уровне пользовательских потоков технологию пережиданй ' и, чта позволяет избежать блокирования всего процесса в целом из.'") ~вания одного из потоков. аафорь1 Бо)аг1з поддерживает классические семаФоры-счетчики„предаст ты с ними следующие примитивы.

'Ф а р() Уменьшает значение семаФора (с возможным блоки потока) Увеличивает значение семаФора (с возможным дебла нием ожидающего потока) а '-гур() Уменьшает значение семаФора (если не требуется 6 ванне) Примитив зеп~а ~.тур ', ) обеспечивает программисту возможность на уровне пользовательских потоков технологию пережидания з окировии читатели(Писатель Ф, Данная блокировка обеспечивает возможность одновременного зко для чтения к защищенному ею объекту нескольким потокам, ",,'. :печивает исключительный доступ для записи объекта одному,.;„; ~лючительный означает, что когда такая блокировка оказывается потоком для записи, все остальные потоки, как читающие, так и" щие, переходят в состояние ожидания). Для работы с блокировка а используются следующие примитивы.

Попытка захвата блокировки для чтения или записи,!:,.' ех1~ () Освобождение блокировки ":%. ~туапсе- () Неблокирующий захват аа~пя~ ас)е () Поток, захвативший блокировку для записи, пре ее в блокировку для чтения. Все потоки записи в нии ожидания ждут освобождения блокировки. Е вых нет, то примитив активизирует все потоки чте сгуарс(гас(е() Пытается преобразовать блокировку для чтения в', ранку для записи деременные условий Данные переменные используются для ожидания выполнения некоторого , лавин и должны применяться вместе с блокировками взаимоисключений (тем ым реализуются мониторы, использованные в листинге 5.15). Для работы с ,и имеются следующие примитивы.

Блокирование потока до тех пор„пока условие не будет выполнено Активизация одного из потоков, заблокированных примитивам с - ~аз.~ () )-.-ааааа.~() Активизация всех потоков, заблокированных примитивом ~з(~ ') Примитив сч иа1~. () освобождает связанный с ним мьютекс перед блокированием патока и вновь захватывает ега перед завершением работы. Поскольку повторный захват мьютекса может быть заблокирован другим ожидающим потокам, следует повторно проверить выполнение условия, вызвавшего ожидание. таким образам, типичный Фрагмент кода, работающего с переменными условий, выглядит следующим образом: п~а1ех евое (Ьа~) ИЫ1,: ( за1~е сапе)1г1аг ) ( с; 1,а(~ ($сч, 6п); пансах; х(т (ьл~); Поскольку при таком подходе условие защищено мьютексам, в качестве нега мажет использоваться сложное выражение.

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

Тип файла
DJVU-файл
Размер
34,99 Mb
Тип материала
Высшее учебное заведение

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

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