Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материал / ZIBBEN-I.doc
Скачиваний:
59
Добавлен:
30.04.2013
Размер:
1.04 Mб
Скачать

11. Сравнение реализации взаимодействующих процессов и многопотокового приложения.

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

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

Если активному процессу нужен ресурс, к-рый оказ-ся занятым, то процесс сам себя блокирует и ожидает наступление события по освобождению нужного ресурса. Один процесс м. быть приостановлен другим процессом исп-ся в ОС для исключения процессов в момент пиковой нагрузки. При приостановке ресурсы освобождаются частично.

Задача взаимодействия процессов:

1. процессы взаимод-ют по передаче упр-ния.

2. процессы взаимод-ют по данным.

В обоих случаях нужно синхронизировать работу. Напр, взаимод-вие по схеме поставщик-потребитель.

а) Для исключения одновременного обращения к общему ресурсу исп- ся механизм семафоров. Семафор-двоичная переменная. S=0, если ресурс недоступен и S=1, если ресурс доступен. Если S=0- приостановленный процесс, помещается в очередь с данным семафором.

б) Сигнал- двоичная переменная, исп-емая для сообщения др. процессу о совершении некоторого события. Сигналы выполняют синхронизацию процессов. (е=0 или е=1)

в) флаг события. Примитивы семафор и сигнал реализуют низкий уровень управления процессами.

При взаимод-вии процессов могут возникнуть тупики. Тупик (deadlocks или clinch)-взаимная блокировка процессов. Проблема тупиков включает задачи:

- предотвращение тупиков

- распознавание тупиков

- восстановление системы после тупиков.

ОС при распознавании тупика можно 1) снять часть процессов 2) может быть совершен откат процесса до контрольной точки 3)нек-рые процессы можно вернуть в обл-ть лоадинга.

Для упр-я ресурсами желательно исп-ть высокоуровневые ср-ва синхронизации, называемые мониторами. Монитор включает набор процедур и стр-ру данных. Внеш. процесс м. вызывать процедуры монитора, но не иметь доступа к данным. Только 1 процесс м. быть активен по отношению к монитору в данный момент.

Многопотоковость.(thread-поток). ОС выполняет защиту процессов др. от друга, разделяет их, но м. предоставлять спец. ср-ва взаимодействия. Другой прием распараллеливания состоит в организации потоков в рамках одного процесса, т.е потоки м. быть организованы для совместного взаимод-вия, а не для конкурирования. Разделение времени проц-ра идет по потокам и тогда поток- минимальная вычислит. задача для диспетчеризации. Потоки вып-ся в общем контексте, поэт. они имеют общее адресное простр-во, общие глобальные переменные, общие открытые файлы. Но потоки имеют различные: программный счетчик, стек, локальные переменные, рег-ры, текущее состояние . 1) Многопотоковая обработка повышает эффективность работы системы за счет распараллеливания. 2) Некоторые прикладные задачи легче программировать, используя потоки. 3) Реальное распараллеливание в многопроцессорных системах повышает эффективность многопотоковых программ.

Hyper-Threading- Гиперпотоковые технологии разраб-ся компанией Intel для повышения производ-ти серверных систем.

Simul tameous multi threading technology- мн-во потоков вып-ся одновременно на одном проц-ре. Работа неск. потоков достигается за счет дублирования архитектурных состояний проц-ра при совместном исп-нии единого набора ресурсов. Под ресурсом понимаются функциональные модули проц-ра. Логический проц-р- архитектурное состояние, к-рое м. быть заполнено. Это реализовано в семействе проц-ров Intel Xeon, где аппаратно заложена поддержка технологии Hyper-Threading. В проц-ре имеются диспетчеры, к-рые формируют логические проц-ры как архитектурные состояния ресурсов одного процессорного ядра, поэт. добавляются схемы дублирования рег-ров и расширенный контроллер управ-ния прер-ем (APIC), к-рый назначает прер-я для обработки разными процессами в многопроцессорной системе. Минус потоков заключ-ся в том, что они плохо защищены др. от друга.

Соседние файлы в папке Материал