Courses/Computer Science/CPSC 457.W2012/Assignments

From wiki.ucalgary.ca
Jump to: navigation, search

Assignment 1: Processes and System Calls

HW1 released

Due Sat 28 Jan 23:59

Grades distributed via svn on 13 February.

Assignment 2: Beating Up Your OS

HW2 Released

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.

HW3 released

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.