В. Столлингс - Операционные системы (1114679), страница 45
Текст из файла (страница 45)
Ргоугатт1пу ипФЬ ТйгеасЬ ЯасЫ1е Крег, МЛ: Ргеп11се На11, 1996. .ЕЖ196 1,еЖа В., Вегд Р. Тпгеаг?з Рптег. — 11ррег ЯасЫ1е В1чег, ЖЮ '- НаН, 1996. .1ЕР95 1лег1г,'хе д. Оп р-Кегпе1 Сопв$гпсЫоп. — Ргосеейиаз о7 гЬе г"1КФ Бутрозшт оп Орегаг1оп Яуэгетв РппсгрЫз, РесешЪег 1995. ЛЕР96 ЫейИсе д. Тоюагб Веа1 М[сгоЫегпе1а. — Соттип1сайопз о~ йе ' ?епйкг 1996. ~ПЖН96МихЬегзее В., КагаМп Я.
Орегайая Яув?епи Хог Рага11е1 Мас РагаИе1 СогприФегв: Тйеогу апд РтпсШе. ЕЙ. Ьу Т. СаэачалЪ, Р. Р1аэ11, — 1 оэ А1апп1ов, СА: 1ЕЕЕ Сопьри?ег Яос1ейу Ргевз, 1996. .*НАМ96 РЬэтп Т.. Оагя Р. МиИИЬгеаг1ей Ргоагатгп?па ипЮ й'1пдоим ЯасЫ1е Налег, 1ч.1: Ргеп$1се НаП, 1996. ,1. Отмечено, что использование нескольких потоков в одном ном и том же обладает следующими преимуществами: (1) создание нов вого потока в ществующем процессе требует меньших непроизводитель тра льных затрат,,'. дание нового процесса, и (2) упрощается обмен информацией между одного процесса.
Входит ли в число преимуществ использования по же то, что переключение потоков одного процесса требует меныних затрат, чем гереключение потоков разных процессов? При сравнении потоков на пользовательском уровне и потоков на уровне ядра упоминалось, что недостаток потоков иа пользовательском уровне состоит в том, что выполнение системного вызова блокирует не только вызвавший поток, но и все остальные потоки данного процесса. Почему так происходит? То, что в других операционных системах воплощено в концепцип процесса, в огерационной системе ОЯ?2 разделено на три составляющих: сессия, процессы и потоки, Сессия является набором одного или нескольких процессов, имеющих связь с интерфейсом пользователя (клавиатурой, дисплеем, мышью).
Сессия представляет собой интерактивное пользовательское приложение, в роли которого может выступать текстовый редактор или электронная таблица. Эта концепция позволяет пользователю персонального компьютера запускать несколько приложений, открывая в каждом из нпх одно или несколько окон. Операционная система должна следить за тем, какое из окон, а следовательно какая из сессий является активной.
В зависимости от этого ввод, поступающий с клавиатуры и мышии, направляется в ту или иную сессию. В любой момент времени одна сессия обрабатывается на переднем плане, тогда как остальные сессии находятся в фоновом режиме. Все, что вводится с помощью клавиатуры и мыши, направляется в процесс, сессия которого в соответствии с состоянием приложений находится в приоритетном режиме. Когда сессия находится на переднем плане, процесс, выводящий видеосигнал, пересылает его непосредственно в видеобуфер и, соответственно, на экран пользователя. При переходе сессии в фоновый режим содержимое физического видеобуфера сохраняется в логическом видеобуфере. Если какой-нибудь из потоков любого процесса, относящегося к сессии в фоновом режиме, производит вывод на эк Рзн, этот вывод направляется в соответствующий логический видеобуфер.
Когда сессия возвращается на передний план, происходит обновление экрана. отражающее текущее содержимое логического видеобуфера этой сессии. Исключив сессии и связав интерфейс пользователя (клавиатуру, мышь, экран) с процессами, можно свести количество концепций„имеющих отношение к процессу, к двум. Таким образом, в каждый момент времени на переднем плане бу ет нахо ,'д аходиться один процесс. В целях структурирования процессы можно разделить на потоки. а. Какие преимущества теряются при таком подходе? б. Если такая кая модификация будет реализована, как следует осуществлять назначение ресурсов (памяти, файлов и т.д.) — на уровне процесса или на уровне потока? Рассмот им с е Р р ду, в которой осуществляется взаимно однозначное отображение меж у пот д.
оками на пользовательском уровне и потоками на уровне ядра. В такой систем ме один илп несколько потоков одного и того же процесса могут производить б о л кирующие системные вызовы, в то время как другие будут продолжать вып ь г.олняться. Объясните, почему на однопроцессорной машине в заной системе много м огопроцессорные программы могут вьтолняться быстрее, чем их однопоточпые двойники. сршается, но какие-то его потоки все еще выполняются, то ели процесс заве ша 'Улут ли они выполняться и далее? Р р ие операционной системы ОЯ?390, предназначенной для мейнРуктури ование оп фреймов, основано на ко на концепциях адресного пространства и задания.
В других операционных системах стемах адресное пространство, грубо говоря, соответствует 'Риложению и более и ее или менее соответствует процессу. В рамках одного и того адресного и ост а пространства можно одновременно создавать и выполнять не- Часть 2. 4 тт - ОТОКИ. СИмметаичняя мчти.тигтгы«ттам ~чътъ~~ю~ лл л сколько заданий, что приближенно соответствует концепции многоп Для управления этими заданиями создается ряд структур данных, две~:. торых являются основными.
Независимо от того, является ли данное пространство выполняющимся илп нет, в соответствующем управляю ке адресного пространства (ас1с)геаз зрасе соптго1 ЫосК вЂ” АЯСВ) соде'' необходимая операционной системе ОЯ/390 информация. В ее состав:.' текущий приоритет, размер выделенной данному адресному простраист" альной и виртуальной памяти, количество готовых к выполнению адресном пространстве, а также сведения о том, является ли каждое заданий выгруженным из памяти или нет.
В управляющем блоке задавя', соцтго1 ЫосК вЂ” ТСВ) отражается выполнение пользовательской прогр нем содержится информация, необходимая для управления заданием В'' лах адресного пространства, включая информацию о статусе процессо затели на входящие в состав задания программы и состояние выполне ' дания. Блоки АЯСВ являются глобальными структурами, полдержива системной памяти, а блоки ТС — локальными структурами, каждая рых поддерживается в своем адресном пространстве. В чем состоит п стао разделения управляющей информации на глобальную и локальную' К многопроцессорной системе с 8 процессорами подключены 20 ленте '. ных устройств.
В систему поступает большое количество заданий, пр ждое из них для завершения требует максимум 4 лентопротяжных ус Предположим, что каждое задание начинает выполняться с требовани ' ко трех устройств; четвертое ему потребуется только через достаточно.;. ' жительный срок, причем будет использоваться очень недолго. Пре также, что источник заданий бесконечен. а. Допустим, что планировщик операционной системы не запускает тех пор, пока не становятся доступными четыре устройства.
В нач, ты задания за ним закрепляются четыре устройства, которые ос ся только по завершении задания. Чему равно максимальное колич даний, которые могут одновременно выполняться в такой систе равно минимальное и максимальное количество лентопротяжных ус которые могут оказаться простаивающими при такой стратегии? б. Предложите альтернативную стратегию для повышения степени ис.', вания лентопротяжных устройств, которая в то же время позвол жать взаимоблокировок. Чему равно максимальное количество одно, но выполняющихся заданий? Какой величиной ограничено количест стаивающих лентопротяжных устройств? В описании состояний потоков на пользовательском уровне в опе системе яо1аг)а говорилось о том, что поток пользовательского уровня,",; уступить управление другому потоку с таким же приоритетом. Возм ситуация, когда в системе находится готовый к выполнению поток с соким приоритетом, и, следовательно, выполняющийся поток уступи%'~ ление потоку с таким же или более высоким приоритетом? Параллельные вычисления: взаимоисключения и много- задачность 5 1 Принципы параллельных вычислении 5.2.
Взаимоисключения: программный подход 5.3. Взаимоисключения: аппаратная поддержка 5.4. Семафоры 5,5. Мониторы 5.6. Передача сообщений 5.7. Задача читателей/писателей 5.8. Р .. Резюме, ключевые термины и контрольные вопросы 5.9. Рекомендуемая литература 5.10. Задачи Яасть 2. П Таням образом, первый введенный символ благоо лагополучно теряется, зато второй оказывается выведенным на экран дважды. Пробл лема заключается в разделяемой г'мебельной "еременной о»'з.п к которой обращак я н я не~колько процессов; если один процесс изменяет глобальную переменную и затем пре прерывается, другой может успеть измен."т~ се значение перед тем как первый процесс им воспол „Я П жнм теперь, что выполнять процедуру одновр о пРоцессы не могут В таком елъ гас описанная ранее последовательность действий в х выглядит иначе, 1.
Процесс Р1 вызывает процедуру ео»".о и преры "Рерывается немедленно по выполнении функции;е(.о»1аг. В этот момент после н о леднии введенный символ х сохранен в переменной о»; » и простой пример Рассмотрим следующую процедуру: озлив есЬо() о1.» и = ое~.о»заг() > о»~она = о81.о; ро1 оГа " (~ »1оог» мо ст и ет основные элементы отображения вводимых си Зходной символ, получаемый с клавиатуры, сохраняетс Й с»зоцс Й ", исваивается переменно с оо ле этого значени р е пе еменно о,ж пр ызываться люб п о е а может неоднократно выз (ится на экран. Данная процедур го на экране.
а пользователя и отображения его на ~ассом для получения ввода и ая многозадач нас имеется однопроцессорная Теперь представим,что у ~ема, поддерживающа ая единственного пользователя. ользоват гому; при этом все пр к; приложения ис у' <одить от одного приложения к дру нами п и эк ан. Поскольку рассматриваемая н здну и ту же клавиатуру и экран. яемой проце меет смысл сделать ее разделяе. нужна всем приложениям, имеет с о альн ю для всех ириложени так гружаемой в часть памяти, глобаль у память);,, ы и тем самым экономится па имеется только одна копия процедуры, п оцессами способствует Разделение основной памяти между р ет сов. Однако такое разделение може и тесному взаимодействию процессов.
дна к проблемам. Рассмотрим последоват ательность событий. ес".о и прерывается немедленн но пе: 1 Процесс Р1 вызывает процедуру ес. о и р вве енный с ненни функции аего .а . В этот момент последний введенны с хранен в переменной оЬ»п. ый вызывает процедуру осего. Эт По. Эта 2. Активируется процесс Р2, которы выз ыи в и этом считывается с клавиатуры и ра выполняется до конца; при это на экран очередной символ у. о есса Р1. Однако к этому моменту 3. Продолжается выполнение процесса пе еменная соде х в переменно о ' п п чение у, которое присваивается переменно о ~он Часть 2. ~оторый вызывает проце с Р1 наход ° по алпв дуру' Следователь ~ блоки тех пор, пока проц век~~орый более поздний ется с дной.