THINK

Linuxで始めるOS自作入門: 15日目

8/3/2020

前回から空いてしまったが...

マルチタスク

ついに、という感じ
マルチタスクは16日目でも扱うらしい
2つの関数を用意して、それを0.02秒毎に切り替えて実行する処理を作成

void task1 (void)
{
    // foo
    for (;;) {
        // bar
    }
}

void task2 (void)
{
    // foo
    for (;;) {
        // bar
    }
}

この2つを切り替えて実行する

今までと何が違うの?

今までは1つのタスク内で割り込みが来たときにその内容を確認して処理するとしていたが、 1つの関数の中で処理を制御するのではなく、別々の関数で個々の処理を実行する (この関数を交互に切り替えることによって、1関数内を複雑化するのを防ぐことが可能?)

OSの画像

*[sec]の下2つの数値表示処理が今までとは別関数で切り替えながら表示されている部分

余談

書く場所間違えてうっかり恐怖画像を作成してしまったorz

バグったOSの画像