GithubHelp home page GithubHelp logo

cpu_scheduler's Introduction

OS Term Project - CPU Scheduling Simulator (COSE231)

1. Components


Create_Process() : Creates and initialises processes.

Each process will be assigned the following attributes:  

- PID (Process ID)
- Arrival Time
- CPU burst time (randomly generated)
- I/O burst time (randomly generated)
- Priority (randomly generated)

Following attributes will be used for scheduling algorithms:

- State (Ready, Running, Waiting etc.)
- Consumed/remaining CPU burst time
- Consumed/remaining I/O burst time
- Time spent in various queues

Config() : System configuration

Config() may be used to specify the following:

- Number of processes to be created
- Ready/waiting queue implementation/selection

Schedule() : Scheduling algorithms

Scheduling algorithms to be implemented:
- FCFS (First Come First Served)
- SJF (Shortest Job First)
- SJF with preemption
- Priority Scheduling (w/ preemption)
- Priority Scheduling (w/o preemption)
- RR (Round Robin)

Evaluation() : Evaluate and compare the performance of scheduling algorithms

Following metrics will be used to evaluate the performance of scheduling algorithms:
- Average waiting time
- Average turnaround time

2. Marking Criteria

  1. method for data creation (-5)

    PID, arrival time, CPU burst time, I/O burst time, priority
    
  2. implementation of I/O operation (-5)

     I/O interrupt may be dynamic (random) or static
     1 or more I/O burst
    
  3. Scheduling Algorithms Implementation (-5 each)

     FCFS, 
     SJF (preemptive/non-preemptive),
     Priority (preemptive/non-preemptive),
     Round Robin
    
  4. Gantt Chart (-5)

     for successful display of Gantt chart
    
  5. Evaluation (-5)

    successful evaluation of waiting/turnaround time
    
  6. Additional Functions

    2-4 points per additional function/functionality
    
  7. QnA

    Must be able to demonstrate/explain the workings of the written codes
    
  8. Report (-20)

    refer to "3.Report"
    

3. Report

cpu_scheduler's People

Contributors

w990417 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.