Многоуровневые очереди (Multilevel Queue) (47) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Многоуровневые очереди (Multilevel Queue) (47)



Для систем, в которых процессы могут быть легко рассортированы по разным группам, для каждой группы процессов создается своя очередь с фиксированным приоритетом. Например, приоритет очереди системных процессов устанавливается выше, чем приоритет очередей пользовательских процессов. Это значит, что ни один пользовательский процесс не будет выбран для исполнения, пока есть хоть один готовый системный процесс.

Внутри этих очередей для планирования могут применяться самые разные алгоритмы (FCFS, RR).

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

Взаимодействующие процессы (48)

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

1. Повышение скорости работы.

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

2. Совместное использование данных

3. Модульная конструкция какой-либо системы

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

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

Категории средств обмена информацией (49)

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

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

· Канальные. Общение процессов происходит через линии связи, предоставленные операционной системой

· Разделяемая память Процессы используют совместно некоторую область памяти

Логическая организация механизма передачи информации (49)

Установка связи. Различают два способа адресации:

1.прямая

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

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

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

2. непрямая

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

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

Связь может быть однонаправленная - симплексной и полудуплексной, а двунаправленную связь – дуплексной.

Буферизация

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

2. Буфер ограниченной емкости

3. Буфер неограниченной емкости

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

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

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

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

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

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

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

Надежность

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

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

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

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

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

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

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

Подобные действия могут быть возложены:

· на ОС

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

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

 

Завершение

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

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

Нити исполнения (50)

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

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

Из состояния рождение процесс приходит содержащим всего одну нить исполнения. Другие нити процесса будут являться потомками этой нити-прародительницы. Мы можем считать, что процесс находится в состоянии готовность, если хотя бы одна из его нитей находится в состоянии готовность и ни одна из нитей не находится в состоянии исполнение. Мы можем считать, что процесс находится в состоянии исполнение, если одна из его нитей находится в состоянии исполнение. Процесс будет находиться в состоянии ожидание, если все его нити находятся в состоянии ожидание. Наконец, процесс находится в состоянии закончил исполнение, если все его нити находятся в состоянии закончила исполнение. Пока одна нить процесса заблокирована, другая нить того же процесса может выполняться. Нити разделяют процессор так же, как это делали традиционные процессы, в соответствии с рассмотренными алгоритмами планирования.

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

 



Поделиться:


Последнее изменение этой страницы: 2021-09-25; просмотров: 33; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.12.108.236 (0.015 с.)