process-scheduling

1.1.0 • Public • Published

process-scheduling

An npm package to calculate turn-around time and waiting time for common CPU scheduling algorithms

import {
  calculateFCFS,
  calculatePriorityNonPreemptive,
  calculateRoundRobin,
  calculatePriorityPreemptive,
  calculateShortestJobFirst,
} from "process-scheduling"
const arrivalTime = [0, 1, 2]
const burstTime = [4, 3, 5]
const priority = [2, 1, 3]
const timeQuantum = 3
const fcfs = calculateFCFS(arrivalTime, burstTime)
  const rr = calculateRoundRobin(arrivalTime, burstTime, timeQuantum)
  const pnp = calculatePriorityNonPreemptive(arrivalTime, burstTime, priority)
  const pp = calculatePriorityPreemptive(arrivalTime, burstTime, priority)
  const sjf = calculateShortestJobFirst(arrivalTime, burstTime)
  console.table(fcfs)
  console.table(rr)
  console.table(pnp)
  console.table(pp)
  console.table(sjf)
┌─────────┬─────────┬─────────────┬───────────┬────────────┬────────────────┬─────────────┐
 (index)    Job    ArrivalTime  BurstTime  FinishTime  TurnaroundTime  WaitingTime 
├─────────┼─────────┼─────────────┼───────────┼────────────┼────────────────┼─────────────┤
    0     'Job 1'       0           4          4             4              0      
    1     'Job 2'       1           3          7             6              3      
    2     'Job 3'       2           5          12            10             5      
└─────────┴─────────┴─────────────┴───────────┴────────────┴────────────────┴─────────────┘
┌─────────┬─────────┬─────────────┬───────────┬────────────┬────────────────┬─────────────┐
 (index)    Job    ArrivalTime  BurstTime  FinishTime  TurnaroundTime  WaitingTime 
├─────────┼─────────┼─────────────┼───────────┼────────────┼────────────────┼─────────────┤
    0     'Job 1'       0           4          10            10             6      
    1     'Job 2'       1           3          6             5              2      
    2     'Job 3'       2           5          12            10             5      
└─────────┴─────────┴─────────────┴───────────┴────────────┴────────────────┴─────────────┘
┌─────────┬─────────┬─────────────┬───────────┬──────────┬────────────┬────────────────┬─────────────┐
 (index)    Job    ArrivalTime  BurstTime  Priority  FinishTime  TurnaroundTime  WaitingTime 
├─────────┼─────────┼─────────────┼───────────┼──────────┼────────────┼────────────────┼─────────────┤
    0     'Job 1'       0           4         2          8             8              4      
    1     'Job 2'       1           3         1          4             3              0      
    2     'Job 3'       2           5         3          13            11             6      
└─────────┴─────────┴─────────────┴───────────┴──────────┴────────────┴────────────────┴─────────────┘
┌─────────┬─────────┬─────────────┬───────────┬──────────┬────────────┬────────────────┬─────────────┐
 (index)    Job    ArrivalTime  BurstTime  Priority  FinishTime  TurnaroundTime  WaitingTime 
├─────────┼─────────┼─────────────┼───────────┼──────────┼────────────┼────────────────┼─────────────┤
    0     'Job 1'       0           4         2          7             7              3      
    1     'Job 2'       1           3         1          4             3              0      
    2     'Job 3'       2           5         3          12            10             5      
└─────────┴─────────┴─────────────┴───────────┴──────────┴────────────┴────────────────┴─────────────┘
┌─────────┬─────────┬─────────────┬───────────┬────────────┬────────────────┬─────────────┐
 (index)    Job    ArrivalTime  BurstTime  FinishTime  TurnaroundTime  WaitingTime 
├─────────┼─────────┼─────────────┼───────────┼────────────┼────────────────┼─────────────┤
    0     'Job 1'       0           4          8             8              4      
    1     'Job 2'       1           3          4             3              0      
    2     'Job 3'       2           5          13            11             6      
└─────────┴─────────┴─────────────┴───────────┴────────────┴────────────────┴─────────────┘

/process-scheduling/

    Package Sidebar

    Install

    npm i process-scheduling

    Weekly Downloads

    0

    Version

    1.1.0

    License

    ISC

    Unpacked Size

    16.1 kB

    Total Files

    9

    Last publish

    Collaborators

    • aryanxxvii