

{"id":99898,"date":"2021-08-10T09:00:32","date_gmt":"2021-08-10T03:30:32","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=99898"},"modified":"2021-08-07T13:32:55","modified_gmt":"2021-08-07T08:02:55","slug":"scheduling-algorithms-in-operating-system","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/scheduling-algorithms-in-operating-system\/","title":{"rendered":"Scheduling Algorithms in Operating System"},"content":{"rendered":"<p>Scheduling algorithms schedule processes on the processor in an efficient and effective manner. This scheduling is done by a Process Scheduler. It maximizes CPU utilization by increasing throughput.<\/p>\n<p>Following are the popular process scheduling algorithms about which we are going to talk in this chapter:<br \/>\n1. First-Come, First-Served (FCFS) Scheduling<br \/>\n2. Shortest-Job-Next (SJN) Scheduling<br \/>\n3. Priority Scheduling<br \/>\n4. Shortest Remaining Time<br \/>\n5. Round Robin(RR) Scheduling<br \/>\n6. Multiple-Level Queues Scheduling<br \/>\n7. Multilevel Feedback Queues Scheduling<br \/>\n8. Highest Response Ratio Next<\/p>\n<h3>1. First-Come, First-Served (FCFS)<\/h3>\n<p>In this scheduling algorithm, jobs are executed on a first come, first serve basis irrespective of burst time or priority. It is both a preemptive and non-preemptive scheduling algorithm. It is based on the First In First Out (FIFO) queue.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/First-Come-First-Served.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-100221\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/First-Come-First-Served.jpg\" alt=\"First-Come First-Served Algorithm\" width=\"648\" height=\"382\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/First-Come-First-Served.jpg 648w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/First-Come-First-Served-520x307.jpg 520w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/First-Come-First-Served-320x189.jpg 320w\" sizes=\"auto, (max-width: 648px) 100vw, 648px\" \/><\/a><\/p>\n<p>Waiting time of each process:<\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Process<\/b><\/td>\n<td><b>Waiting Time = Service Time &#8211; Arrival Time<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P0<\/span><\/td>\n<td><span style=\"font-weight: 400;\">0 &#8211; 0 = 0<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P1<\/span><\/td>\n<td><span style=\"font-weight: 400;\">5 &#8211; 1 = 4<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P2<\/span><\/td>\n<td><span style=\"font-weight: 400;\">8 &#8211; 2 = 6<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P3<\/span><\/td>\n<td><span style=\"font-weight: 400;\">16 &#8211; 3 = 13<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Average Waiting Time = (0+4+6+13) \/ 4 = 5.75<\/p>\n<h4>Advantages of FCFS:<\/h4>\n<ul>\n<li>It is simple and easy to implement.<\/li>\n<\/ul>\n<h4>Disadvantages of FCFS:<\/h4>\n<ul>\n<li>Inefficient throughput<\/li>\n<li>If a process has a very high burst time and is coming first, then it will be executed first even if another process with a lesser time is present in the ready state.<\/li>\n<\/ul>\n<h3>2. Shortest Job Next (SJN)<\/h3>\n<p>Also known as shortest job first (SJF), this scheduling algorithm is both a non-preemptive and preemptive scheduling algorithm. Process with the minimum burst time at an instance executes first. It is very efficient in minimizing the waiting time and is easy to implement in Batch systems. It cannot be implemented if the required CPU time is not known in advance.<\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Process<\/b><\/td>\n<td><b>Arrival Time<\/b><\/td>\n<td><b>Execution Time<\/b><\/td>\n<td><b>Service Time<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P0<\/span><\/td>\n<td><span style=\"font-weight: 400;\">0<\/span><\/td>\n<td><span style=\"font-weight: 400;\">5<\/span><\/td>\n<td><span style=\"font-weight: 400;\">0<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P1<\/span><\/td>\n<td><span style=\"font-weight: 400;\">1<\/span><\/td>\n<td><span style=\"font-weight: 400;\">3<\/span><\/td>\n<td><span style=\"font-weight: 400;\">5<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P2<\/span><\/td>\n<td><span style=\"font-weight: 400;\">2<\/span><\/td>\n<td><span style=\"font-weight: 400;\">8<\/span><\/td>\n<td><span style=\"font-weight: 400;\">14<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P3<\/span><\/td>\n<td><span style=\"font-weight: 400;\">3<\/span><\/td>\n<td><span style=\"font-weight: 400;\">6<\/span><\/td>\n<td><span style=\"font-weight: 400;\">8<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><strong>Waiting time of each process:<\/strong><\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Process<\/b><\/td>\n<td><b>Waiting Time = Service Time &#8211; Arrival Time<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P0<\/span><\/td>\n<td><span style=\"font-weight: 400;\">0 &#8211; 0 = 0<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P1<\/span><\/td>\n<td><span style=\"font-weight: 400;\">5 &#8211; 1 = 4<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P2<\/span><\/td>\n<td><span style=\"font-weight: 400;\">14 &#8211; 2 = 12<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P3<\/span><\/td>\n<td><span style=\"font-weight: 400;\">8 &#8211; 3 = 5<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Average Waiting Time = (0 + 4 + 12 + 5)\/4 = 21 \/ 4 = 5.25<\/p>\n<h4>Advantages:<\/h4>\n<ul>\n<li>Short processes execute first.<\/li>\n<\/ul>\n<h4>Disadvantages:<\/h4>\n<ul>\n<li>There is a chance of starvation if short processes keep coming in the ready state.<\/li>\n<\/ul>\n<h3>3. Priority Scheduling<\/h3>\n<p>This scheduling algorithm is commonly used in batch systems and is a non-preemptive scheduling algorithm. In this each process is assigned a priority and the process with the highest priority executes first followed by the ones lower in priority. If two processes share the same priority then execution is done on a first come first served basis. Priority is decided based on memory requirements, time requirements, or any other resource requirement.<\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Process<\/b><\/td>\n<td><b>Arrival Time<\/b><\/td>\n<td><b>Execution Time<\/b><\/td>\n<td><b>Priority<\/b><\/td>\n<td><b>Service Time<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P0<\/span><\/td>\n<td><span style=\"font-weight: 400;\">0<\/span><\/td>\n<td><span style=\"font-weight: 400;\">5<\/span><\/td>\n<td><span style=\"font-weight: 400;\">1<\/span><\/td>\n<td><span style=\"font-weight: 400;\">0<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P1<\/span><\/td>\n<td><span style=\"font-weight: 400;\">1<\/span><\/td>\n<td><span style=\"font-weight: 400;\">3<\/span><\/td>\n<td><span style=\"font-weight: 400;\">2<\/span><\/td>\n<td><span style=\"font-weight: 400;\">11<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P2<\/span><\/td>\n<td><span style=\"font-weight: 400;\">2<\/span><\/td>\n<td><span style=\"font-weight: 400;\">8<\/span><\/td>\n<td><span style=\"font-weight: 400;\">1<\/span><\/td>\n<td><span style=\"font-weight: 400;\">14<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P3<\/span><\/td>\n<td><span style=\"font-weight: 400;\">3<\/span><\/td>\n<td><span style=\"font-weight: 400;\">6<\/span><\/td>\n<td><span style=\"font-weight: 400;\">3<\/span><\/td>\n<td><span style=\"font-weight: 400;\">5<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Waiting time of each process:<\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Process<\/b><\/td>\n<td><b>Waiting Time<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P0<\/span><\/td>\n<td><span style=\"font-weight: 400;\">0 &#8211; 0 = 0<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P1<\/span><\/td>\n<td><span style=\"font-weight: 400;\">11 &#8211; 1 = 10<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P2<\/span><\/td>\n<td><span style=\"font-weight: 400;\">14 &#8211; 2 = 12<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P3<\/span><\/td>\n<td><span style=\"font-weight: 400;\">5 &#8211; 3 = 2<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Average Waiting Time = (0 + 10 + 12 + 2)\/4 = 24 \/ 4 = 6<\/p>\n<h4>Advantages:<\/h4>\n<ul>\n<li>Higher priority processes execute first.<\/li>\n<\/ul>\n<h4>Disadvantages:<\/h4>\n<ul>\n<li>There is a chance of starvation if only higher priority processes keep coming in the ready state<\/li>\n<li>If two processes have the same priorities, then some other scheduling algorithm needs to be used.<\/li>\n<\/ul>\n<h3>4. Shortest Remaining Time (SRT)<\/h3>\n<p>This scheduling algorithm is the preemptive version of the SJN algorithm. The OS allocates the processor to the job that is closest to completion. Though there is a chance of this job being preempted, if another job is ready with a shorter time to completion. It is used in batch environments where short jobs are given preference and cannot be implemented in interactive systems where required CPU time is unknown.<\/p>\n<h3>5. Round Robin (RR)<\/h3>\n<p>This scheduling algorithm is a preemptive process scheduling algorithm where each process is provided a fixed time to execute. This fixed time is called a quantum.It uses context switching to save states of preempted processes. Once a process is done executing for a given time period, it is preempted and another process executes for a given time period.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/Round-Robin-RR.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-100222\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/Round-Robin-RR.jpg\" alt=\"Round Robin\" width=\"496\" height=\"174\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/Round-Robin-RR.jpg 496w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/Round-Robin-RR-320x112.jpg 320w\" sizes=\"auto, (max-width: 496px) 100vw, 496px\" \/><\/a><\/p>\n<p>Waiting time of each process:<\/p>\n<table>\n<tbody>\n<tr>\n<td><b>Process<\/b><\/td>\n<td><b>Waiting Time<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P0<\/span><\/td>\n<td><span style=\"font-weight: 400;\">(0 &#8211; 0) +(12 &#8211; 3) = 9<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P1<\/span><\/td>\n<td><span style=\"font-weight: 400;\">(3 &#8211; 1) = 2<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P2<\/span><\/td>\n<td><span style=\"font-weight: 400;\">(6 &#8211; 2) + (14 &#8211; 9) + (20 &#8211; 17) = 12<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">P3<\/span><\/td>\n<td><span style=\"font-weight: 400;\">(9 &#8211; 3) + (17 &#8211; 12) = 11<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Average Waiting Time = (9+2+12+11) \/ 4 = 8.5<\/p>\n<h4>Advantages:<\/h4>\n<ul>\n<li>No starvation as every process gets a chance for its execution.<\/li>\n<li>Used in time-sharing systems.<\/li>\n<\/ul>\n<h4>Disadvantages:<\/h4>\n<ul>\n<li>The CPU is left idle due to a lot of context switching.<\/li>\n<\/ul>\n<h3>6. Multiple-Level Queues<\/h3>\n<p>In this scheduling algorithm multiple algorithms with common characteristics come together to form a group and then schedule jobs as a whole. Thus, it is not an independent scheduling algorithm. There are multiple queues for processes with common characteristics and each queue has its own scheduling algorithms. The OS assigns priorities to each queue.<\/p>\n<h3>7. Multilevel Feedback Queue<\/h3>\n<p>This scheduling algorithm is similar to multilevel queue scheduling except that the processes here can change their queue too i.e., if a process is in queue1, then after partial execution, it can switch to queue2.<\/p>\n<p>There is a list of queues with different priorities and one with a higher priority queue executes first. During execution of a process with a higher priority queue comes, then the execution of the lower priority queue stops and the one with higher priority queue replaces it. There is a chance of starvation if the higher priority queue keeps coming in the ready state and the lower priority queue keeps waiting for its turn.<\/p>\n<h3>8. Highest Response Ratio Next<\/h3>\n<p>In this scheduling algorithm, scheduling is done on the basis of response ratio. The process with the highest response ratio is scheduled next which reduces starvation in the system.<\/p>\n<h3>Purpose of a Scheduling algorithm<\/h3>\n<p>The purpose of a scheduling algorithm is to provide:<\/p>\n<ul>\n<li>Maximum CPU utilization<\/li>\n<li>Minimum turnaround time<\/li>\n<li>Fair allocation of CPU<\/li>\n<li>Maximum throughput<\/li>\n<li>Minimum waiting time<\/li>\n<li>Minimum response time<\/li>\n<\/ul>\n<h3>Summary<\/h3>\n<p>Scheduling algorithm schedules jobs. There are six types of algorithms that we have seen in this tutorial. Hope you liked it.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Scheduling algorithms schedule processes on the processor in an efficient and effective manner. This scheduling is done by a Process Scheduler. It maximizes CPU utilization by increasing throughput. Following are the popular process scheduling&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":100220,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24565],"tags":[24913,24919,24918,24917,24912,24916,24911,24914,24915],"class_list":["post-99898","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-operating-system-tutorials","tag-first-come-first-serve","tag-highest-response-ratio-next","tag-multilevel-feedback-queue","tag-multiple-level-queues","tag-priority-scheduling","tag-round-robin","tag-scheduling-algorithms","tag-shortest-job-next","tag-shortest-remaining-time"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Scheduling Algorithms in Operating System - DataFlair<\/title>\n<meta name=\"description\" content=\"Scheduling algorithm schedules processes on the processor in an efficient and effective manner. Learn various scheduling algorithms.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/scheduling-algorithms-in-operating-system\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Scheduling Algorithms in Operating System - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Scheduling algorithm schedules processes on the processor in an efficient and effective manner. Learn various scheduling algorithms.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/scheduling-algorithms-in-operating-system\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-08-10T03:30:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/Scheduling-Algorithms.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Scheduling Algorithms in Operating System - DataFlair","description":"Scheduling algorithm schedules processes on the processor in an efficient and effective manner. Learn various scheduling algorithms.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/scheduling-algorithms-in-operating-system\/","og_locale":"en_US","og_type":"article","og_title":"Scheduling Algorithms in Operating System - DataFlair","og_description":"Scheduling algorithm schedules processes on the processor in an efficient and effective manner. Learn various scheduling algorithms.","og_url":"https:\/\/data-flair.training\/blogs\/scheduling-algorithms-in-operating-system\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2021-08-10T03:30:32+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/Scheduling-Algorithms.jpg","type":"image\/jpeg"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/scheduling-algorithms-in-operating-system\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/scheduling-algorithms-in-operating-system\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/b49855299264df5e27e3ec6c2cd9fde9"},"headline":"Scheduling Algorithms in Operating System","datePublished":"2021-08-10T03:30:32+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/scheduling-algorithms-in-operating-system\/"},"wordCount":900,"commentCount":1,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/scheduling-algorithms-in-operating-system\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/Scheduling-Algorithms.jpg","keywords":["First come first serve","Highest Response Ratio Next","Multilevel Feedback Queue","Multiple-Level Queues","Priority Scheduling","Round Robin","Scheduling Algorithms","Shortest job next","Shortest Remaining Time"],"articleSection":["Operating System Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/scheduling-algorithms-in-operating-system\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/scheduling-algorithms-in-operating-system\/","url":"https:\/\/data-flair.training\/blogs\/scheduling-algorithms-in-operating-system\/","name":"Scheduling Algorithms in Operating System - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/scheduling-algorithms-in-operating-system\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/scheduling-algorithms-in-operating-system\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/Scheduling-Algorithms.jpg","datePublished":"2021-08-10T03:30:32+00:00","description":"Scheduling algorithm schedules processes on the processor in an efficient and effective manner. Learn various scheduling algorithms.","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/scheduling-algorithms-in-operating-system\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/scheduling-algorithms-in-operating-system\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/scheduling-algorithms-in-operating-system\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/Scheduling-Algorithms.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/Scheduling-Algorithms.jpg","width":1200,"height":628,"caption":"Scheduling Algorithms"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/scheduling-algorithms-in-operating-system\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Operating System Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/operating-system-tutorials\/"},{"@type":"ListItem","position":3,"name":"Scheduling Algorithms in Operating System"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/b49855299264df5e27e3ec6c2cd9fde9","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ef46b745ddad2fad690af626c6ef29b91809ad0a9f5ef398d07817d8cad042f5?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/ef46b745ddad2fad690af626c6ef29b91809ad0a9f5ef398d07817d8cad042f5?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ef46b745ddad2fad690af626c6ef29b91809ad0a9f5ef398d07817d8cad042f5?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team is a group of passionate educators and industry experts dedicated to providing high-quality online learning resources on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. With years of experience in the field, the team aims to simplify complex topics and help learners advance their careers. At DataFlair, we believe in empowering students and professionals with the knowledge and skills needed to thrive in today\u2019s fast-paced tech industry. Follow us for Free courses, expert insights, tutorials, and practical tips to boost your learning journey.","url":"https:\/\/data-flair.training\/blogs\/author\/datafbdad\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/99898","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=99898"}],"version-history":[{"count":2,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/99898\/revisions"}],"predecessor-version":[{"id":100223,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/99898\/revisions\/100223"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/100220"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=99898"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=99898"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=99898"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}