игра брюс 2048
Главная / Программирование / Параллельное программирование для многоядерных процессоров / Тест 13

Параллельное программирование для многоядерных процессоров - тест 13

Упражнение 1:
Номер 1
Какая среда исполнения в Windows-системах необходима для работы приложений MC#?

Ответ:

 (1) система Mono 

 (2) Microsoft Compact Framework 

 (3) Microsoft .NET Framework 


Номер 2
Какая Runtime-среда исполнения обязательна для работы приложений MC#?

Ответ:

 (1) CLR 

 (2) VCL 

 (3) SQL 


Номер 3
Какая среда исполнения в Linux-системах необходима для работы приложений MC#?

Ответ:

 (1) Microsoft Compact Framework 

 (2) Microsoft .NET Framework 

 (3) система Mono 


Упражнение 2:
Номер 1
Для каких целей предназначен язык MC#?

Ответ:

 (1) для программирования только в однопроцессорных системах 

 (2) для программирования приложений в системах с многоядерными процессорами 

 (3) для программирования приложений работающих в Grid-сетях 


Номер 2
На базе какого языка был создан язык MC#?

Ответ:

 (1) Yava 

 (2) Polyphonic C# 

 (3)

 (4) Perl 


Номер 3
Какая цель достигалась при создании языка Polyphonic C#?

Ответ:

 (1) использовние высокоуровневых средств асинхронного параллельного программирования 

 (2) использование параллельного программирования в серверных и клиент-серверных приложениях 

 (3) обеспечение переносимости приложений с Windows на Unix системы 


Упражнение 3:
Номер 1
В чём заключается ключевая особенность языка Polyphonic C#?

Ответ:

 (1) изменение синхронных методов 

 (2) добавление "асинхронных" методов 

 (3) добавление синхронных методов 


Номер 2
Укажите назначение "асинхронных" методов в языке Polyphonic C#:

Ответ:

 (1) выполнение базовой вычислительной работы, исполняемых в отдельных потоках 

 (2) доставка данных обычным синхронным методам 

 (3) синхронизация синхронных методов 


Номер 3
Какая языковая конструкция была введена для синхронизации синхронных и асинхронных методов?

Ответ:

 (1) связки 

 (2) перекрёстные ссылки 

 (3) указатели 


Упражнение 4:
Номер 1
Какие в MC# существуют способы исполнения на удалённых машинах автономных асинхронных методов?

Ответ:

 (1) явное указание 

 (2) автоматическое (на наименее загруженном узле кластера) 


Номер 2
Как осуществляется взаимодействие асинхронных методов в языке MC#?

Ответ:

 (1) через статические переменные метода 

 (2) посредством передачи сообщений с использованием каналов и обработчиков канальных сообщений 

 (3) посредством передачи сообщений без использования связок 


Номер 3
Какие ключевые конструкции должен иметь язык параллельного программирования?

Ответ:

 (1) средства для создания параллельных процессов 

 (2) средства для обеспечения взаимодействия параллельных процессов между собой 

 (3) средства для синхронизации параллельных процессов 


Упражнение 5:
Номер 1
Укажите назначение async-методов:

Ответ:

 (1) используются для создания параллельных процессов (потоков) 

 (2) могут быть перенесены для исполнения на другие машины 

 (3) исполняются асинхронно и локально на одной машине (в виде отдельных потоков) 


Номер 2
Укажите назначение movable-методов:

Ответ:

 (1) могут быть перенесены для исполнения на другие машины 

 (2) исполняются асинхронно и локально на одной машине (в виде отдельных потоков) 

 (3) используются для создания параллельных процессов (потоков) 


Номер 3
Какие ключевые слова были введены в MC# для написание параллельной, распределенной программы?

Ответ:

 (1) sync 

 (2) async 

 (3) movable 


Упражнение 6:
Номер 1
Что явлется основой взаимодействия параллельных процессов в языке MC#?

Ответ:

 (1) использование разделяемой памяти 

 (2) передача сообщений 

 (3) использование общих потоков 


Номер 2
Укажите правильное определение async-метода:

Ответ:

 (1) модификаторы async имя_метода(аргументы) { ... }  

 (2) модификаторы movable имя_метода(аргументы) { ... }  

 (3) async модификаторы имя_метода(аргументы) { ... }  


Номер 3
Укажите правильное определение movable-метода:

Ответ:

 (1) модификаторы async имя_метода(аргументы) { ... }  

 (2) модификаторы movable имя_метода(аргументы) { ... }  

 (3) movable модификаторы имя_метода(аргументы) { ... }  


Упражнение 7:
Номер 1
Укажите отличия async- и movable-методов от обычных, синхронных, методов 

Ответ:

 (1) вызывающая программа не ожидает завершения вычислений этих методов 

 (2) вызывающая программа всегда ожидает завершения вычислений этих методов 

 (3) не возвращают результаты 

 (4) не могут объявляться статическими 


Номер 2
Какой из перечисленных вариантов содержит правильный вызов movable-метода (схематично)?

Ответ:

 (1) имя_объекта.имя_метода(аргументы) 

 (2) имя_машины@имя_объекта.имя кластера.имя_метода(аргументы) 

 (3) имя_машины@имя_объекта.имя_метода(аргументы) 


Номер 3
Что происходит во время вызова movable-метода?

Ответ:

 (1) объект, которому принадлежит movable-метод, и его аргументы копируются на удаленную машину 

 (2) объект, которому принадлежит movable-метод, и его аргументы перемещаются на удаленную машину 

 (3) на удаленную машину копируется только объект, которому принадлежит movable-метод, без аргументов 


Упражнение 8:
Номер 1
Укажите правильный синтаксис определения связок в MC#:

Ответ:

 (1) chord-declaration ::= [handler-header] [& channel-header]* body  

 (2) chord-declaration ::= [channel-header] [& handler-header]* body  

 (3) chord-declaration ::= [handler-header]* body  


Номер 2
Укажите правильный вариант определения связки с одним каналом в MC#:

Ответ:

 (1) handler hnd bool() & channel chan1(int a) & channel chan2(int b) & channel chan3(int c) { int x = (a+b)/c; return (false); }  

 (2) handler hnd bool()& channel chan1(int a) & channel chan2(int b) { if (a == b) return (true); if (a == 2) return (false); }  

 (3) handler hnd bool()& channel chan(int a) { if (a == 3) return (true); }  


Номер 3
Укажите какой из вариантов вызовет ошибку компиляции?

Ответ:

 (1) handler hnd float() & channel chan1(float a) & channel chan2(float b) { float x = a+b; return (x); }  

 (2) handler hnd bool()& channel chan1(int a) & channel chan2(int b) { if (a == b) return (a); }  

 (3) handler hnd bool() & channel chan(int a) { if (a == 3) return (true); }  


Упражнение 9:
Номер 1
Что произойдёт если к моменту вызова обработчика канальных сообщений, связанный с ним канал окажется пуст?

Ответ:

 (1) вызывается исключение 

 (2) вызов обработчика блокируется 

 (3) по оператору return происходит возврат нулевого значения обработчику 


Номер 2
Что произойдёт если к моменту прихода значения по каналу, нет вызовов обработчика?

Ответ:

 (1) значение сохраняется во внутренней очереди канала 

 (2) это значение сбрасывается 

 (3) вызывается исключение 


Номер 3
Что произойдёт при вызове обработчика и при наличии значений во всех каналах соответствующей связки?

Ответ:

 (1) будут обработаны последние по порядку значения из очередей каналов 

 (2) будут обработаны первые по порядку значения из очередей каналов 


Упражнение 10:
Номер 1
При копировании каналов и обработчиков на удаленную машину автономно или в составе некоторого объекта они становятся:

Ответ:

 (1) независимыми объектами 

 (2) прокси-объектами 

 (3) нулевыми объектами 


Номер 2
Какое общее правило срабатывания связки?

Ответ:

 (1) тело связки исполняется только после того, как вызваны все методы из заголовка этой связки 

 (2) тело связки исполняется только после того, как вызван хотя бы один метод из заголовка этой связки 

 (3) тело связки исполняется сразу же, независимо от вызова методов из заголовка 


Номер 3
Укажите правила корректного определения связок в MC#:

Ответ:

 (1) все формальные параметры каналов и обработчика в связке должны иметь различные идентификаторы 

 (2) формальные параметры каналов и обработчиков не могут содержать модификаторов ref или out 

 (3) каналы и обработчики в связке не могут быть объявлены как static 


Упражнение 11:
Номер 1
Укажите верные утверждения в отношении movable-методов:

Ответ:

 (1) они планируются для исполнения на другой машине (узле кластера или машине GRID-сети) 

 (2) вызов этих заканчивается, по существу, мгновенно 

 (3) они никогда не возвращают результатов 


Номер 2
Укажите что будет выведено на экран в результате выполнения следующего примера?
	
	class B {
	public int x;
	public B() { }
	movable Compute() {
   	x = 2;
	}}

	class A {
	public static void Main( String[] args ) {
   	B b = new B();
   	b.x = 1;
   	Console.WriteLine( "Before: x = " + b.x );
   	b.Compute();
   	Console.WriteLine( "After: x = " + b.x );
	}}
		
									

Ответ:

 (1) Before: x = 1 After: x = 2  

 (2) Before: x = 1 After: x = 1  

 (3) Before: x = 2 After: x = 1  


Номер 3
Какие правила определения связок в языке MC#?

Ответ:

 (1) в связке только один заголовок метода может иметь тип возвращаемого значения, отличный от Channel 

 (2) все формальные параметры во всех заголовках методов в связке должны иметь различные идентификаторы 

 (3) заголовки методов в связке не могут быть объявлены как static 


Упражнение 12:
Номер 1
Какая функциональная часть Runtime-системы языка MC# контролирует выполнение movable-методов?

Ответ:

 (1) Communicator 

 (2) WorkNode 

 (3) ResourceManager 


Номер 2
Какой класс Runtime-системы языка MC# реализует вычислительную сессию?

Ответ:

 (1) Handler 

 (2) Serialization 

 (3) Session 


Номер 3
Укажите основные функции компилятора MC#:

Ответ:

 (1) замена вызовов async-методов на порождение соответствующих локальных потоков 

 (2) замена вызовов movable-методов на запросы менеджеру распределения ресурсов 

 (3) замена канальных вызовов на пересылку соответствующих сообщений по TCP-соединению 

 (4) добавление выражений, создающих объекты типа Channel и Handler для каждого из каналов и обработчиков 




Главная / Программирование / Параллельное программирование для многоядерных процессоров / Тест 13