OS自作入門 その20
OS自作入門 15日目。
マルチタスク1。
タスクを切り替えるよう命令(タスクスイッチ)が出ると、CPUはレジスタの値をすべてメモリに書き込む。書き込まれる内容はTSS(Task Status Segment)と呼ばれる。これはセグメントの一種なのでGDTで設定して使用する。
タスクスイッチにはJMP命令のfarモードを使用する。
TRレジスタには「現在どのタスクが実行されているか」が記憶される。タスクスイッチするとTRレジスタの値も自動的に変わる。TRレジスタに値を代入するにはLTR命令を使う。
TRレジスタ、タスクスイッチすると勝手に変わるならわざわざ自分で代入する必要はないのではなかろうかと思ったのだけど、なぜ代入するかの詳細な説明がないな。