Software lockout: Difference between revisions

Content deleted Content added
GreenC bot (talk | contribs)
Rescued 1 archive link. Wayback Medic 2.5
Avoid redirect.
(One intermediate revision by the same user not shown)
Line 5:
In most multiprocessor systems, each processor schedules and controls itself, therefore there's no "supervisor" processor,<ref name="Madnickp19"/> and kernel [[data structure]]s are globally shared; sections of code that access those shared data structures are [[critical section]]s. This design choice is made to improve scaling, reliability and modularity.<ref name="Madnickp19"/> Examples of such kernel data structure are [[ready list]] and [[communication channel]]s.
 
A "conflict" happens when more than one [[CPU|processor]] is trying to access the same resource (a memory portion) at the same time. To prevent [[critical race]]s and [[inconsistency]], only one processor ([[CPU]]) at a given time is allowed to access a particular [[data structure]] (a memory portion), while other CPUs trying to access at the same time are [[Lock (computer science)|locked-out]], waiting in idle status.<ref name="Madnickp19">Madnick 1968, p.19</ref><ref>Saltzer,{{cite thesis|type=PhD|last=Saltzer|first=Jerome ''[|url=https://web.archivemit.orgedu/webSaltzer/20070927191733www/http:publications/TRs+TMs/stinetMultics/TR-030.dtic.mil/oai/oai?&verbpdf|title=getRecord&metadataPrefix=html&identifier=AD0635966 Traffic control in a multiplexed computer system]'' |id=MIT Project MAC MAC-TR-30 |date=June 1966}}</ref>
 
Three cases can be distinguished when this idle wait is either necessary, convenient, or not convenient. The idle wait is necessary when the access is to a ready list for a low level [[Scheduling (computing)|scheduling]] operation. The idle wait is not necessary but convenient in the case of a critical section for [[Synchronization (computer science)|synchronization]]/[[Inter-process communication|IPC]] operations, which require less time than a [[context switch]] (executing another [[process (computing)|process]] to avoid idle wait). Idle wait is instead not convenient in case of a kernel critical section for [[device management]], present in [[monolithic kernel]]s only. A [[microkernel]] instead falls on just the first two of the above cases.
Line 26:
* Dependency issues on [[Superscalar]] architectures
* {{Section link|Concurrency control|Concurrency control mechanisms}}
* {{Section link|ScheduleDatabase (computertransaction science)schedule|Serializable}}
* [[Serializability]]