Courses/Computer Science/CPSC 457.W2012/Assignments
Contents
Assignment 1: Processes and System Calls
Due Sat 28 Jan 23:59
Grades distributed via svn on 13 February.
Assignment 2: Beating Up Your OS
Due Sat 11 Feb 23:59
Hints
You may find the time
and ulimit
commands useful.
Assignment 3: Thread Supply, Locking Granularity & Placement, and Performance
This is an exercise in user-level concurrency. It is also an exercise in measurement.
Due Sat 3 March 23:59
Extended deadline to 6 March at 8:59pm.
Assignment 4: Kernel Programming: Process Supervision
Homework 4 is released.
It is now due on 31 March at 11:59pm. (old due date: 24 March at 11:59pm)
Brief extension to 1 April at 11:59pm.
In this assignment, you will be asked to make some modifications to the Linux kernel source code.
The programming part of this assignment should be a substantial challenge, particularly if you have not undertaken kernel-level programming before.
Hints:
http://lxr.linux.no/#linux+v2.6.27.41/include/linux/ptrace.h#L1
http://lxr.linux.no/#linux+v2.6.27.41/kernel/ptrace.c#L548
http://lxr.linux.no/#linux+v2.6.27.41/kernel/ptrace.c#L480
http://lxr.linux.no/#linux+v2.6.27.41/kernel/ptrace.c#L155
http://lxr.linux.no/#linux+v2.6.27.41/security/security.c#L132
- see man prctl(2) PR_SET_DUMPABLE flag for alternative inspiration (your solution need not use this...it is just presented as background FYI on something that can achieve a similar semantics to preventing tracing...)
- You should really take a very careful look at the ELF header layout, and you should probably peek into the fs/ directory in the Linux kernel source code for inspiration as to where (i.e., what file) to modify the ELF loader.
Assignment 5: Kernel Module Programming: Kernel Supervision and Measurement
Homework 5 is released.
This assignment is due on April 14 at 11:59pm.
In this assignment, you will be asked to write your own loadable kernel module. Check out the links further on down this wiki page for more information on how to write LKMs. You'll also have some practice in the tutorials.
The individual part of this assignment involves writing a review of a paper assigned to you; see Courses/Computer_Science/CPSC_457.W2012/PaperReviews for more detail.