игра брюс 2048
Главная / Программирование / Intel Parallel Programming Professional (Introduction) / Тест 3

Intel Parallel Programming Professional (Introduction) - тест 3

Упражнение 1:
Номер 1
Отметьте ресурсы, которые потоки одного процесса используют совместно

Ответ:

 (1) глобальные и статические переменные 

 (2) локальные переменные 

 (3) динамически распределяемая память 

 (4) открытые файлы и сетевые соединения 

 (5) аппаратный контекст 


Номер 2
Отметьте частные ресурсы каждого потока

Ответ:

 (1) глобальные и статические переменные 

 (2) локальные переменные 

 (3) динамически распределяемая память 

 (4) открытые файлы и сетевые соединения 

 (5) аппаратный контекст 


Номер 3
Как называется состояние потока, обладающего всеми необходимыми ресурсами, в том числе возможностью использования ЦП

Ответ:

 (1) выполнение 

 (2) готов к выполнению 

 (3) ожидание 


Номер 4
Как называется состояние потока, заблокированного до наступления некоторого внешнего события

Ответ:

 (1) выполнение 

 (2) готов к выполнению 

 (3) ожидание 


Упражнение 2:
Номер 1
Как называется состояние потока, обладающего всеми необходимыми для выполнения ресурсами за исключением ресурса "время ЦП"

Ответ:

 (1) выполнение 

 (2) готов к выполнению 

 (3) ожидание 


Номер 2
Что отвечает за управление процессами?

Ответ:

 (1) ядро операционной системы 

 (2) библиотека пользовательского уровня 

 (3) возможны оба варианта 


Номер 3
Что отвечает за управление потоками?

Ответ:

 (1) ядро операционной системы 

 (2) библиотека пользовательского уровня 

 (3) возможны оба варианта 


Номер 4
Что включает в себя контекст процесса?

Ответ:

 (1) дескриптор процесса 

 (2) дескриптор потока 

 (3) аппаратный контекст 

 (4) контекст ввода-вывода 

 (5) описание структуры и содержимое виртуального адресного пространства 


Упражнение 3:
Номер 1
Что включает в себя контекст потока?

Ответ:

 (1) дескриптор процесса 

 (2) дескриптор потока 

 (3) аппаратный контекст 

 (4) контекст ввода-вывода 

 (5) описание структуры и содержимое виртуального адресного пространства 


Номер 2
Отметьте действия, не относящиеся к операции создания процесса

Ответ:

 (1) обнуление статистике в дескрипторе создаваемого объекта 

 (2) создание виртуального адресного пространства 

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

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

 (5) создание и инициализация аппаратного контекста 

 (6) выделение ресурсов по умолчанию 


Номер 3
Отметьте действия, не относящиеся к операции создания потока

Ответ:

 (1) обнуление статистике в дескрипторе создаваемого объекта 

 (2) создание виртуального адресного пространства 

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

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

 (5) создание и инициализация аппаратного контекста 

 (6) выделение ресурсов по умолчанию 


Номер 4
Какой тип планирования преимущественно используется в интерактивных системах?

Ответ:

 (1) долгосрочное 

 (2) среднесрочное 

 (3) краткосрочное 


Упражнение 4:
Номер 1
Укажите оценку сложности современных алгоритмов планирования (N – число субъектов планирования).

Ответ:

 (1) O(N2) 

 (2) O(NlogN) 

 (3) O(N) 

 (4) O(logN) 

 (5) O(log logN) 

 (6) O(1) 


Номер 2
Укажите наиболее важный критерий оценки алгоритмов планирования в системах пакетной обработки.

Ответ:

 (1) справедливость 

 (2) масштабируемость 

 (3) пропускная способность 

 (4) эффективность 

 (5) время отклика 

 (6) время ожидания 


Номер 3
Укажите наиболее важный критерий оценки алгоритмов планирования в интерактивных системах.

Ответ:

 (1) справедливость 

 (2) масштабируемость 

 (3) пропускная способность 

 (4) эффективность 

 (5) время отклика 

 (6) время ожидания 


Номер 4
Выберите утверждения, верные для невытесняющих алгоритмов планирования.

Ответ:

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

 (2) поток может быть вытеснен в любой не зависящий от него момент 

 (3) поток может использовать ЦП в течение неограниченного времени 

 (4) возможно голодание потоков 

 (5) реализация алгоритма предъявляет требования к архитектуре 


Упражнение 5:
Номер 1
Выберите утверждения, верные для вытесняющих алгоритмов планирования.

Ответ:

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

 (2) поток может быть вытеснен в любой не зависящий от него момент 

 (3) поток может использовать ЦП в течение неограниченного времени 

 (4) возможно голодание потоков 

 (5) реализация алгоритма предъявляет требования к архитектуре 


Номер 2
На значения каких критериев влияет размер кванта при использовании вытесняющих алгоритмов планирования?

Ответ:

 (1) баланс 

 (2) накладные расходы 

 (3) масштабируемость 

 (4) оборотное время 

 (5) время отклика 


Номер 3
При использовании каких алгоритмов планирования возможно голодание потоков?

Ответ:

 (1) First Come – First Served 

 (2) Shortest Job First 

 (3) Shortest Remaining Time 

 (4) Round Robin 

 (5) приоритетное планирование 


Номер 4
В каких случаях возможно возникновение гонок (races) при использовании несколькими потоками одного объекта данных?

Ответ:

 (1) два или более потоков читают данные 

 (2) один или более потоков читают данные, один поток изменяет данные 

 (3) два или более потоков изменяют данные 

 (4) ни один из перечисленных случаев 


Упражнение 6:
Номер 1
В каких случаях обязательно возникают гонки (races) при использовании несколькими потоками одного объекта данных?

Ответ:

 (1) два или более потоков читают данные 

 (2) один или более потоков читают данные, один поток изменяет данные 

 (3) два или более потоков изменяют данные 

 (4) ни один из перечисленных случаев 


Номер 2
Укажите положения, верные для решения задачи взаимного исключения, основанного на прерываниях.

Ответ:

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

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

 (3) можно использовать в прикладных программах современных операционных систем общего назначения (Windows, UNIX,…) 

 (4) можно использовать на многопроцессорных системах 


Номер 3
Укажите положения, верные для алгоритма Петерсона решения задачи взаимного исключения.

Ответ:

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

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

 (3) можно использовать в прикладных программах современных операционных систем общего назначения (Windows, UNIX,…) 

 (4) можно использовать на многопроцессорных системах 


Номер 4
Укажите положения, верные для решений задачи взаимного исключения, основанного на использовании специальных команд ЦП (Test&Set, Swap,…).

Ответ:

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

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

 (3) можно использовать в прикладных программах современных операционных систем общего назначения (Windows, UNIX,…) 

 (4) можно использовать на многопроцессорных системах 


Упражнение 7:
Номер 1
Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что программа может выполняться как на однопроцессорных, так и на многопроцессорных системах, и одновременно могут выполняться несколько потоков-поставщиков и потоков-потребителей. Укажите, является ли решение корректным (всегда работает), или (2) некорректным (никогда не работает), или (3) опасным (в одних случаях работает, в других – нет). 

Semaphore Empty = N;  // Буфер содержит N записейFull = 0;() {
 Empty.P();
 AddItemToBuffer();
 Full.V();
}() {
 Full.P();
 RemoveItemFromBuffer();
 Empty.V();
}

Ответ:

 (1) приведенное решение корректно 

 (2) приведенное решение некорректно 

 (3) приведенное решение опасно 


Номер 2
Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что программа может выполняться как на однопроцессорных, так и на многопроцессорных системах, и одновременно могут выполняться несколько потоков-поставщиков и потоков-потребителей. Укажите, является ли решение корректным (всегда работает), или (2) некорректным (никогда не работает), или (3) опасным (в одних случаях работает, в других – нет). 

Semaphore Empty = N;  // Буфер содержит N записейM = unlocked;Full = 0;() {
 M.Lock();
 Empty.P();
 AddItemToBuffer();
 Full.V();
 M.Unlock();
}() {
 M.Lock();
 full.P();
 RemoveItemFromBuffer();
 empty.V();
 M.Unlock();
}

Ответ:

 (1) приведенное решение корректно 

 (2) приведенное решение некорректно 

 (3) приведенное решение опасно 


Номер 3
Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что программа может выполняться как на однопроцессорных, так и на многопроцессорных системах, и одновременно могут выполняться несколько потоков-поставщиков и потоков-потребителей. Укажите, является ли решение корректным (всегда работает), или (2) некорректным (никогда не работает), или (3) опасным (в одних случаях работает, в других – нет). 

int Bufs = N;  // Буфер содержит N записейM = unlocked;Full = 0;() {
 while(1){
   M.Lock();
   if( Bufs != 0 ){
     Bufs --;
     M.Unlock();
     break;
   }
   M.Unlock();
 }
 AddItemToBuffer();
}() {
 while(1){
   M.Lock();
   if( Bufs != N ){
     Bufs ++;
     M.Unlock();
     break;
   }
   M.Unlock();
 }
 RemoveItemFromBuffer();
}

Ответ:

 (1) приведенное решение корректно 

 (2) приведенное решение некорректно 

 (3) приведенное решение опасно 


Номер 4
Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что программа может выполняться как на однопроцессорных, так и на многопроцессорных системах, и одновременно могут выполняться несколько потоков-поставщиков и потоков-потребителей. Укажите, является ли решение корректным (всегда работает), или (2) некорректным (никогда не работает), или (3) опасным (в одних случаях работает, в других – нет). 

Semaphore Empty = N;  // Буфер содержит N записейFull = 0;() {
 Empty.P();
 DisableInterrupts();
 AddItemToBuffer();
 EnableInterrupts();
 Full.V();
}() {
 Full.P();
 DisableInterrupts();
 RemoveItemFromBuffer();
 EnableInterrupts();
 Empty.V();
}

Ответ:

 (1) приведенное решение корректно 

 (2) приведенное решение некорректно 

 (3) приведенное решение опасно 


Номер 5
Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что программа может выполняться как на однопроцессорных, так и на многопроцессорных системах, и одновременно могут выполняться несколько потоков-поставщиков и потоков-потребителей. Укажите, является ли решение корректным (всегда работает), или (2) некорректным (никогда не работает), или (3) опасным (в одних случаях работает, в других – нет). 

Semaphore Empty = N;  // Буфер содержит N записейM = unlocked;Full = 0;() {
 Empty.P();
 M.Lock();
 AddItemToBuffer();
 M.Unlock();
 Full.V();
}() {
 full.P();
 M.Lock();
 RemoveItemFromBuffer();
 M.Unlock();
 empty.V();
}

Ответ:

 (1) приведенное решение корректно 

 (2) приведенное решение некорректно 

 (3) приведенное решение опасно 


Упражнение 8:
Номер 1
Рассмотрим задачу использования кольцевого буфера (задача "поставщик-потребитель"). Функции AddItemToBuffer и RemoveItemFromBuffer модифицируют структуру данных, разделяемую поставщиком и потребителем, и не используют синхронизацию. Предположим, что программа может выполняться как на однопроцессорных, так и на многопроцессорных системах, и одновременно могут выполняться несколько потоков-поставщиков и потоков-потребителей. Укажите, является ли решение корректным (всегда работает), или (2) некорректным (никогда не работает), или (3) опасным (в одних случаях работает, в других – нет). 

Semaphore Empty = N;  // Буфер содержит N записейM = unlocked;Full = 0;() {
 Empty.P();
 M.Lock();
 AddItemToBuffer();
 Full.V();
}() {
 full.P();
 M.Lock();
 RemoveItemFromBuffer();
 empty.V();
}

Ответ:

 (1) приведенное решение корректно 

 (2) приведенное решение некорректно 

 (3) приведенное решение опасно 


Номер 2
Рассмотрим решение задачи взаимного исключения для двух потоков (i - номер потока). Какое из условий постановки задачи взаимного исключения может быть нарушено в предлагаемом решении?

bool flag0 = false, flag1 = false;( true ){
 while( flag1-i )
   ;
 flagi = true;
 CSi();
 flagi = false;
 NCSi();
}

Ответ:

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

 (2) критические секции не должны иметь приоритета в отношении друг друга 

 (3) остановка какого-либо потока вне его критической секции не должна влиять на дальнейшую работу потоков по использованию критического ресурса 

 (4) решение о вхождении потоков в их критические секции не откладывается на неопределенный срок, а является конечным во времени 

 (5) предлагаемое решение является корректным и не нарушает ни одного из перечисленных условий 


Номер 3
Рассмотрим решение задачи взаимного исключения для двух потоков (i - номер потока). Какое из условий постановки задачи взаимного исключения может быть нарушено в предлагаемом решении?

bool flag0 = false, flag1 = false;( true ){
 flagi = true;
 while( flag1-i )
   ;
 CSi();
 flagi = false;
 NCSi();
}

Ответ:

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

 (2) критические секции не должны иметь приоритета в отношении друг друга 

 (3) остановка какого-либо потока вне его критической секции не должна влиять на дальнейшую работу потоков по использованию критического ресурса 

 (4) решение о вхождении потоков в их критические секции не откладывается на неопределенный срок, а является конечным во времени 

 (5) предлагаемое решение является корректным и не нарушает ни одного из перечисленных условий 


Номер 4
Рассмотрим решение задачи взаимного исключения для двух потоков (i - номер потока). Какое из условий постановки задачи взаимного исключения может быть нарушено в предлагаемом решении?

bool flag0 = true, flag1 = false;( true ){
 while( !flagi )
   ;
 CSi();
 flagi = false;
 flag1-i = true;
 NCSi();
}

Ответ:

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

 (2) критические секции не должны иметь приоритета в отношении друг друга 

 (3) остановка какого-либо потока вне его критической секции не должна влиять на дальнейшую работу потоков по использованию критического ресурса 

 (4) решение о вхождении потоков в их критические секции не откладывается на неопределенный срок, а является конечным во времени 

 (5) предлагаемое решение является корректным и не нарушает ни одного из перечисленных условий 


Номер 5
Рассмотрим решение задачи взаимного исключения для двух потоков (i - номер потока). Какое из условий постановки задачи взаимного исключения может быть нарушено в предлагаемом решении?

bool flag0 = false, flag1 = false;flag2 = 0;( true ){
 flagi = true;
 flag2 = 1 - i;
 while( flag1-i && flag2 == 1 - i )
   ;
 CSi();
 flagi = false;
 NCSi();
}

Ответ:

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

 (2) критические секции не должны иметь приоритета в отношении друг друга 

 (3) остановка какого-либо потока вне его критической секции не должна влиять на дальнейшую работу потоков по использованию критического ресурса 

 (4) решение о вхождении потоков в их критические секции не откладывается на неопределенный срок, а является конечным во времени 

 (5) предлагаемое решение является корректным и не нарушает ни одного из перечисленных условий 




Главная / Программирование / Intel Parallel Programming Professional (Introduction) / Тест 3