This repository contains assignments and the final project for the Operating Systems course, Fall 2024. Each assignment explores key concepts and practical implementations in operating systems.
- Description: Implement a simple preprocessor to process text files, replacing variables with their values.
- Topics Covered: Text processing, file handling in xv6.
- Description: Extend xv6 shell functionality to handle pipes and redirections.
- Topics Covered: Interprocess communication, file I/O.
- Description: Implement a round robin scheduler with 5 priority levels and demonstrate the effect of priorities on process scheduling.
- Topics Covered: Scheduling algorithms, priority handling.
- Description: Research and analyze the usage of mutexes and spinlocks for synchronization in Linux.
- Topics Covered: Thread synchronization, concurrency.
- Description: Implement the
tail
command in xv6 to display the lastn
lines of a file. - Topics Covered: Command-line utilities, file handling.
- Description: Implement the
strace
utility to trace system calls made by a process, with support for filtering, child process tracing, and output suppression. - Topics Covered: System call tracing, process monitoring, filtering options.