Главная / Операционные системы /
Основы операционных систем. Практикум / Тест 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