SWE3004: Operating Systems (Spring 2016)

[Projects]

  • From this semester, we will use the xv6 instructional operating system. To successfully complete these projects, you must have excellent C programming skill and be familiar with the Linux platform.
  • Required skills
    • Fluent C programming
    • Basic knowledge on Intel x86 architecture
    • Intel x86 assembly programming
    • Basic knowledge on Unix/Linux systems
    • Ability to read a large, complex program

[Lab. Class]

  • When: 20:00 - 22:00 (Tuesday)
  • Where: #330110
  • Week 2
    • Trap handling procedure in Intel architecture & xv6
  • Week 3
  • Week 6
    • Page fault handling procedure in Intel architecture & xv6

Project #0 (Deadline: 3/13 11:59PM)

  • Install Ubuntu 14.04 -- This is an official Linux distribution we will use.
  • Install xv6 & qemu
  • Print your student ID and name in the xv6 boot message. Your name and student ID should be printed before the shell is running. This means that you have to insert a code (yeah, just a single line) into one of the xv6 kernel code.
  • Submit your screenshot to the TA.

Project #1 (Deadline: 3/27 11:59PM)

  • Implement getnice & setnice system call in xv6
  • xv6 project #1 template
  • Submit your tarball file to the TA by email with title of "[SWE3004]Project#1-YOURID-YOURNAME"

Project #2 (Deadline: 4/3 11:59PM)

Project #3 (Deadline: 4/24 11:59PM)

  • Implement stack growth in xv6
  • xv6 project #3 template
  • xv6 project #3 test cases
  • Submit your tarball file to the submission site (sys.skku.edu)
    • You should type your REAL name and student ID to register.
    • You should submit tarball using "make tarball"

Project #4 (Deadline: 5/15 11:59PM)

  • Implement copy-on-write in xv6
  • xv6 project #4 template
  • xv6 project #4 test cases
  • Submit your tarball file to the submission site (sys.skku.edu)
    • You should type your REAL name and student ID to register.
    • You should submit tarball using "make tarball"

Project #5 (Deadline: 5/29 11:59PM)

  • Implement thread-support in xv6
  • xv6 project #5 template
  • xv6 project #5 test cases
  • Submit your tarball file to the submission site (sys.skku.edu)
    • You should type your REAL name and student ID to register.
    • You should submit tarball using "make tarball"

Project #6 (Deadline: 6/12 11:59PM)

  • Implement mutex and condition variable in xv6
  • xv6 project #6 template
    • Add synch.h, synch.c, mutextest1.c, mutextest2.c
  • xv6 project #6 test cases
    • test1~8.c are same as test cases of project 5.
    • test1~8.c (25%), test9~11.c (75%)
  • Submit your tarball file to the submission site (sys.skku.edu)
    • You should type your REAL name and student ID to register.
    • You should submit tarball using "make tarball"