Sie befinden sich hier: Termine » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 4 » sst-2015-08-07   (Übersicht)

Pruefer: wosch Beisitzer: Daniel Lohmann

Insgesamt entspannte Atmosphaere, sass anfangs alleine im Raum (Kaffee holen) ;-)

Teil 1: BST

Syscalls, wie geht das?

  • trap, traphandler
  • sysenter

Wie geht sysenter, warum ist das schneller?

  • keine Indirektion ueber Tabellen (stattdessen: MSR)
  • weniger/keine Kontextsicherung

Woher weiss sysexit wohin er zurueckspringen muss? → vorher durch Benutzerprogramm konfiguriert

Wie koennen Parameter uebergeben werden?

  • per Register (Primitivbefehl; siehe Linux)
  • per Komplexbefehl

Was sind die Vor- und Nachteile der beiden Varianten?

  • Siehe Folien
  • Insb. Nachteil Komplexbefehl / Ptr in den Userspace: Koennen von anderem Thread veraendert werden, mehrfaches lesen des Parameters fuehrt uU zu unterschiedlichen Ergebnissen

Teil 2: KSS

Konfigurierbarkeit, wie geht das im Fall von Linux? → Zusammenspiel `Kconfig`, `Kbuild` und `CPP`

Syscalls konfigurierbar (Primitiv / Komplexbefehl) in Linux, wie wuerdest du das implementieren?

  1. Generator
  2. eigenstaendige Module / von Hand (mein Gefuehl: das wollten sie nicht hoeren)
  3. AspectC++

Wie geht das mit AspectC++?

  1. brauche pointcut X
  2. schreibe advice fuer pointcut X

Wie bekommst du die unterschiedliche Parameterzahl in den Griff? → Per JoinPointApi (tjp)