Главная / Операционные системы /
Основы операционных систем. Практикум / Тест 5
Основы операционных систем. Практикум - тест 5
Упражнение 1:
Номер 1
Для совместной работы массив семафоров могут использовать:
Ответ:
 (1) только процесс-ребенок и его родитель, создавший массив семафоров 
 (2) близкородственные процессы, имеющие общего прародителя, создавшего массив семафоров 
 (3) произвольные процессы в системе 
Номер 2
Семафоры System V IPC по сравнению с семафорами Дейкстры являются:
Ответ:
 (1) более мощным средством синхронизации (все, что можно реализовать семафорами Дейкстры, можно реализовать с их помощью, а обратное не является верным) 
 (2) эквивалентными по возможностям 
 (3) менее мощным средством синхронизации (все, что можно реализовать с их помощью, можно реализовать семафорами Дейкстры, а обратное не является верным) 
Номер 3
Некоторый процесс, создавший массив семафоров, успешно выполнил системный вызов exec(). Будет ли доступен массив семафоров в новом пользовательском контексте:
Ответ:
 (1) нет 
 (2) да, без дополнительного запроса информации от других процессов или операционной системы 
 (3) да, после дополнительного запроса информации от других процессов или операционной системы 
Упражнение 2:
Номер 1
Какая из операций над семафорами SYSTEM V IPC является аналогом операции P(S) над семафорами Дейкстры:
Ответ:
 (1) A(S,n) 
 (2) D(S,n) 
 (3) Z(S) 
 (4) не имеет аналогов 
Номер 2
Какая из операций над семафорами SYSTEM V IPC является аналогом операции V(S) над семафорами Дейкстры:
Ответ:
 (1) A(S,n) 
 (2) D(S,n) 
 (3) Z(S) 
 (4) не имеет аналогов 
Номер 3
Какая из операций над семафорами SYSTEM V IPC является аналогом операции инициализации семафора Дейкстры:
Ответ:
 (1) A(S,n) 
 (2) D(S,n) 
 (3) Z(S) 
 (4) не имеет аналогов 
Упражнение 3:
Номер 1
Сразу после создания массива из трех семафоров с идентификатором IPC semid процесс выполняет следующие действия:
{
struct sembuf mybuf[2];
mybuf[0].sem_op = 2;
mybuf[0].sem_flg = 0;
mybuf[0].sem_num = 0;
mybuf[1].sem_op = 1;
mybuf[1].sem_flg = 0;
mybuf[1].sem_num = 2;
semop(semid, &mybuf, 2);
}
Чему будут равны значения семафоров с номерами 0 и 1 после их выполнения, если другие процессы в системе доступа к ним не имеют:
Ответ:
 (1) 2 и 1 
 (2) 2 и 0 
 (3) процесс не вернется из вызова semop 
Номер 2
Сразу после создания массива из трех семафоров с идентификатором IPC semid процесс выполняет следующие действия:
{
struct sembuf mybuf[2];
mybuf[0].sem_op = -1;
mybuf[0].sem_flg = 0;
mybuf[0].sem_num = 0;
mybuf[1].sem_op = 1;
mybuf[1].sem_flg = 0;
mybuf[1].sem_num = 1;
semop(semid, &mybuf, 2);
}
Чему будут равны значения семафоров с номерами 0 и 1 после их выполнения, если другие процессы в системе доступа к ним не имеют:
Ответ:
 (1) 0 и 1 
 (2) 1 и 0 
 (3) процесс не вернется из вызова semop 
Номер 3
Сразу после создания массива из трех семафоров с идентификатором IPC semid процесс выполняет следующие действия:
{
struct sembuf mybuf[2];
mybuf[0].sem_op = 2;
mybuf[0].sem_flg = 0;
mybuf[0].sem_num = 0;
mybuf[1].sem_op = 0;
mybuf[1].sem_flg = 0;
mybuf[1].sem_num = 1;
semop(semid, &mybuf, 2);
}
Чему будут равны значения семафоров с номерами 0 и 1 после их выполнения, если другие процессы в системе доступа к ним не имеют:
Ответ:
 (1) 2 и 0 
 (2) 0 и 2 
 (3) процесс не вернется из вызова semop