шпаргалка

b.Comunic.intre

[ Назад ]
Procesul pгrinte face operaюii similare astfel оncвt descriptorul intrгrii standard sг devinг descriptorul de citire al pipe-lui pentru to_par. Analog, procesul fiu о?i оnchide fi?ierul standard de ie?ire (descriptor 0) ?i duplicг descriptorul de citire al pipe-lui pentru to_child. Оntrucвt primul slot liber оn UFDT este slotul fostuului fi?ier standard de intare, intrarea standard a fiului devine descriptorul de citire al pipe-lui pentru to_child. Fiul face operaюii similare astfel оncвt descriptorul ie?irii standard sг devinг descriptorul de scriere al pipe-lui pentru to_par. Ambele procese оnchid descriptorii de fi?iere оntor?i de apelarea lui pipe. Ca rezultat, cвnd pгrintele scrie la ie?irea standard, acesta scrie оn pipe-ul to_child ?i trimite date procesului fiu, care cite?te pipe-ul ca pe propria intrare standard. Cвnd procesul fiu scrie la ie?irea standard, acesta scrie оn pipe-ul to_par ?i trimite datele procesului pгrinte care cite?te pipe-ul ca pe propria intrare standard. Procesele astfel schimbг mesaje prin intermediul pipe-urilor.
Rezulatele programului sunt acelea?i, indiferent de ordinea оn care procesele о?i executг apelurile sistem respective. Adicг nu este nici o diferenюг, dacг pгrintele se оntoarce din fork оnaintea fiului sau dupг el. Similar, nu este nici o diferenюг faюг de ordinea relativг оn care procesele о?i esxecutг apelurile sistem pвnг cвnd acestea intrг оn ciclu: structurile nucleului sunt identice. Dacг procesul fiu executг apelul sistem read оnainte ca procesul pгrinte sг facг write, procesul fiu va intra оn a?teptare pвnг cвnd procesul pгrinte scrie pipe-ul ?i este trezit. Dacг procesul pгrinte scrie pipe-ul оnainte ca procesul fiu sг citeascг pipe-ul, pгrintele nu va citi de la intrarea sa standard pвnг cвnd fiul nu de la cite?te intrarea sa standard ?i nu scrie la ie?irea sa standard. Din acest motiv, ordinea de execuюie este fixatг: fiecare proces terminг un apel sistem read ?i write ?i nu poate termina urmгtorul apel sistem read pвnг cвnd celгlalt proces nu terminг un apel sistem read ?i write.
Pгrintele face exit dupг cele 15 iteraюii aflate оn ciclu; apoi fiul cite?te "sfвr?it de fi?ier" (EOF), deoarece pipe-ul nu are procese care sг scrie, ?i terminг.

КАТЕГОРИИ:

Network | английский | архитектура эвм | астрономия | аудит | биология | вычислительная математика | география | Гражданское право | демография | дискретная математика | законодательство | история | квантовая физика | компиляторы | КСЕ - Концепция современного естествознания | культурология | линейная алгебра | литература | математическая статистика | математический анализ | Международный стандарт финансовой отчетности МСФО | менеджмент | метрология | механика | немецкий | неорганическая химия | ОБЖ | общая физика | операционные системы | оптимизация в сапр | органическая химия | педагогика | политология | правоведение | прочие дисциплины | психология (методы) | радиоэлектроника | религия | русский | сертификация | сопромат | социология | теория вероятностей | управление в технических системах | физкультура | философия | фотография | французский | школьная математика | экология | экономика | экономика (словарь) | язык Assembler | язык Basic, VB | язык Pascal | язык Си, Си++ |