Computer Systems Engineering (Operating Systems & Computer Architecture)
2020 Fall, SJTU
By Prof. J. Li
For lab projects, Learning-EI338 @keithnull is strongly recommended for reference (most APIs are not introduced during lectures).
Handouts for the lab projects are exactly on Operating System Concepts (10th Edition) by Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, with source codes provided.
For F18 this year, reports are required only for submission. Besides, a simple final presentation, covering all projects and focusing only on the functionalities, is included (by Prof J.) after the final exam.
Project Link | Name | Handouts | Description |
---|---|---|---|
Hw 8, README |
Vector Sum | - | Serial & Parallel implementation of vector sum and test & comparison |
Project 1, report |
Introduction to Linux Kernel Modules | Chapter 2 (P-1/7) |
Design two basic kernel modules to output messages in installation and removal. |
Project 2-1, report |
UNIX Shell | Chapter 3 (P-12/15) |
Design a C programme to serve as a shell interface. Support command history & concurrency & I/O redirection & pipe. |
Project 2-2, report |
Linux Kernel Module for Task Information | Chapter 3 (P-15/22) |
Design a kernel module to display information of the input task (by PID) using /porc file system |
Project 3, report |
Banker’s Algorithm | Chapter 8 (P-45/47) |
Implement Banker's Algorithm |
Project 4, report |
Contiguous Memory Allocation | Chapter 9 (P-48/50) |
Manage contiguous memory (actually representations). Support allocation, release and compaction. |
To get started with the labs, basic Makefile knowledge might be necessary (even not explicitly required in the handouts).