{"id":6,"date":"2024-01-12T06:41:35","date_gmt":"2024-01-12T06:41:35","guid":{"rendered":"https:\/\/blogs.oregonstate.edu\/anismachinations\/?p=6"},"modified":"2024-01-12T06:43:47","modified_gmt":"2024-01-12T06:43:47","slug":"concurrency-control-in-semiconductor-manufacturing","status":"publish","type":"post","link":"https:\/\/blogs.oregonstate.edu\/anismachinations\/2024\/01\/12\/concurrency-control-in-semiconductor-manufacturing\/","title":{"rendered":"Concurrency Control in Semiconductor Manufacturing"},"content":{"rendered":"\n<p>For the past five years, I&#8217;ve been working in a semiconductor clean room. I&#8217;m interested in the connections between manufacturing and computer science. One that stands out to me is the importance of concurrency control throughout the fab (factory).<\/p>\n\n\n\n<p>The fab has a multitude of interconnected monitors, machines (aka &#8220;tools&#8221;), servers, and computer programs. Multiple employees may interact with a tool or lot remotely at the same time. To prevent errors in processing, it is important to keep the sequence of events synchronized.<\/p>\n\n\n\n<p>In my OSU classes, I have used thread management libraries in Python and C++ for concurrency control. When a sensitive transaction takes place, one thread will lock the data store (Amarasinghe, et al). Other threads cannot access the data until the first thread has released it (Amarasinghe, et al).<\/p>\n\n\n\n<p>Some programs in the fab use something like optimistic concurrency, where updates are allowed, but fail on save if someone else made a change in the meantime (Vickers). If a technician puts a lot on hold while an operator is in the middle of logging lot data, the software will show an error and prevent data submission.<\/p>\n\n\n\n<p>However, some programs do not have concurrency checks in place. For instance, separate software is used to evaluate data and track lots. After data entry, an operator might need to wait a few seconds before updating the lot status in the tracking software. The data software doesn&#8217;t always evaluate the data and flag the lot immediately.<\/p>\n\n\n\n<p>My fab needs some improvements in concurrency control. For instance, locking lots or tools from operators while waiting for data to be uploaded and evaluated.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>Works Cited<\/strong><br>Amarasinghe, S., et al. &#8220;Reading 23: Locks and Synchronization&#8221; <em>Software Construction<\/em>. MIT, Fall 2015, <a href=\"https:\/\/web.mit.edu\/6.005\/www\/fa15\/classes\/23-locks\/#reading_23_locks_and_synchronization\">web.mit.edu\/6.005\/www\/fa15\/classes\/23-locks\/#reading_23_locks_and_synchronizatio<\/a>n. Accessed 11 Jan 2024.<br>This work is licensed under CC BY-SA 4.0.<\/p>\n\n\n\n<p>Vickers, A., et al. &#8220;Handling Concurrency Conflicts.&#8221; <em>Microsoft Learn<\/em>, 5 July 2023, <a href=\"https:\/\/learn.microsoft.com\/en-us\/ef\/core\/saving\/concurrency?tabs=data-annotations\">learn.microsoft.com\/en-us\/ef\/core\/saving\/concurrency?tabs=data-annotations<\/a>.<br>Accessed 11 Jan 2024.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>For the past five years, I&#8217;ve been working in a semiconductor clean room. I&#8217;m interested in the connections between manufacturing and computer science. One that stands out to me is the importance of concurrency control throughout the fab (factory). The fab has a multitude of interconnected monitors, machines (aka &#8220;tools&#8221;), servers, and computer programs. Multiple [&hellip;]<\/p>\n","protected":false},"author":14056,"featured_media":8,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-6","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-semiconductor-manufacturing"],"_links":{"self":[{"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/posts\/6","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/users\/14056"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/comments?post=6"}],"version-history":[{"count":3,"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/posts\/6\/revisions"}],"predecessor-version":[{"id":11,"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/posts\/6\/revisions\/11"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/media\/8"}],"wp:attachment":[{"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/media?parent=6"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/categories?post=6"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.oregonstate.edu\/anismachinations\/wp-json\/wp\/v2\/tags?post=6"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}