文書の過去の版を表示しています。


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を作る…
  • パーミッションとかの各システムによる違い

ファイルシステム

  • パーミッション、オーナー、タイムスタンプ、サイズ、…などのメタデータと、アドレス部分で構成されている。アドレスは辿っていく方式。メモリ管理の手法と同じで、ブロックで区切って穴を埋めていくことで、記憶空間を最大限使用できる。external fragmentationが必要ではない。ただし途中から読み込みができない。

↓しばらく飛んで

システムレベルのセキュリティ

パスワードなど。認証はむずい。パスワードはメジャーな方法だが、難しすぎるとメモして流失し,短すぎると総当りされる。ワンタイムパスワードなどもあるがメンドー。生体認証などがトレンドになっている。

侵入や不正な行動を検知するプログラムがある。本当にヤバい行為かをうまく判断することが必要。 たとえば多すぎても意味がなくなる。

article/operation_system_concepts.1591195984.txt.gz · 最終更新: 2020/06/03 23:53 by kijima