

{"id":100315,"date":"2021-08-27T09:00:20","date_gmt":"2021-08-27T03:30:20","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=100315"},"modified":"2021-08-18T21:12:59","modified_gmt":"2021-08-18T15:42:59","slug":"deadlock-in-operating-system","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/deadlock-in-operating-system\/","title":{"rendered":"Deadlock in Operating System"},"content":{"rendered":"<p>A process enters the waiting state when another process holds the required resource. This situation is called a deadlock. It is common in multi-processing OS where multiple processes share a specific type of resource known as soft lock or software. This resource is mutually exclusive.<\/p>\n<p>One of the examples of deadlock is one-directional traffic, where a bridge is a resource.<\/p>\n<p>&nbsp;<\/p>\n<h3>Deadlock Detection<\/h3>\n<p>The resource scheduler detects a deadlock occurrence and helps the OS to track all the resources\u2019 activities. Following methods can help resolve deadlock:<\/p>\n<ul>\n<li>The OS terminates all the processes involved in deadlock. But this results in the destruction of all the progress made by processes.<\/li>\n<li>The OS preempts resources from one process and gives it to other processes until the deadlock resolves.<\/li>\n<\/ul>\n<h3>Deadlock Prevention<\/h3>\n<p>To prevent a deadlock before it occurs the system checks every transaction before execution. This way if there is even a small chance for deadlock to occur, a process is not allowed to execute.<\/p>\n<h3>Deadlock Avoidance<\/h3>\n<p>Deadlock avoidance is better than deadlock prevention. As once the deadlock occurs additional information is required, like how the OS should use resources. Thus, deadlock avoidance is a simple and useful model in which each process declares the amount and type of resources that it may need.<\/p>\n<h3>Coffman Conditions<\/h3>\n<p>For a deadlock to occur following four Coffman conditions need to hold true.<\/p>\n<p><strong>1. Mutual Exclusion:<\/strong> Mutex (Mutual Exclusion) is a type of binary semaphore that helps control access to the shared resources. It also has a priority inheritance mechanism that avoids extended priority inversion problems and allows tasks with higher priority to execute first. Shared resources don\u2019t lead to deadlocks, but resources, like printers and tape drives, need exclusive access.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image01.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-100369\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image01.jpg\" alt=\"OS DEADLOCK\" width=\"518\" height=\"201\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image01.jpg 518w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image01-320x124.jpg 320w\" sizes=\"auto, (max-width: 518px) 100vw, 518px\" \/><\/a><\/p>\n<p><strong>2. Hold and Wait:<\/strong> Processes hold one or more resources all the while waiting for the one they have requested.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image02.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-100370\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image02.jpg\" alt=\"Hold and Wait in Deadlock\" width=\"1181\" height=\"289\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image02.jpg 1181w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image02-768x188.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image02-720x176.jpg 720w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image02-520x127.jpg 520w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image02-320x78.jpg 320w\" sizes=\"auto, (max-width: 1181px) 100vw, 1181px\" \/><\/a><\/p>\n<p><strong>3. Circular Wait:<\/strong> When a process waits for a resource held by another process, which is also waiting for a resource held by a third process, and so on, a circular chain is created. This ordeal is known as circular wait. It forms a circular loop where it is necessary that every process requests resources in increasing order of enumeration.<\/p>\n<p>For example, Process A has Resource B but it needs Resource A and requests it. Similarly, another process, Process B has Resource A but it is requesting Resource B. This situation creates a circular wait loop.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image03.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-100371\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image03.jpg\" alt=\"Circular Wait in OS\" width=\"792\" height=\"484\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image03.jpg 792w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image03-768x469.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image03-720x440.jpg 720w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image03-520x318.jpg 520w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image03-320x196.jpg 320w\" sizes=\"auto, (max-width: 792px) 100vw, 792px\" \/><\/a><\/p>\n<p><strong>4. No preemptive action:<\/strong> No Preemption means that a resource can only be free when the process holding it finishes execution. If a process requests a resource that is already allocated to another process, the OS frees all resources.<\/p>\n<p>The preempted resources need the list of waiting resources for a process and the process restarts only when it regains the old resource or the one that it is requesting. If the requested resource is available, then it is immediately allocated to the process. If not available then the OS releases the requesting resource from its current process and gives it to the requesting process.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image04.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-100372\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image04.jpg\" alt=\"OS DEADLOCK\" width=\"1157\" height=\"219\" srcset=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image04.jpg 1157w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image04-768x145.jpg 768w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image04-720x136.jpg 720w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image04-520x98.jpg 520w, https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/OS-DEADLOCK-normal-image04-320x61.jpg 320w\" sizes=\"auto, (max-width: 1157px) 100vw, 1157px\" \/><\/a><\/p>\n<h3>Avoidance Algorithms<\/h3>\n<p>A deadlock-avoidance algorithm helps the user assess the resources and their allocation dynamically in order to avoid the situation of circular-wait.<\/p>\n<p><strong>Single instance of a resource type:<\/strong><\/p>\n<ul>\n<li>Makes use of a resource-allocation graph.<\/li>\n<li>It is necessary to have cycles and they are sufficient for Deadlock.<\/li>\n<\/ul>\n<p><strong>Multiple instances of a resource type:<\/strong><\/p>\n<ul>\n<li>Though cycles are necessary they are insufficient for Deadlock.<\/li>\n<li>Maks use of the banker&#8217;s algorithm<\/li>\n<\/ul>\n<h3>Starvation vs Deadlock<\/h3>\n<table>\n<tbody>\n<tr>\n<td><b>Deadlock<\/b><\/td>\n<td><b>Starvation<\/b><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Occurs when a process gets blocked<\/span><\/td>\n<td><span style=\"font-weight: 400;\">The OS blocks low priority processes and allows the high priority processes to execute.<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">An infinite process<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Not an infinite process<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Has starvation<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Not every starvation has a deadlock<\/span><\/td>\n<\/tr>\n<tr>\n<td><span style=\"font-weight: 400;\">Mutual exclusion and hold and wait happen after deadlock. Preemption and circular wait don\u2019t occur simultaneously.<\/span><\/td>\n<td><span style=\"font-weight: 400;\">Happens due to resource management and uncontrolled priority.<\/span><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Advantages of Deadlock<\/h3>\n<p>Following are the advantages of deadlock:<\/p>\n<ul>\n<li>Advantageous to the processes that perform a single burst of activity.<\/li>\n<li>No preemption is required.<\/li>\n<li>Convenient to apply to resources that can save and restore their states easily.<\/li>\n<li>Compile-time checks help apply it feasibly<\/li>\n<li>The system design solves problems so no run-time computation is required.<\/li>\n<\/ul>\n<h3>Disadvantages of Deadlock<\/h3>\n<p>Following are the limitations of deadlock in OS:<\/p>\n<ul>\n<li>Delay in process initiation.<\/li>\n<li>Knowledge of future resources is necessary.<\/li>\n<li>Frequent preemptions.<\/li>\n<li>Doesn\u2019t allow incremental resource requests.<\/li>\n<li>There are inherent preemption losses.<\/li>\n<\/ul>\n<h3>Summary<\/h3>\n<p>Deadlock occurs in an OS when a process enters the waiting state as another waiting process is holding its demanded resource. Circular wait occurs when a process waits for a resource that is in possession of another process, and this cycle continues on to form a loop. Methods to resolve deadlocks are prevention, non-preemptive action, mutual exclusion, hold and wait, and circular wait.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A process enters the waiting state when another process holds the required resource. This situation is called a deadlock. It is common in multi-processing OS where multiple processes share a specific type of resource&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":100368,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24565],"tags":[24981,24980,24984,24978,24979,24982,24983],"class_list":["post-100315","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-operating-system-tutorials","tag-advantages-of-deadlock","tag-deadlock","tag-deadlock-detection","tag-deadlock-in-operating-system","tag-deadlock-in-os","tag-disadvantages-of-deadlock","tag-starvation-vs-deadlock"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Deadlock in Operating System - DataFlair<\/title>\n<meta name=\"description\" content=\"Learn what is deadlock in OS. Learn its advantages, limitations, starvation vs Deadlock, coffman conditions, avoidance algorithms etc.\" \/>\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\/deadlock-in-operating-system\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Deadlock in Operating System - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Learn what is deadlock in OS. Learn its advantages, limitations, starvation vs Deadlock, coffman conditions, avoidance algorithms etc.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/deadlock-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-27T03:30:20+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/Operating-System-Deadlock.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":"Deadlock in Operating System - DataFlair","description":"Learn what is deadlock in OS. Learn its advantages, limitations, starvation vs Deadlock, coffman conditions, avoidance algorithms etc.","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\/deadlock-in-operating-system\/","og_locale":"en_US","og_type":"article","og_title":"Deadlock in Operating System - DataFlair","og_description":"Learn what is deadlock in OS. Learn its advantages, limitations, starvation vs Deadlock, coffman conditions, avoidance algorithms etc.","og_url":"https:\/\/data-flair.training\/blogs\/deadlock-in-operating-system\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2021-08-27T03:30:20+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/Operating-System-Deadlock.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\/deadlock-in-operating-system\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/deadlock-in-operating-system\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/b49855299264df5e27e3ec6c2cd9fde9"},"headline":"Deadlock in Operating System","datePublished":"2021-08-27T03:30:20+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/deadlock-in-operating-system\/"},"wordCount":790,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/deadlock-in-operating-system\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/Operating-System-Deadlock.jpg","keywords":["Advantages of deadlock","Deadlock","Deadlock Detection","Deadlock in Operating System","Deadlock in OS","Disadvantages of deadlock","Starvation vs Deadlock"],"articleSection":["Operating System Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/deadlock-in-operating-system\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/deadlock-in-operating-system\/","url":"https:\/\/data-flair.training\/blogs\/deadlock-in-operating-system\/","name":"Deadlock in Operating System - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/deadlock-in-operating-system\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/deadlock-in-operating-system\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/Operating-System-Deadlock.jpg","datePublished":"2021-08-27T03:30:20+00:00","description":"Learn what is deadlock in OS. Learn its advantages, limitations, starvation vs Deadlock, coffman conditions, avoidance algorithms etc.","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/deadlock-in-operating-system\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/deadlock-in-operating-system\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/deadlock-in-operating-system\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/Operating-System-Deadlock.jpg","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2021\/08\/Operating-System-Deadlock.jpg","width":1200,"height":628,"caption":"Deadlock in Operating System"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/deadlock-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":"Deadlock 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\/100315","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=100315"}],"version-history":[{"count":3,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/100315\/revisions"}],"predecessor-version":[{"id":100374,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/100315\/revisions\/100374"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/100368"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=100315"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=100315"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=100315"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}