やかんです。

今日やったことについて

オペレーティングシステム(授業)

  • linuxにおいては、一つ一つのスレッドがvruntimeをっ見ることができる?
    • 先週やったが、あるスレッドがCPUのコアのどれで実行されているかというのは、linuxでは確認できた。
  • vruntimeの教材やってなかった。やろう。
  • niceコマンド面白いな。vruntimeの増加を加速するイメージか。

オペレーティングシステム(自学)

  • pthreadは、unix共通のthreadAPIなんだ。
  • void * f(void * arg)って何?
    • スレッドで実行する関数(スレッドのエントリーポイント)を表しているんだ。
    • これは柔軟な関数宣言だから、よくスレッドのエントリーポイントで利用されるらしい。
  • voidポインタは、任意のデータ型のポインタにキャストすることができる柔軟なポインタなんだ。
    • tsのanyみたいなとこか?
  • pthread_joinは、子スレッドの終了を待つ。第二引数にポインタを指定することで、子スレッドの返り値を参照することができる。
  • 親スレッドと子スレッドは同時に実行される。並行して、ということか。親スレッドと子スレッドは独立して並行に実行される。
  • 子スレッドで実行させる関数(エントリーポイント)に渡せる引数は一つ。だから、基本的には構造体に色々まとめて、その構造体を渡す。
  • プロセスはアドレス空間を共有しない。これ、スレッドと対比するとわかりやすいよな。
  • スレッドの競合状態、概念自体は難しくないけど実装レベルで理解しようとすると難しいな。
  • 例えば、g=0;でg++という処理を考える。g++;自体はプログラム的には一つの塊になっているけど、これは以下3つのステップを表している。
    • gの現在の値を読む
    • その値に1を加える
    • 加算した値をgに書き戻す
  • ↑だから、スレッドセーフでない場合、g++;が実際に行われる回数と、gの値との間には不整合が生じうる(g++;が実行された回数よりもgの値は小さくなる)。
    • 言い換えると、例えばスレッドAとスレッドBがある場合、AとBで同じgの値を読み込んだ回数だけ、g++;の実行回数から値が引かれるということだ。

数理手法1(授業)

ひたすらエクセルを触る授業。演習終わらせた人から終了だった。

教習所行ってきた。

  • ブレーキペダル使わなくても、ギア落としてエンジンブレーキ使えばめちゃスムーズやん。
  • 1速で引っ張ると、燃費は悪いらしいがギアチェンジスムーズ。繋ぎやすいし、他の車においていかれない。
    • 結構、ぐーんって踏む。思ってるよりも踏む。
  • ギアチェンジの時、半クラ繋いでからアクセル踏むんだ。クラッチペダル遊んでる時にアクセル踏む必要ないな。
  • ギアチェンジは急がなくていいわ。今まで急いでレバーガッチャンガッチャンやってたけど、そもそもクラッチ踏んで惰力で進んでるんだから。ちゃんと、半クラ作ってからアクセル踏む。
  • トルクって何?

やることorやりたいこと

積み残し。

  • 線型空間入門P95の表現行列について一通り復習。今ならもっと理解できる。
  • 知財法、設計図の著作物性について
  • 多次元の期待値
  • 少しずつ数式に慣れるために、何を継続するか考える。
  • AVL木の実装。
  • 明日じゃなくてもいいけど、2-3木の実装。
  • 二分探索木野実装。

今日固有のもの。

  • OSの教材、触れてないやつやる。
  • 統計学の日課。
  • エンジニア業務やらねば。

特に明日は、、

明日はあんま時間取れそうにないんだよなあ。どうしよう。優先順位的には

  1. エンジニア業務
  2. 統計学の日課
  3. 二分探索木

だな。この3つができたら御の字。まあ、最低でも上二つはやろう。

ということで、今日の日記終了。最後までお読みいただきありがとうございます。