25. सहकारी शेड्यूलिंग
कार्य बारी-बारी चलाएँ और नीति को CPU निर्देशों से अलग समझें।
यह पाठ खोलें →
1. अनुमान और निष्पादन क्रम
प्रयोग प्रोग्राम चलाने से पहले आउटपुट अनुमान करें और पहले तीन चलाए निर्देशों का क्रम लिखें। आवश्यक रजिस्टर, फ्लैग या मेमोरी दर्ज करें। फिर एक-एक कदम चलाकर मिलाएँ।
LOAD 1
CALL taskA
CALL taskB
HALT
taskA: PRINT
SLEEP 500
RETURN
taskB: LOAD 101
PRINT
RETURN
इनपुट कतार में रखें: कोई नहीं
मेमोरी शुरू करें: शुरू में सभी बाइट शून्य
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:
#
RETURN
taskB:
#
RETURN
आपका प्रोग्राम और नोट्स
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
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:
#
RETURN
oddWorker:
#
RETURN
आपका प्रोग्राम और नोट्स
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
इनपुट कतार में रखें: कोई नहीं
मेमोरी शुरू करें: शुरू में सभी बाइट शून्य
2. बनाएँ और जाँचें
मुख्य पूर्णांक, फिर घटना बाइट पढ़ें। घटना पता 240 पर रखें। हैंडलर बुलाएँ जो PUSH/POP से मुख्य R0 बचाते हुए घटना + 1 को बाइट मेमोरी 241 पर लिखे। बहाल मुख्य मान, फिर संग्रहित घटना परिणाम छापें।
ज़रूरी निर्देश प्रकार: INPUT, PUSH, POP, CALL, STORE
शुरुआती प्रोग्राम
INPUT
COPY R0 R1
INPUT
STORE 240
LOAD R1
CALL handler
PRINT
LOAD [241]
PRINT
HALT
handler:
#
RETURN
आपका प्रोग्राम और नोट्स
3. मशीन समझाएँ
मुख्य कार्य लौटने से पहले हैंडलर क्या बहाल करे?