Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по операционным системам.doc
Скачиваний:
91
Добавлен:
02.05.2014
Размер:
344.06 Кб
Скачать

22.Взаимодействие процессов.

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

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

2)Совместное использование данных. Различные процессы могут работать с одной и той же динамической базой данных или с разделённым файлом, совместно изменяя их содерж-ие.

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

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

Процесс который оказывает влияние на поведение друг друга принято называть кооперативным или взаимодействующими процедурами. В отличии от независимых процессов не оказывающих друг на друга никакого воздействия.

23. Процессы могут взаимодействовать друг, с другом только обменившись информацией. По объёму предаваемой информации и степенью воздействия на поведение другого процесса можно разделить на 3 категории:

1.Сигнальная. Передаётся минимальное количество информации 1 бит, да или нет. Используется, как правило, для извещения процесса о наступлении какого либо события. Степень воздействия на поведение процесса полученного информацию минимальную. Всё зависит от того, знает ли он, что означает полученный сигнал, надо ли на него реагировать и каким образом.

2.Канальная. “Общение” процессов происходит через линии связи предоставленной ОС. Объём передаваемой информации в 1 времени ограничен пропускной способностью линей связи. С увеличением количества информации возрастает и возможность влияния на поведение другого процесса.

3.Разделяемая память. 2 или более процесса могут совместно использовать некоторую область адресного пространства. Созданием разделяемой памятью занимается ОС. Использование разделяемой памяти для передачи и получении информации осуществляется с помощью средств обычных языков программирования, в то время как в сигнальным и канальным средствам коммуникации, для этого необходимы специальные системные вызовы. Разделяемая память представляет собой наиболее быстрый способ взаимодействования процессов в одной вычислительной системе.

24. Логическая организация средств коммуникации, таких как шина данных, прерывания, аппаратно разделяемая память определяет механизм их использования. Для характеристики любого способа связи необходимо знать 2 момента:

1.Можно ли использовать средства связи сразу после создания процессов или первоначально необходимо предпринять определённые действия для инициализации обмена. Например, для использования общей памяти для различных процессов требуется специальное обращение к ОС, которая выделит необходимую область адресного пространства. Но для передачи сигнала от одного процесса к другому никакая инициализация не нужна. Передача информации по линиям связи может потребовать первоначального резервирования такой линией для процессов желающих обмениваться процессом.

2.Способ адресации при использовании средств связи. Т.е. необходимо указать, куда передавать информацию и откуда её получать. Различают 2 способа адресации: прямую и непрямую.

При прямой адресации взаимодействующие процессы, непосредственно общаются друг с другом, явно указывая номер или имя процесса которому предназначена и от кот. она д. б. получена. Если и процесс от которого данные исходят, и процесс, принимающий данные указывают имена своих партнёров по взаимодействию, то такая схема адресации называется симметричной прямой адресацией. Ни один другой процесс не может вмешаться в процедуру симметричного прямого общения процессов, перехватить посланные или переместить ожидаемые данные. Если только один из взаимодействующих процессов, например предающих указывает имя своего партнера, а второй процесс ожидает получение информации от произвольного источника, то такая схема адресации называется прямой ассиметричной адресацией. При непрямой адресации данные помещаются передающим процессом в некоторый промежуточный объект для хранения данных имеющий свой адрес, откуда они м. б. затем изъяты к-л др. процессом. При этом предающий процесс не знает, как именно идентифицируется процесс – получатель, а принимающий процесс не имеет представления об идентификаторе процесса, от которого он должен получить. При использовании прямой адресации связь между процессами в классической ОС устанавливается автоматически. Единственно, что нужно для использования средства связи, это знать как идентифицируется процессы участвующие в обмене данных. При использовании непрямой адресации инициализация средства связи может и не потребоваться. Информация, которой должен обладать процесс для взаимодействования с другими процессами. Этот некий идентификатор промежуточного объекта для хранения данных.

Под однонаправленной связью понимают связи, при которой каждый процесс может использовать средство связи, либо только для приёма информации, либо только для её передачи.

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

В коммутационных системах принято называть однонаправленную связь симплек-ой, двунаправленную связь с поочерёдной передачей информации в разных направлениях – полудуплексной, а двунаправленную связь с возможностью одновременной передачи информации в разных направлениях – дуплексной.

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

25.Существует 2 модели передачи данных по каналам связи, поток в/вывода и сообщении.

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

Один из наиболее простых способы передачи информации между процессами по линии связи является передача информации через pipe(канал – труба - конвейер).

Информация о расположении команд в ОС обладает только процесс создавший его. Этой информацией он может поделиться только со своими наследниками – процессами-потомками. Поэтому использовать канал для связи могут только процессы, имеющие общего предка. Однако, если разрешить процессу создавшему канал сообщать о его местоположении в системе другим процессам, например зарегистрировать его в ОС под определенным именем, то полученный объект принято называть именованным каналом – FIFO(named pipe)/ Именованный канал может использоваться для организации связи между любыми процессами в ОС. В модели сообщений процессы налагают на передаваемые данные некоторую структуру. Весь поток информации они разделяют на отдельные сообщения, вводя между данными по крайней мере границы сообщений. Кроме того к передаваемой информации могут быть присоединены адреса получателей и отправителей. Все сообщения могут быть одинакового фиксированного размера или переменной длины.

В ВС используются разнообразные средства для передачи сообщений: очереди сообщений, гнезда. И потоковые линии связи и каналы сообщений всегда имеют буфер конечной длины. Емкость буфера для потоков данных измеряется в байтах, емкость буфера для сообщений измеряется в сообщениях.

26.Способ коммуникации называется надежным если при обмене данными выполняются 4 условия:

  1. не происходит потери информации

  2. не происходит повреждения информации

  3. не появляется лишней информации

  4. не нарушается порядок данных в процессе обмена

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

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

Если данные не повреждены т.е. контрольные суммы совпадают то подтверждается правильность их получения. Если данные повреждены считается что сообщение не поступило.

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

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

Для гарантии правильности порядка получения сообщений они нумеруются. Эти действия могут быть возложены на

  1. ОС

  2. процессы, обменивающиеся данными

  3. совместно на ОС и процессы, разделяя их ответственность

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