طابور الخادم الواحد: المحاكاة حدثا بعد حدث
يتتبع هذا القسم محاكاة حاسوبية لطابور FIFO بخادم واحد، حدثا بعد حدث. نبدأ من نظام فارغ عند t = 0، ونطبق روتيني حدث الوصول وحدث المغادرة، ونأخذ لقطة (snapshot) للتمثيل الحاسوبي بعد كل حدث من الأحداث الـ13، ونتوقف عند t = 8.6 حين ينتهي انتظار العميل السادس. بعد ذلك يحول مولد التقارير العدادات الإحصائية إلى مقاييس الأداء الثلاثة.
الأهداف
- استرجاع مفاهيم الطوابير التي تحتاجها المحاكاة: الوصول، والخدمة، والـ
FIFO، والتأخير في الطابور، وQ(t)وB(t). - وصف كيف ينظم برنامج محاكاة الأحداث المتقطعة حول تقديم الزمن إلى الحدث التالي.
- تسمية كل متغير حالة، وقائمة الأحداث، والعدادات الإحصائية الأربعة.
- تطبيق قواعد التحديث الدقيقة لروتيني حدث الوصول وحدث المغادرة.
- تتبع الأحداث الـ13 كلها في التمرين حتى
t = 8.6وإعداد اللقطة بعد كل حدث. - حساب
d(n)وq(n)وu(n)وشرح ما يقوله كل منها عن النظام.
1. مفاهيم الطوابير التي نحتاجها
العناصر الأساسية
- العميل (customer): أي شيء يصل إلى منشأة ويحتاج إلى خدمة (أشخاص، آلات، شاحنات، رسائل بريد إلكتروني).
- الخادم (server): أي مورد يقدم الخدمة. وهو في أي لحظة إما مشغول (busy) أو خامل (idle).
- مجتمع العملاء (calling population): العملاء المحتملون. نعده هنا غير محدود، فلا يتأثر معدل الوصول بعدد العملاء الموجودين فعلا في النظام.
- سعة النظام (system capacity): غير محدودة في هذا التمرين.
العميل الذي ينتظر يكون في الطابور. أما العميل الذي تجري خدمته فهو داخل النظام لكنه ليس في الطابور.
الوصول والخدمة
A_i هو زمن ما بين الوصول (inter-arrival time) للعميل i-1 والعميل i، ولذلك فإن زمن وصول أي عميل هو المجموع التراكمي لأزمنة ما بين الوصول. وS_i هو زمن الخدمة (service time) للعميل i. وكلاهما متغير عشوائي مستقل ومتماثل التوزيع (IID)، وغالبا ما يكون أسيا، وهو ما يعطي وصولا من نوع بواسون (Poisson). وفي هذا التمرين تعطى القيم كما يلي:
| العميل | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|---|---|---|---|---|---|---|---|---|---|
| A_i | 0.4 | 1.2 | 0.5 | 1.7 | 0.2 | 1.6 | 0.2 | 1.4 | 1.9 |
| زمن الوصول | 0.4 | 1.6 | 2.1 | 3.8 | 4.0 | 5.6 | 5.8 | 7.2 | 9.1 |
| S_i | 2.0 | 0.7 | 0.2 | 1.1 | 3.7 | 0.6 |
قاعدة الطابور
تحدد قاعدة الطابور (queue discipline) أي عميل منتظر يخدم بعد ذلك حين يتحرر الخادم: FIFO (الداخل أولا يخرج أولا)، أو LIFO (الداخل أخيرا يخرج أولا)، أو SIRO (الخدمة بترتيب عشوائي)، أو SPT (أقصر زمن معالجة أولا)، أو PR (حسب الأولوية). يستخدم هذا الدرس FIFO، فيبدأ العملاء الخدمة بترتيب وصولهم: العميل k يستخدم زمن الخدمة S_k، والموقع الأول في مصفوفة أزمنة الوصول يخص دائما العميل التالي في الخدمة.
التأخير في الطابور
التأخير (delay) D_i للعميل i هو الزمن الذي ينتظره في الطابور: زمن بدء خدمته مطروحا منه زمن وصوله. إذا كان الخادم خاملا عند وصوله تبدأ الخدمة فورا ويكون D_i = 0، ويبقى هذا التأخير الصفري تأخيرا مرصودا يحتسب. وبوجه عام: زمن المغادرة = زمن الوصول + التأخير + زمن الخدمة.
Q(t) و B(t)
Q(t)هو عدد العملاء في الطابور عند الزمنt(العميل الذي تجري خدمته لا يحتسب).B(t)هي دالة الانشغال (busy function):1إذا كان الخادم مشغولا عند الزمنt، و0إذا كان خاملا.
كلتا الدالتين لا تتغير إلا عند الأحداث، فهي ثابتة بين أي حدثين. والمساحة تحت كل منهما مجموع مستطيلات، مساحة كل منها القيمة مضروبة في طول الفترة.
مقاييس الأداء الثلاثة
d(n) = (D_1 + D_2 + ... + D_n) / n average delay in queue
q(n) = (area under Q(t) from 0 to T(n)) / T(n) time-average number in queue
u(n) = (area under B(t) from 0 to T(n)) / T(n) server utilization| المقياس | المعنى |
|---|---|
d(n) | متوسط الزمن الذي ينتظره العميل في الطابور (average delay in queue) |
q(n) | متوسط عدد العملاء المنتظرين موزونا بالزمن (time-average number in queue) |
u(n) | نسبة زمن التشغيل التي يكون فيها الخادم مشغولا (server utilization) |
يريد العملاء أن يكون d(n) وq(n) صغيرين، وتريد المؤسسة أن يكون u(n) مرتفعا. والتصميم الجيد يوازن بين الأمرين.
قاعدة التوقف
يتوقف التشغيل حين يرصد n تأخيرا في الطابور، وهنا n = 6. ويجري هذا الفحص بعد كل حدث. وفي التمرين يحدث ذلك عند t = 8.6، حين يغادر العميل 5 ويبدأ العميل 6 خدمته، فيكون T(6) = 8.6. لاحظ أن التشغيل لا يتوقف عند وصول العميل 6 (عند 5.6)، بل يتوقف حين ينتهي انتظاره.
2. كيف ينظم البرنامج
تقديم الزمن إلى الحدث التالي
- اضبط ساعة المحاكاة على 0.
- اقرأ أزمنة الأحداث المستقبلية من قائمة الأحداث.
- قدم الساعة إلى الحدث الأقرب، أي أصغر زمن في القائمة.
- نفذ ذلك الحدث، أي تحديث حالة النظام والعدادات الإحصائية، وربما قائمة الأحداث.
- كرر حتى تتحقق قاعدة التوقف.
تقفز الساعة من حدث إلى الحدث الذي يليه، وتتخطى فترات عدم النشاط. والبديل هو تقديم الزمن بخطوات ثابتة (fixed-increment time advance)، إذ تتحرك الساعة بخطوات متساوية ويعامل كل حدث يقع داخل الخطوة كأنه وقع في نهايتها، وهذا أقل دقة.
مكونات نموذج محاكاة الأحداث المتقطعة
| المكون | الدور |
|---|---|
| حالة النظام (system state) | متغيرات تصف النظام عند زمن معين |
| ساعة المحاكاة (simulation clock) | القيمة الحالية للزمن المحاكى |
| قائمة الأحداث (event list) | زمن الحدث التالي من كل نوع (هنا: الوصول التالي، والمغادرة التالية) |
| العدادات الإحصائية (statistical counters) | متغيرات تجمع المعلومات عن الأداء |
| روتين التهيئة (initialization routine) | يهيئ النموذج عند الزمن 0 |
| روتين التوقيت (timing routine) | يحدد الحدث التالي من قائمة الأحداث ويقدم الساعة إليه |
| روتين الحدث (event routine) | يتولى تحديث حالة النظام حين يقع حدث من نوعه (روتين لكل نوع) |
| روتين المكتبة (library routine) | يولد قيما عشوائية من التوزيعات المختارة |
| مولد التقارير (report generator) | يحسب مقاييس الأداء من العدادات في النهاية |
| البرنامج الرئيسي (main program) | يستدعي روتين التوقيت، ثم روتين الحدث المناسب، ويفحص شرط الانتهاء، ويستدعي مولد التقارير |
مسار البرنامج الرئيسي
Start
-> Initialization routine: clock = 0, initialize state, counters, event list
-> repeat:
Timing routine: next event type i, advance the clock
Event routine i: update state, update counters, schedule future events
(library routine supplies random variates)
Simulation over? no -> repeat yes -> Report generator
-> Report generator: compute estimates, write report
Stopفي هذا التمرين تعطى قيم A وS، فلا يفعل روتين المكتبة أكثر من تسليم القيمة التالية من القائمة.
3. التمثيل الحاسوبي
الحالة والساعة وقائمة الأحداث والعدادات
| الجزء | المتغير | المعنى | عند t = 0 |
|---|---|---|---|
| حالة النظام | حالة الخادم | 1 مشغول، 0 خامل | 0 |
| حالة النظام | العدد في الطابور | العملاء المنتظرون، دون العميل الذي تجري خدمته | 0 |
| حالة النظام | أزمنة الوصول | زمن وصول كل عميل منتظر، بترتيب الطابور | فارغة |
| حالة النظام | زمن آخر حدث | قيمة الساعة عند الحدث السابق | 0 |
| الساعة | الساعة | الزمن المحاكى الحالي | 0 |
| قائمة الأحداث | A | زمن الوصول التالي | 0.4 |
| قائمة الأحداث | D | زمن المغادرة التالية، ∞ حين يكون الخادم خاملا | ∞ |
| العدادات | عدد التأخيرات | التأخيرات المرصودة حتى الآن | 0 |
| العدادات | إجمالي التأخير | مجموع تلك التأخيرات | 0 |
| العدادات | المساحة تحت Q(t) | المساحة المتراكمة تحت منحنى طول الطابور | 0 |
| العدادات | المساحة تحت B(t) | المساحة المتراكمة تحت دالة الانشغال | 0 |
توجد مصفوفة أزمنة الوصول لأن البرنامج يحتاج زمن وصول العميل المنتظر حين يبدأ خدمته أخيرا، كي يحسب تأخيره.
القاعدة 1: تحديث المساحتين أولا، بالحالة السابقة
lag = clock - time_of_last_event
area_Q = area_Q + (number in queue BEFORE the event) x lag
area_B = area_B + (server status BEFORE the event) x lag
time_of_last_event = clockبين آخر حدث واللحظة الحالية بقي طول الطابور وحالة الخادم على قيمتيهما القديمتين، وذلك المستطيل هو ما يضيفه العداد.
القاعدة 2: روتين حدث الوصول
- تحديث المساحتين بالحالة السابقة.
- جدولة الوصول التالي:
A = clock + A_next. - إذا كان الخادم مشغولا: إضافة 1 إلى العدد في الطابور، وتخزين قيمة الساعة في الموقع الفارغ التالي من مصفوفة أزمنة الوصول.
- إذا كان الخادم خاملا: التأخير 0، فيضاف 1 إلى عدد التأخيرات (ويبقى إجمالي التأخير دون تغيير)، وتصبح حالة الخادم 1، وتجدول مغادرة هذا العميل
D = clock + S. - جعل زمن آخر حدث = الساعة.
القاعدة 3: روتين حدث المغادرة
- الطابور فارغ: تحديث المساحتين، وجعل حالة الخادم 0 و
D = ∞، وجعل زمن آخر حدث = الساعة. - الطابور غير فارغ: تحديث المساحتين، وحساب تأخير العميل الداخل إلى الخدمة بطرح الزمن الأول في المصفوفة من الساعة، وإضافته إلى إجمالي التأخير وإضافة 1 إلى عدد التأخيرات، وجدولة
D = clock + Sللعميل الجديد، وطرح 1 من العدد في الطابور وإزاحة كل زمن في المصفوفة موقعا واحدا إلى الأمام، وجعل زمن آخر حدث = الساعة.
يجب حساب التأخير قبل إزاحة المصفوفة، لأن زمن وصول العميل الداخل إلى الخدمة يبقى في الموقع الأول حتى الإزاحة فقط.
4. تتبع الأحداث حدثا بعد حدث
يضم التشغيل التالي 13 حدثا. نعرض لكل حدث: اختيار روتين التوقيت، ثم التحديثات بترتيبها، ثم اللقطة بعد الحدث. الأحداث الأربعة الأولى هي المعروضة في شرائح التمرين، وبقية الأحداث تكمل التمرين.
t = 0: التهيئة
الساعة = 0، والخادم خامل، والطابور فارغ، وكل العدادات 0. أول حدث هو دائما وصول، فيكون A = A1 = 0.4 وD = ∞.
| الساعة | حالة الخادم | العدد في الطابور | أزمنة الوصول | زمن آخر حدث | A | D | عدد التأخيرات | إجمالي التأخير | المساحة تحت Q(t) | المساحة تحت B(t) |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | فارغة | 0 | 0.4 | ∞ | 0 | 0 | 0 | 0 |
الحدث 1، t = 0.4: وصول العميل 1
- روتين التوقيت: قائمة الأحداث تحوي
A = 0.4وD = ∞، والأصغر هو A = 0.4. - المساحتان أولا، بالحالة السابقة:
Q: 0 + 0 x (0.4 - 0) = 0وB: 0 + 0 x (0.4 - 0) = 0. - جدولة الوصول التالي:
A = 0.4 + 1.2 = 1.6(باستخدامA2). - الخادم خامل: يبدأ العميل 1 خدمته فورا، والتأخير
0، وعدد التأخيرات = 1. - حالة الخادم = 1، وجدولة المغادرة:
D = 0.4 + 2.0 = 2.4(باستخدامS1).
| الساعة | حالة الخادم | العدد في الطابور | أزمنة الوصول | زمن آخر حدث | A | D | عدد التأخيرات | إجمالي التأخير | المساحة تحت Q(t) | المساحة تحت B(t) |
|---|---|---|---|---|---|---|---|---|---|---|
| 0.4 | 1 | 0 | فارغة | 0.4 | 1.6 | 2.4 | 1 | 0 | 0 | 0 |
الحدث 2، t = 1.6: وصول العميل 2
- روتين التوقيت: قائمة الأحداث تحوي
A = 1.6وD = 2.4، والأصغر هو A = 1.6. - المساحتان أولا، بالحالة السابقة:
Q: 0 + 0 x (1.6 - 0.4) = 0وB: 0 + 1 x (1.6 - 0.4) = 1.2. - جدولة الوصول التالي:
A = 1.6 + 0.5 = 2.1(باستخدامA3). - الخادم مشغول: ينضم العميل 2 إلى الطابور،
Q = 1، ويخزن الزمن1.6في الموقع 1.
| الساعة | حالة الخادم | العدد في الطابور | أزمنة الوصول | زمن آخر حدث | A | D | عدد التأخيرات | إجمالي التأخير | المساحة تحت Q(t) | المساحة تحت B(t) |
|---|---|---|---|---|---|---|---|---|---|---|
| 1.6 | 1 | 1 | 1.6 | 1.6 | 2.1 | 2.4 | 1 | 0 | 0 | 1.2 |
الحدث 3، t = 2.1: وصول العميل 3
- روتين التوقيت: قائمة الأحداث تحوي
A = 2.1وD = 2.4، والأصغر هو A = 2.1. - المساحتان أولا، بالحالة السابقة:
Q: 0 + 1 x (2.1 - 1.6) = 0.5وB: 1.2 + 1 x (2.1 - 1.6) = 1.7. - جدولة الوصول التالي:
A = 2.1 + 1.7 = 3.8(باستخدامA4). - الخادم مشغول: ينضم العميل 3 إلى الطابور،
Q = 2، ويخزن الزمن2.1في الموقع 2.
| الساعة | حالة الخادم | العدد في الطابور | أزمنة الوصول | زمن آخر حدث | A | D | عدد التأخيرات | إجمالي التأخير | المساحة تحت Q(t) | المساحة تحت B(t) |
|---|---|---|---|---|---|---|---|---|---|---|
| 2.1 | 1 | 2 | 1.6, 2.1 | 2.1 | 3.8 | 2.4 | 1 | 0 | 0.5 | 1.7 |
الحدث 4، t = 2.4: مغادرة العميل 1
- روتين التوقيت: قائمة الأحداث تحوي
A = 3.8وD = 2.4، والأصغر هو D = 2.4. - المساحتان أولا، بالحالة السابقة:
Q: 0.5 + 2 x (2.4 - 2.1) = 1.1وB: 1.7 + 1 x (2.4 - 2.1) = 2.0. - يغادر العميل 2 الطابور: التأخير
2.4 - 1.6 = 0.8، ويقرأ قبل الإزاحة. - إجمالي التأخير
0 + 0.8 = 0.8، وعدد التأخيرات = 2. - جدولة المغادرة:
D = 2.4 + 0.7 = 3.1(باستخدامS2). - Q = 1، وتزاح المصفوفة موقعا واحدا إلى الأمام: 2.1.
| الساعة | حالة الخادم | العدد في الطابور | أزمنة الوصول | زمن آخر حدث | A | D | عدد التأخيرات | إجمالي التأخير | المساحة تحت Q(t) | المساحة تحت B(t) |
|---|---|---|---|---|---|---|---|---|---|---|
| 2.4 | 1 | 1 | 2.1 | 2.4 | 3.8 | 3.1 | 2 | 0.8 | 1.1 | 2.0 |
الحدث 5، t = 3.1: مغادرة العميل 2
- روتين التوقيت: قائمة الأحداث تحوي
A = 3.8وD = 3.1، والأصغر هو D = 3.1. - المساحتان أولا، بالحالة السابقة:
Q: 1.1 + 1 x (3.1 - 2.4) = 1.8وB: 2.0 + 1 x (3.1 - 2.4) = 2.7. - يغادر العميل 3 الطابور: التأخير
3.1 - 2.1 = 1.0، ويقرأ قبل الإزاحة. - إجمالي التأخير
0.8 + 1.0 = 1.8، وعدد التأخيرات = 3. - جدولة المغادرة:
D = 3.1 + 0.2 = 3.3(باستخدامS3). - Q = 0، وتزاح المصفوفة موقعا واحدا إلى الأمام: فارغة.
| الساعة | حالة الخادم | العدد في الطابور | أزمنة الوصول | زمن آخر حدث | A | D | عدد التأخيرات | إجمالي التأخير | المساحة تحت Q(t) | المساحة تحت B(t) |
|---|---|---|---|---|---|---|---|---|---|---|
| 3.1 | 1 | 0 | فارغة | 3.1 | 3.8 | 3.3 | 3 | 1.8 | 1.8 | 2.7 |
الحدث 6، t = 3.3: مغادرة العميل 3
- روتين التوقيت: قائمة الأحداث تحوي
A = 3.8وD = 3.3، والأصغر هو D = 3.3. - المساحتان أولا، بالحالة السابقة:
Q: 1.8 + 0 x (3.3 - 3.1) = 1.8وB: 2.7 + 1 x (3.3 - 3.1) = 2.9. - الطابور فارغ: حالة الخادم = 0 و
D = ∞.
| الساعة | حالة الخادم | العدد في الطابور | أزمنة الوصول | زمن آخر حدث | A | D | عدد التأخيرات | إجمالي التأخير | المساحة تحت Q(t) | المساحة تحت B(t) |
|---|---|---|---|---|---|---|---|---|---|---|
| 3.3 | 0 | 0 | فارغة | 3.3 | 3.8 | ∞ | 3 | 1.8 | 1.8 | 2.9 |
الحدث 7، t = 3.8: وصول العميل 4
- روتين التوقيت: قائمة الأحداث تحوي
A = 3.8وD = ∞، والأصغر هو A = 3.8. - المساحتان أولا، بالحالة السابقة:
Q: 1.8 + 0 x (3.8 - 3.3) = 1.8وB: 2.9 + 0 x (3.8 - 3.3) = 2.9. - جدولة الوصول التالي:
A = 3.8 + 0.2 = 4.0(باستخدامA5). - الخادم خامل: يبدأ العميل 4 خدمته فورا، والتأخير
0، وعدد التأخيرات = 4. - حالة الخادم = 1، وجدولة المغادرة:
D = 3.8 + 1.1 = 4.9(باستخدامS4).
| الساعة | حالة الخادم | العدد في الطابور | أزمنة الوصول | زمن آخر حدث | A | D | عدد التأخيرات | إجمالي التأخير | المساحة تحت Q(t) | المساحة تحت B(t) |
|---|---|---|---|---|---|---|---|---|---|---|
| 3.8 | 1 | 0 | فارغة | 3.8 | 4.0 | 4.9 | 4 | 1.8 | 1.8 | 2.9 |
الحدث 8، t = 4.0: وصول العميل 5
- روتين التوقيت: قائمة الأحداث تحوي
A = 4.0وD = 4.9، والأصغر هو A = 4.0. - المساحتان أولا، بالحالة السابقة:
Q: 1.8 + 0 x (4.0 - 3.8) = 1.8وB: 2.9 + 1 x (4.0 - 3.8) = 3.1. - جدولة الوصول التالي:
A = 4.0 + 1.6 = 5.6(باستخدامA6). - الخادم مشغول: ينضم العميل 5 إلى الطابور،
Q = 1، ويخزن الزمن4.0في الموقع 1.
| الساعة | حالة الخادم | العدد في الطابور | أزمنة الوصول | زمن آخر حدث | A | D | عدد التأخيرات | إجمالي التأخير | المساحة تحت Q(t) | المساحة تحت B(t) |
|---|---|---|---|---|---|---|---|---|---|---|
| 4.0 | 1 | 1 | 4.0 | 4.0 | 5.6 | 4.9 | 4 | 1.8 | 1.8 | 3.1 |
الحدث 9، t = 4.9: مغادرة العميل 4
- روتين التوقيت: قائمة الأحداث تحوي
A = 5.6وD = 4.9، والأصغر هو D = 4.9. - المساحتان أولا، بالحالة السابقة:
Q: 1.8 + 1 x (4.9 - 4.0) = 2.7وB: 3.1 + 1 x (4.9 - 4.0) = 4.0. - يغادر العميل 5 الطابور: التأخير
4.9 - 4.0 = 0.9، ويقرأ قبل الإزاحة. - إجمالي التأخير
1.8 + 0.9 = 2.7، وعدد التأخيرات = 5. - جدولة المغادرة:
D = 4.9 + 3.7 = 8.6(باستخدامS5). - Q = 0، وتزاح المصفوفة موقعا واحدا إلى الأمام: فارغة.
| الساعة | حالة الخادم | العدد في الطابور | أزمنة الوصول | زمن آخر حدث | A | D | عدد التأخيرات | إجمالي التأخير | المساحة تحت Q(t) | المساحة تحت B(t) |
|---|---|---|---|---|---|---|---|---|---|---|
| 4.9 | 1 | 0 | فارغة | 4.9 | 5.6 | 8.6 | 5 | 2.7 | 2.7 | 4.0 |
الحدث 10، t = 5.6: وصول العميل 6
- روتين التوقيت: قائمة الأحداث تحوي
A = 5.6وD = 8.6، والأصغر هو A = 5.6. - المساحتان أولا، بالحالة السابقة:
Q: 2.7 + 0 x (5.6 - 4.9) = 2.7وB: 4.0 + 1 x (5.6 - 4.9) = 4.7. - جدولة الوصول التالي:
A = 5.6 + 0.2 = 5.8(باستخدامA7). - الخادم مشغول: ينضم العميل 6 إلى الطابور،
Q = 1، ويخزن الزمن5.6في الموقع 1.
| الساعة | حالة الخادم | العدد في الطابور | أزمنة الوصول | زمن آخر حدث | A | D | عدد التأخيرات | إجمالي التأخير | المساحة تحت Q(t) | المساحة تحت B(t) |
|---|---|---|---|---|---|---|---|---|---|---|
| 5.6 | 1 | 1 | 5.6 | 5.6 | 5.8 | 8.6 | 5 | 2.7 | 2.7 | 4.7 |
الحدث 11، t = 5.8: وصول العميل 7
- روتين التوقيت: قائمة الأحداث تحوي
A = 5.8وD = 8.6، والأصغر هو A = 5.8. - المساحتان أولا، بالحالة السابقة:
Q: 2.7 + 1 x (5.8 - 5.6) = 2.9وB: 4.7 + 1 x (5.8 - 5.6) = 4.9. - جدولة الوصول التالي:
A = 5.8 + 1.4 = 7.2(باستخدامA8). - الخادم مشغول: ينضم العميل 7 إلى الطابور،
Q = 2، ويخزن الزمن5.8في الموقع 2.
| الساعة | حالة الخادم | العدد في الطابور | أزمنة الوصول | زمن آخر حدث | A | D | عدد التأخيرات | إجمالي التأخير | المساحة تحت Q(t) | المساحة تحت B(t) |
|---|---|---|---|---|---|---|---|---|---|---|
| 5.8 | 1 | 2 | 5.6, 5.8 | 5.8 | 7.2 | 8.6 | 5 | 2.7 | 2.9 | 4.9 |
الحدث 12، t = 7.2: وصول العميل 8
- روتين التوقيت: قائمة الأحداث تحوي
A = 7.2وD = 8.6، والأصغر هو A = 7.2. - المساحتان أولا، بالحالة السابقة:
Q: 2.9 + 2 x (7.2 - 5.8) = 5.7وB: 4.9 + 1 x (7.2 - 5.8) = 6.3. - جدولة الوصول التالي:
A = 7.2 + 1.9 = 9.1(باستخدامA9). - الخادم مشغول: ينضم العميل 8 إلى الطابور،
Q = 3، ويخزن الزمن7.2في الموقع 3.
| الساعة | حالة الخادم | العدد في الطابور | أزمنة الوصول | زمن آخر حدث | A | D | عدد التأخيرات | إجمالي التأخير | المساحة تحت Q(t) | المساحة تحت B(t) |
|---|---|---|---|---|---|---|---|---|---|---|
| 7.2 | 1 | 3 | 5.6, 5.8, 7.2 | 7.2 | 9.1 | 8.6 | 5 | 2.7 | 5.7 | 6.3 |
الحدث 13، t = 8.6: مغادرة العميل 5
- روتين التوقيت: قائمة الأحداث تحوي
A = 9.1وD = 8.6، والأصغر هو D = 8.6. - المساحتان أولا، بالحالة السابقة:
Q: 5.7 + 3 x (8.6 - 7.2) = 9.9وB: 6.3 + 1 x (8.6 - 7.2) = 7.7. - يغادر العميل 6 الطابور: التأخير
8.6 - 5.6 = 3.0، ويقرأ قبل الإزاحة. - إجمالي التأخير
2.7 + 3.0 = 5.7، وعدد التأخيرات = 6. - جدولة المغادرة:
D = 8.6 + 0.6 = 9.2(باستخدامS6). - Q = 2، وتزاح المصفوفة موقعا واحدا إلى الأمام: 5.8, 7.2.
- عدد التأخيرات = 6 = n: تحققت قاعدة التوقف، ويعمل مولد التقارير.
| الساعة | حالة الخادم | العدد في الطابور | أزمنة الوصول | زمن آخر حدث | A | D | عدد التأخيرات | إجمالي التأخير | المساحة تحت Q(t) | المساحة تحت B(t) |
|---|---|---|---|---|---|---|---|---|---|---|
| 8.6 | 1 | 2 | 5.8, 7.2 | 8.6 | 9.1 | 9.2 | 6 | 5.7 | 9.9 | 7.7 |
التشغيل كله في جدول واحد
| الحدث | النوع | الساعة | حالة الخادم | العدد في الطابور | أزمنة الوصول | زمن آخر حدث | A | D | عدد التأخيرات | إجمالي التأخير | المساحة تحت Q(t) | المساحة تحت B(t) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | تهيئة | 0 | 0 | 0 | فارغة | 0 | 0.4 | ∞ | 0 | 0 | 0 | 0 |
| 1 | وصول 1 | 0.4 | 1 | 0 | فارغة | 0.4 | 1.6 | 2.4 | 1 | 0 | 0 | 0 |
| 2 | وصول 2 | 1.6 | 1 | 1 | 1.6 | 1.6 | 2.1 | 2.4 | 1 | 0 | 0 | 1.2 |
| 3 | وصول 3 | 2.1 | 1 | 2 | 1.6, 2.1 | 2.1 | 3.8 | 2.4 | 1 | 0 | 0.5 | 1.7 |
| 4 | مغادرة 1 | 2.4 | 1 | 1 | 2.1 | 2.4 | 3.8 | 3.1 | 2 | 0.8 | 1.1 | 2.0 |
| 5 | مغادرة 2 | 3.1 | 1 | 0 | فارغة | 3.1 | 3.8 | 3.3 | 3 | 1.8 | 1.8 | 2.7 |
| 6 | مغادرة 3 | 3.3 | 0 | 0 | فارغة | 3.3 | 3.8 | ∞ | 3 | 1.8 | 1.8 | 2.9 |
| 7 | وصول 4 | 3.8 | 1 | 0 | فارغة | 3.8 | 4.0 | 4.9 | 4 | 1.8 | 1.8 | 2.9 |
| 8 | وصول 5 | 4.0 | 1 | 1 | 4.0 | 4.0 | 5.6 | 4.9 | 4 | 1.8 | 1.8 | 3.1 |
| 9 | مغادرة 4 | 4.9 | 1 | 0 | فارغة | 4.9 | 5.6 | 8.6 | 5 | 2.7 | 2.7 | 4.0 |
| 10 | وصول 6 | 5.6 | 1 | 1 | 5.6 | 5.6 | 5.8 | 8.6 | 5 | 2.7 | 2.7 | 4.7 |
| 11 | وصول 7 | 5.8 | 1 | 2 | 5.6, 5.8 | 5.8 | 7.2 | 8.6 | 5 | 2.7 | 2.9 | 4.9 |
| 12 | وصول 8 | 7.2 | 1 | 3 | 5.6, 5.8, 7.2 | 7.2 | 9.1 | 8.6 | 5 | 2.7 | 5.7 | 6.3 |
| 13 | مغادرة 5 | 8.6 | 1 | 2 | 5.8, 7.2 | 8.6 | 9.1 | 9.2 | 6 | 5.7 | 9.9 | 7.7 |
التأخيرات الستة
| العميل | الوصول | بدء الخدمة | التأخير |
|---|---|---|---|
| 1 | 0.4 | 0.4 | 0 |
| 2 | 1.6 | 2.4 | 0.8 |
| 3 | 2.1 | 3.1 | 1.0 |
| 4 | 3.8 | 3.8 | 0 |
| 5 | 4.0 | 4.9 | 0.9 |
| 6 | 5.6 | 8.6 | 3.0 |
إجمالي التأخير = 0 + 0.8 + 1.0 + 0 + 0.9 + 3.0 = 5.7. وجد العميلان 1 و4 الخادم خاملا، فتأخير كل منهما 0، لكن كلا منهما يحتسب مع ذلك في عدد التأخيرات.
5. Q(t) و B(t) والمساحتان
Q(t)
| الفترة | Q(t) | الطول | Q x الطول |
|---|---|---|---|
| من 0 إلى 1.6 | 0 | 1.6 | 0 |
| من 1.6 إلى 2.1 | 1 | 0.5 | 0.5 |
| من 2.1 إلى 2.4 | 2 | 0.3 | 0.6 |
| من 2.4 إلى 3.1 | 1 | 0.7 | 0.7 |
| من 3.1 إلى 4.0 | 0 | 0.9 | 0 |
| من 4.0 إلى 4.9 | 1 | 0.9 | 0.9 |
| من 4.9 إلى 5.6 | 0 | 0.7 | 0 |
| من 5.6 إلى 5.8 | 1 | 0.2 | 0.2 |
| من 5.8 إلى 7.2 | 2 | 1.4 | 2.8 |
| من 7.2 إلى 8.6 | 3 | 1.4 | 4.2 |
بتجميع الفترات حسب طول الطابور:
area under Q(t) = 1 x [(2.1 - 1.6) + (3.1 - 2.4) + (4.9 - 4.0) + (5.8 - 5.6)] + 2 x [(2.4 - 2.1) + (7.2 - 5.8)] + 3 x [(8.6 - 7.2)]
= 1 x 2.3 + 2 x 1.7 + 3 x 1.4
= 2.3 + 3.4 + 4.2 = 9.9وهذه هي القيمة نفسها التي بلغها عداد المساحة تحت Q عند t = 8.6: فروتينات الأحداث تبني المجموع نفسه مستطيلا بعد مستطيل.
B(t)
| الفترة | B(t) | الطول |
|---|---|---|
| من 0 إلى 0.4 | 0 | 0.4 |
| من 0.4 إلى 3.3 | 1 | 2.9 |
| من 3.3 إلى 3.8 | 0 | 0.5 |
| من 3.8 إلى 8.6 | 1 | 4.8 |
area under B(t) = 1 x [(3.3 - 0.4) + (8.6 - 3.8)] = 2.9 + 4.8 = 7.76. مولد التقارير
حين يصل عدد التأخيرات إلى 6 يستدعي البرنامج الرئيسي مولد التقارير:
d(6) = 5.7 / 6 = 0.95
q(6) = 9.9 / 8.6 = 1.15
u(6) = 7.7 / 8.6 = 0.90 (89.5 percent)| المقياس | القيمة | ما يقوله |
|---|---|---|
d(6) | 0.95 | انتظر العميل في المتوسط 0.95 دقيقة في الطابور |
q(6) | 1.15 | في المتوسط عبر الزمن، كان عدد العملاء المنتظرين في الطابور 1.15 |
u(6) | 0.90 | كان الخادم مشغولا 89.5 بالمئة من الوقت |
تكتب شريحة التمرين معدل الاستغلال 0.9، وهو بمنزلتين عشريتين 0.90.
7. الأخطاء الشائعة
- تحديث المساحتين بالحالة الجديدة. عند
t = 2.1يزداد طول الطابور من 1 إلى 2. التحديث الصحيح هو0 + 1 x (2.1 - 1.6) = 0.5، أما استخدام القيمة الجديدة فيعطي0 + 2 x (2.1 - 1.6) = 1.0، وهذا خطأ. - نسيان
D = ∞حين يصبح الخادم خاملا. عندt = 3.3يكون الطابور فارغا، فيصبح الخادم خاملا وD = ∞، ويكون الحدث التالي عندئذ هو الوصول عند3.8. أما قيمةDالقديمة فتجعل روتين التوقيت يختار مغادرة لعميل غير موجود. ويجب أيضا أن تنخفض حالة الخادم إلى 0، فلا يضاف شيء إلى المساحة تحتB(t)من 3.3 إلى 3.8. - إزاحة المصفوفة قبل حساب التأخير. عند
t = 2.4تحوي المصفوفة1.6, 2.1. تأخير العميل 2 هو2.4 - 1.6 = 0.8. أما الإزاحة أولا فتعطي2.4 - 2.1 = 0.3، وهو محسوب من زمن وصول العميل 3 لا العميل 2. - قاعدة التوقف. يتوقف التشغيل حين يصبح عدد التأخيرات = 6، عند
t = 8.6، فيكونT(6) = 8.6. ولا يتوقف عند وصول العميل 6 (5.6) ولا عند مغادرته (9.2).
مراجعة ذاتية سريعة: التأخيرات الصفرية تحتسب في عدد التأخيرات، والعدادات لا تنقص أبدا، وبعد كل حدث يساوي زمن آخر حدث قيمة الساعة.
8. تدريب
تتبع كل تشغيل حدثا بعد حدث، بدءا من لقطة t = 0، حتى يصل عدد التأخيرات إلى n. أعط اللقطة بعد كل حدث، ثم احسب d(n) وq(n) وu(n). الإجابات في نهاية هذه الصفحة.
التشغيل 1: n = 4
| i | 1 | 2 | 3 | 4 | 5 |
|---|---|---|---|---|---|
| A_i | 0.5 | 0.3 | 1.8 | 0.4 | 0.6 |
| S_i | 1.2 | 0.6 | 0.7 | 1.1 |
التشغيل 2: n = 5
| i | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|
| A_i | 1.0 | 0.5 | 0.6 | 2.5 | 0.3 | 0.4 | 1.1 |
| S_i | 1.4 | 0.8 | 0.5 | 1.2 | 1.3 |
قائمة فحص لكل حدث:
- اختر الأصغر من
AوDواضبط الساعة عليه. - أضف طول الطابور السابق مضروبا في الفارق الزمني، وحالة الخادم السابقة مضروبة في الفارق الزمني، إلى المساحتين.
- الوصول: جدولة الوصول التالي، ثم انضمام العميل إلى الطابور أو بدء خدمته.
- المغادرة: الطابور الفارغ يعطي
D = ∞، وإلا فاحسب التأخير أولا ثم أزح. - اجعل زمن آخر حدث = الساعة، وقارن عدد التأخيرات بـ
n.
أهم النقاط
- تقفز الساعة من حدث إلى حدث:
clock = min(A, D). - في كل حدث يجري تحديث المساحتين أولا، بالحالة السابقة.
- الخادم الخامل يعني دائما
D = ∞. - المغادرة تقرأ التأخير قبل إزاحة مصفوفة أزمنة الوصول.
- ينتهي التشغيل حين يصبح عدد التأخيرات = n، و
T(n)هو قيمة الساعة عندئذ. - يقسم مولد التقارير إجمالي التأخير على
n، وكل مساحة علىT(n).
الإجابات
التشغيل 1
الحدث 1، t = 0.5: وصول العميل 1. المساحتان أولا، بالحالة السابقة: Q: 0 + 0 x (0.5 - 0) = 0 وB: 0 + 0 x (0.5 - 0) = 0. جدولة الوصول التالي: A = 0.5 + 0.3 = 0.8 (باستخدام A2). الخادم خامل: يبدأ العميل 1 خدمته فورا، والتأخير 0، وعدد التأخيرات = 1. حالة الخادم = 1، وجدولة المغادرة: D = 0.5 + 1.2 = 1.7 (باستخدام S1).
الحدث 2، t = 0.8: وصول العميل 2. المساحتان أولا، بالحالة السابقة: Q: 0 + 0 x (0.8 - 0.5) = 0 وB: 0 + 1 x (0.8 - 0.5) = 0.3. جدولة الوصول التالي: A = 0.8 + 1.8 = 2.6 (باستخدام A3). الخادم مشغول: ينضم العميل 2 إلى الطابور، Q = 1، ويخزن الزمن 0.8 في الموقع 1.
الحدث 3، t = 1.7: مغادرة العميل 1. المساحتان أولا، بالحالة السابقة: Q: 0 + 1 x (1.7 - 0.8) = 0.9 وB: 0.3 + 1 x (1.7 - 0.8) = 1.2. يغادر العميل 2 الطابور: التأخير 1.7 - 0.8 = 0.9، ويقرأ قبل الإزاحة. إجمالي التأخير 0 + 0.9 = 0.9، وعدد التأخيرات = 2. جدولة المغادرة: D = 1.7 + 0.6 = 2.3 (باستخدام S2). Q = 0، وتزاح المصفوفة موقعا واحدا إلى الأمام: فارغة.
الحدث 4، t = 2.3: مغادرة العميل 2. المساحتان أولا، بالحالة السابقة: Q: 0.9 + 0 x (2.3 - 1.7) = 0.9 وB: 1.2 + 1 x (2.3 - 1.7) = 1.8. الطابور فارغ: حالة الخادم = 0 وD = ∞.
الحدث 5، t = 2.6: وصول العميل 3. المساحتان أولا، بالحالة السابقة: Q: 0.9 + 0 x (2.6 - 2.3) = 0.9 وB: 1.8 + 0 x (2.6 - 2.3) = 1.8. جدولة الوصول التالي: A = 2.6 + 0.4 = 3.0 (باستخدام A4). الخادم خامل: يبدأ العميل 3 خدمته فورا، والتأخير 0، وعدد التأخيرات = 3. حالة الخادم = 1، وجدولة المغادرة: D = 2.6 + 0.7 = 3.3 (باستخدام S3).
الحدث 6، t = 3.0: وصول العميل 4. المساحتان أولا، بالحالة السابقة: Q: 0.9 + 0 x (3.0 - 2.6) = 0.9 وB: 1.8 + 1 x (3.0 - 2.6) = 2.2. جدولة الوصول التالي: A = 3.0 + 0.6 = 3.6 (باستخدام A5). الخادم مشغول: ينضم العميل 4 إلى الطابور، Q = 1، ويخزن الزمن 3.0 في الموقع 1.
الحدث 7، t = 3.3: مغادرة العميل 3. المساحتان أولا، بالحالة السابقة: Q: 0.9 + 1 x (3.3 - 3.0) = 1.2 وB: 2.2 + 1 x (3.3 - 3.0) = 2.5. يغادر العميل 4 الطابور: التأخير 3.3 - 3.0 = 0.3، ويقرأ قبل الإزاحة. إجمالي التأخير 0.9 + 0.3 = 1.2، وعدد التأخيرات = 4. جدولة المغادرة: D = 3.3 + 1.1 = 4.4 (باستخدام S4). Q = 0، وتزاح المصفوفة موقعا واحدا إلى الأمام: فارغة. عدد التأخيرات = 4 = n: تحققت قاعدة التوقف، ويعمل مولد التقارير.
| الحدث | النوع | الساعة | حالة الخادم | العدد في الطابور | أزمنة الوصول | زمن آخر حدث | A | D | عدد التأخيرات | إجمالي التأخير | المساحة تحت Q(t) | المساحة تحت B(t) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | تهيئة | 0 | 0 | 0 | فارغة | 0 | 0.5 | ∞ | 0 | 0 | 0 | 0 |
| 1 | وصول 1 | 0.5 | 1 | 0 | فارغة | 0.5 | 0.8 | 1.7 | 1 | 0 | 0 | 0 |
| 2 | وصول 2 | 0.8 | 1 | 1 | 0.8 | 0.8 | 2.6 | 1.7 | 1 | 0 | 0 | 0.3 |
| 3 | مغادرة 1 | 1.7 | 1 | 0 | فارغة | 1.7 | 2.6 | 2.3 | 2 | 0.9 | 0.9 | 1.2 |
| 4 | مغادرة 2 | 2.3 | 0 | 0 | فارغة | 2.3 | 2.6 | ∞ | 2 | 0.9 | 0.9 | 1.8 |
| 5 | وصول 3 | 2.6 | 1 | 0 | فارغة | 2.6 | 3.0 | 3.3 | 3 | 0.9 | 0.9 | 1.8 |
| 6 | وصول 4 | 3.0 | 1 | 1 | 3.0 | 3.0 | 3.6 | 3.3 | 3 | 0.9 | 0.9 | 2.2 |
| 7 | مغادرة 3 | 3.3 | 1 | 0 | فارغة | 3.3 | 3.6 | 4.4 | 4 | 1.2 | 1.2 | 2.5 |
T(4) = 3.3
d(4) = 1.2 / 4 = 0.30
q(4) = 1.2 / 3.3 = 0.36
u(4) = 2.5 / 3.3 = 0.76 (75.8 percent)التشغيل 2
الحدث 1، t = 1.0: وصول العميل 1. المساحتان أولا، بالحالة السابقة: Q: 0 + 0 x (1.0 - 0) = 0 وB: 0 + 0 x (1.0 - 0) = 0. جدولة الوصول التالي: A = 1.0 + 0.5 = 1.5 (باستخدام A2). الخادم خامل: يبدأ العميل 1 خدمته فورا، والتأخير 0، وعدد التأخيرات = 1. حالة الخادم = 1، وجدولة المغادرة: D = 1.0 + 1.4 = 2.4 (باستخدام S1).
الحدث 2، t = 1.5: وصول العميل 2. المساحتان أولا، بالحالة السابقة: Q: 0 + 0 x (1.5 - 1.0) = 0 وB: 0 + 1 x (1.5 - 1.0) = 0.5. جدولة الوصول التالي: A = 1.5 + 0.6 = 2.1 (باستخدام A3). الخادم مشغول: ينضم العميل 2 إلى الطابور، Q = 1، ويخزن الزمن 1.5 في الموقع 1.
الحدث 3، t = 2.1: وصول العميل 3. المساحتان أولا، بالحالة السابقة: Q: 0 + 1 x (2.1 - 1.5) = 0.6 وB: 0.5 + 1 x (2.1 - 1.5) = 1.1. جدولة الوصول التالي: A = 2.1 + 2.5 = 4.6 (باستخدام A4). الخادم مشغول: ينضم العميل 3 إلى الطابور، Q = 2، ويخزن الزمن 2.1 في الموقع 2.
الحدث 4، t = 2.4: مغادرة العميل 1. المساحتان أولا، بالحالة السابقة: Q: 0.6 + 2 x (2.4 - 2.1) = 1.2 وB: 1.1 + 1 x (2.4 - 2.1) = 1.4. يغادر العميل 2 الطابور: التأخير 2.4 - 1.5 = 0.9، ويقرأ قبل الإزاحة. إجمالي التأخير 0 + 0.9 = 0.9، وعدد التأخيرات = 2. جدولة المغادرة: D = 2.4 + 0.8 = 3.2 (باستخدام S2). Q = 1، وتزاح المصفوفة موقعا واحدا إلى الأمام: 2.1.
الحدث 5، t = 3.2: مغادرة العميل 2. المساحتان أولا، بالحالة السابقة: Q: 1.2 + 1 x (3.2 - 2.4) = 2.0 وB: 1.4 + 1 x (3.2 - 2.4) = 2.2. يغادر العميل 3 الطابور: التأخير 3.2 - 2.1 = 1.1، ويقرأ قبل الإزاحة. إجمالي التأخير 0.9 + 1.1 = 2.0، وعدد التأخيرات = 3. جدولة المغادرة: D = 3.2 + 0.5 = 3.7 (باستخدام S3). Q = 0، وتزاح المصفوفة موقعا واحدا إلى الأمام: فارغة.
الحدث 6، t = 3.7: مغادرة العميل 3. المساحتان أولا، بالحالة السابقة: Q: 2.0 + 0 x (3.7 - 3.2) = 2.0 وB: 2.2 + 1 x (3.7 - 3.2) = 2.7. الطابور فارغ: حالة الخادم = 0 وD = ∞.
الحدث 7، t = 4.6: وصول العميل 4. المساحتان أولا، بالحالة السابقة: Q: 2.0 + 0 x (4.6 - 3.7) = 2.0 وB: 2.7 + 0 x (4.6 - 3.7) = 2.7. جدولة الوصول التالي: A = 4.6 + 0.3 = 4.9 (باستخدام A5). الخادم خامل: يبدأ العميل 4 خدمته فورا، والتأخير 0، وعدد التأخيرات = 4. حالة الخادم = 1، وجدولة المغادرة: D = 4.6 + 1.2 = 5.8 (باستخدام S4).
الحدث 8، t = 4.9: وصول العميل 5. المساحتان أولا، بالحالة السابقة: Q: 2.0 + 0 x (4.9 - 4.6) = 2.0 وB: 2.7 + 1 x (4.9 - 4.6) = 3.0. جدولة الوصول التالي: A = 4.9 + 0.4 = 5.3 (باستخدام A6). الخادم مشغول: ينضم العميل 5 إلى الطابور، Q = 1، ويخزن الزمن 4.9 في الموقع 1.
الحدث 9، t = 5.3: وصول العميل 6. المساحتان أولا، بالحالة السابقة: Q: 2.0 + 1 x (5.3 - 4.9) = 2.4 وB: 3.0 + 1 x (5.3 - 4.9) = 3.4. جدولة الوصول التالي: A = 5.3 + 1.1 = 6.4 (باستخدام A7). الخادم مشغول: ينضم العميل 6 إلى الطابور، Q = 2، ويخزن الزمن 5.3 في الموقع 2.
الحدث 10، t = 5.8: مغادرة العميل 4. المساحتان أولا، بالحالة السابقة: Q: 2.4 + 2 x (5.8 - 5.3) = 3.4 وB: 3.4 + 1 x (5.8 - 5.3) = 3.9. يغادر العميل 5 الطابور: التأخير 5.8 - 4.9 = 0.9، ويقرأ قبل الإزاحة. إجمالي التأخير 2.0 + 0.9 = 2.9، وعدد التأخيرات = 5. جدولة المغادرة: D = 5.8 + 1.3 = 7.1 (باستخدام S5). Q = 1، وتزاح المصفوفة موقعا واحدا إلى الأمام: 5.3. عدد التأخيرات = 5 = n: تحققت قاعدة التوقف، ويعمل مولد التقارير.
| الحدث | النوع | الساعة | حالة الخادم | العدد في الطابور | أزمنة الوصول | زمن آخر حدث | A | D | عدد التأخيرات | إجمالي التأخير | المساحة تحت Q(t) | المساحة تحت B(t) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | تهيئة | 0 | 0 | 0 | فارغة | 0 | 1.0 | ∞ | 0 | 0 | 0 | 0 |
| 1 | وصول 1 | 1.0 | 1 | 0 | فارغة | 1.0 | 1.5 | 2.4 | 1 | 0 | 0 | 0 |
| 2 | وصول 2 | 1.5 | 1 | 1 | 1.5 | 1.5 | 2.1 | 2.4 | 1 | 0 | 0 | 0.5 |
| 3 | وصول 3 | 2.1 | 1 | 2 | 1.5, 2.1 | 2.1 | 4.6 | 2.4 | 1 | 0 | 0.6 | 1.1 |
| 4 | مغادرة 1 | 2.4 | 1 | 1 | 2.1 | 2.4 | 4.6 | 3.2 | 2 | 0.9 | 1.2 | 1.4 |
| 5 | مغادرة 2 | 3.2 | 1 | 0 | فارغة | 3.2 | 4.6 | 3.7 | 3 | 2.0 | 2.0 | 2.2 |
| 6 | مغادرة 3 | 3.7 | 0 | 0 | فارغة | 3.7 | 4.6 | ∞ | 3 | 2.0 | 2.0 | 2.7 |
| 7 | وصول 4 | 4.6 | 1 | 0 | فارغة | 4.6 | 4.9 | 5.8 | 4 | 2.0 | 2.0 | 2.7 |
| 8 | وصول 5 | 4.9 | 1 | 1 | 4.9 | 4.9 | 5.3 | 5.8 | 4 | 2.0 | 2.0 | 3.0 |
| 9 | وصول 6 | 5.3 | 1 | 2 | 4.9, 5.3 | 5.3 | 6.4 | 5.8 | 4 | 2.0 | 2.4 | 3.4 |
| 10 | مغادرة 4 | 5.8 | 1 | 1 | 5.3 | 5.8 | 6.4 | 7.1 | 5 | 2.9 | 3.4 | 3.9 |
T(5) = 5.8
d(5) = 2.9 / 5 = 0.58
q(5) = 3.4 / 5.8 = 0.59
u(5) = 3.9 / 5.8 = 0.67 (67.2 percent)