See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Граф ожидания — Википедия

Граф ожидания

Материал из Википедии — свободной энциклопедии

Граф ожидания (или граф ожидания транзакций) — инструмент, используемый при разработке СУБД и многопоточных систем и используемый, в частности, для определения ситуации взаимной блокировки (deadlock). Фактически, граф ожидания транзакций представляет собой ориентированный двудольный граф, содержащий вершины двух типов:

  • вершины типа T, соответствующие транзакциям или выполняющимся потокам. Они образуют первую долю графа.
  • вершины типа R, соответствующие ресурсам и объектам, которые могут быть захвачены транзакциями. Они образуют вторую долю графа.

Дуги, или рёбра, графа ожидания также имеют двоякий смысл:

  • ребра (T,R), идущие из вершины-транзакции T в вершину-ресурс R, обозначают, что данный ресурс уже захвачен транзакцией
  • ребра (R,T), идущие из вершины-ресурса R в вершину-транзакцию T обозначают, что транзакция ожидает, пока ресурс R будет освобождён.

[править] Простейшие свойства

  1. Ресурс, который не имеет ни одного входящего ребра, является свободным.
  2. Если вершина-транзакция имеет некоторое ненулевое количество входящих ребёр, то соответсвующий процесс (собственно транзакция) находится в состоянии ожидания, то есть приостановлен и не может выполняться в текущий момент времени.
  3. Если между двумя транзакциями существует путь T_1 \rightarrow T_2, то транзакция T1 должна быть выполнена (завершена) раньше, чем начнётся выполнение T2, поскольку последняя требует освобождения некоторых ресурсов, захваченных транзакцией T1.

Из последнего свойства очевидным образом следует, что ситуации взаимной блокировки соотвествует цикл на графе ожидания.

[править] Источники

  1. Тупики, распознавание и разрушение


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -