2017-06-13 60 views
-1

我的MIPS Assembly老师让我们实现了一个任务切换器,它通过将所有寄存器保存并加载到堆栈上来在两个任意任务之间切换。他在课堂上问我们如何测试我们的切换台是否正常工作。验证任务切换器在任务之间是否正确切换

他暗示,它可能与一个单一的代码行来完成,而且它可能不知道什么任务都在做(即,给人的二进制文件)的类

没有人能弄清楚完成他是如何要我们这样做的,他不会告诉我们,他只是生气,我们无法弄清楚这个所谓的显而易见的事情。

那么我们应该如何做到这一点?

+1

很难不看切换器代码说jr $ra,但它听起来像一个相当虚假的要求。为了彻底测试它,你需要更多的测试。无论如何,如何确保堆栈存储/恢复正常工作的一个想法是以可识别的位模式(即每个寄存器具有不同的值)设置每个任务的初始环境,并且在切换准备好之后,在跳入任务,再跳转到任务切换。因此,切换器只会在不执行单个任务指令的情况下切换两个环境。如果没有任何价值偏差,开关工作(咳嗽)。 – Ped7g

回答

0

原来答案是:

一次运行一个任务,并检查结果都是一样的多任务运行时。

额外的一行代码,将允许这工作是在taskswitch程序,以防止其实际切换