Video
Notes
Lecture 14
Next week, I'll be around Wednesday and Friday to discuss projects.  Email to make an appointment!
Tutorials today and the tuesday after break are catch-up tutorials.  Finish the stuff you haven't done or, if you are caught up, work on your project.  I drop one tutorial, so you can consider this to be an optional one if you wish.
Assignment 4 will be due after the break, no later than Nov. 4th late night.
pH does
-------
* monitors every system call on a Linux system
  - on a per-process basis
* able to slow down any system call, and later resume normal speed
* load a profile on execve, update on disk as necessary
To make pH work
---------------
What do I have to change?
* inject code into the system call dispatcher
  - runs before actual per-system call code runs
* change fork
  - copy pH's state
     - shared exec profile
     - copied sequence state
* change execve
  - load the right profile
    (yes, disk I/O from the kernel!)
* change exit
  - free pH state
* main pH routine
  - called by syscall dispatcher
  - analyzes sequences, updates profiles, maintains train, test,
    slows down syscalls
* to slow down a system call
  - put it on a wait queue
* created /proc interface