2018年1月

【フィリピン】マニラレポート(到着直後)

11月にフィリピンに行ってきました。 そのレポート。 マニラ到着 出発は勤労感謝の11月23日。 19時40分成田発のJetstarでマニラへ。 機内持込手荷物は7キロを超えてしまうと追加で2600円かかる。 まぁ、二人でリュック2つだから、楽々クリア。 Jetstarは機内食がないから、成田空港で […]

OS自作入門 -Advent34-

Step9 優先度スケジューリング 延長戦 kozosファイルの修正が終わったのでシステムコールの追加を行なっていく。 システム・コールの追加 syscall.hの修正では、kozosファイルで利用していた構造体の定義を追加したり、kz_run()のパラメータに優先度を渡せるように修正を行う。 sy […]

OS自作入門 -Advent33-

Step9 優先度スケジューリング 後半戦 step8の前半戦でラウンドロビン方式から優先度スレッドにする必要がある。というのを理解した。またアイドル・スレッドというのを何も処理がない時(優先度が最も低い状態の処理として)実装するのが必要そうである。 さっそくやっていこう。 優先度の実装 以下のファ […]

OS自作入門 -Advent32-

Step9 優先度スケジューリング 前半戦 step8にてスレッドの実装が完了した。これまでの方式は「ラウンドロビン方式」でありキューを使ったFIFOの仕組みで動作している。これを優先度をつけたスレッドにして優先度順にスレッドを実行するようにしていこう。 優先度ベースのスケジューリング スレッドのス […]

OS自作入門 -Advent31-

Step8 スレッドを実装する 最終戦 引き続き残りのスレッド管理周りを実装していくことにしよう。 OSの実装(続き) 組み込みハンドラの登録 kozos.cの続きに組込みハンドラを実装していく。KOZOSはソフトウェア・割込みベクタに対するハンドラをhandlers[]という配列に持っており、割込 […]

OS自作入門 -Advent30-

Step8 スレッドを実装する 延長戦 Step8 後半戦から実装を進めており、OS本体の実装から再開する。スレッド管理とシステムコールの受付、割込み処理を行なっていくことになる。 OSの実装 スレッド管理 作成したkozos.cを置いておく。 簡単に説明を加えていくと、まず3つの構造体が定義されて […]

OS自作入門 -Advent29-

Step8 スレッドを実装する 後半戦 Step8 前半戦でスレッドのアレコレを学んだ。ビジーループでポーリング的な処理を行うと、処理が止まってしまったり、他のアプリケーションの動きを考慮した実装を行わないといけなくなるためよろしくない。そこで割込みドリブンでCPUが各処理に割り当てられて実行される […]

【フィリピン】マニラへ

11月にフィリピンに行ってきました。 そのレポート。 まず、なんでフィリピン? 最初、鳥の「中国に行こう」が始まり。 中国。しかも、行き先が結構マイナーなところ。 海外初心者の私はかなり不安に、、、 塚「中国じゃないところにしようよ……」 って感じで、旅の計画が始まりました。 長野で出会ったハワイ在 […]

OS自作入門 -Advent28-

Step8 スレッドを実装する 前半戦 さて、今日からスレッドの実装を行う。これまでは確かに1プロセスで動作しており、複数個の処理を並行して実行することはできないようになっている。これだとちょっと待ちがありすぎて実際には使いもんにならん。ということでスレッドを実装する話。合わせて「システム・コール」 […]

OS自作入門 -Advent27-

Step7 割り込み処理を実装する 最終戦 しばらく空いてしまいましたが、step7の最後のポストになりそうです。これまででブートローダへの割込みハンドラの実装を行なってきました。あとは割込みベクタの修正を行い、 割込みハンドラの設定 vector.cの修正 vector.cのようになる。もともとは […]