Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 4 » sst-2015-08-07
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?
- Generator
- eigenstaendige Module / von Hand (mein Gefuehl: das wollten sie nicht hoeren)
- AspectC++
Wie geht das mit AspectC++?
- brauche pointcut X
- schreibe advice fuer pointcut X
Wie bekommst du die unterschiedliche Parameterzahl in den Griff? → Per JoinPointApi (tjp)