Главная / Программирование /
Параллельное программирование / Тест 11
Параллельное программирование - тест 11
Упражнение 1:
Номер 1
Составьте планы программ критических интервалов. С разных терминалов ВС производится взаимно исключающее обращение к сегментам базы данных, отображающим продажу железнодорожных билетов по направлениям и маршрутам. Снабдите средствами синхронизации критический интервал программы обращения и представьте схему его выполнения
Ответ:
 (1) Выбор семафора С нужного сегмента БД
↓
ЗАКРЫТЬ(С)
↓
Запрос
↓
ОТКРЫТЬ(С) 
 (2) Выбор семафора С нужного сегмента БД
↓
ЖУЖ(С)
↓
Запрос
↓
ПРОПУСТИТЬ(С) 
 (3) Выбор семафора С нужного сегмента БД
↓
ЖУЖ(С)
↓
Запрос
↓
ОТКРЫТЬ(С) 
Номер 2
Составьте планы программ критических интервалов. С разных терминалов ВС производится взаимно исключающее обращение к сегментам базы данных, отображающим управление транспортными услугами разных регионов. В ВС не реализован механизм семафоров. Используя механизм активного ожидания, составьте схему выполнения критического интервала программы обслуживания
Ответ:
 
(1)  
 
(2)  
 
(3)  
Номер 3
Составьте планы программ критических интервалов. Самолет в каждом такте считывает данные объемом в одно слово, которые записываются в бесконечный кольцевой буфер В на N слов. Бортовой компьютер, стремясь выдержать тот же темп обработки, считывает по одному слову данные из В. Поступившие данные должны быть обработаны обязательно. Повторная обработка данных недопустима. Составьте схему критического интервала программы обработки буфера
Ответ:
 
(1)  
 
(2)  
 
(3)  
 
(4)  
 
(5)  
Упражнение 2:
Номер 1
С разных терминалов ВС к базе данных возможно независимое обращение двух типов: обращение одного типа приводит к изменению данных и может рассматриваться как обращение "писателей", обращение другого типа является справочным, что можно рассматривать как обращение "читателей". Для различных вариантов наличия или отсутствия механизмов и процедур семафоров, для различного приоритета писателей, составьте схемы критических интервалов программ "читателей" и "писателей". В состав ОС входят все необходимые процедуры над двоичными семафорами и семафорами-счетчиками. Процесс "читатель" имеет приоритет, превышающий приоритет процесса - "писателя"
Ответ:
 
(1)  
 
(2)  
 
(3)  
Номер 2
С разных терминалов ВС к базе данных возможно независимое обращение двух типов: обращение одного типа приводит к изменению данных и может рассматриваться как обращение "писателей", обращение другого типа является справочным, что можно рассматривать как обращение "читателей". Для различных вариантов наличия или отсутствия механизмов и процедур семафоров, для различного приоритета писателей, составьте схемы критических интервалов программ "читателей" и "писателей". В ОС ВС отсутствуют операции над семафорами-счетчиками. Процесс "читатель" обладает более высоким приоритетом
Ответ:
 
(1)  
 
(2)  
 
(3)  
Номер 3
С разных терминалов ВС к базе данных возможно независимое обращение двух типов: обращение одного типа приводит к изменению данных и может рассматриваться как обращение "писателей", обращение другого типа является справочным, что можно рассматривать как обращение "читателей". Для различных вариантов наличия или отсутствия механизмов и процедур семафоров, для различного приоритета писателей, составьте схемы критических интервалов программ "читателей" и "писателей". В ОС ВС отсутствуют операции над семафорами-счетчиками. Процесс "писатель" обладает более высоким приоритетом
Ответ:
 
(1)  
 
(2)  
 
(3)  
Номер 4
С разных терминалов ВС к базе данных возможно независимое обращение двух типов: обращение одного типа приводит к изменению данных и может рассматриваться как обращение "писателей", обращение другого типа является справочным, что можно рассматривать как обращение "читателей". Для различных вариантов наличия или отсутствия механизмов и процедур семафоров, для различного приоритета писателей, составьте схемы критических интервалов программ "читателей" и "писателей". В ВС отсутствует механизм семафоров. Процесс "писатель" обладает более высоким приоритетом
Ответ:
 
(1)  
 
(2)  
 
(3)  
Упражнение 3:
Номер 1
В матричных и векторных ВС по "быстрым" связям между топологически соседними процессорами, а также между первым и последним в строке и столбце, приводят к конфликтам. Они возникают в случае, когда необходимо одному процессору передать соседям результаты, уточненные методом сеток. Это - типичная задача "обедающие философы".
Закрепите за связями семафоры и составьте схему критического интервала общей для всех процессоров программы взаимного обмена. Проверьте ситуации и убедитесь в отсутствии тупиков. Выделите возможную неординарную ситуацию. Система содержит 4 процессора, связанных в "кольцо". Каждый четный процессор пытается в первую очередь захватить левую связь, а, захватив ее, во вторую очередь пытается захватить правую связь. Нечетные процессоры захватывают правую связь, а затем левую
Ответ:
 
(1) тупиковые и неординарные ситуации отсутствуют 
 
(2) тупиковые и неординарные ситуации отсутствуют 
 
(3) тупиковые и неординарные ситуации отсутствуют 
Номер 2
В матричных и векторных ВС по "быстрым" связям между топологически соседними процессорами, а также между первым и последним в строке и столбце, приводят к конфликтам. Они возникают в случае, когда необходимо одному процессору передать соседям результаты, уточненные методом сеток. Это - типичная задача "обедающие философы".
Закрепите за связями семафоры и составьте схему критического интервала общей для всех процессоров программы взаимного обмена. Проверьте ситуации и убедитесь в отсутствии тупиков. Выделите возможную неординарную ситуацию. ВС содержит 4 процессора, связанных в "кольцо". Каждый нечетный процессор пытается в первую очередь захватить левую связь, а затем правую. Четные процессоры захватывают правую связь, а затем левую
Ответ:
 
(1) тупиковые и неординарные ситуации отсутствуют 
 
(2) тупиковые и неординарные ситуации отсутствуют 
 
(3) тупиковые и неординарные ситуации отсутствуют 
Номер 3
В матричных и векторных ВС по "быстрым" связям между топологически соседними процессорами, а также между первым и последним в строке и столбце, приводят к конфликтам. Они возникают в случае, когда необходимо одному процессору передать соседям результаты, уточненные методом сеток. Это - типичная задача "обедающие философы".
Закрепите за связями семафоры и составьте схему критического интервала общей для всех процессоров программы взаимного обмена. Проверьте ситуации и убедитесь в отсутствии тупиков. Выделите возможную неординарную ситуацию. ВС содержит 5 процессоров, связанных в "кольцо". Четные процессоры пытаются в первую очередь захватить левую связь, затем правую. Нечетные процессоры сначала захватывают правую связь, затем левую
Ответ:
 (1) схема критического интервала программы обмена полностью совпадает со схемой ответа 1 варианта 1. Тупиковые ситуации отсутствуют, однако возникают два четных соседа, из-за чего время их обмена отличается от времени обмена других процессоров 
 
(2) тупиковые ситуации отсутствуют. Время обмена между четными соседями отличается от времени обмена между четными и нечетными соседями 
 
(3) тупиковые ситуации отсутствуют. Время обмена между четными соседями отличается от времени обмена между четными и нечетными соседями 
Упражнение 4:
Номер 1
Проанализируйте операции над семафорами. Можно ли двоичный семафор закрывать дважды?
Ответ:
 (1) можно, это подтверждает его значение 
 (2) повторное закрытие семафора приводит к прерыванию процесса и к его постановке в очередь к этому семафору 
 (3) повторное закрытие семафора приводит к прерыванию 
Номер 2
Проанализируйте операции над семафорами. Почему в состав операций над семафорами входят две операции, открывающие семафор?
Ответ:
 (1) операция ОТКРЫТЬ, кроме открытия семафора, заставляет все процессы, ранее пытавшиеся закрыть его или выполнить операцию ЖДАТЬ и "висящие" на этом семафоре, повторить эту операцию – закрытия или ожидания. Это необходимо для решения задачи взаимного исключения. Операция ПРОПУСТИТЬ только открывает семафор, что достаточно для соблюдения частичной упорядоченности выполняемых работ 
 (2) операция ОТКРЫТЬ, кроме открытия семафора, заставляет все процессы, ранее пытавшиеся закрыть его и "висящие" на этом семафоре, повторить эту операцию закрытия. Это необходимо для решения задачи взаимного исключения. Операция ПРОПУСТИТЬ только открывает семафор, что достаточно для соблюдения частичной упорядоченности выполняемых работ 
 (3) две модификации операции открытия семафоров отличаются средствами аппаратной поддержки и, следовательно, временем выполнения. Это предоставляет выбор при организации режима реального времени 
Номер 3
Проанализируйте операции над семафорами. В каких ВС решение задачи синхронизации "обедающие философы" представляется наиболее актуальной?
Ответ:
 (1) в вычислительном комплексе на базе локальной сети 
 (2) в векторной или матричной ВС, реализующей метод "сеток", и, особенно важно, - конечноразностный метод решения систем дифференциальных уравнений 
 (3) при решении геодезических, метеорологических задач, при моделировании диффузных сред и др. 
Упражнение 5:
Номер 1
Рассмотрите возможную альтернативу механизму семафоров. Является ли матрица следования универсальным средством синхронизации, подобным семафорам?
Ответ:
 (1) применение матрицы следования не эффективно при решении задач синхронизации: взаимного исключения, читатели – писатели, "обедающие философы". Основное ее применение – соблюдение частичной упорядоченности работ при диспетчировании 
 (2) с помощью матрицы следования принципиально возможно решение всех задач синхронизации, однако совокупная сложность задачи чрезвычайно растет 
 (3) матрица следования является универсальным средством синхронизации 
Номер 2
Рассмотрите возможную альтернативу механизму семафоров. Являются ли "почтовые ящики" универсальным средством синхронизации, подобным семафорам?
Ответ:
 (1) являются 
 (2) "почтовые ящики" целесообразно использовать для синхронизации и поддержки частичной упорядоченности работ 
 (3) "почтовые ящики" используются только для синхронизации обработки общих данных 
Номер 3
Рассмотрите возможную альтернативу механизму семафоров. Является ли механизм закрытия адресов универсальным средством синхронизации, способным заменить семафоры?
Ответ:
 (1) да, является: с помощью этого механизма можно выполнить все процедуры над семафорами 
 (2) применение этого механизма эффективно только при использовании общих данных и для поддержки частичной упорядоченности работ 
 (3) применение механизма закрытия адресов полностью исключает необходимость программирования процедур, аналогичных процедурам над семафорами. Все операции, аналогичные таким процедурам, выполняются на уровне команд 
Номер 4
Рассмотрите возможную альтернативу механизму семафоров. Является ли механизм активного ожидания универсальным средством синхронизации, способным заменить семафоры?
Ответ:
 (1) да, является, т.к. полная реализация механизма семафоров в МВК "Эльбрус" полностью опирается на использование этого механизма 
 (2) применение механизма активного ожидания эффективно только для синхронизации процессоров по общим данным и для взаимно исключающего входа в критический интервал 
 (3) применение механизма активного ожидания не эффективно при решении задачи синхронизации "обедающие философы" 
Упражнение 6:
Номер 1
Исследуйте некоторые приемы, применяющиеся при решении задач синхронизации. Почему в процедуре, реализующей механизм активного ожидания, проверка содержимого ячейки памяти производится дважды?
Ответ:
 (1) дублирование проверки производится для увеличения надежности, исходя из важности этой операции 
 (2) при решении задачи множественного обращения процессоров к памяти возможна ситуация перекрытия во времени выполнения запросов. При аппаратном выполнении такой "тесной" группы запросов на запись в одну ячейку, результирующим может оказаться последний запрос. Поэтому, производя запись, следует убедиться в том, что выполнилась запись именно с данного процессора 
 (3) аппаратные недоработки приводят к неразрешимости некоторых конфликтов между процессорами при обращении к памяти по одному и тому же адресу. Их устранение возможно на программном уровне, однако они могут использоваться для решения задач синхронизации 
Номер 2
Исследуйте некоторые приемы, применяющиеся при решении задач синхронизации. Чем и почему отличаются версии критического интервала "писателя" в задачах ЧП1 и ЧП2?
Ответ:
 (1) в задаче ЧП1 процесс "писатель" начинается с команды ЖДАТЬ ПО СЧИТЫВАНИЮ, что позволяет процессам - "читателям" не только успешно завершиться, но допускает поступление новых "читателей", пока семафор-счетчик не стал равен нулю. В задаче ЧП2 процесс "писатель" начинается с команды ЗАКРЫТЬ ПО ЗАПИСИ, что разрешает только успешное завершение процессов "читатель" 
 (2) в задаче ЧП2 процесс "писатель" начинается с команды ЖДАТЬ ПО СЧИТЫВАНИЮ, что позволяет процессам - "читателям" не только успешно завершиться, но допускает поступление новых "читателей", пока семафор-счетчик не стал равен нулю. В задаче ЧП1 процесс "писатель" начинается с команды ЗАКРЫТЬ ПО ЗАПИСИ, что разрешает только успешное завершение процессов "читатель" 
 (3) в задаче ЧП1 процесс "писатель" начинается с команды ЖДАТЬ ПО СЧИТЫВАНИЮ, что позволяет процессам - "читателям" успешно завершиться, не допуская поступление новых "читателей" , пока семафор-счетчик не стал равен нулю. В задаче ЧП2 процесс "писатель" начинается с команды ЗАКРЫТЬ ПО ЗАПИСИ, что разрешает не только успешное завершение процессов "читатель" , но допускает поступление новых " читателей" , пока семафор-счетчик не стал равен нулю 
Номер 3
Исследуйте некоторые приемы, применяющиеся при решении задач синхронизации. Как в кольцевом (бесконечном) буфере "догоняют" друг друга индикаторы считывания и заполнения?
Ответ:
 (1) каждый из них увеличивается на единицу по mod N (N – рамер буфера) только в том случае, если новое значение не достигнет при этом значение другого индикатора 
 (2) при каждом изменении индикатора заполнения проверяется: достиг ли он значения индикатора считывания? Если достиг, запись не производится 
 (3) при каждом изменении индикатора считывания проверяется: достиг ли он значения индикатора заполнения? Если достиг, считывание не производится