
【技術書】オペレーティングシステムの仕組みを読みました
# OS # book
今回読んだ本
タイトルにもある通りオペレーティングシステムの仕組み (情報科学こんせぷつ 5)を読みました。
この本を読んだ理由
「絵で見てわかるシステムパフォーマンスの仕組み」を読んでいたり、PythonでのMultithreading等を扱う中で、プロセスやスレッドなど何となくは分かるけどブラックボックス感を強く感じる部分が多くありました。 OSレイヤーがその回答になるという記事を何処かで見たため本書に手を出してみました。 いい意味で教科書的な内容で知識欲を満たしつつ楽しく読むことが出来ました。
本の概要とメモ
OSとはなにかから始まり、
- オペレーティングシステムの役割
- ハードウェアの抽象化や制約を超える仕組みなどOSがあることのありがたみが紹介されています
- I/Oデバイスと割り込み
- 入力装置の処理のされ方や優先度が高い処理の割り込みについて書かれています
- Webアプリとか作るときには考えない(抽象化されている)ようなレイヤーで興味深いです
- プロセスとスレッド
- この章のためにこの本を買ったと言っても過言ではありません
- なんとなく使っていたマルチプロセスやマルチスレッドについて、ある程度体型だった知識を与えてくれました
- 間接的にPythonでのasyncioのメリット、デメリットも掴めたような気がします
- スケジューリング
- 相互排除と同期
- マルチスレッドによる更新の競合を防ぐ方法が書かれています
- PythonでもGILを解除する話が出ていたり、他のプログラミングちらほら出てくる話だったりするのでしょうか
- メモリ管理と仮想記憶
- ファイルシステム
- ネットワーク
- セキュリティ
- ケーススタディ(Windows)
この本を読んだ感想等
当たり前にあるものとなっているOSや入力デバイス等について、どのように今のパソコンが動作しているかを理解を深めることができました。 ブラウザに表示を行いつつ文字の入力を受け付けて更に音楽を流すというように、複数の処理を同時に行う際にどのような考え方で処理が裁かれているかがわかったのがとても勉強になりました。
何でPythonにはGILがあるのにMultithreadingで並行処理ができるの?みたいな問いに真っ直ぐ答えられるような知識が手に入ったことが嬉しいです。 また、いわゆる難しいとされているようなマルチスレッドというような概念やRustの所有権等の話もこういう基礎を積み重ねていくことで自分の武器になっていくのかなと感じました。
難しさがある場所だからこそこつこつと自分の血肉にしていきたいものです。