игра брюс 2048
Главная / Операционные системы / Основы операционных систем - фундаментальные принципы / Тест 6

Основы операционных систем - фундаментальные принципы - тест 6

Упражнение 1:
Номер 1
Условные переменные в мониторах Хора обычно используются:

Ответ:

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

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

 (3) для передачи данных между кооперативными процессами 


Номер 2
В функциях-методах мониторов Хора обычно реализовываются

Ответ:

 (1) только прологи и эпилоги критических участков 

 (2) критические участки взаимодействующих процессов 

 (3) только различные операции над внутренними переменными монитора (как операции над внутренними переменными класса в ООП) 


Номер 3
Какие из перечисленных механизмов синхронизации могут быть реализованы в вычислительной системе с помощью специальных системных вызовов? 

Ответ:

 (1) семафоры Дейкстры 

 (2) мониторы Хора 

 (3) очереди сообщений 


Упражнение 2:
Номер 1
Рассмотрим механизм синхронизации, называемый бинарными семафорами. Бинарный семафор — это семафор, который может принимать всего два значения: 0 и 1. Операция P для этого семафора выглядит так же, как и для семафора Дейкстры, а операция V заключается в простом присваивании семафору значения 1. Бинарные семафоры

Ответ:

 (1) обладают меньшими возможностями, чем семафоры Дейкстры 

 (2) обладают большими возможностями, чем семафоры Дейкстры 

 (3) эквивалентны семафорам Дейкстры 


Номер 2
Для чего нужен синхронизирующий процесс при реализации семафоров через очереди сообщений?

Ответ:

 (1) для удобства реализации 

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

 (3) для обеспечения атомарности операций P и V 


Номер 3
Отладка программ, содержащих очень большое количество семафоров, затруднена, так как:

Ответ:

 (1) требует специального программного обеспечения 

 (2) ошибочные ситуации трудновоспроизводимы 

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


Упражнение 3:
Номер 1

В вычислительной системе моделируется движение самосвалов от карьера к заводу и обратно по дороге со стареньким мостом. Движение по мосту может осуществляться в обоих направлениях, но на нем не может быть одновременно более трех машин, иначе он рухнет. Каждый самосвал представлен программистом процессом следующей структуры:

Semaphore mutex = 1; Semaphore not_full = 0; Shared int n_on_bridge = 0; Процесс i-й самосвал: While (1) { <доехать до моста> P(mutex); if(n_on_bridge == 3) P(not_full); else n_on_bridge = n_on_bridge+1; V(mutex); <проехать по мосту> P(mutex); if(n_on_bridge == 3) V(not_full); n_on_bridge = n_on_bridge-1; V(mutex); <доехать до места назначения> }

Что может произойти в результате такого моделирования?


Ответ:

 (1) мост рухнет 

 (2) образуется пробка 

 (3) ничего особенного не произойдет, модель будет работать нормально 


Номер 2

В вычислительной системе моделируется движение самосвалов от карьера к заводу и обратно по дороге со стареньким мостом. Движение по мосту может осуществляться в обоих направлениях, но на нем не может быть одновременно более трех машин, иначе он рухнет. Каждый самосвал представлен программистом процессом следующей структуры:

Процесс i-й самосвал (i=0,1,2,…): if(i == 0){ <создать очередь сообщений A> send(A, msg); send(A, msg); send(A, msg); } While (1) { <доехать до моста> receive(A, msg); <проехать по мосту> send(A, msg); <доехать до места назначения> }

Что может произойти в результате такого моделирования?


Ответ:

 (1) мост рухнет 

 (2) образуется пробка 

 (3) ничего особенного не произойдет, модель будет работать нормально 


Номер 3

В маленьком ресторанчике, где готовят пиццу, работают отец и три его дочери. Приготовление пиццы требует трех ингредиентов: теста, соуса и сыра. Одна дочь должна непрерывно поставлять тесто, вторая - соус, третья - тертый сыр. Приготовление пиццы происходит следующим образом: первая дочь формирует из теста основу пиццы, после чего вторая дочь намазывает лепешку соусом, а третья - посыпает сыром. Отец берет подготовленную дочерьми пиццу и помещает ее в печь. Используя классические мониторы Хора, программист предложил следующую модель приготовления пиццы с помощью четырех процессов: для отца и для каждой из дочерей.

monitor make_pizza {      condition c[3];      make_item(int i){ if(i != 0 )c[i-1].wait; <выполнить свою работу> if(i != 3)c[i].signal; else <выставить на продажу>    } } Процесс i-й работник i = 0,1,2,3; i=3 — соответствует отцу    While (1) { make_pizza.make_item(i); }

Что может произойти в результате такого моделирования?


Ответ:

 (1) посетитель может не дождаться пиццы из-за возникновения тупиковой ситуации 

 (2) посетитель может получить пиццу без какого-либо ингредиента 

 (3) будут накапливаться забытые недоделанные пиццы 

 (4) ничего особенного не произойдет, модель будет работать нормально 




Главная / Операционные системы / Основы операционных систем - фундаментальные принципы / Тест 6