Closed31

読書メモ: Linuxのしくみ

hmarui66hmarui66

6 章 デバイスアクセス

  • プロセスがデバイスにアクセスする方法が解説されている
  • デバイスファイルを介したアクセスを解説
hmarui66hmarui66

ext4 ファイルシステムとは?
https://ja.m.wikipedia.org/wiki/Ext4

  • Linuxのファイルシステム
  • ジャーナリングファイルシステム
  • ext3の後継
  • エクステントがポイント
  • 大きなファイルを扱うパフォーマンスがよい
  • フラグメンテーション発生を減らす
hmarui66hmarui66

7章ファイルシステム

  • 各種デバイスにはデバイスファイルを介してアクセスするが、ストレージデバイスはファイルシステムを介してアクセスすることが多い
hmarui66hmarui66

LVM とは?

https://ja.m.wikipedia.org/wiki/論理ボリュームマネージャ

  • 物理ボリュームを提供するデバイスに直接ファイルシステムをマップせず、論理ボリュームという仮想的なボリュームを束ねて利用するシステム
  • 仮想ボリューム: 複数の物理ボリュームを束ねたボリュームグループ上に設定した仮想パーティション
  • ファイルシステムからみると論理ボリュームがディスクパーティション
hmarui66hmarui66

procfs とは?

https://ja.wikipedia.org/wiki/Procfs

  • Process Filesystem の略
  • Unix系システムにある擬似ファイルシステム(ディスクスペース消費しない&メモリもごくわずかしか消費しない)
  • プロセスに関するカーネル情報にアクセスする手段を提供
hmarui66hmarui66

8章記憶階層

  • レジスタ、キャッシュメモリ、メモリ、ストレージデバイスのサイズや性能差を説明
  • 上記の差を考慮した上で、ハードウェアやLinuxはどのようなことをしているかを説明
hmarui66hmarui66

キャッシュメモリの補足

https://ja.wikipedia.org/wiki/キャッシュメモリ

  • 2.0 GHz で動作する Haswell CPU のシングルコアはピーク時に 128GB/s のデータアクセスを要求
    • メインメモリは並列ロードをおこなっても高々 5GB/s
  • 小容量で高速なスタティックRAMを用いて構成
  • データ格納アドレスの一部(ライン単位アドレスの下位数ビット)により格納位置を限定して検索速度を高める
  • 各ラインにはライン単位アドレスの上位ビット(フレームアドレス)を格納し、検索時に比較に用いる
  • ライン入れ替え方式: ラウンドロビン、LRU、ランダム
  • データ更新方式: ライトスルー方式(L1に実装される場合が多い)、ライトバック方式(L2に実装される場合が多い)
  • キャッシュコヒーレンシ: マルチCPU構成におけるデータ一貫性
  • スヌープ方式やディレクトリ方式、共有キャッシュがある
hmarui66hmarui66

Simultaneous Multi Threading(SMT)

https://ja.wikipedia.org/wiki/同時マルチスレッディング

  • 単一CPUで複数スレッドを同時実行することで、擬似的な対称型マルチプロセッシング(SMP)環境を提供
  • SMTを有効にすると見かけのプロセッサ数が増加
  • SMTで同時駆動されるスレッドはハードウェアスレッドと呼ばれる
  • SMP環境を提供: SMTの結果であって目的ではない(?)
hmarui66hmarui66

対称型マルチプロセッシング(SMP)とは

https://ja.wikipedia.org/wiki/対称型マルチプロセッシング

  • 物理メモリを共有して管理する「メモリ共有型並列コンピューティング方式」
  • 特定のCPUに非対称的に割り付けられた処理に依存せず、全CPUに対して均一的に割り付けられた並列処理方式
  • ハードウェア割り込みや起動処理関連で完全な対称形とはならない
hmarui66hmarui66

10章 仮想化機能

  • PCやサーバなどの物理的なマシン上で仮想マシンを動かすためのソフトウェア機能、およびハードウェア機能の組み合わせ
hmarui66hmarui66

ハイパーバイザとは

https://www.redhat.com/ja/topics/virtualization/what-is-a-hypervisor

  • 仮想マシンを作成および実行するソフトウェア
  • ハイパーバイザのOSとリソースを仮想マシンから分離し、仮想マシンの作成と管理を可能にする
  • 各仮想マシンに割り当てられたリソースを提供し、仮想マシンリソースのスケジューリングを管理
  • Type1
    • ネイティブ・ハイパーバイザ、またはベアメタル・ハイパーバイザと呼ばれる
    • ホストのハードウェア上で直接稼働
    • KVM, Microsoft Hyper-V, VMware vSphere
  • Type2
    • ホスト型はハイパーバイザと呼ばれる
    • OS上でソフトウェアレイヤーとして実行
    • VMware Workstation, Oracle VirtualBox
hmarui66hmarui66

CPU Steal Time

https://vmm.dev/ja/linux/kernel/cpu-steal-time.md

  • 仮想マシンが割り当てられる CPU リソース以上のパフォーマンスを発揮しようとしている分を計上したメトリクス
  • involuntary wait time と呼ぶべき
  • Xen の場合は VCPU のスナップショットをとって、runnable + offiline で算出
  • KVM の場合はランキューの待ち時間の差分で算出
hmarui66hmarui66

11章 コンテナ

  • 仮想マシンとの違いはカーネルを共有するかどうか、など
  • コンテナは軽量(起動速度、ハードウェアへのアクセス速度)
このスクラップは2023/09/02にクローズされました