De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

Studie en implementatie van input replay Cornelis Frank.

Verwante presentaties


Presentatie over: "Studie en implementatie van input replay Cornelis Frank."— Transcript van de presentatie:

1 Studie en implementatie van input replay Cornelis Frank

2 INPUTPROCESSING OUTPUT Normaal verloop: Recording: INPUT PROCESSING OUTPUT RECORDING Replay: INPUTPROCESSINGOUTPUT REPLAY

3 Doel input replay: dezelfde output genereren ! Dit is soms niet gewenst bv: append bij files Algemeen: OUTPUT niet state-less of history-dependent bv: robotarm, neuraal netwerk OUTPUT perceptionele OUTPUT Oplossing: selectieve output bij replay-fase

4 Recording Soorten input –Externe IPC (  SYSV IPC) –Interne IPC

5 Recording: externe IPC USER PROGRAM Linux KERNEL syscall U1U2KERNEL SYSV IPC

6 Recording: interne IPC USER PROGRAM task1task2 CLONE Niet-deterministisch  scheduler, IRQs, CPU Een lock-protocol verhelpt dit niet!

7 Recording methodes Brute force: full context recording –Memory space –Processor state Selectief –Registers –Geheugen

8 Selectieve recording: registers Tabelleren: manueel werk syscallR1R2R3 writeXX readXX Automatiseren: at compile-time GCC.section magic

9 Selectieve recording: geheugen Comparing: traag, oude copy nodig Vóór de system callNa de system call cmp

10 Dirty-flags in paging systeem Nog steeds lineair scannen Selectieve recording: geheugen PDBR Page Directory Page Table Page 4KB dirty flags read-only flags

11 Read-only flags + exception handler  COW conflict bij fork Write-macro’s instrumenteren –put_user(value, *addr) –copy_to_user(*to, *from, count) Selectieve recording: geheugen

12 Input Recording task_struct User data memoryUser Code entry.S kernel module put_user int 0x80 mm linux kernel if (current->ptrace & PT_PTRACED) { … } current

13 Opvragen van de input record Via een extensie op de ptrace system call Parent process Child process linux kernel tracing ptrace peek/poke extensie ptrace

14 ptrace uitbreidingen long int ptrace(enum __ptrace_request request, pid_t pid, void *addr, void *data) PTRACE_RAWMEMDIFF Opvragen van de raw memory record PTRACE_DIFFMEM Opvragen van de genormaliseerde record PTRACE_PATCHMEM Opnieuw invoeren van een record (bij replay)

15 Normalisatie User data memory raw record genormaliseerde record

16

17

18

19

20

21 Input replay: besluit Recording perfect mogelijk m.b.v. extended ptrace kernel patch Replay mogelijk in de meeste gevallen… Implementatie nog te schrijven


Download ppt "Studie en implementatie van input replay Cornelis Frank."

Verwante presentaties


Ads door Google