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

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

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

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

В однопоточной программе результаты получаются последовательно, аозтому программа должна ожидать, пока от каждого сервера по очереди будет получен ответ. Переписав программу так, чтобы для каждого вызова удаленной процедуры она использовала отдельный поток, можно получить супгественный выигрыш в скорости. Заметим, что если такая программа работает на однопроцессорной машине, то запросы будут генерироваться последовательно; результаты тоже будут получены последовательно, однако прога Рамма будет ожидать двух ответов одновременно.

г Вгггов удаленнои процедуры — эта технология, лри которой две программы, карые маг ггагут выполняться на разных машина», вгаимодействугат между собой с ломосинугш таксиса и семантики. вызовов и возвратов ив процедур. Обе программы. выгыгглца и - и вызываемая, ведут себя так, как будто ани выполняются на одной и тай же 'аине и - Вызовы удаленных процедур наста применяются в приложения», работающих схс гге ас„ '.

е клиент,гсервер. ХХодробнее вызовы удаленны~ процедур абсугкдакгпгся в главе 13, 'гределенные системы". 4. Потоки, симметричная многопроцессорная обработка... Завергдение обработки запроса Запрос на удаленный Запрос на удаленный вызов процедуры вызов процедуры (теток д (процесс 1) ()огок В (процесс 1) Поток С (процесс 2) Запрос на вызов про пток д (процесс 1) Поток В (процесс Ц б) удален ныи вызов процедуры с для каткдого сервера (в однопроцессорной системе) (,-г г -.яд Блокирован, ожидает ответа на удаленный вьаов процедуры ~ Блокирован.ожидаеткогда освободится процессор, который зантп потоком В Часть 2." а) удаленный вызов процедуры с использованием одного потока ~ Выполняется :3: Рис.

4.3. удаленный вызов процедуры ("ВРС~, в котором использутагпся пата В однопроцессорных системах многозадачность ость позволяет че, ы' личные потоки нескольких процессов. В примере, пок е показанном на едуются три потока, принадлежащие двум процессам. Р ессам. Передача ' ~о т одного процесса другому происходит либо тогда, тог а когда бло, юлняющийся поток, либо когда заканчивается интер инте вал време ный для его выполнения.з З В зтам примере поток С начинает выполняться, , после того как о первал времени, агпведекныи потоку А, несмотря на то то чта поток В нах тяпни готовности.

Выбор между потока.ни В и С вЂ” это вопрос планирова ', иа исследуется в четвертой части книги. ЙХИ.Я Блокирован ~ Выполняется Рис. 4.4. П име р р многопоточности в однопроцессорной системе Синхронизация потоков Все потоки процесса используют одно и то же адресное пространство, как и другие ресурсы, например открытые Файлы.

Любое изменение какого-нибудь ресурса одним из потоков процесса оказывает влияние ние на другие потоки этого же процесса. Поэтому действия различных потоков необходимо синхронизировать, чтобы они не мешали друг другу или чтобы не повредили структуры данных. д д ух потоков будет пытаться добавить свой элемент в двунаправленный список, может быть потерян один и один из элементов (или нарушена целостность списка) При рассмотрении синхронизации потоков возникают те же вопросы и используются те же мета ы д, что и при синхронизации процессов.

Эти вопросы и методы обсуждаются в главе 5 "П и многозадачно ", " .. ание . а е 5, Параллельные вычисления: взаимоисключен ия сть, и главе б, "Взаимоблокировка и голодание". ~РИвтЕр: АЙОЬЕ РадЕМайЕГ (У1а)с Ра~~мотрим использо ользование потоков на примере приложения Лс)оЬе Ра е- раКеМ а ег. Работающего по и под управлением операционной системы 1 тппх. Программа соз а аЮМа)сег является настольны ьным издательским средством, предназначенным ля дания и Формати ования й для етого п р ия документов. Для оптимизации скорости отклика ~кв~," приложения была выб ан т рана потоковая структура, показанная на рис.

4.5 твй 9Й Три потока ~ П~ток, обно активны всегда — поток, отвечающий за обраб б отку со ыОпе , о новляющий экран, и служебный поток. тр у ся много времени (печать, импорт данных и Рации, на которые еб ет выполняются в служебном потоке программы Ра~еМа)сег, чтобы не овать этими операциями возможность обработки поступающих сообще- ,:, ~~О Пааво этом же потоке п оисхо ит б р д альшая часть инициализации программы, ':втв док валяет избежать и осто р я.

которыи мог бы возникнуть при создании новоумента или отк ытии е абот .„ р уже существующего. Отдельный поток служит для ки сообщений о новых событиях. 4 П """'р ц рн б б Потоки на уровне пользова~еля ова стр оватедьское странство в! "оаьаоватееьскнй уровень Готов на подьаоватеньском уровне й Потот на уровне ядра Процесс О Часть 2.'- Рис. 4.5.

Потоковая структура программы Ат1оЬе РауеМайег Синхронизация служебного потока и потока обработки событий непростой задачей. Пользователь может продолжать набирать текст или : мышью, активизируя тем самым поток обработки событий, в то вре :лужебный поток будет все еще занят. При возникновении подобного ко РааеМа1сег Фильтрует сообщения и воспринимает только основные из . кие, как запрос на изменение размера окна. О завершении выполнения задания свидетельствует сообщение, и шее из служебного потока. Пока это сообщение не будет получено, возм пользователя в программе РааеМаЫег ограничены.

Об этом свидетел ключение пунктов меню и специальный вид курсора. Пользователь мо визировать окна других приложений; когда курсор перемещается в др он приобретает вид, соответствующий приложению этого окна. Для обновления экрана используется отдельный поток, что выз дующими причинами. 1. В программе РадеМа)сег количество объектов на странице не огр поэтому обработка запроса на обновление экрана может оказаться;:. длительной. 2. Использование отдельного потока позволяет пользователю в любой,: остановить вывод изображения на экран. При такой методике, н.

может немедленно выполняться команда изменения масштаба. программа должна была сначала закончить вывод страницы в с штабе, а затем полностью вывести ее в новом масштабе, это резко ' ло бы время ее отклика. Возможна также динамическая прокрутка, т.е. обновление экрана:::, ретаскивании пользователем ползунка прокрутки.

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

Мно„опо точность позволяет более естественно реализовать код, в котором преднола„ается параллельное выполнение различных действий. потоки на пользовательском уровне и на уровне ядра Обычно выделяют две общие категории потоков: потоки на уровне пользоателя (ттеег-1е~те! тЬгеас)э — 1)1.Т) и потоки на уровне ядра (1сегпе1-1еье! 1)тгеайэ — К1.Т). Потоки второго типа в литературе иногда называются потока~и, поддерживаемыми ядром, или облегченными процессами. В программе, полностью состоящей из 1)ЕТ-потоков, все действия по управлению потоками выполняются самим приложением; ядро, по сути, и не подозревает о существовании потоков. На рис. 4.б,а проиллюстрирован подход, при котором используются только потоки на уровне пользователя.

Чтобы приложение было многопоточным, его следует создавать с применением специальной библиотеки, представляющей собой пакет программ для работы с потоками на уровне ядра. Такая библиотека для работы с потоками содержит код, с помощью которого можно создавать и удалять потоки, производить обмен сообщениями и данными между потоками, планировать их выполнение, а также сохранять и восстанавливать их контекст. Рис. 4.6.

Потоки на яольаоеательеком уровне и но уровне ядри умолчанию приложение в начале своей работы состоит из одного потока и Бо его в олнение начинается как выполнение этого потока. Такое приложение вместе ° яющим его потоком размещается в едином процессе, который управляется сс Р~~к. Вы ыполняющесся приложение в любой момент времени может породить нс;- ьтй по„к ток, который будет выполняться в пределах того же процесса.

Новый поток дается , явой я с помощью вызова специальной подпрограммы из библиотеки, предназнадля работы с потоками. Управление к этой подпрограмме переходит в ре- 4- Потоки, симметричная многопроцессорная обработка... 205 тате вызова процедуры. Библиотека потоков создает структуру данных потока, а потом передает управление одному из готовых к выполнению ,ого процесса, руководствуясь некоторым алгоритмом планирования,; „аленке переходит к библиотечной подпрограмме, контекст текущего пото ' яется, а когда управление возвращается к потоку, его контекст восстан этот контекст в основном состоит из содержимого пользовательских ре чика команд и указателей стека. Все описанные в предыдущих абзацах события происходят в пользо ~ пространстве в рамках одного процесса.

Ядро не подозревает об з ,ности. Оно продолжает осуществлять планирование процесса как то и приписывать ему единое состояние выполнения (состояние гото ' ояние выполняющегося процесса, состояние блокировки и т.д.). П ниже примеры должны прояснить взаимосвязь между планирование . и планированием процессов. Предположим, что выполняется поток ~ий в процесс В (см. рис. 4.7). Состояния этого процесса и составляю эков на пользовательском уровне показаны на рис. 4.7,а. Впоследс произойти одно из следующих событий. Приложение, в котором выполняется поток 2, может произвести си ' ' вызов, например запрос ввода-вывода, который блокирует процесс зультате этого вызова управление перейдет к ядру. Ядро вызывает, ру ввода-вывода, переводит процесс В в состояние блокировки и и управление другому процессу.

Тем временем поток 2 процесса В все ходится в состоянии выполнения в соответствии со структурой поддерживаемой библиотекой потоков. Важно отметить, что поток 2:" полняется в том смысле, что он работает с процессором; однако биб потоков воспринимает его как выполняющийся. Соответствующие мы состояний показаны на рис. 4.7,6. . В результате прерывания по таймеру управление может перейти к ро определяет, что интервал времени, отведенный выполняющемуся' ный момент процессу В„истек.

Ядро переводит процесс В в состо товности и передает управление другому процессу. В это время, Ф': структуре данных, которая поддерживается библиотекой потоков, ",' процесса В по-прежнему будет находиться в состоянии выполнен . ветствующие диаграммы состояний показаны на рис. 4.7,в. '. Поток 2 достигает точки выполнения, когда ему требуется, чтобы '.. процесса В выполнил некоторое действие. Он переходит в заблоки состояние, а поток 1 — из состояния готовности в состояние вып, Сам процесс остается в состоянии выполнения.

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

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

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

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