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