In concurrent programming a critical section is a piece of code that accesses a shared resource (data structure or device) that must not be concurrently accessed by more than one thread of execution. A critical section will usually terminate in fixed time, and a thread, task or process will only have to wait a fixed time to enter it (i.e. bounded waiting). Some synchronization mechanism is required at the entry and exit of the critical section to ensure exclusive use, for example a semaphore.

PropertyValue
dbpprop:abstract
  • In concurrent programming a critical section is a piece of code that accesses a shared resource (data structure or device) that must not be concurrently accessed by more than one thread of execution. A critical section will usually terminate in fixed time, and a thread, task or process will only have to wait a fixed time to enter it (i.e. bounded waiting). Some synchronization mechanism is required at the entry and exit of the critical section to ensure exclusive use, for example a semaphore. By carefully controlling which variables are modified inside and outside the critical section (usually, by accessing important state only from within), concurrent access to that state is prevented. A critical section is typically used when a multithreaded program must update multiple related variables without a separate thread making conflicting changes to that data. In a related situation, a critical section may be used to ensure a shared resource, for example a printer, can only be accessed by one process at a time. How critical sections are implemented varies among operating systems. The simplest method is to prevent any change of processor control inside the critical section. On uni-processor systems, this can be done by disabling interrupts on entry into the critical section, avoiding system calls that can cause a context switch while inside the section and restoring interrupts to their previous state on exit. Any thread of execution entering any critical section anywhere in the system will, with this implementation, prevent any other thread, including an interrupt, from getting the CPU and therefore from entering any other critical section or, indeed, any code whatsoever, until the original thread leaves its critical section. This brute-force approach can be improved upon by using semaphores. To enter a critical section, a thread must obtain a semaphore, which it releases on leaving the section. Other threads are prevented from entering the critical section at the same time as the original thread, but are free to gain control of the CPU and execute other code, including other critical sections that are protected by different semaphores. Some confusion exists in the literature about the relationship between different critical sections in the same program. Fact|date=November 2008 In general, a resource that must be protected from concurrent access may be accessed by several pieces of code. Each piece must be guarded by a common semaphore. Is each piece now a critical section or are all the pieces guarded by the same semaphore in aggregate a single critical section? This confusion is evident in definitions of a critical section such as "... a piece of code that can only be executed by one process or thread at a time". This only works if all access to a protected resource is contained in one "piece of code", which requires either the definition of a piece of code or the code itself to be somewhat contrived.
  • Als Kritischer Abschnitt wird in der Informatik ein Abschnitt im Programm eines Prozesses/Threads bezeichnet, in dem Betriebsmittel (z. B. Datenstrukturen, Verbindungen, Geräte usw. ) verändert werden und der nicht parallel oder zeitlich verzahnt zu Programmabschnitten anderer Prozesse/Threads ausgeführt werden darf, in denen die gleichen Betriebsmittel ebenfalls verändert werden. Andernfalls kommt es zu inkonsistenten Zuständen der Betriebsmittel.
  • En programació concurrent, una secció crítica és una part del codi de programació que accedeix a un recurs compartit (per exemple una estructura de dades o un dispositiu), que no pot ser accedit de forma concurrent per més d'un fil d'execució. Mentre s'executa la secció crítica, altres fils d'execució poden executar altres seccions de codi però no la secció crítica. Per garantir exclusió mútua dels fils d'execució que volen accedir a una secció de codi, és necessari disposar de mecaniss per senyalitzar l'entrada i la sortida d'aquesta secció. Una forma habitual és per mitja de semàfors. Per entrar a la secció crítica, el fil d'execució obté possessió d’semàfor, que ha d'alliberar quan surt de la secció.
  • Se denomina sección crítica, en programación concurrente, a la porción de código de un programa de computador en la cual se accede a un recurso compartido (estructura de datos o dispositivo) que no debe ser accedido por más de un hilo en ejecución. La sección crítica por lo general termina en un tiempo determinado y el hilo, proceso o tarea sólo tendrá que esperar un período determinado de tiempo para entrar. Se necesita un mecanismo de sincronización en la entrada y salida de la sección crítica para asegurar la utilización exclusiva del recurso, por ejemplo un semáforo. El acceso concurrente se controla teniendo cuidado de las variables que se modifican dentro y fuera de la sección crítica. La sección crítica se utiliza por lo general cuando un programa multihilo actualiza múltiples variables sin un hilo de ejecución separado que lleve los cambios conflictivos a esos datos. Una situación similar, la sección crítica puede ser utilizada para asegurarse de que un recurso compartido, por ejemplo, una impresora, puede ser accedida por un solo proceso a la vez. La manera en cómo se implementan las secciones puede variar dependiendo de los diversos sistemas operativos. Sólo un proceso puede estar en una sección crítica a la vez. El método más común para evitar que dos procesos accedan al mismo tiempo a un recurso es el de la exclusión mutua.
  • En programmation concurrente, une section critique est une portion de code dans laquelle il doit être garanti qu'il n'y aura jamais plus d'un thread simultanément. Il est nécessaire d'utiliser des sections critiques lorsqu'il y a accès à des ressources partagées par plusieurs thread. Une section critique peut être protégée par un mutex, un sémaphore ou d'autres primitives de programmation concurrente.
  • In informatica, una sezione critica è una porzione di codice che può essere eseguita da un solo processo o thread alla volta. Per regolare l'accesso alla sezione critica, è necessario un meccanismo di sincronizzazione (ad esempio un semaforo) all'entrata ed all'uscita del codice critico. All'entrata della sezione critica questo meccanismo verificherà se non vi è nessun altro processo che sta eseguendo il codice critico. In caso affermativo, l'esecuzione proseguirà e il processo corrente prenderà possesso della sezione critica, per rilasciarlo all'uscita. In caso contrario, il processo potrà attendere che la sezione critica si liberi oppure nel frattempo potrà eseguire un altro compito. L'accesso di più processi ad una sezione critica ha, normalmente, una priorità regolata da una coda FIFO.
  • クリティカルセクション(Critical section)とは、計算機上において、単一のリソースに対して、複数の処理が同時期に実行されると、破綻をきたす部分を指す。クリティカルセクションにおいては、排他制御を行うなどしてアトミック性を確保する必要がある。 リソースの同一性が保証されなくなる可能性がある場合は、クリティカルセクションでは常に排他制御を行う必要がある。 クリティカルセクションの排他制御ではデッドロックに注意する必要がある。
  • Een kritieke sectie is een stuk broncode dat door hooguit één thread tegelijk uitgevoerd mag worden omdat er een gedeelde resource in wordt gebruikt. Deze kritieke secties kunnen voorkomen in gedistribueerde computerprogramma's. Een synchronisatiemechanisme, zoals semaforen of monitors, moet voor en na de kritieke sectie worden geplaatst om er voor te zorgen dat niet meer dan één thread de code uitvoert. Door kritieke secties te beschermen met synchronisatiemechanismen wordt voorkomen dat threads het werk van andere threads incorrect aanpassen of geheel ongedaan maken. De synchronisatie zorgt ervoor dat de toegang tot de gedeelde data na elkaar plaatsvindt. Als meerdere threads dezelfde kritieke sectie willen uitvoeren dan moeten deze op elkaar wachten totdat zij in de gelegenheid worden gesteld om de kritieke sectie uit te voeren.
  • Sekcja krytyczna - w programowaniu współbieżnym fragment kodu programu, w którym korzysta się z zasobu dzielonego, a co za tym idzie w danej chwili może być wykorzystywany przez co najwyżej jeden wątek. System operacyjny dba o synchronizację, jeśli więcej wątków żąda wykonania kodu sekcji krytycznej, dopuszczany jest tylko jeden wątek, pozostałe zaś są wstrzymywane. Dąży się do tego, aby kod sekcji krytycznej był krótki - by wykonywał się szybko. Sekcje krytyczne realizuje się np. z wykorzystaniem muteksów lub semaforów. Ponadto systemy operacyjne posiadają zwykle specjalne obiekty do tego rodzaju synchronizacji w obrębie wątków jednego procesu. Brak wzajemnego wykluczania się wykonywania sekcji krytycznych może spowodować błędy wykonania, np. dwukrotne zapisanie danej albo niepoprawna modyfikacja zasobu (patrz poniższy przykład).
  • Em programação concorrente, uma região crítica (ou seção crítica) é uma área de código de um algoritmo que acessa um recurso compartilhado que não pode ser acessado concorrentemente por mais de uma linha de execução. O objetivo é tornar a operação sobre o recurso compartilhado atômica. Uma região crítica geralmente termina num tempo específico, e uma linha de execução ou processo só precisa esperar um tempo específico para entrá-la. Algum mecanismo de sincronização é necessário para implementar a entrada e a saída duma região crítica para assegurar o uso exclusivo, como por exemplo um semáforo. O acesso concorrente pode ser evitado ao controlar cuidadosamente quais variáveis são modificadas dentro e fora a região crítica. Uma região crítica é geralmente usada quando um programa multitarefa deve atualizar diversas variáveis relacionadas sem que outra linha de execução faça modificações conflitantes nos dados. Numa situação relacionada, uma região crítica também pode ser usada para assegurar que um recurso compartilhado como uma impressora seja acessado por somente um processo a cada vez. A definição da região crítica é importante para a implementação de exclusão mútua, usada para evitar condições de corrida.
  • Критическая секция — часть программы, в которой есть обращение к совместно используемым данным. При нахождении в критической секции двух (или более) процессов, возникает состояние «гонки» («состязания»). Для избежания данной ситуации необходимо выполнение четырех условий: Два процесса не должны одновременно находиться в критических областях. В программе не должно быть предположений о скорости или количестве процессоров. Процесс, находящийся вне критической области, не может блокировать другие процессы. Невозможна ситуация, в которой процесс вечно ждет попадания в критическую область. Критическая секция — объект синхронизации потоков позволяющий предотвратить одновременное выполнение некоторого набора операций (обычно связанных с доступом к данным) несколькими потоками. Критическая секция выполняет те же задачи, что и мьютекс. Между мьютексом и критической секцией есть терминологические различия, так процедура, аналогичная захвату мьютекса, называется входом в критическую секцию, снятию блокировки мьютекса — выходом из критической секции. Процедура входа и выхода из критических секций обычно занимает меньшее время, нежели аналогичные операции мьютекса. В операционных системах семейства Microsoft Windows разница между мьютексом и критической секцией в том, что мьютекс является объектом ядра и может быть использован несколькими процессами одновременно, критическая секция же принадлежит процессу и служит для синхронизации только его потоков. Критические секции Windows имеют оптимизацию, заключающуюся в использовании атомарно изменяемой переменной наряду с объектом «событие синхронизации» ядра. Захват критической секции означает атомарное увеличение переменной на 1. Переход к ожиданию на событии ядра осуществляется только в случае, если значение переменной до захвата было уже больше 1, то есть есть реальное «соревнование» двух или более потоков за ресурс. Таким образом, при отсутствии соревнования захват/освобождение критической секции обходятся без обращений к ядру. Кроме того, захват уже занятой критической секции до обращения к ядру какое-то небольшое время ждёт в цикле опроса переменной, и, если переменная становится равной 0, то захват происходит без обращений к ядру. Сходный объект в ядре Windows называется FAST_MUTEX (ExAcquire/ReleaseFastMutex). Он отличается от критической секции отсутствием поддержки рекурсивного повторного захвата тем же потоком. Аналогичный объект в Linux называется фьютекс.
  • Критична секція — об'єкт синхронізації нитей, що дозволяє запобігти одночасному виконанню деякого rhbnbxyjuj набору операцій (зазвичай пов'язаних з доступом до даних) кількома нитями. Критична секція виконує ті ж завдання, що і м'ютекс. Між м'ютексом і критичною секцією є термінологічні відмінності, так процедура аналогічна захопленню м'ютекса називається входом в критичну секцію (enter), зняття блокування мьютекса — виходом з критичної секції (leave). У операційних системах класу Microsoft Windows різниця між м'ютексом і критичною секцією в тому, що м'ютекс є об'єктом ядра і може бути використаний кількома процесами одночасно, критична секція ж належить процесу і служить для синхронізації тільки його нитей. Процедура входу і виходу критичних секцій зазвичай займає менший час, ніж аналогічні операції м'ютекса. В більшості реалізацій з кожною критичною секцією пов'язаний лічильник такий, що захоплення критичної секції можливе лише за нульвого значення цього лічильника, і захоплення означає атомарну зміну лічильника на 1. Кожного разу, коли нить, що володіє критичною секцією, знов входить до неї, лічильник збільшується на 1, при виході — зменшується. Перехід до чекання на події ядра здійснюється лише у випадку, якщо значення змінної лічильника до спроби захоплення було вже більше 1, тобто критична секція зайеята і є реальне «змагання» двох або більше нитей за ресурс критичної секції. Аналогічний об'єкт в Linux називається фьютекс.
  • 在同步的程式設計中,Critical section 指的是一個存取共用資源(例如:共用裝置或是共用資料結構)的程式片斷,而這些共用資源有無法同是被多個執行緒存取的特性。當有執行緒進入 Critical section 時,其他執行緒或是行程必須等待(例如:bounded waiting 等待法),有一些同步的機制機制必須實現在 Critical section 的進入點與離開點以確保這些共用資源是被互斥或的使用,例如:semaphore 只能被單一執行緒存取的裝置例如有:印表機 一個最簡單的實現方法就是 Thread 在 Critical section 內部時,阻擋 processor 的改變,在uni-processor系統上,這可以用禁止interrupt來完成,以避免system call在執行context switch的時候發生,當離開 Critical section 時回復進入時的 processor 狀態
dbpprop:hasPhotoCollection
rdf:type
rdfs:comment
  • In concurrent programming a critical section is a piece of code that accesses a shared resource (data structure or device) that must not be concurrently accessed by more than one thread of execution. A critical section will usually terminate in fixed time, and a thread, task or process will only have to wait a fixed time to enter it (i.e. bounded waiting). Some synchronization mechanism is required at the entry and exit of the critical section to ensure exclusive use, for example a semaphore.
  • Als Kritischer Abschnitt wird in der Informatik ein Abschnitt im Programm eines Prozesses/Threads bezeichnet, in dem Betriebsmittel (z. B. Datenstrukturen, Verbindungen, Geräte usw. ) verändert werden und der nicht parallel oder zeitlich verzahnt zu Programmabschnitten anderer Prozesse/Threads ausgeführt werden darf, in denen die gleichen Betriebsmittel ebenfalls verändert werden. Andernfalls kommt es zu inkonsistenten Zuständen der Betriebsmittel.
  • En programació concurrent, una secció crítica és una part del codi de programació que accedeix a un recurs compartit (per exemple una estructura de dades o un dispositiu), que no pot ser accedit de forma concurrent per més d'un fil d'execució. Mentre s'executa la secció crítica, altres fils d'execució poden executar altres seccions de codi però no la secció crítica.
  • Se denomina sección crítica, en programación concurrente, a la porción de código de un programa de computador en la cual se accede a un recurso compartido (estructura de datos o dispositivo) que no debe ser accedido por más de un hilo en ejecución. La sección crítica por lo general termina en un tiempo determinado y el hilo, proceso o tarea sólo tendrá que esperar un período determinado de tiempo para entrar.
  • En programmation concurrente, une section critique est une portion de code dans laquelle il doit être garanti qu'il n'y aura jamais plus d'un thread simultanément. Il est nécessaire d'utiliser des sections critiques lorsqu'il y a accès à des ressources partagées par plusieurs thread. Une section critique peut être protégée par un mutex, un sémaphore ou d'autres primitives de programmation concurrente.
  • In informatica, una sezione critica è una porzione di codice che può essere eseguita da un solo processo o thread alla volta. Per regolare l'accesso alla sezione critica, è necessario un meccanismo di sincronizzazione (ad esempio un semaforo) all'entrata ed all'uscita del codice critico. All'entrata della sezione critica questo meccanismo verificherà se non vi è nessun altro processo che sta eseguendo il codice critico.
  • Een kritieke sectie is een stuk broncode dat door hooguit één thread tegelijk uitgevoerd mag worden omdat er een gedeelde resource in wordt gebruikt. Deze kritieke secties kunnen voorkomen in gedistribueerde computerprogramma's. Een synchronisatiemechanisme, zoals semaforen of monitors, moet voor en na de kritieke sectie worden geplaatst om er voor te zorgen dat niet meer dan één thread de code uitvoert.
  • Sekcja krytyczna - w programowaniu współbieżnym fragment kodu programu, w którym korzysta się z zasobu dzielonego, a co za tym idzie w danej chwili może być wykorzystywany przez co najwyżej jeden wątek. System operacyjny dba o synchronizację, jeśli więcej wątków żąda wykonania kodu sekcji krytycznej, dopuszczany jest tylko jeden wątek, pozostałe zaś są wstrzymywane. Dąży się do tego, aby kod sekcji krytycznej był krótki - by wykonywał się szybko.
  • Em programação concorrente, uma região crítica (ou seção crítica) é uma área de código de um algoritmo que acessa um recurso compartilhado que não pode ser acessado concorrentemente por mais de uma linha de execução. O objetivo é tornar a operação sobre o recurso compartilhado atômica. Uma região crítica geralmente termina num tempo específico, e uma linha de execução ou processo só precisa esperar um tempo específico para entrá-la.
  • Критическая секция — часть программы, в которой есть обращение к совместно используемым данным. При нахождении в критической секции двух (или более) процессов, возникает состояние «гонки» («состязания»).
  • Критична секція — об'єкт синхронізації нитей, що дозволяє запобігти одночасному виконанню деякого rhbnbxyjuj набору операцій (зазвичай пов'язаних з доступом до даних) кількома нитями. Критична секція виконує ті ж завдання, що і м'ютекс.
rdfs:label
  • Critical section
  • Kritischer Abschnitt
  • Secció crítica
  • Sección crítica
  • Section critique
  • Sezione critica
  • クリティカルセクション
  • Kritieke sectie
  • Sekcja krytyczna
  • Região crítica
  • Критическая секция
  • Критична секція
  • Critical section
owl:sameAs
skos:subject
foaf:page
is dbpprop:redirect of
is owl:sameAs of