Code for EI338 Operating System in SJTU. (Programming Projects of Operating System Concepts, 10th Edition)
Code for EI338 Operating System in SJTU.
Actually, these projects are all from each chapter's programming projects in Operating System Concepts (10th Edition) .
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 |