「はじめてのOSコードリーディング」読書会は3回目から参加しましたが、それ以前に終わっていた第3章を勉強中です。
「3.3 実行プロセスの切り替え」まで読みましたが、この節ではswtch()の11行目について、「retu()を実行し、スケジューラプロセスに切り替えます」と書いてあるのは11行目まで実行したらswtch()を実行していたプロセスは停止=swtch()の処理も停止して別のスケジューラプロセスの実行に移るという意味のような印象を受けますが、それにしてはswtch()の次の行の処理の説明がすぐ書いてあるのが良く分かりません。スケジューラプロセスに切り替えてもswtch()関数内の処理がそのまま継続されている??
setpri()の中でrunrunをインクリメントしていますが(他にもrunrunをインクリメントしているところがあったような気はしますが)、溢れて0に戻ることはないのか気になります。
後、swtch()から返る先について詳しい説明がありますが今回はパスしました。ここではまると次回の勉強会までに第3章に一通り目を通せなくなりそうなので。
このようにあちこち良く分からないところはありますが少しずつ理解が進んできた感じもしています。
「3.3 実行プロセスの切り替え」まで読みましたが、この節ではswtch()の11行目について、「retu()を実行し、スケジューラプロセスに切り替えます」と書いてあるのは11行目まで実行したらswtch()を実行していたプロセスは停止=swtch()の処理も停止して別のスケジューラプロセスの実行に移るという意味のような印象を受けますが、それにしてはswtch()の次の行の処理の説明がすぐ書いてあるのが良く分かりません。スケジューラプロセスに切り替えてもswtch()関数内の処理がそのまま継続されている??
setpri()の中でrunrunをインクリメントしていますが(他にもrunrunをインクリメントしているところがあったような気はしますが)、溢れて0に戻ることはないのか気になります。
後、swtch()から返る先について詳しい説明がありますが今回はパスしました。ここではまると次回の勉強会までに第3章に一通り目を通せなくなりそうなので。
このようにあちこち良く分からないところはありますが少しずつ理解が進んできた感じもしています。