Studie en implementatie van input replay Cornelis Frank.

Slides:



Advertisements
Verwante presentaties
gebouw applicaties binnen een gebouwbesturingssysteem
Advertisements

Fedora Content Model en XSLT Fedora op Klompen, Amsterdam, Egbert Gramsbergen TU Delft Library / Digital Product Development
Deel XIV Eerste echte e-commerce applicatie Implementatie (vervolg) 1 Internetapplicaties Deel 14: Eerste echte e-commerce applicatie: Implementatie (vervolg)
Processor & Toetsenbord
Par. 3.1 Computers zijn overal
Par. 3.3 Het geheugen.
1/1/ /e/e eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 2(1): Inleiding InstructieSetArchitectuur.
BESTURINGS SYSTEMEN Vincent Naessens.
Arduino project.
1 Device driver. 2 Hardware Operating Systeem Prog1Prog2 System calls/ API Device drivers Gebruiker afschermen van de hardware.
ADuC8xx MICROCONVERTER
Computerarchitectuur
C programma int main(){ } Compilatie met devc++ in file main.c Gecompileerd programma in file FirstProgram.exe Mov R1, 120 Mov R2, 160 ADD R1, R2.

Hoe een computer gegevensverwerkende processen realiseert
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(1): Flow of.
Opleiding ICT © J.W. Jonker Dia 1/16 Systemen Besturingssoftware Windows XP Mark van Heck.
Opleiding ICT © J.W. Jonker Dia 1/19 Systemen Besturingssoftware Windows XP Mark van Heck.
Real-Time Systems (RTSYST) Week 2. Process/Thread states Scheduler = deel van OS dat de toestanden van processen/threads bepaald. OS gebruikt timerinterrupt.
Slide 1Programmatuur voor real-time controleYolande Berbers RTPReal-Time Programmatuur laag-niveau programmeren uit hoofdstuk 15 van Alan Burns, Andy Wellings,
Motion planning with complete knowledge using a colored SOM Jules Vleugels, Joost N. Kok, & Mark Overmars Presentatie: Richard Jacobs.
Praktijk case: “Geautomatiseerd scannen én verwerken van ingekomen facturen” ICT Platform.
Bluetooth Communicatie tussen computer en Brick Computer zet de connectie op, Brick wacht Enkel communicatie van de Brick naar de computer Lejos API: NXTConnecion.
PRESENTATIE 4 CallCtrl Jurrian Tromp.
1 Datastructuren Introductie tot de programmeeropgaven in C++ Jan van Rijn
Hogeschool HZ Zeeland 19 augustus 2003augustus 2003 Data Structuren & Algoritmen Week 3.
Power PC Assembler. Assembler toolkit bevat Assembler zelf Linkerlibrarian.
Event Handling in Embedded Systems.  Wat is een event?  Welke events zijn het meest “time-critical”?  Welke toestand wordt door de CPU opgeslagen?
1/1/ /e/e eindhoven university of technology OGO 1.2 project Startbijeenkomst Een microprocessor… …om warm voor te lopen.
Operating Systems Informatica.
Presentatie door: Martijn Schmid, Kathinka Veldkamp en Nynke Zwart
1 Welkom Loe Hameleers Gerard Maeijer. 2 ERP systemen zullen een ingrijpende verandering ondergaan ERP systemen zullen een ingrijpende verandering ondergaan.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 4: Inleiding InstructieSetArchitectuur (ISA) datatypen.
1/1/ eindhoven university of technology / faculty of Computer Science 2IC20:Computersystemen Week 2: IDaSS.
Mem_ex: buddy system Gegeven: een geheugenblok van 1 megabyte wordt toegewezen met het buddysysteem. A)Toon de resultaten van de volgende reeks in een.
Een concreet voorbeeld gebracht door Willem De Meyer
1/1/ / faculty of Computer Science eindhoven university of technology 5B040:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 9(1): Virtual.
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
HOGESCHOOL ROTTERDAM / CMI Computersystemen 2 (TIRCCMS02 - Operating systems)
Context switching Chanel Mepschen Informatica 5Fvwo.
Context switching Heidi Snoek. Het proces Twee applicaties: A en B CPU voert de instructies van programma A uit. Op een bepaald moment wordt er data weggeschreven.
Module I Informatica Dhr. C. Walters. Het belang van informatie Gegevens  Informatie  Besluitvorming Gegevens = Data, Raw Material Informatie = Gegevens.
BIOS en Opstarten.
Basisfuncties Operating System.
1 XSLT processing & control Datamodellering 2006.
Context switching Naomi Baggelaar. Het proces Twee applicaties: A en B CPU voert de instructies van programma A uit. Op een bepaald moment wordt er data.
Plaats van de componenten op het moederbord
Bots en agents Inhoud Bewerkingen voor het daadwerkelijke animeren Implementatie Game Animatie Active Worlds Animatie.
PEMSY1http:// 1  Herhaling nieuwe instructies van vorige week  nieuw: combineren van assembler en C  oefeningen: assembler.
Hoofdstuk 10.3 Tekst-editor: MDI-interface Dialogen Files lezen Abstracte klassen.
Plaats van de componenten op het moederbord
Les 5: Geheugenbeheer “If we wish to count lines of code, we should not regard them as ‘lines produced’ but as ‘lines spent.’” – Edsger Dijkstra.
 2 Fases ◦ Data van CPU overbrengen naar GPU  Mesh data, Render State, Blend State... ◦ GPU rendert scene  Programeerbare shaders verwerken input 
 C++ heeft een inheritance mechanisme  Manier om functionaliteit te ‘erfen’ van een parrent class ◦ Polymorphisme ◦ Zoals we het ook in C# kennen.
INFITT01 - Internettechnologie WEEK 3. Programma Sessies JSP.
Java & het Web Programma: Sessies JSP. Stateless vs. Stateful(1) HTTP is stateless WAT IS STATELESS?
Na de praktijk, de theorie.. Zoals een gehaktmolen 1.Je stopt er iets in. 2.Je hoeft niet te weten wat er binnenin gebeurt. 3.Het resultaat verschijnt.
1 Operating Systems- Week 1. 2 Computersystemen Memory Instruction Data
Digitale gegevens Drs. Ing. Rainier Kock 1. Vorige les 2 Computers werken met elektrische schakelingen Schakelaar aan = 1, uit = 0 Tekst, geluid en beeld.
Module code: 11. I/O-beheer en schijfscheduling 12. Bestandsbeheer 1 Operating Systems.
Operating Systems Informatica.
Computersystemen 2 (TIRCCMS02 - Operating systems)
Computersystemen 2 (TIRCCMS02 - Operating systems)
Computersystemen 2 (TIRCCMS02 - Operating systems)
3 Hardware 3.1 De processor en intern geheugen
Gameprogrammeren: Interfaces
Besturingssystemen Ga verder met een muisklik..
Wat gaan we doen? Herhaling ARM assembler instructies
Wat gaan we doen? Herhaling: ACPS; indexed addressing; half-word/byte
Onbevredigd door Testautomatisering? Reduceer je False Negatives!
Transcript van de presentatie:

Studie en implementatie van input replay Cornelis Frank

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

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

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

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

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

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

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

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

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

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

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

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

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)

Normalisatie User data memory raw record genormaliseerde record

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