LoginSignup
0
1

More than 5 years have passed since last update.

読書メモ:[試して理解]Linuxのしくみ ~実験と図解で学ぶOSとハードウェアの基礎知識

Last updated at Posted at 2018-03-17

ツール

  • ldd: リンクしてるやつ
  • readelf: ELFバイナリの情報
  • sar: CPUの使用状況
    • IO: -d -p
    • ページフォールト: -B
    • メモリ: -r
  • taskset: CPUを指定してプロセスを走らせる sched_setaffinity() system call を使っている
  • ps ax: STAT
    • S: sleep (interruptible)
    • D: IO待ちなど (uninterruptible) 数msで終わる
    • R: runnig/in queue
  • ps -eo pid, comm, time, etime: CPU使用時間、起動してからの時間
  • free: 使用中のメモリ

  • /sys/devices/system/cpu/cpu0/cache - CPU0のキャッシュ情報

  • /proc/<pid>/maps - プロセスのメモリマップ (man 5 proc)

  • /proc/cpuinfo

カーネル

  • OOM killer - available なメモリがなくなった時、適当なプロセスを選んでkill.
    • sysctl の vm.panic_on_oom で disable 可
  • スリープ状態のプロセスはイベント/入力/デバイスの書き込み終了/データ送受信の終了待ち
  • fork 時メモリはCOW
    • すべての書き込み権限を無効化し、page fault 時にページエントリをコピー
  • プロセスのページテーブル(仮想アドレスと物理アドレスのマッピング)が大きくなると、それをコピーするためforkに時間がかかる。mitigation としてhuge page がある
  • TLB: Translation lookaside buffer ページテーブルのキャッシュ
  • ページキャッシュ - カーネルメモリ上のディスクキャッシュ
    • ライトバックはデフォルト5秒 (sysctl dirty_writeback_centisecs)
  • CPUのキャッシュ
$ for i in 0 1 2 3; do cat /sys/devices/system/cpu/cpu0/cache/index$i/{type,level,shared_cpu_list,size,coherency_line_size} | xargs; done
Data 1 0,4 32K 64
Instruction 1 0,4 32K 64
Unified 2 0,4 256K 64
Unified 3 0-7 8192K 64
$ cat /sys/devices/system/cpu/cpu0/topology/thread_siblings_list
0,4

cpu0 は 32K の L1 Data,Inst キャッシュ、256K の L2 キャッシュ、8192K の L3キャッシュを持つ
L1, L2 はハイパースレッドのペア cpu4 とキャッシュを共有。L3 はすべてのCPUで共有

ファイルシステム

  • キャラクタデバイス: シークはできない
    • 端末、キーボード、マウス
    • ps で表示されるTTYはそれにひもづくcharacter device. pts/1 なら /dev/pts/1
  • ブロックデバイス:ランダムアクセス

    • ブロックデバイス層を通してアクセス。マージやソートをしてスループットを上げる(特にHDD)
    • ブロックデバイス層 -> ドライバA -> デバイスA
  • procfs (man 5 proc)

    • /proc/sys 以下のファイルは sysctl, /etc/sysctl.cnf と一対一に対応
  • sysfs

    • /sys/devices - デバイス情報
    • /sys/fs - ファイルシステム情報
  • cgroupfs

    • CPUやメモリの制限を特定のプロセスグループに課す。docker や仮想マシンで利用

C 言語

  • register 指定子 - なるべくレジスタに割り当てる
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1