This repository contains three projects that I completed for my Operating Systems class as part of the Computer Science curriculum at the University of Amsterdam. The projects are as follows:
Each project has its own directory containing its source code and any relevant documentation. The projects were written in C and Python, and the documentation was written in LaTeX. The projects were graded by the course instructors, and the grades are mentioned in the respective project sections below.
The goal of this project was to implement a shell program that can execute commands and manage processes. The shell supports the following features:
- Simple commands, e.g.,
exit
andcd
- Sequences of commands
- Pipes
- CTRL-C handling
- Detached commands
- Environment variables
- Subshells
- Redirections
The shell.c file contains the main source code for the shell.
My grade for this project was 10/10.
The goal of this project was to implement several CPU scheduling algorithms and compare their performance in a research paper. The scheduling algorithms that were implemented and evaluated are as follows:
- First-Come, First-Served (FCFS)
- FCFS with an optimal N-tries value
- Round Robin (RR)
- RR with improved memory efficiency
- Priority Scheduling
The cpu-scheduling directory contains the source code for the scheduling algorithms, as well as the research paper that compares the performance of the algorithms.
My grade for this project was 9.7/10.
The goal of this project was to implement various commands to manage a MINIX file system. The file system supports the following features:
- Listing files in a directory (
ls
) - Reading a file (
cat
) - Creating a new file (
touch
) - Creating a new directory (
mkdir
)
The mfstool.py file contains the main source code for the file system.
My grade for this project was 8/10.
This repository is licensed under the MIT License. See the LICENSE file for more information.