文書の過去の版を表示しています。
Operation System Conceptsメモ
概要
OSについての教科書。メジャーなOSそれぞれで用いられている技術が解説されている。実装方法や思想の違いはあるけれども、基本的な仕組みは共通している。ベースを学ぶ本。
プロセス管理
メモリ管理
ストレージ管理
セキュリティ
分散システム
特別な目的のシステム
率直な感想
英語の習熟が不十分なのでよくわからないところが多い。文章はわかっても、全体として何が言いたいのか不明なときが多い。とはいえ300ページ時点で最初のときより、はるかにわかる。慣れてきた。
章末にある問題は読むだけで、わからないものがほとんどであった。もっと考えよう。…ひどいものだが、それでも読みたいと思う。
何であれ自己満足に陥らないために大切なのは、テストだ…。章末問題は全然わからないし、後で何学んだかな?と思って書き出しても全然出てこない。ひどい。
とはいえ、前もって知っていたところもあるので、全然わからないということはまれだ。全部サイアクというわけじゃない。本文は読むのが遅い。が、各章の序文は非常に読みやすくすっと理解できる。少なくとも前には進んでいることがわかる。
章ごとのまとめ
プロセス管理
プロセス管理で必要なこと。マルチスレッド。スケジューリング。いくつかの戦略。長所と短所。
プロセス、リソース、リクエスト。
デッドロックしないように何が工夫されているか…防ぐ仕組み、検知する仕組み、復帰させる仕組み。各アルゴリズムの長所と短所。
デッドロックが起こりうる条件。比喩→哲学者の食事、列。
メモリ管理
プロセスごとに2つのレジスタ…物理アドレスの下限、上限があり、CPUは範囲内でしかアクセスできない。これによって誤、不正アクセスを防ぐ?(レジスタはCPUとセットで、プロセスごとにはないと思うが…。)、物理アドレスを動かすのは難しいが、仮想アドレスを動かすのはカンタン。動かしやすくする。物理アドレスは制約がたくさんある…。
実行するときに物理アドレスと再配置アドレスをリンクさせる?論理アドレス。
CPUは論理アドレスを使い、メモリは物理アドレスを使う。変換を行うのがMMU。
ユーザープログラムは物理アドレスを見ることがない。
スタブでロードを再利用する
ロードするメモリを探す3つ戦略
ページングの仕組み…図があるとわかった気になれる
階層になったページテーブル。p1+p2+d→大分類→小分類→idみたいな感じか?セクション+ページ+オフセット。この構造、パケットに似ている。
分割しまくる。2nd outer page。
32bit以上だと分割も数が多すぎになる。hashを使う?
共有して省メモリ。データ部分だけ、ユーザプロセスにする。
バーチャルメモリ管理
たくさんメモリを割り当てても、必ずしもパフォーマンス改善につながらない。アルゴリズムを正しく選択しないと。
page-fault rateとframeの数をちょうどいい感じにする…CPUとメモリのバランスを最適化。(frameってなんだっけ。)
mapping
buddy system, slab allocatorがよくわからず
いろんなサイズのpageがある
データ構造によってlocalityに違いがある…スタックはよいlocality→一番上ばかり使われるから。一方ハッシュはわるいlocality→アクセスがバラバラだから。データ利用の効率の違いになる。
オブジェクト指向はlocalityが低くなる傾向がある
I/Oとメモリ
バーチャルメモリは、サイズが大きな論理アドレスが、小さな物理メモリにマッピングすることを可能にするためにある。
PageとPage Frameの関係
ストレージ管理
fileは一般的形式で、ユーザーによって決められる…文字列、ソースコード、バイナリ…
OSが拡張子の対応方法を決めるのではなく、アプリケーションが決める。
UNIXはファイルをシンプルなバイトの並びで定義している
論理レコードが物理レコードの始まりを示す…?
論理レコードから物理ブロックへの変換?…ブロックとレコードの関係がよくわからない。
ディスクスペースは物理ブロックに分配されている。ブロックの最後はたいてい捨てられる。→internal fragmentationに苦しめられる
シーケンシャルアクセス→順にアクセス…current pointer、next、rewindを使って、最も使われる。エディタやコンパイラはこの形式をよく使う。テープモデル。
direct access→固定長の論理レコードを持つ。順番なし。ディスクモデル。
indexファイルのindexを作る…
パーミッションとかの各システムによる違い
ファイルシステム
article/operation_system_concepts.1591169369.txt.gz · 最終更新: 2020/06/03 16:29 by kijima