top — Speicher und Prozesse

top            # im Terminal: Live-Anzeige, q beendet
/bin/top.elf   # als Programm: eine Momentaufnahme

Werkzeuge in /bin · Prozesse & Ring-3 · SMP & Tasks · sysinfo


Zwei Fassungen, ein Name

top gibt es doppelt, und der Unterschied ist wichtig:

Woher Verhalten
Terminal-Built-in im Vega-Terminal eingebaut läuft in der Ereignisschleife des Terminals mit SysYield und zeichnet in den Zeichenpuffer; q beendet
/bin/top eigenes Ring-3-Programm eine Momentaufnahme, dann Ende

Der eingebaute Weg wurde gewählt, weil das Terminal ein Kind bis zu dessen Ende blockiert: ein Programm, das sich selbst in einer Schleife auffrischt, würde das Terminal festhalten und seine Ausgabe erst beim Beenden zeigen. Als Built-in entfällt zugleich der ANSI-Parser — das Terminal schreibt direkt in seine Darstellung.

Ausgabe

top — Lyx OS

Mem:  512 MB total   96 MB used   416 MB free
Bump: 16 MB total   3 MB used   13 MB free
Tick: 12045 (120 s)

PID  NAME             STATE   CPU%      MEM
  2  term             RUN       4.1%    512 K
  3  taskmgr          READY     0.3%    128 K

  • Mem — Seiten des Seitenverwalters, in MB umgerechnet (256 Seiten = 1 MB).
  • Bump — der Bump-Bereich. Er ist die knappste Ressource; wer wissen will, ob eine große Anwendung noch hineinpasst, sieht es hier.
  • Tick — der 100-Hz-Zähler des Zeitgebers, dahinter in Sekunden.
  • CPU%kumulativ, nicht momentan: cpu_ticks / pit_frame, wie bei ps. Bei 100 Hz ist die Auflösung 10 ms; kurze Läufe ergeben oft ein Delta von 0 und summieren sich erst über die Zeit.

Gibt es keine Kindprozesse, steht dort (no child processes).

Woher die Zahlen kommen

Syscall Nr Liefert
sys_proc_info(slot, buf) 202 PID, Zustand, belegter Heap, CPU-Ticks, Name (16 B)
sys_mem_stats(buf) 203 freie und gesamte Seiten, Tick-Zähler, Bump-Füllstand
sys_cpu_stats 205 Kernzahl und je Kern die Zähler (busy, total) — der Aufrufer rechnet util = Δbusy/Δtotal
 
Der Puffer für sys_mem_stats ist 64 Byte groß, nicht 24. Der Kernel füllt inzwischen bis +40 (busy_ticks, Bump-Füllstand). Ein zu klein bemessener Puffer schrieb über sein Ende hinaus — unauffällig nur deshalb, weil mmap ganze Seiten liefert. Wer eigene Werkzeuge gegen diesen Syscall schreibt, nimmt 64 Byte.

Die frühere Nummer 204 (cpu_idle_tick, ein Leerlaufzähler je Kern) gibt es nicht mehr — sie wurde beim TO-8-Rückbau entfernt, nachdem TO-9.5 die Kernstatistik auf die echte Buchführung des Schedulers umgestellt hatte. Wer noch gegen 204 schreibt, bekommt keinen Wert.

Unter QEMU sieht man regelmäßig Kern 0 bei ~100 % und die übrigen bei ~0 %: die Anwendungskerne laufen im Leerlauf, die SMP-Verteilung wird noch nicht genutzt.


Letzte Aktualisierung: 2026-08-27 — Seite neu angelegt, aus lyx-os/bin/top.lyx und vega/term.lyx erhoben.