==============================================================
  Experiment 02: Exploring the /proc File System
==============================================================
  [Back to Index]
--------------------------------------------------------------

THEORY:
  /proc file system is a virtual file system in Linux that
  provides an interface to kernel data structures.

  /proc/cpuinfo   - CPU details including number of cores
  /proc/meminfo   - System memory usage
  /proc/stat      - Kernel statistics (processes, CPU, etc.)
  /proc/[pid]/status - Info about a specific process
  /proc/loadavg   - System load average

--------------------------------------------------------------

COMMANDS:

  # View CPU info
  cat /proc/cpuinfo | less

  # Count processors
  grep -c processor /proc/cpuinfo
  cat /proc/cpuinfo | grep "processor" | wc -l

  # View memory info
  cat /proc/meminfo

  # Total and free memory
  cat /proc/meminfo | grep -E 'MemTotal|MemFree'

  # Fraction of free memory
  awk '/MemTotal/ {total=$2} /MemFree/ {free=$2} END {print "fraction of free:",free/total}' /proc/meminfo

  # Count total processes
  ps -e | wc -l

  # Show all processes
  ps aux

  # Count running/blocked processes
  ps -eo stat | grep -c R
  ps -eo stat | grep -c D

  # Kernel statistics
  cat /proc/stat

  # Total processes created
  cat /proc/stat | grep 'processes'

  # Context switches
  cat /proc/stat | grep 'ctxt'

--------------------------------------------------------------

SAMPLE OUTPUT:

  $ cat /proc/meminfo | grep -E 'MemTotal|MemFree'
  MemTotal:        3667152 kB
  MemFree:         2738700 kB

  $ awk '/MemTotal/ {total=$2} /MemFree/ {free=$2} END {print "fraction of free:",free/total}' /proc/meminfo
  fraction of free: 0.889411

  $ ps -e | wc -l
  20

  $ ps -eo stat | grep -c R
  1

  $ cat /proc/stat | grep 'processes'
  processes 1074

  $ cat /proc/stat | grep 'ctxt'
  ctxt 11973152

==============================================================
  [Next: Exp 03 - Process Time Analysis]
==============================================================