30日でできる!OS自作入門パート7(12日目)

今回のサブタイトルは『タイマ-1』ということでやっていきます。

始めはタイマがいかに重要かが書いてあります。windowsの場合右下に時計が出ていると思いますが、それだけでなくCPUの割り込み時間の計算や時間の管理が出来ません。ということでタイマを使います。

PCでタイマを使うには『PIT』という装置を設定すればいいようです。PITとは『Programmable Interval Timer』の略で設定可能な間隔型タイマという意味らしいです。ようするに何秒ごとに割り込みを起こしてもらうか決められるようです。PCではPITがIRQの0番に繋がっているのでPITを設定することでIRQの割り込み間隔を設定できるということです。ちなみにPITはチップセットの中に集積されているようです。

PCは8254というチップが使われていて、そのチップの資料を調べて設定方法を確認します。その設定に応じたコードを書いていきます。

この辺りは載っているコードを見ていただくとわかりやすいと思うのですがここに載せていいのかちょっとわかりませんのでいつものように割愛いたします…。

 

その後タイムアウト機能を実装したところで恒例の改善です。割り込み処理の間隔が長いので短くしていきます。割り込みが長いと本処理が突然止まったりしてよくないようです。そして次回もタイマの話です。

終わってみて


なんか今回もざっくりした内容になってしまいました。

プログラマーなら言葉で説明するよりコードを見ればいっぱつで理解できるというのも多いとおもいます。しかし本に掲載されているコードをブログに載せるのはあまりよくない気がして文章ばかりになっております。検索すると自作OS本に掲載されているコードを載せているブログもあるのでそちらの方が参考になるかもしれないですね…(笑)

結局自分が理解できていればいいのですが中々難しいので全部理解できないまま進んでいます。とりあえず一周読んだらもう一度読み返す予定なのでこんな感じで進んでいきたいと思います。

soon
  • soon
  • 1986年生まれのjavaプログラマー。28歳の時に7年働いた販売士からプログラマーに転職をする。常駐先を転々としながら日々生きています。