同人誌は言う
アイドル状態の CPU で定期的に割り込みを有効にする理由は、プロセス (シェルなど) が I/O を待機しているため、RUNNABLE プロセスがない可能性があるためです。スケジューラが常に割り込みを無効のままにすると、I/O が到着しなくなります。
しかし、ptable.lock を解放するたびに割り込みが再び有効になるため、外側の for ループの前に sti() を 1 回呼び出すだけでよいと思います。
同人誌は言う
アイドル状態の CPU で定期的に割り込みを有効にする理由は、プロセス (シェルなど) が I/O を待機しているため、RUNNABLE プロセスがない可能性があるためです。スケジューラが常に割り込みを無効のままにすると、I/O が到着しなくなります。
しかし、ptable.lock を解放するたびに割り込みが再び有効になるため、外側の for ループの前に sti() を 1 回呼び出すだけでよいと思います。