Linuxカーネルコミッタの夢を見る

10年以内にLinuxカーネルにコミットしたい(2020/10/1).無理だって?まあ見てなさい.

低レイヤー学習記【15日目】

取り組んだ内容

[1] OS自作入門,pp.250-266

[2] コンピュータアーキテクチャの基礎,pp.264-282

取り組んだ内容の詳細

[1] OS自作入門

・背景色とフォントの描画,そして画面更新を一つの関数にまとめて起動用プログラムの行数をリダクション

・タイマー用のバッファを一つにまとめて,タイムアウト時に書き込まれる値でどのタイマがタイムアウトしたのかを判別するようにした

・タイマカウント用の変数を用意し,性能比較した,エミュレータ上で起動するよりも実機の方がやはり速いらしい(実機確認できないので書籍で確認)

・キーボードやマウス用のバッファも同様に一つにまとめた,この際データ型をcharからintに変更して対応した

・以上の改良によってタイマの性能がおよそ1.3倍向上(まじか笑)

・タイマ管理用の構造体にnextという構造体を設けて次の時刻のタイマが入るようにした,ずらし処理によって次のタイマを管理するのではなく配列を途中でつなぎ変えるようなイメージ

[2] コンピュータアーキテクチャの基礎

・キャッシュの種類や制御機構,性能指標などについて読んだ

・キャッシュに関する用語(ライン,ラインサイズ,ブロック,etc...)を知った

・キャッシュとメインメモリの中間に位置するテーブルとかが仮想メモリの機構と似てるな思ったらやはり書籍内でも言及されていた

所感

疲れていたのでコード部分はほとんど読んでない,説明文章のみ.タイマ管理は後々アプリーション開発で重要になってくるという予想はやはり当たっていて書籍の中でも述べられていた.今日はもう寝て明日早起きして続きしようかな~.

コンピュータアーキテクチャにおける性能向上のための機構は,機能は異なっても似た手法がとられていることがあったりして「こういうの前にもあったな~」となって楽しい.また,これまでよく知らなかった用語なども使いどころと共に知ることができていて楽しい(どう楽しいか説明する気力がない).また,性能向上のために考えられている複数の手法がトレードオフの関係にあるとき,それらを上手く組み合わせたハイブリッドな手法が現代のコンピュータの主流となっているケースが多い気がする.いや~,感心します

『コンピュータアーキテクチャの基礎』は第7章のメモリアークテクチャ編を読み終えたので次回からは入出力アーキテクチャ編に突入です.外部デバイスに足を踏む入れる時が来ましたね,楽しみです.