المحاضرة 04 · الزمن والسببية

الزمن في الأنظمة الموزعة

كيف نقرّب ساعات الحواسيب من وقت مشترك؟ وكيف نعرف أن حدثًا سبّب آخر حين لا توجد ساعة عالمية مثالية؟ تبدأ الإجابة بالساعات الفيزيائية وتنتهي بساعات Lamport والمتجهات السببية.

35 شريحة 18/5/2026 الفصل 14 Dr. Eng. Mohssen Abboud
01 · الصورة الكبرى

لماذا لا تكفي ساعة الحاسوب؟ الشرائح 1–4

داخل عملية واحدة نرى تسلسلًا واضحًا، لكن مقارنة طابعين زمنيين من عقدتين مختلفتين لا تثبت بالضرورة أي الحدثين سبق الآخر؛ فالساعات تنجرف ولا تتزامن بصورة مثالية.

لماذا نقيس الزمن بدقة؟

  • لمعرفة وقت وقوع حدث وربط الساعة بمصدر خارجي؛ المثال المذكور هو تدقيق عمليات التجارة الإلكترونية.
  • لخوارزميات تعتمد على المزامنة، مثل المحافظة على اتساق قواعد البيانات.
  • لوضع طوابع تكفي لترتيب أحداث العقد المختلفة، وهي المهمة التي تصطدم بحدود الدقة والتأخير.

مسارا الحل

  1. زمن فيزيائي: نقرب الساعات من مصدر خارجي أو من بعضها.
  2. زمن منطقي: نرتب السببية من ترتيب الأحداث والرسائل، لا من عقارب ساعة حقيقية.
بيانات المصدر المحاضرة مأخوذة من الفصل 14 من كتاب Distributed Systems: Concepts and Design للمؤلفين G. Coulouris وJ. Dollimore وT. Kindberg وG. Blair، منشورات Addison Wesley/Pearson Education. وتغطي: المقدمة؛ الساعات والأحداث وحالات العمليات؛ مزامنة الساعات الفيزيائية؛ الزمن والساعات المنطقية.
02 · النموذج

العملية والحالة والحدث والتاريخ الشرائح 5–7

نمثل النظام بمجموعة من N عمليات p_i حيث i=1..N. الرمز الأول في الشريحة 5 ظهر كـ£ بسبب الخط، والمقصود مجموعة العمليات.

الحالة s_i

الوضع الحالي للعملية p_i، مثل قيم متغيراتها.

الفعل Action

عملية تغيّر الحالة، أو ترسل/تستقبل رسالة مع عملية أخرى p_j.

الحدث e

وقوع فعل واحد؛ نقطة ذرية في تاريخ التنفيذ.

e →i e′   ,   history(pi) = hi = <ei0, ei1, ei2, …> العلاقة المحلية «يحدث قبل» ترتيب كلي لأحداث العملية نفسها، والتاريخ هو تسلسلها بهذا الترتيب.

لختم الأحداث نحتاج ساعة. تعد الساعة العتادية اهتزازات بلورة ذات تردد اسمي محدد، ويقرأ نظام التشغيل زمن العتاد H_i(t) ليولد الزمن البرمجي C_i(t) الذي يوضع على الحدث كتاريخ ووقت.

03 · الساعات الفيزيائية

الانجراف والتفاوت الشريحة 8

Clock drift · انجراف الساعة

اختلاف معدل سير الساعة لأن البلورات تهتز بمعدلات مختلفة. لا يمكن تجنبه كليًا؛ ولذلك يزداد الخطأ مع مرور الزمن إن لم نعد المزامنة.

Clock skew · تفاوت الساعتين

الفرق اللحظي بين قراءتي أي ساعتين. هو لقطة للفرق الآن، بينما drift يصف اختلاف المعدل الذي يصنع هذا الفرق.

أربع ساعات على الشبكة نفسها

حركة توضيحية
اختلاف سرعات الدوران يمثل drift، واختلاف مواضع العقارب في لحظة واحدة يمثل skew.
04 · المزامنة

خارجية، داخلية، وحدود تأخير معلومة الشرائح 9–13

لكي نعرف زمن أحداث العمليات نزامن ساعاتها. ليكن C_i ساعة العملية p_i، وI فترة من الزمن الحقيقي، وD>0 حد المزامنة.

|S(t) - Ci(t)| < D مزامنة خارجية: كل ساعة دقيقة ضمن D من مصدر الزمن S، لكل i ولكل t ضمن I.
|Ci(t) - Cj(t)| < D مزامنة داخلية: كل ساعتين تتفقان ضمن D لكل i وj وكل t ضمن I.
نتيجة مهمة إذا كانت كل ساعة دقيقة خارجيًا ضمن D فإن أي ساعتين تتفقان داخليًا ضمن 2D، لأن |Ci−Cj| ≤ |Ci−S| + |S−Cj| < 2D.

بروتوكول نظام متزامن

يرسل المرسل M(t). إذا كان تأخير النقل الحقيقي T_trans محصورًا بين ثابتين معلومين min < T_trans < max، يختار المستقبل منتصف المجال:

Creceiver = t + (min + max) / 2 أقصى انحراف محتمل عن وقت الوصول الحقيقي = (max − min) / 2.

لماذا نختار المنتصف؟

الشريحة 13
t t + min t + (min+max)/2 t + max
وصول الرسالة الحقيقي عند t+Ttrans يقع بين الطرفين؛ المنتصف يصغر أسوأ خطأ ويجعله متساويًا في الاتجاهين.

مسألة محلولة: حد الخطأ

أرسل المرسل طابعًا t=1000 ms، وكان min=8 ms وmax=12 ms. ما القراءة والحد الأقصى للخطأ؟

  1. التأخير المقدر: (8+12)/2 = 10 ms.
  2. تضبط القراءة على 1010 ms.
  3. الوصول الحقيقي بين 1008 و1012 ms.
  4. أقصى خطأ: (12−8)/2 = 2 ms.
05 · خوارزميات المزامنة

Cristian وBerkeley الشرائح 14–17

طريقة Cristian: مزامنة خارجية

يستخدم Cristian خادم وقت لمزامنة الحواسيب خارجيًا. يناسب نظام العميل/الخادم عندما يكون زمن الذهاب والإياب صغيرًا مقارنة بالدقة المطلوبة.

  1. ترسل العملية p طلب الوقت في الرسالة m_r.
  2. يضع الخادم S القيمة t في الرد m_t عند آخر نقطة ممكنة قبل الإرسال، لتقليل زمن معالجة الخادم غير المحسوب.
  3. تسجل p زمن الجولة الكامل T_round من إرسال الطلب إلى استقبال الرد.
  4. بافتراض تماثل تقريبي للمسارين، تقدّر زمن الوصول بالقيمة t + T_round/2.
estimated time = t in mt + Tround/2

دورة طلب الوقت

العملية pتقيس Tround
خادم الوقت Sيرد بـmt(t)
الطلب mr يذهب إلى الخادم، والرد المختوم يعود؛ مصدر الخطأ الأكبر هو عدم تماثل تأخيري الذهاب والعودة.
مثال سريع إذا كان طابع الخادم 10:00:00.500 وزمن الجولة 40 ms فالتقدير عند وصول الرد 10:00:00.520.

خوارزمية Berkeley: مزامنة داخلية

  1. يُنتخب حاسوب منسق ليعمل رئيسًا Master.
  2. يستطلع الرئيس دوريًا ساعات العبيد Slaves، فترد كل عقدة بقراءتها.
  3. يقدر الرئيس قراءات العقد مع تعويض زمن الذهاب والإياب، بصورة شبيهة بـCristian.
  4. يحسب متوسط قراءات العبيد مع قراءته؛ وبذلك تتعادل ميول الساعات السريعة والبطيئة.
  5. يرسل لكل عبد مقدار التعديل المطلوب، وقد يكون موجبًا أو سالبًا، ثم تعدّل العقدة ساعتها.
  6. يستبعد القراءات المعيبة: يختار مجموعة ساعات لا تختلف بأكثر من حد محدد ويأخذ متوسطها فقط.
  7. إذا فشل الرئيس يُنتخب رئيس آخر يؤدي وظيفة سلفه بالطريقة نفسها.
الفرق الجوهري Cristian يقرب العميل من مصدر وقت خارجي، أما Berkeley فيجعل أعضاء المجموعة متفقين داخليًا حتى إن لم يكن المتوسط مطابقًا لـUTC.
06 · وقت الإنترنت

بروتوكول NTP الشرائح 18–23

يعرّف Network Time Protocol بنية خدمة وبروتوكولًا لتوزيع معلومات الزمن عبر الإنترنت.

المزامنة الخارجية

مزامنة العملاء المنتشرين عبر الإنترنت بدقة مع UTC، المعيار الدولي لحفظ الوقت.

الاعتمادية

تحمل فقد الاتصال فترات طويلة عبر خوادم زائدة ومسارات زائدة بينها.

القابلية للتوسع

خدمة أعداد كبيرة مع إعادة مزامنة متكررة بما يكفي لتعويض معدلات انجراف معظم الحواسيب.

الأمن

الحماية من التدخل الخبيث أو العرضي في خدمة الوقت.

شبكة المزامنة وطبقات Strata

تعيد التهيئة عند الفشل
Stratum 1مصدر UTC مباشر 2 2 3 3 3 3
الأسهم تمثل تحكم المزامنة والأرقام تمثل strata. الأولية في الطبقة 1 متصلة مثلًا بساعة راديوية تستقبل UTC؛ الثانوية تتزامن معها، وتستمر السلسلة حتى خوادم الورقة في محطات عمل المستخدمين. تعاد تهيئة المسارات إذا تعذر الوصول إلى خادم.
أوضاع مزامنة خوادم NTP
الوضعكيف يعمل؟الاستخدام والدقة
Multicastيبث خادم أو أكثر الوقت دوريًا إلى حواسيب LAN، فتضبط ساعاتها مع افتراض تأخير صغير.LAN سريعة؛ دقة منخفضة لكنها كافية لأغراض كثيرة.
Procedure-callيقبل الخادم طلبات ويرد بطابعه الزمني الحالي، مثل Cristian.أعلى دقة من Multicast.
Symmetricيتبادل زوج خوادم رسائل تحمل معلومات توقيت.خوادم LAN والمستويات العليا، أي أرقام strata الأقل؛ وهو الأعلى دقة.
07 · السببية

علاقة happened-before الشرائح 24–27

من منظور عملية واحدة ترتب الساعة المحلية الأحداث ترتيبًا فريدًا. لكن لأن الساعات لا تتزامن تمامًا عبر النظام فلا يجوز استعمال الزمن الفيزيائي وحده لترتيب كل زوج عشوائي من الأحداث. عرّف Lamport أصغر علاقة سببية تحقق:

HB1 · محليًا

إذا وجدت p_i بحيث e →_i e′، إذن e → e′.

HB2 · الرسالة

لكل رسالة m: send(m) → receive(m).

HB3 · الانتقالية

إذا e→e′ وe′→e″، إذن e→e″.

ثلاث عمليات ورسالتان

الزمن الفيزيائي →
p1p2p3 abcdef m1m2
a→b، وb→c بالرسالة، وc→d، وd→f بالرسالة؛ إذن بالانتقالية a→f. أما a وe فلا سلسلة بينهما، لذلك a || e.
التزامن لا يعني الوقت نفسه كتابة e || e′ تعني أنه لا e→e′ ولا e′→e. إنها غياب علاقة سببية يمكن إثباتها، لا اشتراط وقوع الحدثين في اللحظة الفيزيائية نفسها.
08 · الزمن المنطقي

ساعات Lamport والترتيب الكلي الشرائح 28–30

ساعة Lamport عداد برمجي متزايد رتيبًا L_i، ولا يلزم أن تكون له أي علاقة بساعة فيزيائية.

LC1 · كل حدث

قبل الحدث في p_i: L_i := L_i + 1، ثم يختم الحدث.

LC2 · الرسائل

المرسل يرفق t=L_i. المستقبل يطبق L_j := max(L_j,t) ثم LC1؛ أي مباشرة max(L_j,t)+1.

e → e′ ⇒ L(e) < L(e′) السببية تفرض ترتيب طوابع Lamport.
L(e) < L(e′) ⇒ (e → e′) or (e || e′) العكس غير مضمون؛ صغر الرقم لا يثبت السببية.

حل مثال الشرائح خطوة بخطوة

  1. في p1: يأخذ a=1، ثم b=2 ويرسل m1 بالطابع 2.
  2. يستقبل p2 الرسالة عند c: max(0,2)+1=3.
  3. الحدث التالي d=4 ويرسل m2 بالطابع 4.
  4. في p3 يقع الحدث المستقل e=1.
  5. عند استقبال m2: f=max(1,4)+1=5.
a=1, b=2, c=3, d=4, e=1, f=5

تحويل الطابع إلى ترتيب كلي

لحدث في p_i نستخدم الزوج (T_i,i). نقارن الزمن أولًا، وعند التعادل نكسر التعادل برقم العملية:

(Ti, i) < (Tj, j) iff Ti < Tj or (Ti = Tj and i < j) مفيد لبعض التطبيقات، لكنه ترتيب اصطلاحي للأحداث المتزامنة ولا ينشئ سببية حقيقية.
09 · كشف التزامن

الساعات المتجهة الشرائح 31–35

طور Mattern وFidge الساعات المتجهة لتجاوز حقيقة أن L(e)<L(e′) لا تكفي لاستنتاج e→e′. تحتفظ كل عملية p_i بمتجه V_i طوله N.

قواعد الخوارزمية
القاعدةالتنفيذالمعنى
VC1V_i[j]=0 لكل i,j=1..N.لا معرفة سابقة بأحداث أي عملية.
VC2قبل ختم حدث: V_i[i] := V_i[i]+1.تسجل العملية حدثها المحلي.
VC3ترفق نسخة t=V_i بكل رسالة.تنقل معرفتها السببية.
VC4عند الاستقبال: V_i[j] := max(V_i[j],t[j]) لكل مركبة، ثم تزيد مركبة المستقبل وفق VC2.دمج المعرفتين ثم تسجيل حدث الاستقبال.

مقارنة المتجهات

  • V=V′ إذا تساوت كل المركبات.
  • V≤V′ إذا V[j]≤V′[j] لكل j.
  • إذا لم يكن V≤V′ ولا V′≤V فهما غير قابلين للمقارنة، وكتبت الشرائح ذلك V<>V′.
تنبيه علمي مهم عن الشريحة 32 كتبت الشريحة حرفيًا أن V<V′ يعني V[j]<V′[j] في كل المركبات. التعريف القياسي اللازم لصحة العلاقة السببية هو: V≤V′ وV≠V′، أي لا تزيد أي مركبة وتكون واحدة على الأقل أصغر. فمثلًا V(b)=(2,0,0) وV(c)=(2,1,0) مع أن b→c؛ اشتراط الصغر في كل المركبات سيرفضهما خطأ.
V(e) < V(e′) ⇔ e → e′     |     V(e) <> V(e′) ⇔ e || e′ باستخدام تعريف الصغر القياسي: ≤ مركبيًا مع اختلاف مركبة واحدة على الأقل.

مثال ثلاث عمليات الشرائح 33–34

الحدثالعمليةكيف حُسب؟الطابع
ap1أول حدث محلي(1,0,0)
bp1حدث وإرسال m1(2,0,0)
cp2دمج طابع m1 ثم زيادة المركبة الثانية(2,1,0)
dp2حدث وإرسال m2(2,2,0)
ep3حدث مستقل(0,0,1)
fp3max((0,0,1),(2,2,0)) ثم زيادة الثالثة(2,2,2)

V(a)<V(f) يعكس a→f. أما V(c)=(2,1,0) وV(e)=(0,0,1) فلا أحدهما ≤ الآخر، ولذلك c||e.

المثال المركب بأربع عمليات الشريحة 35

تبدأ A,B,C,D جميعًا بـ[0,0,0,0]. اتجاه الرسائل في الصورة: M1:A→B، M2:B→C، M3:D→A، M4:A→C، M5:C→B، M6:D→B.

الحل الكامل بالترتيب السببي الممكن
الحدثالحسابالطابع النهائي
A يرسل M1زيادة مركبة A[1,0,0,0]
B يستقبل M1دمج الصفر مع طابع M1 ثم زيادة B[1,1,0,0]
B يرسل M2زيادة B[1,2,0,0]
C يرسل M5زيادة C من البداية[0,0,1,0]
C يستقبل M2دمج [0,0,1,0] و[1,2,0,0] ثم زيادة C[1,2,2,0]
B يستقبل M5دمج [1,2,0,0] و[0,0,1,0] ثم زيادة B[1,3,1,0]
D يرسل M3زيادة D[0,0,0,1]
A يستقبل M3دمج [1,0,0,0] و[0,0,0,1] ثم زيادة A[2,0,0,1]
A يرسل M4زيادة A[3,0,0,1]
C يستقبل M4دمج [1,2,2,0] و[3,0,0,1] ثم زيادة C[3,2,3,1]
D يرسل M6زيادة D مرة ثانية[0,0,0,2]
B يستقبل M6دمج [1,3,1,0] و[0,0,0,2] ثم زيادة B[1,4,1,2]
10 · التغطية الكاملة

خريطة الشرائح 1–35 الشرائح 1–35

هذه الخريطة تثبت موضع كل معلومة، بما فيها الفواصل المتكررة والصورة الممسوحة في الشريحة الأخيرة.

1 · العنوان والمصدر

Time in distributed system، التاريخ، الفصل 14، الكتاب والمؤلفون والناشر والمدرس.

2 · موضوعات المحاضرة

المقدمة؛ الساعات والأحداث والحالات؛ المزامنة الفيزيائية؛ الزمن والساعات المنطقية.

3 · أهمية الزمن

القياس، المصدر الخارجي، تدقيق التجارة الإلكترونية، اتساق قواعد البيانات، ومشكلة ترتيب أحداث عقد مختلفة.

4 · فاصل الموضوعات

إعادة الخريطة والانتقال إلى الساعات والأحداث وحالات العمليات.

5 · نموذج النظام

N عمليات، الحالة s_i، المتغيرات، والأفعال التي تغير الحالة أو ترسل/تستقبل رسالة.

6 · الحدث والتاريخ

e، الترتيب المحلي الكلي →_i، وhistory(p_i)=h_i.

7 · ساعة الحاسوب

البلورة، H_i(t)، C_i(t)، وختم الأحداث بتاريخ ووقت.

8 · Drift وSkew

اختلاف معدل البلورات، حتمية الانجراف، والفرق اللحظي بين ساعتين مع رسم أربع ساعات شبكية.

9 · فاصل المزامنة

إعادة الموضوعات والانتقال إلى مزامنة الساعات الفيزيائية.

10 · المزامنة الخارجية

C_i وI وS وصيغة |S(t)−C_i(t)|<D.

11 · المزامنة الداخلية

|C_i(t)−C_j(t)|<D، والدقة D تعطي اتفاقًا ضمن 2D.

12 · نظام متزامن

M(t)، الضبط على t+T_trans، حدّا min وmax، واختيار المتوسط.

13 · حد الخطأ

الخط الزمني t+min إلى t+max، وانحراف (max−min)/2.

14 · متى نستخدم Cristian؟

خادم وقت، عميل/خادم، وزمن جولة قصير مقارنة بالدقة المطلوبة.

15 · بروتوكول Cristian

m_r وm_t(t) وT_round، آخر لحظة لوضع t، والتقدير t+T_round/2.

16 · Berkeley (1)

الرئيس، الاستطلاع، رد العبيد، تقدير زمن الجولة، والمتوسط متضمنًا قراءة الرئيس.

17 · Berkeley (2)

تعديلات موجبة/سالبة، استبعاد المعيب، المتوسط المتحمل للأخطاء، وانتخاب رئيس بديل.

18 · NTP وأهدافه

تعريف البنية والبروتوكول، UTC، الاعتمادية، الخوادم والمسارات الزائدة.

19 · توسع NTP وأمنه

أعداد كبيرة، إعادة المزامنة لتعويض drift، والحماية من التدخل الخبيث أو العرضي.

20 · معمارية NTP

خوادم أولية وثانوية، synchronization subnet، strata 1 و2 و3، وخوادم ورقة بمحطات العمل.

21 · شجرة الطبقات

الأسهم للتحكم والأرقام للطبقات، وإعادة التهيئة عند تعذر الوصول.

22 · Multicast وProcedure-call

LAN سريعة ودقة منخفضة للأول، وشبه Cristian ودقة أعلى للثاني.

23 · Symmetric

تبادل زوج خوادم معلومات التوقيت، LAN والطبقات العليا/الأرقام الأقل، وأعلى دقة.

24 · فاصل الزمن المنطقي

إعادة الموضوعات والانتقال إلى الزمن والساعات المنطقية.

25 · قواعد happened-before

قصور الزمن الفيزيائي، HB1 وHB2 وHB3، والترتيب السببي.

26 · مثال السببية

p1,p2,p3؛ a→b، b→c عبر m1، c→d، d→f عبر m2، ومن ثم a→f.

27 · الأحداث المتزامنة

a وe غير مرتبطين بسلسلة رسائل؛ التعريف والرمز a||e.

28 · خوارزمية Lamport

العداد الرتيب، LC1، وإرفاق الطابع والدمج عند الاستقبال في LC2.

29 · دلالة Lamport

الاتجاه المضمون والعكس غير المضمون، ومثال القيم 1,2,3,4,1,5.

30 · الترتيب الكلي

الطابع (T_i,i) والمقارنة المعجمية وكسر التعادل برقم العملية.

31 · خوارزمية المتجهات

Mattern وFidge، المتجه V_i، وقواعد VC1–VC4.

32 · دلالة المتجهات

المساواة والترتيب وعدم المقارنة، والتكافؤ مع السببية والتزامن، والتنبيه العلمي الموضح أعلاه.

33 · مثال المتجهات

طوابع a–f: (1,0,0)، (2,0,0)، (2,1,0)، (2,2,0)، (0,0,1)، (2,2,2).

34 · قراءة المثال

V(a)<V(f) يعكس a→f، وعدم مقارنة V(c) وV(e) يثبت c||e.

35 · مثال A–D المصور

ست رسائل M1–M6 ومتجهات رباعية؛ حُلّ كاملًا في جدول القسم السابق لأن تفاصيله داخل صورة ممسوحة.