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