{"id":26996358,"url":"https://github.com/jelhamm/cpu-scheduling","last_synced_at":"2026-05-01T14:33:12.630Z","repository":{"id":182842076,"uuid":"669172600","full_name":"jElhamm/CPU-Scheduling","owner":"jElhamm","description":"\"CPU Scheduling Algorithms Implementation Repository\"","archived":false,"fork":false,"pushed_at":"2024-02-20T18:14:05.000Z","size":330,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-04T01:18:14.680Z","etag":null,"topics":["cpu","cpu-scheduling","fcfs-process-scheduling","fcfs-scheduling","java","mlq--scheduling","operating-system","priority-scheduling","round-robin","round-robin-scheduler","rr-scheduling","scheduling","shortest-job-first","sjf-scheduling"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jElhamm.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-07-21T14:16:49.000Z","updated_at":"2024-02-28T20:47:00.000Z","dependencies_parsed_at":"2024-02-13T23:37:04.122Z","dependency_job_id":null,"html_url":"https://github.com/jElhamm/CPU-Scheduling","commit_stats":null,"previous_names":["jelhamm/cpu-scheduling"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jElhamm/CPU-Scheduling","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jElhamm%2FCPU-Scheduling","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jElhamm%2FCPU-Scheduling/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jElhamm%2FCPU-Scheduling/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jElhamm%2FCPU-Scheduling/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jElhamm","download_url":"https://codeload.github.com/jElhamm/CPU-Scheduling/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jElhamm%2FCPU-Scheduling/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32501399,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpu","cpu-scheduling","fcfs-process-scheduling","fcfs-scheduling","java","mlq--scheduling","operating-system","priority-scheduling","round-robin","round-robin-scheduler","rr-scheduling","scheduling","shortest-job-first","sjf-scheduling"],"created_at":"2025-04-04T01:18:17.809Z","updated_at":"2026-05-01T14:33:12.607Z","avatar_url":"https://github.com/jElhamm.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CPU Scheduling\n\n   This repository contains implementations of various [*(CPU scheduling Algorithms)*](https://www.futurelearn.com/info/courses/computer-systems/0/steps/53513) in Java. \n   The implemented algorithms include:\n\n   * [First-Come, First-Served (FCFS)](https://www.javatpoint.com/os-fcfs-scheduling)\n   * [Shortest Job First (SJF)](https://www.javatpoint.com/os-sjf-scheduling)\n   * [Priority Scheduling](https://www.javatpoint.com/os-priority-scheduling)\n   * [Round Robin (RR)](https://www.javatpoint.com/os-round-robin-scheduling-algorithm)\n   * [Multi-Level (MLQ)](https://www.javatpoint.com/multilevel-queue-scheduling-in-operating-system)\n\n## Performance of Algorithms\n\n   1. FCFS:\n\n       * This Algorithm Schedules processes based on their arrival times.\n       * The process that arrives first gets executed first, and subsequent processes wait in a queue until it's their turn.\n       * It operates under the assumption that all processes are equally important.\n       * [*More Information*](https://www.geeksforgeeks.org/first-come-first-serve-cpu-scheduling-non-preemptive/)\n\n   2. SJF:\n\n       * This Algorithm Schedules processes based on their burst times.\n       * The process with the shortest burst time is executed first, minimizing the average waiting time.\n       * It can be either *preemptive* or *non-preemptive*\n       * [*More Information*](https://www.studytonight.com/operating-system/shortest-job-first)\n\n   4. RR:\n\n       * This Algorithm allocates a fixed time slice *(Quantum)* to each process in a cyclic manner.\n       * Each process gets a chance to execute for the defined time quantum before being preempted and placed back in the ready queue.\n       * It ensures fairness by giving equal opportunities to all processes and prevents starvation.\n       * [*More Information*](https://www.scaler.com/topics/round-robin-scheduling-in-os/)\n\n   3. Priority:\n\n       * This Algorithm assigns priorities to processes based on certain criteria.\n       * The process with the highest priority is executed first.\n       * It can be either *preemptive* or *non-preemptive*.\n       * [*More Information*](https://www.geeksforgeeks.org/program-for-priority-cpu-scheduling-set-1/)\n\n   5. Multi-Level:\n\n       * This Algorithm divides the ready queue into multiple separate queues, each with its own Scheduling Algorithm.\n       * Processes are assigned to different queues based on specified criteria.\n       * Each queue can use a different *Scheduling Algorithm* to manage its processes.\n       * [*More Information*](https://www.geeksforgeeks.org/multilevel-queue-mlq-cpu-scheduling/)\n\n## References\n\n   * [Scheduling (computing)](https://en.wikipedia.org/wiki/Scheduling_(computing))\n   * [CPU Scheduling in Operating Systems](https://www.geeksforgeeks.org/cpu-scheduling-in-operating-systems/)\n   * [Preemptive and Non-Preemptive Scheduling](https://www.geeksforgeeks.org/preemptive-and-non-preemptive-scheduling/)\n   * Operating System Concepts Book by Abraham Silberschatz.\n   * Modern Operating Systems Book by Andrew Tanenbaum.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjelhamm%2Fcpu-scheduling","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjelhamm%2Fcpu-scheduling","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjelhamm%2Fcpu-scheduling/lists"}