Основы операционных систем
В вычислительной системе моделируется движение самосвалов от карьера к заводу и обратно по дороге со стареньким мостом. Движение по мосту может осуществляться в обоих направлениях, но на нем не может быть одновременно более трех машин, иначе он рухнет. Каждый самосвал представлен программистом процессом следующей структуры:
Процесс 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);<доехать до места назначения>}
Что может произойти в результате такого моделирования?
В маленьком ресторанчике, где готовят пиццу, работают отец и три его дочери. Приготовление пиццы требует трех ингредиентов: теста, соуса и сыра. Одна дочь должна непрерывно поставлять тесто, вторая - соус, третья - тертый сыр. Приготовление пиццы происходит следующим образом: первая дочь формирует из теста основу пиццы, после чего вторая дочь намазывает лепешку соусом, а третья - посыпает сыром. Отец берет подготовленную дочерьми пиццу и помещает ее в печь. Используя классические мониторы Хора, программист предложил следующую модель приготовления пиццы с помощью четырех процессов: для отца и для каждой из дочерей.
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);}
Что может произойти в результате такого моделирования?