Step9(12ステップ本)

Step9ではスレッドに優先順位を付けた優先度スケジューリングの実装を行った。
優先度スケジューリング部分はそんなに複雑じゃないのでわかりやすかった。
今回の動作ログ。

MachineName:os myaccount$ sudo cu -l /dev/cu.PL2303-00001004
Password:
Connected.
kzload (kozos boot loader) started.
kzload> load
~+lsx kozos
Sending kozos, 36 blocks: Give your local XMODEM receive command now.
Bytes Sent:   4736   BPS:522                             

Transfer complete

XMODEM receive succeeded.
kzload> run
starting from entry point: ffffc020
kozos boot succeed!
test09_1 started.
test09_1 sleep in.
test09_2 started.
test09_2 sleep in.
test09_3 started.
test09_3 wakeup in (test09_1).
test09_1 sleep out.
test09_1 chpri in.
test09_3 wakeup out.
test09_3 wakeup in (test09_2).
test09_2 sleep out.
test09_2 chpri in.
test09_1 chpri out.
test09_1 wait in.
test09_3 wakeup out.
test09_3 wait in.
test09_2 chpri out.
test09_2 wait in.
test09_1 wait out.
test09_1 trap in.
test09_1 DOWN.
test09_1 EXIT.
test09_3 wait out.
test09_3 exit in.
test09_3 EXIT.
test09_2 wait out.
test09_2 exit.
test09_2 EXIT.
~.
Disconnected.

今回、readyquePRIORITY_NUM個の配列になっていたので、前回、配列のインデックスからのアドレス計算での乗算でリンクエラーが出たのが気になっていたけど、今回は問題なくリンクできた。なぜだろう?後で調べてみよう。

追記:著者の方からコメントで教えていただいて、上のreadyqueの配列のアドレス計算でリンクエラーにならなかった理由がわかった。
readyqueのサイズが8バイトと2の累乗になっているから問題にならなかったんですね。

カテゴリー: 12ステップ本, H8 タグ: , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください