{"id":13810,"date":"2014-12-15T14:01:00","date_gmt":"2014-12-15T13:01:00","guid":{"rendered":"https:\/\/rafen.app\/uncategorized\/concurrent-and-distributed-systems\/"},"modified":"2023-05-02T10:51:22","modified_gmt":"2023-05-02T09:51:22","slug":"concurrent-and-distributed-systems","status":"publish","type":"post","link":"https:\/\/raf.edu.rs\/en\/subjects\/concurrent-and-distributed-systems\/","title":{"rendered":"Concurrent and distributed systems"},"content":{"rendered":"<h5>Objectives and outcomes<\/h5>\n<p>Introduction to design concepts and principles in the construction of concurrent and distributed systems. Upon completion of the course, students are able to demonstrate knowledge and understanding of various models of concurrent systems, as well as models and architectures of distributed systems. They understand the concepts and principles of designing concurrent and distributed systems. They can design and implement software in a distributed environment.<\/p>\n<h5>Lectures<\/h5>\n<p>Terminology and classification. Mutual exclusion. Concurrent objects. Concurrency and correctness. Consistency models.\u00a0\u00a0Spin-Locks. Test-and-Set (TAS) and Test-and-Test-and-Set. Exponential back off. CLH and MSC Queue locks. Composite keys. Clusters and hierarchical keys. Monitors. Semaphores. Barriers. Sense-reversing barrier. Combining tree barrier. Static tree barrier. Termination detection barrier. Transactional memory. Transactions and atomicity. Software and hardware transactional memory. Multiprocessor scheduling. Model of distributed executions. Hardware and software concepts. Network communication models. Global state of a distributed model. Logical time. Clock synchronisation. Algorithms for FIFO and non-FIFO channels. Basic distributed algorithms. Synchronisers. Message ordering and group communication. Distributed mutual exclusion algorithms. Distributed shared memory. Consensus and agreement. Failure detection.<\/p>\n<h5>Practical classes<\/h5>\n<p>Implementations of synchronisation primitives. Creating and controlling the operation of threads. Concurrent tools. Synchronisation. Producer &#8211; consumer. Readers and writers. Critical sections. Peterson&#8217;s algorithm. Filtering algorithm. Lamport&#8217;s bakery algorithm. Spin-Lock and conflict. Semaphores and barriers. Interruption and mutual thread blocking. GUI &#8211; examples of concurrency. Distributed systems and broadcast. Implementation of vector clocks. Differential technique. Direct dependency technique. Adaptive technique. Algorithms for FIFO channels. Chandy\u2013Lamport and Spezialetti\u2013Kearns algorithm. Venkatesan Incremental Algorithm. Helary wave synchronisation method. Algorithms for non-FIFO channels. Lai\u2013Yang and Li algorithm. Mattern\u2019s algorithm. Algorithms for distributed mutual exclusion. Lamport&#8217;s algorithm. Ricart\u2013Agrawala and Singhal algorithm. DHT and Chord.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Objectives and outcomes Introduction to design concepts and principles in the construction of concurrent and distributed systems. Upon completion of the course, students are able to demonstrate knowledge and understanding of various models of concurrent &#8230; <a title=\"Concurrent and distributed systems\" class=\"read-more\" href=\"https:\/\/raf.edu.rs\/en\/subjects\/concurrent-and-distributed-systems\/\" aria-label=\"More on Concurrent and distributed systems\">Read more<\/a><\/p>\n <a href=\"https:\/\/raf.edu.rs\/en\/subjects\/concurrent-and-distributed-systems\/\" class=\"more-link\" title=\"Read more\">Read more<\/a>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[199],"tags":[],"class_list":["post-13810","post","type-post","status-publish","format-standard","hentry","category-subjects"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Concurrent and distributed systems - School of Computing<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/raf.edu.rs\/en\/subjects\/concurrent-and-distributed-systems\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Concurrent and distributed systems - School of Computing\" \/>\n<meta property=\"og:description\" content=\"Objectives and outcomes Introduction to design concepts and principles in the construction of concurrent and distributed systems. Upon completion of the course, students are able to demonstrate knowledge and understanding of various models of concurrent ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/raf.edu.rs\/en\/subjects\/concurrent-and-distributed-systems\/\" \/>\n<meta property=\"og:site_name\" content=\"School of Computing\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-15T13:01:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-05-02T09:51:22+00:00\" \/>\n<meta name=\"author\" content=\"RAF Admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"RAF Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/concurrent-and-distributed-systems\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/concurrent-and-distributed-systems\\\/\"},\"author\":{\"name\":\"RAF Admin\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#\\\/schema\\\/person\\\/4e2166c781f2802c67414a1578c66a43\"},\"headline\":\"Concurrent and distributed systems\",\"datePublished\":\"2014-12-15T13:01:00+00:00\",\"dateModified\":\"2023-05-02T09:51:22+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/concurrent-and-distributed-systems\\\/\"},\"wordCount\":286,\"publisher\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#organization\"},\"articleSection\":[\"Subjects\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/concurrent-and-distributed-systems\\\/\",\"url\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/concurrent-and-distributed-systems\\\/\",\"name\":\"Concurrent and distributed systems - School of Computing\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#website\"},\"datePublished\":\"2014-12-15T13:01:00+00:00\",\"dateModified\":\"2023-05-02T09:51:22+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/concurrent-and-distributed-systems\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/concurrent-and-distributed-systems\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/concurrent-and-distributed-systems\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Homepage\",\"item\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Subjects\",\"item\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/subjects\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Concurrent and distributed systems\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/\",\"name\":\"School of Computing\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#organization\",\"name\":\"School of Computing\",\"url\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/wp-content\\\/uploads\\\/2023\\\/02\\\/cropped-raf-engleski.png\",\"contentUrl\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/wp-content\\\/uploads\\\/2023\\\/02\\\/cropped-raf-engleski.png\",\"width\":400,\"height\":66,\"caption\":\"School of Computing\"},\"image\":{\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/#\\\/schema\\\/person\\\/4e2166c781f2802c67414a1578c66a43\",\"name\":\"RAF Admin\",\"sameAs\":[\"https:\\\/\\\/raf.app\"],\"url\":\"https:\\\/\\\/raf.edu.rs\\\/en\\\/author\\\/rafadmin\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Concurrent and distributed systems - School of Computing","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:\/\/raf.edu.rs\/en\/subjects\/concurrent-and-distributed-systems\/","og_locale":"en_US","og_type":"article","og_title":"Concurrent and distributed systems - School of Computing","og_description":"Objectives and outcomes Introduction to design concepts and principles in the construction of concurrent and distributed systems. Upon completion of the course, students are able to demonstrate knowledge and understanding of various models of concurrent ... Read more","og_url":"https:\/\/raf.edu.rs\/en\/subjects\/concurrent-and-distributed-systems\/","og_site_name":"School of Computing","article_published_time":"2014-12-15T13:01:00+00:00","article_modified_time":"2023-05-02T09:51:22+00:00","author":"RAF Admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"RAF Admin","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/raf.edu.rs\/en\/subjects\/concurrent-and-distributed-systems\/#article","isPartOf":{"@id":"https:\/\/raf.edu.rs\/en\/subjects\/concurrent-and-distributed-systems\/"},"author":{"name":"RAF Admin","@id":"https:\/\/raf.edu.rs\/en\/#\/schema\/person\/4e2166c781f2802c67414a1578c66a43"},"headline":"Concurrent and distributed systems","datePublished":"2014-12-15T13:01:00+00:00","dateModified":"2023-05-02T09:51:22+00:00","mainEntityOfPage":{"@id":"https:\/\/raf.edu.rs\/en\/subjects\/concurrent-and-distributed-systems\/"},"wordCount":286,"publisher":{"@id":"https:\/\/raf.edu.rs\/en\/#organization"},"articleSection":["Subjects"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/raf.edu.rs\/en\/subjects\/concurrent-and-distributed-systems\/","url":"https:\/\/raf.edu.rs\/en\/subjects\/concurrent-and-distributed-systems\/","name":"Concurrent and distributed systems - School of Computing","isPartOf":{"@id":"https:\/\/raf.edu.rs\/en\/#website"},"datePublished":"2014-12-15T13:01:00+00:00","dateModified":"2023-05-02T09:51:22+00:00","breadcrumb":{"@id":"https:\/\/raf.edu.rs\/en\/subjects\/concurrent-and-distributed-systems\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/raf.edu.rs\/en\/subjects\/concurrent-and-distributed-systems\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/raf.edu.rs\/en\/subjects\/concurrent-and-distributed-systems\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Homepage","item":"https:\/\/raf.edu.rs\/en\/"},{"@type":"ListItem","position":2,"name":"Subjects","item":"https:\/\/raf.edu.rs\/en\/subjects\/"},{"@type":"ListItem","position":3,"name":"Concurrent and distributed systems"}]},{"@type":"WebSite","@id":"https:\/\/raf.edu.rs\/en\/#website","url":"https:\/\/raf.edu.rs\/en\/","name":"School of Computing","description":"","publisher":{"@id":"https:\/\/raf.edu.rs\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/raf.edu.rs\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/raf.edu.rs\/en\/#organization","name":"School of Computing","url":"https:\/\/raf.edu.rs\/en\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/raf.edu.rs\/en\/#\/schema\/logo\/image\/","url":"https:\/\/raf.edu.rs\/en\/wp-content\/uploads\/2023\/02\/cropped-raf-engleski.png","contentUrl":"https:\/\/raf.edu.rs\/en\/wp-content\/uploads\/2023\/02\/cropped-raf-engleski.png","width":400,"height":66,"caption":"School of Computing"},"image":{"@id":"https:\/\/raf.edu.rs\/en\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/raf.edu.rs\/en\/#\/schema\/person\/4e2166c781f2802c67414a1578c66a43","name":"RAF Admin","sameAs":["https:\/\/raf.app"],"url":"https:\/\/raf.edu.rs\/en\/author\/rafadmin\/"}]}},"_links":{"self":[{"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/posts\/13810","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/comments?post=13810"}],"version-history":[{"count":2,"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/posts\/13810\/revisions"}],"predecessor-version":[{"id":16980,"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/posts\/13810\/revisions\/16980"}],"wp:attachment":[{"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/media?parent=13810"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/categories?post=13810"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/raf.edu.rs\/en\/wp-json\/wp\/v2\/tags?post=13810"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}