25. الجدولة التعاونية
تناوب بين المهام وميّز سياسة الجدولة عن تعليمات المعالج.
فتح هذا الدرس →
1. توقّع وتتبّع
قبل تشغيل برنامج التجربة، توقّع مخرجاته وتتبّع أول ثلاث تعليمات تُنفّذ. راقب السجلات أو الرايات أو الذاكرة ذات الصلة حسب الحاجة. ثم نفّذ البرنامج خطوةً خطوة للمقارنة.
LOAD 1
CALL taskA
CALL taskB
HALT
taskA: PRINT
SLEEP 500
RETURN
taskB: LOAD 101
PRINT
RETURN
أضف المدخلات إلى الطابور: لا يوجد
هيّئ الذاكرة: جميع البايتات صفر في البداية
إجابات توقّع التجربة
المخرجات: 1, 101
2. ابنِ وافحص
اقرأ عدد جولات من 0 إلى 3. ابدأ عدّاد المهمة A عند 0 وعدّاد B عند 100. في كل جولة استدعِ A لزيادة عدّادها وطباعته، ثم B لزيادة عدّادها وطباعته.
أنواع التعليمات المطلوبة: INPUT, LOOP, CALL, RETURN
مثال لحل التحدّي
INPUT
COPY R0 R3
LOAD 0 R1
LOAD 100 R2
LOOP R3
CALL taskA
CALL taskB
RETURN
HALT
taskA: LOAD R1
ADD 1
COPY R0 R1
PRINT
SLEEP 0
RETURN
taskB: LOAD R2
ADD 1
COPY R0 R2
PRINT
SLEEP 0
RETURN
حالات الفاحص الفعلية
الحالة 1
- المدخلات
0- الذاكرة الابتدائية
جميع البايتات صفر في البداية- المخرجات المتوقعة
لا يوجد
الحالة 2
- المدخلات
1- الذاكرة الابتدائية
جميع البايتات صفر في البداية- المخرجات المتوقعة
1, 101
الحالة 3
- المدخلات
3- الذاكرة الابتدائية
جميع البايتات صفر في البداية- المخرجات المتوقعة
1, 101, 2, 102, 3, 103
3. اشرح الآلة
هل تبادل الأدوار بـCALL وRETURN هو نفسه الاستباق العتادي؟
ملاحظة الاستدلال والتعليم
لا. هو نموذج موزِّع تعاوني؛ وتنتمي سياسة المجدوِل والحصة إلى محاكاة الأنظمة المسمّاة بوضوح.
26. تقسيم العمل بين الأنوية
قسّم أعمالًا مستقلة واجمع نتائجها.
فتح هذا الدرس →
1. توقّع وتتبّع
قبل تشغيل برنامج التجربة، توقّع مخرجاته وتتبّع أول ثلاث تعليمات تُنفّذ. راقب السجلات أو الرايات أو الذاكرة ذات الصلة حسب الحاجة. ثم نفّذ البرنامج خطوةً خطوة للمقارنة.
STORE 1 0
STORE 2 1
STORE 3 2
STORE 4 3
LOAD [0]
MUL R0
COPY R0 R1
LOAD [2]
MUL R0
ADD R1
PRINT
HALT
أضف المدخلات إلى الطابور: لا يوجد
هيّئ الذاكرة: 0: 1, 1: 2, 2: 3, 3: 4
إجابات توقّع التجربة
المخرجات: 10
2. ابنِ وافحص
توجد أربع قيم أعمال مهيّأة في الذاكرة 0–3. يحسب العامل الزوجي value[0]² + value[2]²، والفردي value[1]² + value[3]². استدعِ العاملين. اطبع المجموع الزوجي، ثم الفردي، ثم مجموعهما بهذا الترتيب.
أنواع التعليمات المطلوبة: CALL, MUL, LOAD, ADD
مثال لحل التحدّي
CALL evenWorker
PRINT
CALL oddWorker
PRINT
LOAD R1
ADD R2
PRINT
HALT
evenWorker: LOAD [0]
MUL R0
COPY R0 R1
LOAD [2]
MUL R0
ADD R1
COPY R0 R1
RETURN
oddWorker: LOAD [1]
MUL R0
COPY R0 R2
LOAD [3]
MUL R0
ADD R2
COPY R0 R2
RETURN
حالات الفاحص الفعلية
الحالة 1
- المدخلات
لا يوجد- الذاكرة الابتدائية
0: 1, 1: 2, 2: 3, 3: 4- المخرجات المتوقعة
10, 20, 30- قراءات الذاكرة المطلوبة
0, 1, 2, 3
الحالة 2
- المدخلات
لا يوجد- الذاكرة الابتدائية
0: 0, 1: 4, 2: 5, 3: 1- المخرجات المتوقعة
25, 17, 42- قراءات الذاكرة المطلوبة
0, 1, 2, 3
الحالة 3
- المدخلات
لا يوجد- الذاكرة الابتدائية
0: 10, 1: 1, 2: 2, 3: 3- المخرجات المتوقعة
104, 10, 114- قراءات الذاكرة المطلوبة
0, 1, 2, 3
3. اشرح الآلة
هل حساب مجموعَي عاملين بالتتابع يثبت تنفيذًا متوازيًا؟
ملاحظة الاستدلال والتعليم
لا. يتحقّق من التقسيم والجمع. تبيّن مسارات الآلات الافتراضية المستقلة في المحاكاة حالات منفصلة، لا ادّعاءات سرعة عتادية.
27. المقاطعات ومعالجات الأحداث
عالج حدثًا واستعد قيمة المهمة الأمامية التي قوطعت.
فتح هذا الدرس →
1. توقّع وتتبّع
قبل تشغيل برنامج التجربة، توقّع مخرجاته وتتبّع أول ثلاث تعليمات تُنفّذ. راقب السجلات أو الرايات أو الذاكرة ذات الصلة حسب الحاجة. ثم نفّذ البرنامج خطوةً خطوة للمقارنة.
STORE 4 240
LOAD 17
CALL handler
PRINT
LOAD [241]
PRINT
HALT
handler: PUSH
LOAD [240]
ADD 1
STORE 241
POP
RETURN
أضف المدخلات إلى الطابور: لا يوجد
هيّئ الذاكرة: جميع البايتات صفر في البداية
إجابات توقّع التجربة
المخرجات: 17, 5
2. ابنِ وافحص
اقرأ عددًا صحيحًا للمهمة الأمامية ثم بايتًا لحدث. خزّن الحدث في العنوان 240. استدعِ معالجًا يكتب الحدث + 1 في ذاكرة البايتات 241 ويحافظ على R0 الأمامي باستخدام PUSH وPOP. اطبع القيمة الأمامية المستعادة ثم نتيجة الحدث المخزّنة.
أنواع التعليمات المطلوبة: INPUT, PUSH, POP, CALL, STORE
مثال لحل التحدّي
INPUT
COPY R0 R1
INPUT
STORE 240
LOAD R1
CALL handler
PRINT
LOAD [241]
PRINT
HALT
handler: PUSH
LOAD [240]
ADD 1
STORE 241
POP
RETURN
حالات الفاحص الفعلية
الحالة 1
- المدخلات
17, 4- الذاكرة الابتدائية
جميع البايتات صفر في البداية- المخرجات المتوقعة
17, 5- الذاكرة النهائية المتوقعة
240: 4, 241: 5- قراءات الذاكرة المطلوبة
240, 241
الحالة 2
- المدخلات
-8, 0- الذاكرة الابتدائية
جميع البايتات صفر في البداية- المخرجات المتوقعة
-8, 1- الذاكرة النهائية المتوقعة
240: 0, 241: 1- قراءات الذاكرة المطلوبة
240, 241
الحالة 3
- المدخلات
33, 255- الذاكرة الابتدائية
جميع البايتات صفر في البداية- المخرجات المتوقعة
33, 0- الذاكرة النهائية المتوقعة
240: 255, 241: 0- قراءات الذاكرة المطلوبة
240, 241
3. اشرح الآلة
ما الذي يجب أن يستعيده المعالج قبل استئناف المهمة الأمامية؟
ملاحظة الاستدلال والتعليم
القيمة أو الحالة الأمامية التي لا يزال المستدعي يحتاجها؛ وقد تتغيّر عدّادات الأحداث عمدًا. يصبح العدد 255 بعد زيادته وتخزينه بايتًا هو 0.