今更ながら、昨年度卒論を書いた時を振り返ってみようと思います。
卒論
卒論はこれです。今読んでみると微妙だなと思う部分は少しありますが、これも思い出ということでこのまま公開します。
タイトル: 低優先度処理を指定可能なリアルタイム処理向け I/O スケジューラ
研究テーマ決定までの経緯
電気通信大学の岩崎・中野・鵜川研究室 に配属されてそこで研究をしました。 テーマについては、生年月日が Linux カーネルの初版リリース日 と完全に一致!ということもあり、Linux カーネルに関する研究をしました。
実は、はじめは 楽をしようと思い /sys/ の下の適当な値を取ってきて可視化するようなツールを作ろうとしてたのですが、卒論テーマの発表会の前日に iotop に出会ってしまい、その瞬間に終了してしまいました。
その日、頑張って練りだしたアイディアが ionice が使える deadline スケジューラの開発でした。というのも、アルバイト先で 「ionice つけてんのになんでサーバがハングアップするんや!!」「それ deadline だからやろ!!」みたいなやりとりを小耳に何度か挟んでいまして、せっかくパフォーマンスの良い(らしい) deadline スケジューラなのに ionice が使えないなんて残念だな〜と常日頃から思っていました。なので、できるかわからんけども、楽な道も絶たれたわけだしチャレンジしてみよう!ということでそれをテーマにしました。
研究途中の心境
他の人はガリガリコードを書いてたりするんですが、僕の研究は相手がカーネルということもありなかなかコードを書き始めることができませんでした。1行追加しただけでハングアップしたりするので気軽に追加してデバッグするということができない感じでした。もちろん、VMを利用してはいましたが、ビルド → モジュールロード → カーネルパニック という流れを何度も何度も繰り返していくうちにどんどん元気がなくなりました。
また、残念なことに I/O スケジューラをいじってるので、エラーで死ぬときはログさえ見れないのもしんどかったです。kdump の存在を知ったのはだいぶあとのことでした。
卒論提出 1 ヶ月前
大晦日くらいのとき、まだ低優先度処理の実装が終わっておらず、「留年か〜(;o;)」と叫んでいたのを覚えています。0 を 1 にするような研究はブレイクスルーしない限り 0 のままなので何もしていないのと変わりない状況になってしまいます。
だから、後輩には 「卒業研究で Linux カーネルをいじるのは大変リスキーなので覚悟したほうがええ。まして I/O スケジューラとかいじったらあかん」と言いたかったんですが、今年も元気に I/O スケジューラをいじった学生がいたようです笑 おつかれさまでした<(_ _)>
卒論提出 2 週間前
(のちにバグがあることに気づくのですが)なんとか実装を終え、卒業論文を書いていました。deadine スケジューラであれば期限の切れた要求はすぐに処理されますが、卒業論文の提出に関しては期限が切れると一年間後に処理されますので油断を許さない状況でした。 そのとき僕を支えてくれたのがこれ。
福島県限定のはずのこの最高に美味いカフェオレが、なぜか大学の生協に売ってました。最高でした。 これがなかったら糖分が足りずに倒れていたでしょう。
卒論提出 1 ヶ月後
春休みを満喫している予定だったのですが、学会の準備をしなければならないということで研究室にまだいました。 このとき、友人らは大阪旅行に行ってました。このときおかしかったことがひとつあって、なぜか僕だけメンバー外なのに旅行用の LINE のグループに勧誘されてうっかり入ってしまい、楽しい旅行の画像を垂れ流されました。あのときはつらかった。。
卒論提出 3 ヶ月後
社会人1年目の生活をスタートし仕事に熱中する予定だったのですが、このときもまだ会社帰りに研究室に寄ったりしてジャーナルを書いてました。しんどかった。
振り返りまとめ
卒業研究は最初から最後までやってるときはしんどかった。動いた時は嬉しいんだけどその遭遇頻度がヒンバス並だったからほとんどそういう感情が思い出に残ってない。。Linux の I/O についてこんなに調べるとは思ってもいませんでした。I/Oスケジューラをいじるだけでも、その前後の層については理解しないと無理なんだな〜と途中から気づかされました。
でも今こうして振り返ってみると、あそこまで真摯に技術についてもくもくと研究できる時間は貴重だったな〜と思います。特に、自分とは比較にならないくらい優秀な研究者の人らに囲まれながらあれこれ言われながら研究する機会ってもう無いような気がしてます。いつの間にか夢中になっていて運良くそれが実を結び、I 学科の総代として卒業することができたのも研究室の助けが大きく影響していると思います。研究の楽しさに気がついたのは学部卒業直前くらいで、そのときになってやっと「あ、院行っても良かったかも」と思いました(遅い)。
研究室のゼミも貴重でした。だるいなーと思いながら参加していたゼミでしたが、今振り返ると自分の血となり肉となってる気がします。特にプログラミング言語の勉強なんてしたことがなかった自分にとって、TAPL を読んだ経験はとてもためになってます。
最後に
研究室のみなさまには大変お世話になりました。先生方には、1から論文の書き方を教えていただきました。また、担当教員である鵜川先生には卒業したあとも最後の最後まで研究に協力をしていただきました。ありがとうございました。また、佐藤先輩には英語のアブストラクトを
95%くらい修正していただきましたし、深刻なバグの修正に関する的確なアドバイスをいただきました。ありがとうございました。
- lasta くん
- 西9の鍵を開けてくれてありがとう。それと君のおかげで卒業後も大学でボッチにならずに済みました。とても助かった。
- rrreeeyyy くん
- すべてにおけるきっかけをありがとう。きっと大学 3 年までの経験がなかったら僕はカーネルの研究をしていないと思う。
- amisuke くん
- 大量のおかしを
ぬすみいただきました。ありがとう。ごちそうさまでした。なんども徹夜で研究室に残って頑張ったのが最後の最後で効いた気がします。
- 大量のおかしを
なんでもいいからまたなんか研究したいなー。