-1
私のMIPSアセンブリ教師は、すべてのレジスタをスタックに保存してロードすることで、2つの任意のタスクを切り替えるタスクスイッチャーを実装しました。彼は、スイッチャーが正しく動作していることをテストする方法をクラスで教えてくれました。タスクスイッチャーがタスク間を正しく切り替えることを確認してください
彼は、それが単一のコード行で行うことができることを示唆し、それはタスクが(私たちにバイナリを与える、つまり)何をしているかを知らなくても行うことができることをクラスで
誰も把握することができませんでした彼は私たちにそれをしたがっていると、彼は私たちに言わなかった、彼は私たちがこの明らかに明白なことを理解できなかったことはただ怒っていた。
これはどうやって行うのですか?
ファイル名を指定して実行時に1つのタスク、および結果は、マルチタスクを実行するときと同じであるかどうかを確認:
言うのは難しいの切り替えからそれを防ぐためにtaskswitchルーチンで
jr $ra
だったが、それは非常に偽の主張のように聞こえます。徹底的にテストするためには、かなりのテストを必要とします。とにかく、スタックストア/リストアが正しく動作することを確認する方法の1つは、認識可能なビットパターン(各レジスタは異なる値)を持つ各タスクの初期環境を設定し、スイッチの準備が完了した後、タスク、タスクスイッチに再びジャンプします。したがって、スイッチャーはタスクの単一の命令を実行することなく、2つの環境の切り替えを継続します。値が逸脱していない場合、切り替えは機能します(咳)。 – Ped7g