Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_лекции.docx
Скачиваний:
23
Добавлен:
22.02.2015
Размер:
109.07 Кб
Скачать

4.3.2 Информационная валентность процессов и средств связи.

Сколько процессов можно задействовать между процессами?

Связь бывает однонаправленной и двунаправленной:

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

4.3.3 Особенности передачи информации с помощью линии связи.

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

Буферизация

Канал связи может иметь или не иметь буфер.

Есть 3-ри варианта:

  • буфер 0.

  • буфер ограниченной ёмкости, линия связи не может хранить более nбайт информации

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

Поток ввода/вывода из сообщений

Различают 2-модели передачи данных:

  • поток ввода/вывода

  • поток сообщений, весь поток делится и передается частями

Важен вопрос о положении канала связи в системе.Если процесс создавший трубу (pipe) сообщит о её положении другому процессу, сделав вход и выход видимым, то будет создан объект называемыйFIFO. Все каналы могут иметь или не иметь буфер.

4.3.4 Надежность средств связи

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

  • Не происходит потери информации

  • Не происходит повреждение информации

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

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

Считается, что передача данных через буфер – надежный способ.

Как бороться с ненадежностью? Для обнаружения потерь информации каждые передаваемые сообщения снабжаются контрольной суммой. Если обнаружилось, что блок информации не соответствует своему номеру – он перемещается. Действия по контролю над передаваемой информацией могут выполнять:

  1. ОС

  2. Процессы, которые этими данными обмениваются.

4.3.5 Как завершается связь?

Вопрос прекращения обмена. Важны два аспекта:

  • Требуется ли от процесса специальные действия по прекращению использования средств коммуникации

  • Влияют ли сообщения о прекращении использования связи на прекращение других процессов

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

4.4 Потоки исполнения

Как уменьшить накладные расходы?

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

Можно использовать даже при одном процессе

Во время ввода/вывода ничего не выполняется в процессоре. Вычисляется сумма массивов а+в можно было бы делать параллельно с вводом/выводом массива С

Массив совмещения можно было бы организовать используя два процесса:

Нельзя забывать о переключении контекста и о выделении памяти. Вместе с этим схема будет выглядеть так:

Процесс 1

Процесс 2

Создать процесс 2

Переключение контекста

Выделение общей памяти

Ожидание ввода А и В

Переключение контекста

Выделение общей памяти

Ввести массив А

Ожидание ввода А

Ввести массив В

Ожидание ввода В

Ввод массива С

Ожидание ввода С

Переключение контекста

а = а + в

Переключение контекста

с = с + а

Вывод С

Ожидание вывода С

Для реализации идеи параллелизма вводят новую абстракцию внутри понятия процесс - поток исполнения.

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

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

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