Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

This project focuses on the implementation and comparative analysis of five core CPU scheduling algorithms: First-Come First-Served (FCFS), Shortest Job First (SJF), Priority Scheduling, Round Robin (RR), and Priority with Round Robin.

NotificationsYou must be signed in to change notification settings

gnevercodes/CPU_Scheduling_algorithms_OSDesign

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 

Repository files navigation

🎓 CSCE 5640 – University of North Texas

Instructor: Prof. Amar M. Maharjan
Team Members: Ganesh Gundekarla, Shreya Sri Bearelly, Divya Sree Dandu, Vikas Varala

This repository contains a two-part academic project onOperating System Design, focused on process scheduling and memory management. Each part covers core operating system concepts implemented in C++, tested with real scenarios, and analyzed with custom-built datasets. This project is part of a six-project academic portfolio developed during graduate coursework.


📁 Repository Structure

os-design-project/├── Part1/                         # CPU Scheduling Algorithms│   ├── code/│   ├── docs/│   └── README.md├── Part2/                         # Page Replacement Algorithms│   ├── code/│   ├── docs/│   └── README.md└── README.md                      # (This file) Combined Overview

⚙️ Part 1 – CPU Scheduling Algorithms

🧠 Overview

Implements and evaluates five core CPU scheduling strategies:

  • First-Come First-Served (FCFS)
  • Shortest Job First (SJF)
  • Priority Scheduling
  • Round Robin
  • Priority with Round Robin

Each algorithm is tested on custom datasets containing 6, 10, and 16 processes. Results focus on metrics like average waiting time and turnaround time. Outputs are generated and analyzed using Python visualization tools.


💾 Part 2 – Page Replacement Algorithms

🧠 Overview

Simulates five page replacement strategies:

  • FIFO
  • Optimal
  • LRU (Least Recently Used)
  • LFU (Least Frequently Used)
  • MFU (Most Frequently Used)

Each algorithm is tested with reference strings and evaluated using different frame sizes (10 and 20). The analysis focuses on the number of page faults and efficiency of real-time memory handling strategies.


📈 Summary Tables

CPU Scheduling – Avg Waiting Time

Algorithm6 Procs10 Procs16 Procs
FCFS44.1783.24136.26
SJF32.6765.88109.49
Priority50.2081.66138.10
Round Robin58.20121.50200.71
Priority + Round Robin50.7382.44138.16

Page Replacement – Avg Page Faults

Algorithm10 Frames20 Frames
FIFO10.225.6
Optimal9.621.8
LRU10.023.4
LFU10.423.4
MFU10.225.6

🧾 Learning Outcomes

  • Gained hands-on experience simulating low-level OS mechanisms
  • Understood how CPU and memory scheduling impacts performance
  • Practiced software modularity, input handling, and evaluation pipelines .
  • Leveraged C++ for systems programming and Python for analysis and executed those in linux and google colab.

📫 Contact

Created by Ganesh Gundekarla
🔗LinkedInGitHub

About

This project focuses on the implementation and comparative analysis of five core CPU scheduling algorithms: First-Come First-Served (FCFS), Shortest Job First (SJF), Priority Scheduling, Round Robin (RR), and Priority with Round Robin.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp