Главная » Просмотр файлов » Э. Таненбаум - Архитектура компьютера

Э. Таненбаум - Архитектура компьютера (1127755), страница 129

Файл №1127755 Э. Таненбаум - Архитектура компьютера (Э. Таненбаум - Архитектура компьютера) 129 страницаЭ. Таненбаум - Архитектура компьютера (1127755) страница 1292019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

В табл. 6.2 представлены важные свойства системных вызовов цр и бонп. Таблица 6.2. Результаты опер8аций с семафором Команда Семафор = О Семафор > О Семафор = семафор е 1 (если другой процесс пытается теперь выполнить операцию Оовп для этого семафора, он сможет это сделать и продолжить свою работу) Семафор = семафор е1 цр Процесс приостанавливается до тех пор, пока другой Семафор = семафор -! процесс не выполнит операцию цр для этого семафора ооап Как уже отмечалось, проблема гонок может быть решена средствами языка )ача, но мы сейчас обсуждаем операционные системы, следовательно, нам нужно каким-либо образом реализовать механизм семафоров на языке )ача, поскольку стандартного класса для них нет.

Однако мы сможем это сделать, предположив, что два метода, ир и баип, совершающие, соответственно, системные вызовы цр и оп, уже написаны и используя в качестве их параметров обычные целые числа. В листинге 6.2 показано, как можно устранить состояние гонок с помощью семафоров. В класс а добавляются два семафора: семафор ача11аЫе, изначально равный 100 (это размер буфера), и семафор й11еб, изначально равный О.

Производитель начинает работу с оператора Р1, а потребитель — с оператора С1. Вызов 6сип для семафора т111еб сразу же приостанавливает работу потребителя. Когда производитель находит первое число, он вызывает метод доил с переменной ача11аЫе в качестве параметра, присваивая ей значение 99. В операторе Р5 производитель вызывает метод цр с параметром т111еб„присваивая переменной 1111ед значение 1. Это действие освобождает потребителя, который теперь может завершить вызов метода бона.

После этого й11еб принимает значение О, и оба процесса продолжают работу. Давайте еще раз вернемся к состоянию гонок. Пусть в определенный момент 1п = 22, а оц1 = 21, производитель выполняет оператор Р1, а потребитель — оператор С5. Потребитель завершает действие и переходит к оператору С1, в котором вызывается метод боип для семафора й11ет1, до вызова имевшего значение 1, а после вызова получившего значение О. Затем потребитель извлекает последнее число из буфера и вызывает метод цр для семафора ача11аЫе, после чего ача11аЫе принимает значение 100. Потребитель печатает это число и переходит к оператору С1.

Как раз перед тем, как потребитель собирается вызвать метод Осип, производитель формирует следующее число и быстро выполняет операторы Р2, РЗ и Р4. В этот момент т111еб = О. Производитель собирается вызывать для этого семафора метод ир, а потребитель — метод бона. Если потребитель сделает вызов первым, он будет приостановлен до тех пор, пока производитель его не освободит (вызвав метод цр).

Если же первым вызов сделает производитель, то сема- 516 Глава 6. Уровень операционной системы Листинг 6.2. Параллельная работа с использованием семафоров рцб!тс с1азз а [ П па1 рцЫ тс атас!с т пС ВОР 5[7Е - 100; П буфер от 0 до 99 [М па1 рцЫ тс зтаС1с 1оп9 МАХ Рй!МЕ-100000000000Ы П остановиться здесь рцЫсс зтамс тпС тп - О. осК" 0: П указатели на данные рцЫ сс зтаС!с 1опО Ьцттег[ ] = пеш 1оп9[ВОР 5!7Е]: // здесь хранятся числа рцЫтс зтдттс ргобцсег р: // имя производителя рцЫ !с зта(1с сопьцаег с: П имя потребителя рцЫ!с зтаС1с тпС П11еб = О.

ача11аЫе = 100; // семафоры рцЫ тс зтаС1с чотб аатп(5Сг1п9 агрз[ ]) [ р = пен рга)цсег(); с = пеш сопзцаег(): р.зсагС(): с.зсагц ): ) // Это прикладная функция для циклического увеличения тп и оцС рцЫ 1с зтаСтс 1пС пехС(тпС Х) (1Г (Х < ВОР 5[7Е - 1) гетцгп(Х+1); е1зе гетцгп(0);) П основной клласс П создание производителя П создание потребителя // запуск производителя П запуск потребителя с1аьв ргобцсег ехсепбз Тпгеаб ( паС!че чосс1 цр(!пС з); паттче чо1с) бонны пт.

з); рцЫ тс чосб гцп() ( 1оп9 рмае - 2: // класс производителя П методы для сенафоров П код производителя П вреиенная переиенная шл!1е (рг1ае < а.МАХ Рй[МЕ) ( рмае = пехС рг1ае(рг!ае); бошпОв.ача11аЫе): а.бц[тег[а.тп] = ргтае: а !и - а.пехС(а.сп); цр(а.т11)ес!): ) ) П Еуннция. которая вьаисляет следующее число рпч часе 1оп9 пехС рг1ае(1опО рг1ае)( ...) ) П оператор Р) П оператор Р2 П оператор РЗ П оператор Р4 // оператор Р5 П класс потребителя // иетоды для семафоров // код потребителя П временная переменная с1аьв сопьцаег ехсепбз Тпгеаб [ паС1че чо1б цр(1пС з); паС1че чо!б бвсп(!пС з): рцЫ1с чотс) гцп() [ 1оп9 евп'гр - 2; шы1е (евпгр < а.МАХ Рй!МЕ) [ бошп(а.(111еб): еа1гр = а.бцттег[а.оцС]: а.оцС - а.пехС(а.оцС); цр(а, ачат1аЫе): 5узсеа.оцс.рг1пС1п(еяп'гр): ) ) П оператор С) П оператор С2 П оператор СЗ // оператор С4 П оператор С5 Операции с семафорами неделимы.

Если операция с семафором уже началасгн то никакой другой процесс не может использовать этот семафор до тех пор, фор получит значение 1, и потребитель вообще не будет приостановлен. В обоих случаях сигнал запуска не пропадет. Именно для этого мы и ввели в программу семафоры. Примеры операционных систем 517 пока первый процесс не завершит операцию или пока он не будет приостановлен. Более того, при наличии семафоров сигналы запуска не пропадают. А вот операторы 1~ в листинге 6.1 делимы.

Между проверкой условия и выполнением нужного действия другой процесс может послать сигнал запуска. В сущности, проблема синхронизации была решена путем введения неделимых системных вызовов цр и Фвп. Чтобы эти операции были неделимыми, операционная система должна запретить двум и более процессам использовать один и тот же семафор одновременно. То есть если делается системный вызов цр или оп, никакой пользовательский код не может быть запущен, пока вызов не завершится. Как правило, в однопроцессорных системах для этого во время выполнения операций с семафорами вводится запрет на прерывания. В мультипроцессорных системах этот прием не проходит.

Технология семафоров работает для произвольного количества процессов. Несколько процессов могут приостановиться, пытаясь выполнить системный вызов 4оип для одного и того же семафора. Когда какой-нибудь другой процесс выполнит системный вызов цр для этого же семафора, один из приостановленных процессов может завершить вызов Осип и продолжить работу. В этом случае семафор сохранит значение О, и другие процессы останутся приостановленными. Поясним ситуацию на другом примере. Представьте себе 20 волейбольных команд, играющих 10 партий (процессов). Каждая игра проходит на отдельном поле. Имеется большая корзина (семафор) для волейбольных мячей. К сожалению, мячей только 7. В каждый момент в корзине находится от 0 до 7 мячей (семафор принимает значение от 0 до 7). Помещение мяча в корзину — зто операция ир, поскольку она увеличивает значение семафора. Извлечение мяча из корзины — это операция доип, поскольку она уменьшает значение семафора.

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

Эта операция позволяет одному из трех оставшихся игроков получить мяч (закончить незавершенную операцию боип) и продолжить игру. Оставшиеся две партии остаются приостановленными до тех пор, пока еще два мяча не возвратятся в корзину. Когда зти два мяча попадут в корзину (то есть выполнятся еще две операции цр), можно будет продолжить последние две партии. Примеры операционных систем В этом разделе мы продолжим обсуждать процессоры Репгппп 4 и П)ггаЯРАКС П1 и рассмотрим операционные системы, которые используются в этих процессорах. Для Репгшш 4 мы возьмем тт'1пг)отчз ХР; для ШггаБРАКС П1 — ПХ1Х. А начнем мы наш разговор с (ЗМХ, поскольку эта система гораздо проще Ъ'1пдоч з ХР.

Кроме того, операционная система ()141Х была разработана раньше и значительно повлияла на %'1пооиз ХР, поэтому такой порядок изложения вполне логичен. 818 Глава б. Уровень операционной системы Знакомство с операционными системами Ой!Х и %!пбоме ХР В этом подразделе мы дадим краткий обзор двух операционных систем (111ч1Х и Ъ'1ш!отгз ХР). При этом мы обратим особое внимание на историю, структуру и системные вызовы. вм!х Операционная система 1Л~ПХ была разработана в компании Ве1! 1.аЪз в начале 70-х годов. Первая версия была написана Кеном Томпсоном (Кеп ТЬошрзоп) на ассемблере для мини-компьютера Р1)Р-7. Затем появилась вторая версия для компьютера Р1)Р-11, уже на языке С.

Ее автором был Деннис Ритчи (Репп1з В!гсЬ!е). В 1974 году Ритчи и Томпсон опубликовали очень важную работу о системе ()Ь11Х !1731 За эту работу они были награждены престижной премией Тьюринга Ассоциации вычислительной техники. После публикации многие университеты попросили у Ве!! 1.аЬз копию (Лч1Х. Поскольку материнская компания Ве11 1лЬз, АТе" Т, была в тот момент регулируемой монополией и ей не разрешалось участвовать в компьютерном бизнесе, университеты смогли приобрести операционную систему 1.1Х1Х за небольшую плату. Машины Р1)Р-11 использовались практически во всех компьютерных научных отделах университетов, но операционные системы, которые пришли туда вместе с РПР-11, не нравились ни профессорам, ни студентам.

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

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

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

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