Medziprocesorova komunikacia Flashcards
(150 cards)
Z akych dovodov posobia procesy na seba?
- neumyselne - vykonavaju sa bez ohladu na ine procesy, sutazia o prostriedky
- nepriamo - vedia o existencii inych procesov, ale nevedia nic viac, napriklad pouzivaju rovnaky subor
- umyselne - spolupracuju, komunikuju
Co je komunikacia medzi procesmi?
Vymena dat
Co je synchronizacia vykonavania procesov?
treba dodrzat poradie vykonania procesov
Co je subeh?
Procesy pristupujúce do spoločnej pamäti sa môžu vykonávať súbežne, respektíve v ľubovoľnom poradí.
Kedy moze nastat prerusenie procesu?
Medzi dvoma instrukciami, pouzitie instrukcie je atomicke
Aky je rozdiel medzi CISC a RISC pri incremente a++?
V CISC je to atomicka operacia inc a, v RISC treba po jednom loadnut, inc a ulozit, teda sa moze preplanovat hocikedy medzi
Ako nazyvame situaciu, ked viacero procesov pristupuje k rovnakej premennej a vysledok zavisi od poradia?
subeh - race condition
Preco race condition?
Procesy sutazia o pristup a vysledok zavisi od toho kto bude prvy
Co je vzajomne vylucovanie?
Aby k spolocnemu prostriedku pristupoval v kazdom case najviac jeden z procesov
Ako sa nazyva usek programu kde sa vykonava pristup k spolocnemu prostriedku?
kriticka oblast
Program v kritickej oblasti smie byt teda vykonavany kolko procesmi?
jednym
Riesenia mut. ex. vieme rozdelit na ..?
cisto programove a hardverove
Ake su hw implementacie mut ex?
zakazanie preruseni, specialne instrukcie a pod
Aka je nevyhoda zakazania prerusenia?
neobsluhuju sa chyby od I/O
v pripade chyby sa zasekne cely system
kedy sa pouziva zakazanie prerusenia?
v jadre na kratke casy
Co je problem ked ma system viac CPU?
zakazanie preruseni na jednom z nich nestaci
Aky je problem pri CISC a viac CPU pri atomickej operacii inc?
subezne moze pristupit k pamati proces na inom procesore
Ake je hw riesenie pri viac CPU?
uzamknutie zbernice signalom lock ako prefix instrukcie
Ake je riesenie “spolocny zamok”?
spolocna premenna lock
enterCS: while(lock); lock = TRUE
leaveCS: lock = FALSE
Aky je problem pre spolocny zamok?
ak bude proces preplanovany tesne po tom co ukonci while a pred tym co nastavi LOCK na true, teda tam vedia vojst oba procesy
Ake je riesenie “striedanie”?
spolocna premenna urcuje kto smie vojst, pred vstupom proces pocka kym bude na rade
enum {P, Q} turn = P;
EnterCS_P() { while(turn != P); }
LeaveCS_P() { turn = Q; }
pre Q rovnako
Preco je zle riesenie “striedanie”?
Vynucujeme striedanie, teda ak jeden treba castejsie, tak to zbytocne spomaluje
Aka je druha podmienka riesenia mut ex?
Proces ktorý sa \vykonáva mimo kritickej oblasti nesmie brániť iným vstúpiť do nej.
Ake je riesenie “zamok pre kazdy proces”?
kazdy proces ma svoju premennu ktora indikuje potrebu vstupit do kritickej oblasti, pred vstupom ju nastavi na true a pocka ak aj druhy bude chciet vojst
inP, inQ = FALSE
EnterCS_P() { inP = TRUE; while(inQ); }
LeaveCS_P() { inP = FALSE; }