/Learning-EI338

Code for EI338 Operating System in SJTU. (Programming Projects of Operating System Concepts, 10th Edition)

Primary LanguageCMIT LicenseMIT

Learning-EI338

Code for EI338 Operating System in SJTU.

Actually, these projects are all from each chapter's programming projects in Operating System Concepts (10th Edition) .

Projects

ID Name Description
1 Introduction to Linux Kernel Modules (Chapter 2) Design two very basic kernel modules.
2-1 UNIX Shell (Chapter 3) Designing a C program to serve as a shell interface that accepts user commands and then executes each command in a separate process, which supports concurrency, I/O redirection and pipe
2-2 Linux Kernel Module for Task Information (Chapter 3) Write a Linux kernel module that uses the /proc file system for displaying a task’s information based on its PID.
3-1 Multithreaded Sorting Application (Chapter 4) Write a multithreaded sorting program.
3-2 Fork-Join Sorting Application (Chapter 4) Implement the preceding project in Java (I use Golang instead) including quick sort and merge sort.
4 Scheduling Algorithms (Chapter 5) Implement a demo for several CPU scheduling algorithms: FCFS, SJF, Priority, RR, Priority with RR
5-1 Designing a Thread Pool (Chapter 7) Create and manage a thread pool with Pthreads and POSIX synchronization
5-2 The Producer–Consumer Problem (Chapter 7) Use standard counting semaphores and a mutex lock to solve the producer-consumer problem
6 Banker’s Algorithm (Chapter 8) Write a program that implements the banker's algorithm
7 Contiguous Memory Allocation (Chapter 9) Manage a contiguous region of memory and respond to different requests
8 Designing a Virtual Memory Manager (Chapter 10) Write a program that translates logical addresses to physical addresses for a virtual address space