игра брюс 2048
Главная / Программирование / Common Intermediate Language и системное программирование в Microsoft .NET / Тест 14

Common Intermediate Language и системное программирование в Microsoft .NET - тест 14

Упражнение 1:
Номер 1
Существует проблема одновременного конкурирующего доступа нескольких потоков к общим разделяемым данным при реализации:

Ответ:

 (1) мультипрограммирования 

 (2) мультипроцессирования 

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


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

Ответ:

 (1) малопоточных 

 (2) многопоточных 

 (3) максипоточных 

 (4) минипоточных 


Номер 3
В данном примере:#include <stdio.h>
#include <process.h>
#include <windows.h>

#define THREADS 10
#define ASIZE  10000000
static LONG   array[ASIZE];
unsigned __stdcall ThreadProc( void *param )
{
  int  i;
  for ( i = 0; i < ASIZE; i++ ) array[i]++;
  return 0;
}

int main( void )
{
  HANDLE  	hThread[THREADS];
  unsigned 	dwThread;
  int 			i, errs;
  for ( i = 0; i < THREADS; i++ )
    hThread[i] = (HANDLE)_beginthreadex(
      NULL, 0, ThreadProc, NULL, 0, &dwThread
    );
  WaitForMultipleObjects( THREADS, hThread, TRUE, INFINITE );
  for ( i = 0; i < THREADS; i++ ) CloseHandle( hThread[i] );
  for ( errs=i=0; i<ASIZE; i++ )
    if ( array[i] != THREADS ) errs++;
  if ( errs ) printf("Detected %d errors!\n", errs );
  return 0;
}несколько потоков увеличивают значение элементов общего массива на:

Ответ:

 (1)

 (2)

 (3)

 (4)

 (5)

 (6)


Упражнение 2:
Номер 1
Операция увеличения на 1 элемента массива требует:

Ответ:

 (1) запроса для считывания данных из памяти 

 (2) увеличения значения на 1 

 (3) удаления данных из памяти 

 (4) сохранения данных в памяти 


Номер 2
Какие существуют в Windows способы решения проблем, возникающих при осуществлении одновременного доступа разных потоков к общим данным:

Ответ:

 (1) атомарные операции 

 (2) критические секции 

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

 (4) ожидающие таймеры 


Номер 3
В достаточно частых случаях необходимо обеспечить конкурентный доступ к какой-либо целочисленной переменной, являющейся счетчиком. Тогда бывает достаточно просто обеспечить:

Ответ:

 (1) атомарность выполнения операций увеличения 

 (2) атомарность выполнения операций уменьшения 

 (3) атомарность выполнения операций изменения значения переменной 


Упражнение 3:
Номер 1
Атомарные операции обычно имеют более-менее близкое соответствие:

Ответ:

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

 (2) с системными командами 

 (3) со специальными командами 

 (4) с командами памяти 


Номер 2
В командах процессора операции с блокировкой шины имеют префикс:

Ответ:

 (1) unlock 

 (2) lock 

 (3) close 

 (4) unclose 


Номер 3
Для увеличения значения целочисленных переменных ОС Windows предоставляет следующие функции:

Ответ:

 (1) InterlockedDecrement, InterlockedDecrement64 

 (2) InterlockedExchange, InterlockedExchange64 

 (3) InterlockedIncrement, InterlockedIncrement64 

 (4) InterlockedCompareExchange, InterlockedCompareExchangePointer 

 (5) InterlockedExchangeAdd, InterlockedExchangePointer 


Упражнение 4:
Номер 1
Для уменьшения значения целочисленных переменных ОС Windows предоставляет следующие функции:

Ответ:

 (1) InterlockedDecrement, InterlockedDecrement64 

 (2) InterlockedCompareExchange, InterlockedCompareExchangePointer 

 (3) InterlockedExchange, InterlockedExchange64 

 (4) InterlockedIncrement, InterlockedIncrement64 


Номер 2
Какая функция подготавливает начальный указатель на LIFO список:

Ответ:

 (1) InterlockedPushEntrySList 

 (2) InterlockedPopEntrySList 

 (3) InterlockedFlushSList 

 (4) InitializeSListHead 


Номер 3
Некоторый фрагмент кода, который должен выполняться в исключительном режиме - никакие другие потоки и процессы не должны выполнять этот же фрагмент в то же время называется:

Ответ:

 (1) "системная секция" 

 (2) "критическая секция" 

 (3) "главная секция" 

 (4) "блочная секция" 


Упражнение 5:
Номер 1
В Windows предусмотрен специальный тип данных, предназначенный для реализации критических секций, который называет:

Ответ:

 (1) CRITICAL_SECTION 

 (2) STOP_SECTION 

 (3) ATTENTION_SECTION 

 (4) DRIFT_SECTION 


Номер 2
Работа с критическими секциями сводится к следующим основным функциям:

Ответ:

 (1) EnterCriticalSection 

 (2) LeaveCriticalSection 

 (3) InterlockedCriticalSection 

 (4) EnterlockedCriticalSection 


Номер 3
Какая функция позволяет при необходимости не входить в секцию, если она занята:

Ответ:

 (1) TryEnterCriticalSection 

 (2) EnterCriticalSection 

 (3) InitializeCriticalSectionAndSpinCount 

 (4) SetCriticalSectionSpinCount 

 (5) InitializeCriticalSection 


Упражнение 6:
Номер 1
С точки зрения операционной системы объекты ядра, поддерживающие интерфейс синхронизируемых объектов, могут находиться в следующих состояниях:

Ответ:

 (1) signaled 

 (2) nonsignaled 

 (3) stop 

 (4) nonstop 


Номер 2
Функции проверяют состояние ожидаемого объекта или ожидаемых объектов и продолжают выполнение, только если:

Ответ:

 (1) объекты заняты 

 (2) объекты свободны 

 (3) объекты в ожидании 

 (4) объекты вызваны 


Номер 3
Функция WaitForSingleObject осуществляет ожидание:

Ответ:

 (1) одного объекта 

 (2) двух объектов 

 (3) трех объектов 

 (4) четырех объектов 

 (5) пяти объектов 


Упражнение 7:
Номер 1
Некоторый объект, который может находиться в одном из двух состояний: занятом или свободном - это:

Ответ:

 (1) событие 

 (2) семафор 

 (3) мьютекс 


Номер 2
Для ограничения числа потоков, имеющих одновременный доступ к какому-либо ресурсу предназначены:

Ответ:

 (1) семафоры 

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

 (3) мьютексы 

 (4) события 


Номер 3
Для захвата мьютекса используется функция:

Ответ:

 (1) ReleaseMutex 

 (2) WaitFor... 

 (3) CreateMutex 

 (4) GetMutex 


Упражнение 8:
Номер 1
Какие объекты предназначены для выполнения операций через заданные промежутки времени или в заданное время:

Ответ:

 (1) специальные таймеры 

 (2) системные таймеры 

 (3) ожидающие таймеры 


Номер 2
Таймеры могут:

Ответ:

 (1) служить в качестве синхронизирующих объектов 

 (2) могут вызывать указанную разработчиком функцию 

 (3) служить в качестве асинхронизирующих объектов 

 (4) не могут вызывать указанную разработчиком функцию 


Номер 3
При необходимости точно планировать время выполнения надо использовать следующие функции:

Ответ:

 (1) timeGetSystemTime 

 (2) timeBeginPeriod 

 (3) CreateMutex 

 (4) EnterCriticalSection 


Упражнение 9:
Номер 1
Процессы в Windows определяют адресное пространство, которое будет использоваться:

Ответ:

 (1) всеми потоками, работающими в этой процедуре 

 (2) всеми потоками, работающими в этом процессе 

 (3) всеми процессами, работающими в этом потоке 

 (4) всеми процедурами, работающими в этом потоке 


Номер 2
Основные механизмы взаимодействия процессов могут быть разделены на следующие группы:

Ответ:

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

 (2) проецирование файлов в адресное пространство процесса 

 (3) использование файловых объектов 

 (4) механизмы, ориентированные на обмен оконными сообщениями 

 (5) RPC 

 (6) COM 


Номер 3
Надстройка, использующая проецирование для реальной передачи данных - это:

Ответ:

 (1) Pipes 

 (2) RPC 

 (3) COM 

 (4) Sockets 


Упражнение 10:
Номер 1
Для создания процессов используются функции:

Ответ:

 (1) CreateProcess, CreateProcessAsUser, CreateProcessWithLogonW, CreateProcessWithTokenW 

 (2) VirtualAlloc, VirtualFree, VirtualAllocEx, VirtualFreeEx, VirtualLock, VirtualUnlock 

 (3) CreateProcessAlloc, CreateProcessAllocEx, VirtualProcessWithLogonW, CreateProcessUnlock 


Номер 2
Для управления адресным пространством предназначены функции:

Ответ:

 (1) VirtualAlloc 

 (2) VirtualFree 

 (3) VirtualAllocEx 

 (4) VirtualFreeEx 

 (5) VirtualLock 

 (6) VirtualUnlock 


Номер 3
Для проецирования файла или его части в память предназначены функции:

Ответ:

 (1) MapViewOfFile 

 (2) MapViewOfFileEx 

 (3) UnmapViewOfFile 

 (4) CreateFileMapping 

 (5) OpenFileMapping 

 (6) LoadLibraryEx 


Упражнение 11:
Номер 1
Проецирование файлов используется:

Ответ:

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

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

 (3) для создания общей памяти 

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


Номер 2
Для явного сброса данных из оперативной памяти в файл можно использовать следующую функцию:

Ответ:

 (1) FlushViewOfFile 

 (2) UnmapViewOfFile 

 (3) VirtualAlloc 

 (4) CreateProcess 


Номер 3
Механизм проецирования файлов является базовым средством для передачи данных:

Ответ:

 (1) между адресными пространствами потоков 

 (2) между адресными пространствами процедур 

 (3) между адресными пространствами процессов 

 (4) между адресными пространствами секций 


Упражнение 12:
Номер 1
Работа с разделяемыми данными посредством проецирования файлов связана:

Ответ:

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

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

 (3) с объявлением специальных разделяемых секций в приложении 

 (4) с объявлением специальных не разделяемых секций в приложении 


Номер 2
В случае работы с разделяемыми данными посредством проецирования файлов связана с объявлением специальных разделяемых сегментов в приложении, которые:

Ответ:

 (1) будут не доступны для всех копий этого приложения 

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

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

 (4) будут общими для всех копий этого приложения 


Номер 3
Какие директивы для объявления разделяемого сегмента и помещаемых в него данных можно использовать в Microsoft Visual C++:

Ответ:

 (1) #pragma 

 (2) #close 

 (3) #open 

 (4) _ _special 

 (5) _ _declspec 




Главная / Программирование / Common Intermediate Language и системное программирование в Microsoft .NET / Тест 14