2017-06-13 53 views
-1

我的MIPS Assembly老師讓我們實現了一個任務切換器,它通過將所有寄存器保存並加載到堆棧上來在兩個任意任務之間切換。他在課堂上問我們如何測試我們的切換臺是否正常工作。驗證任務切換器在任務之間是否正確切換

他暗示,它可能與一個單一的代碼行來完成,而且它可能不知道什麼任務都在做(即,給人的二進制文件)的類

沒有人能弄清楚完成他是如何要我們這樣做的,他不會告訴我們,他只是生氣,我們無法弄清楚這個所謂的顯而易見的事情。

那麼我們應該如何做到這一點?

+1

很難不看切換器代碼說jr $ra,但它聽起來像一個相當虛假的要求。爲了徹底測試它,你需要更多的測試。無論如何,如何確保堆棧存儲/恢復正常工作的一個想法是以可識別的位模式(即每個寄存器具有不同的值)設置每個任務的初始環境,並且在切換準備好之後,在跳入任務,再跳轉到任務切換。因此,切換器只會在不執行單個任務指令的情況下切換兩個環境。如果沒有任何價值偏差,開關工作(咳嗽)。 – Ped7g

回答

0

原來答案是:

一次運行一個任務,並檢查結果都是一樣的多任務運行時。

額外的一行代碼,將允許這工作是在taskswitch程序,以防止其實際切換