في نافذة الطباعة اختر «حفظ كملف PDF» كوجهة.
النمذجة والمحاكاة، الدرس 2
تتبع التمثيل الحاسوبي لطابور FIFO حدثا بعد حدث، من t = 0 حتى ينتهي التأخير السادس.
Q(t) وB(t)t = 8.6 وإعداد كل لقطة (snapshot)d(n) وq(n) وu(n) في مولد التقارير (report generator) وبيان معناهاالجزء 1
مراجعة قصيرة للمحاضرة 2
A(i) هو زمن ما بين الوصول (inter-arrival time) للعميل i-1 والعميل i0.4 + 1.2 = 1.6S(i) هو زمن الخدمة (service time) للعميل i، ونكتب A1 وS1 للعميل 1، وهكذاكل زمن وصول هو زمن الوصول السابق زائد A(i)
| العميل (customer) | A(i) | زمن الوصول | S(i) |
|---|---|---|---|
| 1 | 0.4 | 0.4 | 2.0 |
| 2 | 1.2 | 1.6 | 0.7 |
| 3 | 0.5 | 2.1 | 0.2 |
| 4 | 1.7 | 3.8 | 1.1 |
| 5 | 0.2 | 4.0 | 3.7 |
| العميل (customer) | A(i) | زمن الوصول | S(i) |
|---|---|---|---|
| 6 | 1.6 | 5.6 | 0.6 |
| 7 | 0.2 | 5.8 | |
| 8 | 1.4 | 7.2 | |
| 9 | 1.9 | 9.1 |
القاعدة التي تحدد أي عميل منتظر يخدم بعد ذلك حين يتحرر الخادم.
i في الطابور: زمن بدء الخدمة مطروحا منه زمن الوصول.D(i) = 0D2 = 2.4 - 1.6 = 0.8t (دون احتساب العميل الذي تجري خدمته).1 إذا كان الخادم مشغولا عند الزمن t، و0 إذا كان خاملا.q(n) وu(n)n = 6n؟t = 8.6: يغادر العميل 5 ويبدأ العميل 6 خدمتهT(6) = 8.6، ويقسم عليه كلا المتوسطين الزمنيينالجزء 2
من المحاضرة 1
0جانب البيانات في النموذج
جانب الشيفرة في النموذج
البداية
روتين التهيئة
ضبط الساعة على 0، الحالة، العدادات، قائمة الأحداث
روتين التوقيت
نوع الحدث التالي i، وتقديم الساعة
روتين الحدث i
الحالة، العدادات، الأحداث المستقبلية
انتهت المحاكاة؟
لا: عودة إلى روتين التوقيت
مولد التقارير
التقديرات، كتابة التقرير
الجزء 3
الحالة، وقائمة الأحداث، والعدادات، وقواعد التحديث
| المتغير | المحتوى | عند t = 0 |
|---|---|---|
| حالة الخادم | 1 مشغول، 0 خامل | 0 |
| العدد في الطابور | العملاء المنتظرون، دون العميل الذي في الخدمة | 0 |
| أزمنة الوصول | زمن وصول كل عميل منتظر، بترتيب الطابور | فارغة |
| زمن آخر حدث | قيمة الساعة عند الحدث السابق | 0 |
| البند | المحتوى | عند t = 0 |
|---|---|---|
| الساعة | الزمن المحاكى الحالي | 0 |
| الوصول التالي A | زمن الوصول التالي | A1 = 0.4 |
| المغادرة التالية D | زمن المغادرة التالية | ∞ |
| العداد | يجمع | عند t = 0 |
|---|---|---|
| عدد التأخيرات | التأخيرات المرصودة حتى الآن | 0 |
| إجمالي التأخير | مجموع تلك التأخيرات | 0 |
| المساحة تحت Q(t) | طول الطابور مضروبا في الزمن منذ آخر حدث | 0 |
| المساحة تحت B(t) | حالة الخادم مضروبة في الزمن منذ آخر حدث | 0 |
t هو قيمة الساعة الجديدة، وτ زمن آخر حدثQ(τ) وB(τ) هما القيمتان قبل أن يغيرهما هذا الحدثτ على tA = t + A(i+1)، حيث t قيمة الساعة وi العميل الذي يصل الآن0، وإضافة 1 إلى عدد التأخيرات، وجعل حالة الخادم 1، وجدولة D = t + S لهذا العميلالفرعان جنبا إلى جنب؛ وt قيمة الساعة
| الخطوة | الطابور فارغ | الطابور غير فارغ |
|---|---|---|
| 1 | تحديث المساحتين | تحديث المساحتين |
| 2 | جعل حالة الخادم 0 | التأخير: الساعة ناقص أول زمن في المصفوفة |
| 3 | D = ∞ | إضافته إلى إجمالي التأخير، وإضافة 1 إلى عدد التأخيرات |
| 4 | جعل زمن آخر حدث مساويا للساعة | جدولة D = t + S للعميل الجديد |
| 5 | طرح 1 من العدد في الطابور، وإزاحة المصفوفة إلى الأمام |
الجزء 4
13 حدثا، من t = 0 إلى t = 8.6. تعرض كل شريحة القيم التي يغيرها الحدث فقط، أما الساعة وزمن آخر حدث فينتقلان دائما إلى زمن الحدث. واللقطات الكاملة موجودة في صفحة الدرس. توقع النتيجة قبل كل كشف.
الحدث 1 من 13
قائمة الأحداث: A = 0.4 وD = ∞. الأصغر هو A، فتنتقل الساعة وزمن آخر حدث إلى 0.4.
| البند | قبل | بعد | الحساب |
|---|---|---|---|
| حالة الخادم | 0 | 1 | يبدأ العميل 1 خدمته فورا |
| الوصول التالي A | 0.4 | 1.6 | 0.4 + 1.2 (A2) |
| المغادرة التالية D | ∞ | 2.4 | 0.4 + 2.0 (S1) |
| عدد التأخيرات (إجمالي التأخير) | 0 (0) | 1 (0) | التأخير 0، ويحتسب مع ذلك |
الحدثان 2 و3 من 13
كلاهما وصول إلى خادم مشغول: في كل مرة يكون A أصغر من D = 2.4.
| البند | بعد t = 1.6 | بعد t = 2.1 |
|---|---|---|
| الطابور (أزمنة الوصول) | 1 (1.6) | 2 (1.6, 2.1) |
| الوصول التالي A | 2.1 | 3.8 |
| المساحة تحت Q(t) | 0 | 0.5 |
| المساحة تحت B(t) | 1.2 | 1.7 |
الحدث 4 من 13
قائمة الأحداث: A = 3.8 وD = 2.4. الأصغر هو D، فتنتقل الساعة وزمن آخر حدث إلى 2.4.
| البند | قبل | بعد | الحساب |
|---|---|---|---|
| الطابور (أزمنة الوصول) | 2 (1.6, 2.1) | 1 (2.1) | يدخل العميل 2 إلى الخدمة، وتزاح المصفوفة إلى الأمام |
| المغادرة التالية D | 2.4 | 3.1 | 2.4 + 0.7 (S2) |
| عدد التأخيرات (إجمالي التأخير) | 1 (0) | 2 (0.8) | التأخير 2.4 - 1.6 = 0.8، ويقرأ قبل الإزاحة |
الحدث 4 من 13
| البند | قبل | بعد | الحساب |
|---|---|---|---|
| المساحة تحت Q(t) | 0.5 | 1.1 | 0.5 + 2 × (2.4 - 2.1) |
| المساحة تحت B(t) | 1.7 | 2.0 | 1.7 + 1 × (2.4 - 2.1) |
الحدث 5 من 13
قائمة الأحداث: A = 3.8 وD = 3.1. الأصغر هو D، فتنتقل الساعة وزمن آخر حدث إلى 3.1.
| البند | قبل | بعد | الحساب |
|---|---|---|---|
| الطابور (أزمنة الوصول) | 1 (2.1) | 0 (فارغة) | يدخل العميل 3 إلى الخدمة، وتزاح المصفوفة إلى الأمام |
| المغادرة التالية D | 3.1 | 3.3 | 3.1 + 0.2 (S3) |
| عدد التأخيرات (إجمالي التأخير) | 2 (0.8) | 3 (1.8) | التأخير 3.1 - 2.1 = 1.0، ويقرأ قبل الإزاحة |
| المساحة تحت Q(t) | 1.1 | 1.8 | 1.1 + 1 × (3.1 - 2.4) |
| المساحة تحت B(t) | 2.0 | 2.7 | 2.0 + 1 × (3.1 - 2.4) |
الحدث 6 من 13
قائمة الأحداث: A = 3.8 وD = 3.3. الأصغر هو D، فتنتقل الساعة وزمن آخر حدث إلى 3.3.
| البند | قبل | بعد | الحساب |
|---|---|---|---|
| حالة الخادم | 1 | 0 | الطابور فارغ: يصبح الخادم خاملا |
| المغادرة التالية D | 3.3 | ∞ | لا أحد في الخدمة |
| المساحة تحت B(t) | 2.7 | 2.9 | 2.7 + 1 × (3.3 - 3.1) |
الحدث 7 من 13
قائمة الأحداث: A = 3.8 وD = ∞. الأصغر هو A، فتنتقل الساعة وزمن آخر حدث إلى 3.8.
| البند | قبل | بعد | الحساب |
|---|---|---|---|
| حالة الخادم | 0 | 1 | يبدأ العميل 4 خدمته فورا |
| الوصول التالي A | 3.8 | 4.0 | 3.8 + 0.2 (A5) |
| المغادرة التالية D | ∞ | 4.9 | 3.8 + 1.1 (S4) |
| عدد التأخيرات (إجمالي التأخير) | 3 (1.8) | 4 (1.8) | التأخير 0، ويحتسب مع ذلك |
الحدث 8 من 13
قائمة الأحداث: A = 4.0 وD = 4.9. الأصغر هو A، فتنتقل الساعة وزمن آخر حدث إلى 4.0.
| البند | قبل | بعد | الحساب |
|---|---|---|---|
| الطابور (أزمنة الوصول) | 0 (فارغة) | 1 (4.0) | ينضم العميل 5، ويخزن الزمن 4.0 في الموقع 1 |
| الوصول التالي A | 4.0 | 5.6 | 4.0 + 1.6 (A6) |
| المساحة تحت B(t) | 2.9 | 3.1 | 2.9 + 1 × (4.0 - 3.8) |
الحدث 9 من 13
قائمة الأحداث: A = 5.6 وD = 4.9. الأصغر هو D، فتنتقل الساعة وزمن آخر حدث إلى 4.9.
| البند | قبل | بعد | الحساب |
|---|---|---|---|
| الطابور (أزمنة الوصول) | 1 (4.0) | 0 (فارغة) | يدخل العميل 5 إلى الخدمة، وتزاح المصفوفة إلى الأمام |
| المغادرة التالية D | 4.9 | 8.6 | 4.9 + 3.7 (S5) |
| عدد التأخيرات (إجمالي التأخير) | 4 (1.8) | 5 (2.7) | التأخير 4.9 - 4.0 = 0.9، ويقرأ قبل الإزاحة |
| المساحة تحت Q(t) | 1.8 | 2.7 | 1.8 + 1 × (4.9 - 4.0) |
| المساحة تحت B(t) | 3.1 | 4.0 | 3.1 + 1 × (4.9 - 4.0) |
الأحداث 10 إلى 12 من 13
العميل 5 في الخدمة حتى D = 8.6، فتأتي ثلاثة وصولات أولا ويكبر الطابور إلى 3.
| البند | بعد t = 5.6 | بعد t = 5.8 | بعد t = 7.2 |
|---|---|---|---|
| الطابور (أزمنة الوصول) | 1 (5.6) | 2 (5.6, 5.8) | 3 (5.6, 5.8, 7.2) |
| الوصول التالي A | 5.8 | 7.2 | 9.1 |
| المساحة تحت Q(t) | 2.7 | 2.9 | 5.7 |
| المساحة تحت B(t) | 4.7 | 4.9 | 6.3 |
الحدث 13 من 13
قائمة الأحداث: A = 9.1 وD = 8.6. الأصغر هو D، فتنتقل الساعة وزمن آخر حدث إلى 8.6.
| البند | قبل | بعد | الحساب |
|---|---|---|---|
| الطابور (أزمنة الوصول) | 3 (5.6, 5.8, 7.2) | 2 (5.8, 7.2) | يدخل العميل 6 إلى الخدمة، وتزاح المصفوفة إلى الأمام |
| المغادرة التالية D | 8.6 | 9.2 | 8.6 + 0.6 (S6) |
| عدد التأخيرات (إجمالي التأخير) | 5 (2.7) | 6 (5.7) | التأخير 8.6 - 5.6 = 3.0، ويقرأ قبل الإزاحة |
الحدث 13 من 13
| البند | قبل | بعد | الحساب |
|---|---|---|---|
| المساحة تحت Q(t) | 5.7 | 9.9 | 5.7 + 3 × (8.6 - 7.2) |
| المساحة تحت B(t) | 6.3 | 7.7 | 6.3 + 1 × (8.6 - 7.2) |
انتظر 4 عملاء، ولم ينتظر العميلان الآخران.
| العميل (customer) | الوصول | بدء الخدمة | التأخير |
|---|---|---|---|
| 2 | 1.6 | 2.4 | 0.8 |
| 3 | 2.1 | 3.1 | 1.0 |
| 5 | 4.0 | 4.9 | 0.9 |
| 6 | 5.6 | 8.6 | 3.0 |
الجزء 5
Q(t) و B(t) ومولد التقارير
اجمع الفترات حسب عدد المنتظرين
| Q(t) | الفترات | الطول الكلي | المساحة |
|---|---|---|---|
| 1 | 1.6 إلى 2.1، 2.4 إلى 3.1، 4.0 إلى 4.9، 5.6 إلى 5.8 | 2.3 | 2.3 |
| 2 | 2.1 إلى 2.4، 5.8 إلى 7.2 | 1.7 | 3.4 |
| 3 | 7.2 إلى 8.6 | 1.4 | 4.2 |
خامل
من 0 إلى 0.4
مشغول
من 0.4 إلى 3.3
خامل
من 3.3 إلى 3.8
مشغول
من 3.8 إلى 8.6
يستدعيه البرنامج الرئيسي حين يصبح عدد التأخيرات = 6
| المقياس | القيمة | ما يقوله |
|---|---|---|
d(6) | 0.95 | انتظر العميل في المتوسط 0.95 دقيقة في الطابور |
q(6) | 1.15 | في المتوسط عبر الزمن، كان عدد المنتظرين في الطابور 1.15 عميل |
u(6) | 0.90 | كان الخادم مشغولا 89.5 بالمئة من الوقت |
الحدث عند t = 2.1: يصل العميل 3 ويزداد Q من 1 إلى 2
| البند | خطأ | صواب |
|---|---|---|
| المساحة تحت Q(t) | 0 + 2 × (2.1 - 1.6) = 1.0 | 0 + 1 × (2.1 - 1.6) = 0.5 |
| يستخدم | طول الطابور بعد الوصول | طول الطابور الذي كان قائما خلال الفترة |
t = 3.3 يغادر العميل 3 ويكون الطابور فارغا0 وD = ∞، فيكون الحدث التالي هو الوصول عند 3.8D بزمن قديم، فقد يختار روتين التوقيت مغادرة لعميل غير موجودB(t) من 3.3 إلى 3.8الحدث عند t = 2.4: المصفوفة قبل الحدث هي 1.6, 2.1
| البند | خطأ | صواب |
|---|---|---|
| الترتيب | الإزاحة أولا، فتصبح المصفوفة 2.1 | التأخير أولا، ثم الإزاحة إلى 2.1 |
| التأخير | 2.4 - 2.1 = 0.3: زمن وصول العميل 3، لا العميل 2 | 2.4 - 1.6 = 0.8 للعميل 2 |
5.6)9.2)6، عند t = 8.6، فيكون T(6) = 8.6الجزء 6
تشغيلان للتتبع، نحو 30 دقيقة
تدريب، نحو 10 دقائق
| i | A(i) | S(i) |
|---|---|---|
| 1 | 0.5 | 1.2 |
| 2 | 0.3 | 0.6 |
| 3 | 1.8 | 0.7 |
| 4 | 0.4 | 1.1 |
| 5 | 0.6 |
تدريب، نحو 20 دقيقة
| i | A(i) | S(i) |
|---|---|---|
| 1 | 1.0 | 1.4 |
| 2 | 0.5 | 0.8 |
| 3 | 0.6 | 0.5 |
| 4 | 2.5 | 1.2 |
| 5 | 0.3 | 1.3 |
A وD، واضبط الساعة t عليهQ(τ) × (t - τ) وB(τ) × (t - τ) إلى المساحتين، حيث τ زمن آخر حدثA التالي، ثم انضمام العميل إلى الطابور أو بدء خدمتهD = ∞، وإلا فالتأخير أولا ثم الإزاحةnالإجابات
| العميل (customer) | الوصول | بدء الخدمة | التأخير |
|---|---|---|---|
| 1 | 0.5 | 0.5 | 0 |
| 2 | 0.8 | 1.7 | 0.9 |
| 3 | 2.6 | 2.6 | 0 |
| 4 | 3.0 | 3.3 | 0.3 |
الإجابات
| المقياس | الحساب | القيمة |
|---|---|---|
| المساحة تحت Q(t) | 0.9 + 0.3 | 1.2 |
| المساحة تحت B(t) | 1.8 + 0.7 | 2.5 |
d(4) | 1.2 / 4 | 0.30 |
q(4) | 1.2 / 3.3 | 0.36 |
u(4) | 2.5 / 3.3 | 0.76 |
الإجابات
| العميل (customer) | الوصول | بدء الخدمة | التأخير |
|---|---|---|---|
| 1 | 1.0 | 1.0 | 0 |
| 2 | 1.5 | 2.4 | 0.9 |
| 3 | 2.1 | 3.2 | 1.1 |
| 4 | 4.6 | 4.6 | 0 |
| 5 | 4.9 | 5.8 | 0.9 |
الإجابات
| المقياس | الحساب | القيمة |
|---|---|---|
| المساحة تحت Q(t) | 0.6 + 0.6 + 0.8 + 0.4 + 1.0 | 3.4 |
| المساحة تحت B(t) | 2.7 + 1.2 | 3.9 |
d(5) | 2.9 / 5 | 0.58 |
q(5) | 3.4 / 5.8 | 0.59 |
u(5) | 3.9 / 5.8 | 0.67 |
t تقفز من حدث إلى حدث: t = min(A, D)D = ∞n، وT(n) هو قيمة الساعة عندئذn، والمساحتين على T(n)Mahmoud Abas|طابور الخادم الواحد: المحاكاة حدثا بعد حدث