Рассмотрим следующий фрагмент кода:
|
Пусть u, v будут значениями, напечатанными родительским процессом, а x, y будут значениями, напечатанными дочерним процессом. Что из следующего является ИСТИННЫМ?
(А) и = х + 10 и V = у
(B) u = x + 10 и v! = Y
(C) U + 10 = х и V = у
(D) u + 10 = x и v! = Y
Ответ: (с)
Объяснение: fork () возвращает 0 в дочернем процессе и идентификатор процесса дочернего процесса в родительском процессе.
У ребенка (х), а = а + 5
В Parent (u) a = a — 5;
Следовательно, х = и + 10.
Физические адреса «а» в родительском и дочернем элементах должны быть разными. Но наша программа обращается к виртуальным адресам (при условии, что мы работаем в операционной системе, которая использует виртуальную память). Дочерний процесс получает точную копию родительского процесса, и виртуальный адрес «а» не изменяется в дочернем процессе. Таким образом, мы получаем одинаковые адреса как родительского, так и дочернего. Смотрите этот прогон, например.
Тест на этот вопрос
Рекомендуемые посты:
- Операционные системы | Управление процессами | Вопрос 6
- Операционные системы | Управление процессами | Вопрос 6
- Операционные системы | Управление процессами | Вопрос 6
- Операционные системы | Управление процессами | Вопрос 6
- Операционные системы | Управление памятью | Вопрос 1
- Операционные системы | Синхронизация процессов | Вопрос 5
- Состояния процесса в операционных системах
- Операционные системы | Системы ввода-вывода | Вопрос 5
- Операционные системы | Планирование ЦП | вопрос 2
- Операционные системы | Планирование ЦП | Вопрос 1
- Введение в управление процессами
- Многопоточные модели в управлении процессами
- Управление свободным пространством в операционной системе
- Операционные системы | Набор 16
- Операционные системы | Набор 17
0.00 (0%) 0 votes