Skip to content

About

Collection of projects from my operating systems class, that span across process scheduling, API communication, multithreading, and the development of an Elevator Operating System scheduler. Together, they demonstrate proficiency in C/C++, system design, and critical problem-solving in OS environments.

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

Operating Systems

Image

This covers a series of advanced projects from the Operating Systems course, that span across process scheduling, API communication, multithreading, and the development of an Elevator Operating System scheduler. Each project, developed in C/C++, explores a distinctive area of OS design like implementing Round Robin and Priority CPU Scheduling, developing robust multithreading and synchronization mechanisms and building a simulated environment for resource allocation. Together, these projects reflect a deep understanding of how modern operating systems function and demonstrate strong skills in problem-solving, system analysis, and implementation.

Project Overview

  1. Bash, Makefiles, and Utilizing the HPCC

    • Topic: Bash Scripting and Makefiles
    • Description: This assignment involves creating a Bash script for automating tasks such as file decryption and transformation on the HPCC, utilizing GNU 5.4.0.
  2. Using APIs to Communicate

    • Topic: API Communication
    • Description: A C/C++ program that interacts with APIs running in a singularity container. The program sends and retrieves data using PUT and GET requests to modify internal data objects.
  3. Multithreading

    • Topic: Multithreading and Mutex/Semaphores
    • Description: A program that reads integers from a file and processes them concurrently using multiple threads, implementing mutexes or semaphores to ensure thread safety.
  4. Scheduling

    • Topic: Process Scheduling
    • Description: This assignment simulates various process scheduling algorithms, including FCFS, Round Robin, SPN, SRT, and HRRN, based on process data provided through input files.
  5. Elevator Operating System

    • Topic: Multithreading and API Communication
    • Description: The final project involves developing a multithreaded scheduler for an Elevator OS that communicates with a Python-based system via asynchronous API calls, simulating real-time elevator operations.

Built With

This repository primarily utilizes:

  • Bash Bash: For scripting and job submission on the HPCC.
  • C Programming C/C++: Used for API communication, multithreading, and scheduling algorithms.

Learning Outcomes

By completing these assignments and the final project, I gained practical experience in key areas of operating system design:

  • Bash Scripting & Automation: Developed skills in creating and debugging Bash scripts to automate tasks on distributed systems, managing jobs, files, and processes efficiently.
  • API Communication: Mastered sending and receiving data via APIs using C/C++, with a solid understanding of HTTP requests and inter-process communication.
  • Multithreading & Synchronization: Built multithreaded applications using synchronization techniques like mutexes and semaphores to ensure thread safety and prevent race conditions.
  • Process Scheduling: Implemented and analyzed scheduling algorithms, including FCFS, Round Robin, SPN, and HRRN, assessing their efficiency and impact on CPU utilization.
  • Systems-Level Problem Solving: Applied operating system concepts like scheduling and resource allocation, culminating in the Elevator OS project with real-world multithreading and API communication challenges.

This experience deepened my understanding of operating system fundamentals and real-world problem-solving.

About

Collection of projects from my operating systems class, that span across process scheduling, API communication, multithreading, and the development of an Elevator Operating System scheduler. Together, they demonstrate proficiency in C/C++, system design, and critical problem-solving in OS environments.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages