/2020-EI338

[2020 Fall, SJTU] EI338 Computer Systems Engineering

Primary LanguageC++GNU General Public License v3.0GPL-3.0

2020 EI338 Assignments & Lab Projects

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.

Contents

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.

Notes

To get started with the labs, basic Makefile knowledge might be necessary (even not explicitly required in the handouts).