{"id":18266715,"url":"https://github.com/arslanbilal/process-scheduling-algorithms","last_synced_at":"2025-04-04T22:30:28.713Z","repository":{"id":24094695,"uuid":"27482010","full_name":"arslanbilal/Process-Scheduling-Algorithms","owner":"arslanbilal","description":"Process Scheduling Algorithms animation in WPF","archived":false,"fork":false,"pushed_at":"2017-03-31T20:53:57.000Z","size":1153,"stargazers_count":6,"open_issues_count":0,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-20T20:13:48.617Z","etag":null,"topics":["algorithm","fcfs","priority","process-scheduling","round-robin","sjf"],"latest_commit_sha":null,"homepage":"","language":"C#","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/arslanbilal.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}},"created_at":"2014-12-03T10:35:49.000Z","updated_at":"2021-09-14T19:51:22.000Z","dependencies_parsed_at":"2022-08-22T03:20:31.021Z","dependency_job_id":null,"html_url":"https://github.com/arslanbilal/Process-Scheduling-Algorithms","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arslanbilal%2FProcess-Scheduling-Algorithms","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arslanbilal%2FProcess-Scheduling-Algorithms/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arslanbilal%2FProcess-Scheduling-Algorithms/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/arslanbilal%2FProcess-Scheduling-Algorithms/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/arslanbilal","download_url":"https://codeload.github.com/arslanbilal/Process-Scheduling-Algorithms/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247260193,"owners_count":20909954,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["algorithm","fcfs","priority","process-scheduling","round-robin","sjf"],"created_at":"2024-11-05T11:24:35.615Z","updated_at":"2025-04-04T22:30:28.093Z","avatar_url":"https://github.com/arslanbilal.png","language":"C#","readme":"This Project is a Operating System Process scheduling and managing. It will be a WPF program that shows process scheduling.\n\nProcess-Scheduling-Algorithms\n=============================\n\n* [First-Come First-Serve(FCFS)](#First-Come-First-Serve(FCFS))\n* [Shortest Job First(SJF)](#Shorhest-Job-First(SJF))\n* [Priority](#Priority)\n* [Round-Robin](#Round-Robin)\n\n\u003chr\u003e\n\n### First-Come First-Serve(FCFS)\n1) Policy: Process that requests the CPU FIRST  is allocated the CPU FIRST.\u003cbr\u003e\n\n2) FCFS is a non-preemptive algorithm. \u003cbr\u003e\n\n3) Implementation - using FIFO queues. Incoming process is added to the tail of the queue. Process selected for execution is taken from head of queue. \u003cbr\u003e\n\n4) Performance metric - Average waiting time in queue. \u003cbr\u003e\n\n\u003chr\u003e\n\n### Shortest Job First(SJF)\n1) Associate with each process the length of its next CPU burst. \u003cbr\u003e\n\n2) Use these lengths to schedule the process with the shortest time. \u003cbr\u003e\n\n3) Two Schemes:\n##### Scheme 1: Non-preemptive \n  * Once CPU is given to the process it cannot be preempted until it completes its CPU burst. \u003cbr\u003e\n\n##### Scheme 2: Preemptive \n  * If a new CPU process arrives with CPU burst length less than remaining time of current executing process, preempt.\n  * Also called Shortest-Remaining-Time-First (SRTF).. \u003cbr\u003e\n\n\u003chr\u003e\n\n### Priority\n1) A priority value (integer) is associated with each process. Can be based on:\n  * Cost to user \n  * Importance to user \n  * Aging \n  * %CPU time used in last X hours.\u003cbr\u003e\n\n2) CPU is allocated to process with the highest priority.\n  * Preemptive\n  * Nonpreemptive\u003cbr\u003e\n\n3) SJN is a priority scheme where the priority is the predicted next CPU burst time. \u003cbr\u003e\n\n4) Problem:\n  * Starvation!! - Low priority processes may never execute.\u003cbr\u003e\n\n5) Solution:\n  * Aging - as time progresses increase the priority of the process.\u003cbr\u003e\n \n\u003chr\u003e\n\n### Round-Robin\n1) Each process gets a small unit of CPU time:\n  * Time quantum usually 10-100 milliseconds.\n  * After this time has elapsed, the process is preempted and added to the end of the ready queue.\n  * n processes, time quantum = q:\n    1. Each process gets 1/n CPU time in chunks of at most q time units at a time. \n    2. No process waits more than (n-1)q time units. \n    3.Performance:\n      * Time slice q too large – response time poor \n      * Time slice (infinity)? - reduces to FIFO behavior \n      * Time slice q too small - Overhead of context switch is too expensive. Throughput poor\u003cbr\u003e\n\n\u003chr\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farslanbilal%2Fprocess-scheduling-algorithms","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Farslanbilal%2Fprocess-scheduling-algorithms","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Farslanbilal%2Fprocess-scheduling-algorithms/lists"}