An Entity of Type: Inflection113803782, from Named Graph: http://dbpedia.org, within Data Space: dbpedia.org

In computing, a computer program or subroutine is called reentrant if multiple invocations can safely run concurrently on multiple processors, or on a single processor system, where a reentrant procedure can be interrupted in the middle of its execution and then safely be called again ("re-entered") before its previous invocations complete execution. The interruption could be caused by an internal action such as a jump or call, or by an external action such as an interrupt or signal, unlike recursion, where new invocations can only be caused by internal call.

Property Value
dbo:abstract
  • En programació la reentrància es refereix a la qualitat d'una subrutina per a ser executada concurrentment d'una forma segura, és a dir, la subrutina es pot invocar mentre s'està executant. Per a tenir aquesta qualitat, la subrutina no pot emmagatzemar (globals) ni tampoc constants, no ha de retornar la direcció de les dades estàtiques, ni de les constants; ha de treballar només amb les dades proporcionades pel subprograma que l'ha invocat, no ha de tenir exclusió mútua dels recursos construïts sobre el model de Singleton, i al seu torn només ha invocar subrutines que també compleixen amb les qualitats esmentades, és a dir que també siguin reentrants Múltiples nivells de les tasques prioritàries d'usuari, objectes, processos, o de multiprocés, solen complicar el control de codi reentrant. És important poder fer un seguiment de qualsevol accés o efectes laterals que es produeixin dins una rutina definida com a reentrant. (ca)
  • Der Begriff Eintrittsinvarianz wird in einer (teilweise maschinellen) deutschen Übersetzung des US-englischen Artikels Reentrancy von Microsoft benutzt. Damit wird ein Programm-Attribut beschrieben, welches die mehrfache (quasi-gleichzeitige) Nutzung eines Programm-Codes erlaubt. Eine verständlichere Übersetzung wäre wiedereintrittsfähig wie bereits im folgenden Text oder die native Nutzung von reentrant als gängigen Fachausdruck. In der Programmierung wird eine Routine bzw. Methode als eintrittsinvariant (englisch reentrant) oder auch wiedereintrittsfähig bezeichnet, wenn sie so implementiert ist, dass sie unterbrochen und von der Unterbrechungsroutine erneut aufgerufen werden kann, und bei der Fortsetzung nach der Unterbrechung das erwartete Ergebnis zurückliefert. Dies schließt nicht nur den Rückgabewert ein, sondern alle durch die Methode beeinflussbaren Programmparameter. Eine reentrante Methode verhält sich daher so, als wäre sie implizit in eine Transaktion gekapselt. Auch ganze Computerprogramme oder Skripte werden unter diesem Gesichtspunkt bewertet. Für reentrante Methoden gilt oft, dass sich gleichzeitig ausgeführte Instanzen nicht gegenseitig beeinflussen können. Die Ausführung jeder Instanz läuft dann identisch ab, egal wie viele andere Instanzen es noch von dieser Methode gibt. Ziel des Designs für eine solche eintrittsinvariante Methode ist es, sicherzustellen, dass kein Teil des Programmcodes selbst durch die Methode geändert wird und dass prozesseigene Informationen wie beispielsweise lokale Variablen in getrennten Speicherbereichen gehalten werden. Eintrittsinvariante Programmkonstrukte sind die Basis für viele Multitasking-Systeme (Threadsicherheit). (de)
  • En informática, un programa informático o subrutina se llama reentrante si puede ser interrumpido en medio de su ejecución y volver a llamarse de forma segura ("re-entrar") antes de que las invocaciones anteriores completen su ejecución. La interrupción puede ser causada por una acción interna como un salto o llamada, o por una acción externa como una interrupción o señal. Una vez que la invocación re-entrante completa, las invocaciones anteriores reanudarán su ejecución de forma correcta. Esta definición se origina en los entornos de un único subproceso de programación en el que el flujo de control podría ser interrumpido por una y se transfiere a una (ISR). Cualquier subrutina utilizada por el que podría potencialmente se han ejecutado cuando la alarma se activó debe ser de reentrada. A menudo, las subrutinas accesibles a través del sistema operativo del kernel no son reentrantes. Por lo tanto, las rutinas de servicio de interrupción son limitados en las acciones que pueden realizar; por ejemplo, que suelen limitarse el acceso al sistema de archivos y, a veces incluso de asignar memoria. Una subrutina que es directa o indirectamente recursiva debe ser de reentrada. Esta directiva se aplica parcialmente por los Lenguajes de programación estructurados. Sin embargo una subrutina puede dejar de ser reentrante si se basa en una variable global a permanecer sin cambios, pero esa variable se modifica cuando se invoca recursivamente la subrutina. Esta definición de reentrada difiere de la de hilo de seguridad en entornos multi-hilo. Una subrutina reentrada puede lograr hilo de seguridad,​ pero al ser de reentrada por sí solo podría no ser suficiente para ser flujos seguros en todas las situaciones. Por el contrario, el código flujos seguros no necesariamente tiene que ser de reentrada (ver más abajo para los ejemplos). Otros términos utilizados para los programas de reentrada incluyen "procedimiento puro" o "código compartible".​ (es)
  • En informatique, la réentrance est la propriété pour une fonction d'être utilisable simultanément par plusieurs tâches utilisatrices. La réentrance permet d'éviter la duplication en mémoire vive d'un programme utilisé simultanément par plusieurs utilisateurs. Si une fonction de plusieurs threads doit accéder à une variable globale, il suffit de l'encadrer par des Mutex. L'écriture de code réentrant était autrefois[Quand ?] une tâche très ardue. Elle s'est simplifiée avec les langages actuels qui autorisent : * l'allocation dynamique de mémoire, * la séparation, dans des segments distincts, du code et des données, * la gestion de piles. Le noyau d'un système d'exploitation comporte souvent des parties non réentrantes afin d'éviter des complications fâcheuses (incohérence de données critiques, perte de performances). L'écriture de modules destinés à être exécutés dans l'espace noyau reste, pour cette raison, délicate. (fr)
  • In computing, a computer program or subroutine is called reentrant if multiple invocations can safely run concurrently on multiple processors, or on a single processor system, where a reentrant procedure can be interrupted in the middle of its execution and then safely be called again ("re-entered") before its previous invocations complete execution. The interruption could be caused by an internal action such as a jump or call, or by an external action such as an interrupt or signal, unlike recursion, where new invocations can only be caused by internal call. This definition originates from multiprogramming environments where multiple processes may be active concurrently and where the flow of control could be interrupted by an interrupt and transferred to an interrupt service routine (ISR) or "handler" subroutine. Any subroutine used by the handler that could potentially have been executing when the interrupt was triggered should be reentrant. Similarly, code shared by two processors accessing shared data should be reentrant. Often, subroutines accessible via the operating system kernel are not reentrant. Hence, interrupt service routines are limited in the actions they can perform; for instance, they are usually restricted from accessing the file system and sometimes even from allocating memory. This definition of reentrancy differs from that of thread-safety in multi-threaded environments. A reentrant subroutine can achieve thread-safety, but being reentrant alone might not be sufficient to be thread-safe in all situations. Conversely, thread-safe code does not necessarily have to be reentrant (see below for examples). Other terms used for reentrant programs include "sharable code". Reentrant subroutines are sometimes marked in reference material as being "signal safe". Reentrant programs are often "pure procedures". (en)
  • 컴퓨터 프로그램 또는 서브루틴에 재진입성(Reentrancy)이 있으면, 이 서브루틴은 동시에 안전하게 실행 가능하다. 즉 재진입이 가능한 루틴은 동시에 접근해도 언제나 같은 실행 결과를 보장한다. 재진입이 가능하려면 함수는 다음 조건을 만족하여야 한다. * 정적 (전역) 변수를 사용하면 안 된다. * 정적 (전역) 변수의 주소를 반환하면 안 된다. * 호출자가 호출 시 제공한 매개변수만으로 동작해야 한다. * 싱글턴 객체의 잠금에 의존하면 안 된다. * 다른 비-재진입 함수를 호출하면 안 된다. 여러 '사용자/객체/프로세스'와 멀티프로세싱이 대개 재진입 코드의 제어를 복잡하게 만든다. 또한 입출력 코드는 디스크나 터미널과 같은 공유 자원에 의존하고 있기 때문에 보통은 재진입성이 없다. 재진입성은 함수형 프로그래밍의 핵심 개념이다. (ko)
  • In informatica, il codice di un programma o di una routine è detto rientrante se è progettato in modo che una singola copia del codice in memoria possa essere condivisa ed eseguita contemporaneamente e senza risultati inaspettati da utenti multipli o processi separati. La programmazione rientrante è vitale per molti sistemi multitasking (vedi thread-safe). Affinché una routine o comunque una parte di codice sia rientrante deve soddisfare questi requisiti: 1. * Nessuna porzione del codice possa essere alterata durante l'esecuzione (codice non automodificante); 2. * Il codice non deve richiamare nessuna routine che non sia a sua volta rientrante. Per esempio molte implementazioni delle funzioni malloc e free in C non lo sono (stesso discorso per new e dispose in Pascal) e non devono essere utilizzate. In caso sia necessario allocare memoria si potrebbero utilizzare le API di sistema (dopo averne consultato la documentazione per avere la certezza che siano rientranti), che, potendo in teoria essere chiamate in qualsiasi momento e in qualsiasi situazione (perlomeno in un sistema pienamente multitasking) offrono maggiori garanzie. 3. * Il codice deve usare, se necessarie, solo variabili temporanee allocate sullo stack. 4. * Il codice non deve modificare né variabili globali né aree di memoria condivisa né impiegare variabili locali statiche. Se una data porzione di codice non rispetta queste regole, non è possibile farla eseguire da più processi contemporaneamente ma è necessario regolarne l'accesso tramite semafori o sezioni critiche, per assicurarsi che venga eseguita da un solo processo alla volta. La parte di codice dei kernel che implementa la sincronizzazione interprocesso (semafori, sezioni critiche ecc.) non è rientrante per definizione. Il kernel dei sistemi operativi Windows NT è completamente rientrante, a differenza di quello di Windows 9x, le cui notevoli porzioni di codice a 16 bit derivate da MS-DOS non sono rientranti. Pertanto l'accesso a codice di sistema a 16 bit in Windows 9x è regolato da una sezione critica globale, con il risultato che spesso il sistema operativo opera in maniera monotask. Le funzioni ricorsive dovrebbero essere sempre rientranti, sebbene, con le dovute cautele, sia possibile scrivere funzioni ricorsive non rientranti. (it)
  • Wielobieżność (ang. reentrancy) – jest to cecha funkcji. Funkcja jest określana jako wielobieżna jeżeli wykonywanie jej może zostać przerwane (poprzez przerwanie lub wywołanie innej funkcji wewnątrz ciała funkcji), a potem może ona zostać (bezpiecznie) ponownie wywołana zanim poprzednie wywołanie zostanie zakończone. Po zakończeniu drugiego wywołania, można wrócić do przerwanego wywołania, a wykonywanie go może bezpiecznie kontynuować. Funkcje wielobieżne można więc wywoływać rekurencyjnie. (pl)
  • リエントラント(英: reentrant / re-entrant、再入可能)およびリエントランシー(英: reentrancy / re-entrancy、再入可能性)とは、あるプログラムやサブルーチンの実行を完了する前に、割り込みなどにより、同じプログラムやサブルーチンを実行しても安全だという性質を指す。割り込みは分岐や呼び出しなどの内部的な動きによって生じる場合もあるし、ハードウェア割り込みやシグナルなどの外部の動きによって生じる場合もある。割り込みの実行を完了後に、割り込み前の実行に影響を与えずに継続できる。 この定義はシングルスレッドのプログラミング環境が起源であり、ハードウェア割り込みで割り込まれた制御の流れが割り込みサービスルーチン (ISR) に転送されることから生まれた。ISRが使用するサブルーチンは割り込みをきっかけとして実行される可能性があるため、リエントラントでなければならない。OSのカーネルが使用するサブルーチンの多くは、カーネルで確保済みのリソースを超えられない制限がありリエントラントではない。そのためISRでできることは限られている。例えば、一般にISRからファイルシステムにはアクセスできないし、場合によってはヒープ領域も確保できない。 直接または間接に再帰可能なサブルーチンはリエントラントである。しかし、グローバル変数が処理の流れの中でしか変化しないことを前提としているサブルーチンはリエントラントではない。グローバル変数を更新するサブルーチンが再帰的に呼び出されれば、1回のサブルーチン実行の中でグローバル変数は突然変化することになる。 リエントラント性の概念はシングルスレッドの環境に起源があり、マルチスレッド環境でのスレッドセーフという概念とは異なる。リエントラントなサブルーチンはスレッドセーフにすることもできるが、リエントラントだというだけであらゆる状況でスレッドセーフと言えるわけではない。逆にスレッドセーフなコードはリエントラントである必要はない(後述の例を参照)。 (ja)
  • Em programação, reentrância refere-se a qualidade de uma sub-rotina ser executada concorrentemente de forma segura, isto é, a subrotina pode ser invocada enquanto está em execução. Para atender essa qualidade, a sub-rotina não deve armazenar dados estáticos (globais) não constantes, não deve retornar o endereço de dados estáticos não constantes, deve trabalhar somente com os dados fornecidos pela subrotina que a invocou, não deve contar com exclusão mútua para recursos construídos com o modelo singleton e só deve invocar sub-rotinas que também atendam as qualidades anteriores, isto é, que também sejam reentrantes. Vários níveis de prioridade de tarefas ou multiprocessamento geralmente complicam o controle de código reentrante. Código de entrada/saída geralmente não é reentrante pois manipula recursos singleton como discos rígidos. Entretanto, a reentrância é uma funcionalidade importante da programação funcional. (pt)
  • Компьютерная программа в целом или её отдельная процедура называется реентера́бельной (от англ. reentrant — повторно входимый), если она разработана таким образом, что одна и та же копия инструкций программы в памяти может быть совместно использована несколькими пользователями или процессами. При этом второй пользователь может вызвать реентерабельный код до того, как с ним завершит работу первый пользователь и это как минимум не должно привести к ошибке, а при корректной реализации не должно вызвать потери вычислений (то есть не должно появиться необходимости выполнять уже выполненные фрагменты кода). Реентерабельность тесно связана с безопасностью функции в многопоточной среде (thread-safety), тем не менее, это разные понятия. Обеспечение реентерабельности является ключевым моментом при программировании многозадачных систем, в частности, операционных систем. Для обеспечения реентерабельности необходимо выполнение нескольких условий: * никакая часть вызываемого кода не должна модифицироваться; * вызываемая процедура не должна сохранять информацию между вызовами; * если процедура изменяет какие-либо данные, то они должны быть уникальными для каждого пользователя; * процедура не должна возвращать указатели на объекты, общие для разных пользователей. В общем случае, для обеспечения реентерабельности необходимо, чтобы вызывающий процесс или функция каждый раз передавал вызываемому процессу все необходимые данные. Таким образом, функция, которая зависит только от своих параметров, не использует глобальные и статические переменные и вызывает только реентерабельные функции, будет реентерабельной. Если функция использует глобальные или статические переменные, необходимо обеспечить, чтобы каждый пользователь хранил свою локальную копию этих переменных. (ru)
  • Комп'ютерна програма або підпрограма є повторновикористовною або інакше повторновхідною (англ. reentrant), якщо вона може бути безпечно викликана знову до завершення роботи її попереднього виклику (тобто вона може бути безпечно виконана паралельно). Щоб бути повтороновикористовною, комп'ютерна програма або підпрограма: * Повинна утриматися від використання статичних (або глобальних) неконастантних даних. * Повинна не повертати покажчик на статичні (або глобальні) неконстантні дані. * Повинна працювати лише з даними наданими їй підпрограмою, що її викликає. * Повинна відмовитись від покладання на блокування ресурсів типу сінглтон. * Повинна відмовитись від зміни власного коду. (хіба тільки такого, що виконується в її власному потоковому сховищі) * Повинна не викликати неповторновикористовні комп'ютерні програми або підпрограми. (uk)
  • 若一個程式或副程式可以「在任意時刻被中斷然後作業系統調度執行另一段程式碼,這段程式碼又使用了該副程式不會出錯」,則稱其為可重入(reentrant 或 re-entrant)的。即當該副程式正在運作時,執行线程可以再次進入並執行它,仍然可得到符合設計時所預期的結果。與多執行緒併發執行的執行緒安全不同,可重入強調對單一執行緒執行時重新進入同一個子程序仍然是安全的。 可重入概念是在單執行緒作業系統的時代提出的。一個副程式的重入,可能由於自身原因,如執行了jmp或者call,類似于子程序的遞迴调用;或者由於作業系统的中斷回應。UNIX系统的的处理,即子程序被中断处理程序或者signal处理程序调用。所以,可重入也可称作“异步信号安全”。这里的异步是指信号中断可发生在任意时刻。 重入的子程序,按照后进先出线性序依次执行。 若一个函数是可重入的,則该函数應當满足下述条件: * 不能含有静态(全域)非常量数据。 * 不能返回静态(全域)非常量数据的地址。 * 只能处理由调用者提供的数据。 * 不能依赖于单实例模式资源的锁。 * 调用(call)的函数也必需是可重入的。 上述条件就是要求可重入函数使用的所有变量都保存在呼叫堆疊的目前(frame)上,因此同一执行线程重入执行该函数时加载了新的函数帧,与前一次执行该函数时使用的函数帧不冲突、不互相覆盖,从而保证了可重入执行安全。 多「用户/对象/进程优先级」以及多进程(Multiple processes),一般会使得对可重入代码的控制变得复杂。同时,IO代码通常不是可重入的,因为他们依赖于像磁盘这样共享的、单独的(類似編程中的、全域)资源。 可重入性是函数程式語言的關鍵特性之一。 (zh)
dbo:wikiPageExternalLink
dbo:wikiPageID
  • 154851 (xsd:integer)
dbo:wikiPageLength
  • 17628 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID
  • 1122623904 (xsd:integer)
dbo:wikiPageWikiLink
dbp:cs1Dates
  • y (en)
dbp:date
  • March 2020 (en)
dbp:wikiPageUsesTemplate
dcterms:subject
gold:hypernym
rdf:type
rdfs:comment
  • 컴퓨터 프로그램 또는 서브루틴에 재진입성(Reentrancy)이 있으면, 이 서브루틴은 동시에 안전하게 실행 가능하다. 즉 재진입이 가능한 루틴은 동시에 접근해도 언제나 같은 실행 결과를 보장한다. 재진입이 가능하려면 함수는 다음 조건을 만족하여야 한다. * 정적 (전역) 변수를 사용하면 안 된다. * 정적 (전역) 변수의 주소를 반환하면 안 된다. * 호출자가 호출 시 제공한 매개변수만으로 동작해야 한다. * 싱글턴 객체의 잠금에 의존하면 안 된다. * 다른 비-재진입 함수를 호출하면 안 된다. 여러 '사용자/객체/프로세스'와 멀티프로세싱이 대개 재진입 코드의 제어를 복잡하게 만든다. 또한 입출력 코드는 디스크나 터미널과 같은 공유 자원에 의존하고 있기 때문에 보통은 재진입성이 없다. 재진입성은 함수형 프로그래밍의 핵심 개념이다. (ko)
  • Wielobieżność (ang. reentrancy) – jest to cecha funkcji. Funkcja jest określana jako wielobieżna jeżeli wykonywanie jej może zostać przerwane (poprzez przerwanie lub wywołanie innej funkcji wewnątrz ciała funkcji), a potem może ona zostać (bezpiecznie) ponownie wywołana zanim poprzednie wywołanie zostanie zakończone. Po zakończeniu drugiego wywołania, można wrócić do przerwanego wywołania, a wykonywanie go może bezpiecznie kontynuować. Funkcje wielobieżne można więc wywoływać rekurencyjnie. (pl)
  • En programació la reentrància es refereix a la qualitat d'una subrutina per a ser executada concurrentment d'una forma segura, és a dir, la subrutina es pot invocar mentre s'està executant. Per a tenir aquesta qualitat, la subrutina no pot emmagatzemar (globals) ni tampoc constants, no ha de retornar la direcció de les dades estàtiques, ni de les constants; ha de treballar només amb les dades proporcionades pel subprograma que l'ha invocat, no ha de tenir exclusió mútua dels recursos construïts sobre el model de Singleton, i al seu torn només ha invocar subrutines que també compleixen amb les qualitats esmentades, és a dir que també siguin reentrants (ca)
  • Der Begriff Eintrittsinvarianz wird in einer (teilweise maschinellen) deutschen Übersetzung des US-englischen Artikels Reentrancy von Microsoft benutzt. Damit wird ein Programm-Attribut beschrieben, welches die mehrfache (quasi-gleichzeitige) Nutzung eines Programm-Codes erlaubt. Eine verständlichere Übersetzung wäre wiedereintrittsfähig wie bereits im folgenden Text oder die native Nutzung von reentrant als gängigen Fachausdruck. Eintrittsinvariante Programmkonstrukte sind die Basis für viele Multitasking-Systeme (Threadsicherheit). (de)
  • En informática, un programa informático o subrutina se llama reentrante si puede ser interrumpido en medio de su ejecución y volver a llamarse de forma segura ("re-entrar") antes de que las invocaciones anteriores completen su ejecución. La interrupción puede ser causada por una acción interna como un salto o llamada, o por una acción externa como una interrupción o señal. Una vez que la invocación re-entrante completa, las invocaciones anteriores reanudarán su ejecución de forma correcta. (es)
  • In computing, a computer program or subroutine is called reentrant if multiple invocations can safely run concurrently on multiple processors, or on a single processor system, where a reentrant procedure can be interrupted in the middle of its execution and then safely be called again ("re-entered") before its previous invocations complete execution. The interruption could be caused by an internal action such as a jump or call, or by an external action such as an interrupt or signal, unlike recursion, where new invocations can only be caused by internal call. (en)
  • In informatica, il codice di un programma o di una routine è detto rientrante se è progettato in modo che una singola copia del codice in memoria possa essere condivisa ed eseguita contemporaneamente e senza risultati inaspettati da utenti multipli o processi separati. La programmazione rientrante è vitale per molti sistemi multitasking (vedi thread-safe). Affinché una routine o comunque una parte di codice sia rientrante deve soddisfare questi requisiti: (it)
  • リエントラント(英: reentrant / re-entrant、再入可能)およびリエントランシー(英: reentrancy / re-entrancy、再入可能性)とは、あるプログラムやサブルーチンの実行を完了する前に、割り込みなどにより、同じプログラムやサブルーチンを実行しても安全だという性質を指す。割り込みは分岐や呼び出しなどの内部的な動きによって生じる場合もあるし、ハードウェア割り込みやシグナルなどの外部の動きによって生じる場合もある。割り込みの実行を完了後に、割り込み前の実行に影響を与えずに継続できる。 この定義はシングルスレッドのプログラミング環境が起源であり、ハードウェア割り込みで割り込まれた制御の流れが割り込みサービスルーチン (ISR) に転送されることから生まれた。ISRが使用するサブルーチンは割り込みをきっかけとして実行される可能性があるため、リエントラントでなければならない。OSのカーネルが使用するサブルーチンの多くは、カーネルで確保済みのリソースを超えられない制限がありリエントラントではない。そのためISRでできることは限られている。例えば、一般にISRからファイルシステムにはアクセスできないし、場合によってはヒープ領域も確保できない。 (ja)
  • En informatique, la réentrance est la propriété pour une fonction d'être utilisable simultanément par plusieurs tâches utilisatrices. La réentrance permet d'éviter la duplication en mémoire vive d'un programme utilisé simultanément par plusieurs utilisateurs. Si une fonction de plusieurs threads doit accéder à une variable globale, il suffit de l'encadrer par des Mutex. L'écriture de code réentrant était autrefois[Quand ?] une tâche très ardue. Elle s'est simplifiée avec les langages actuels qui autorisent : (fr)
  • Компьютерная программа в целом или её отдельная процедура называется реентера́бельной (от англ. reentrant — повторно входимый), если она разработана таким образом, что одна и та же копия инструкций программы в памяти может быть совместно использована несколькими пользователями или процессами. При этом второй пользователь может вызвать реентерабельный код до того, как с ним завершит работу первый пользователь и это как минимум не должно привести к ошибке, а при корректной реализации не должно вызвать потери вычислений (то есть не должно появиться необходимости выполнять уже выполненные фрагменты кода). (ru)
  • Em programação, reentrância refere-se a qualidade de uma sub-rotina ser executada concorrentemente de forma segura, isto é, a subrotina pode ser invocada enquanto está em execução. Para atender essa qualidade, a sub-rotina não deve armazenar dados estáticos (globais) não constantes, não deve retornar o endereço de dados estáticos não constantes, deve trabalhar somente com os dados fornecidos pela subrotina que a invocou, não deve contar com exclusão mútua para recursos construídos com o modelo singleton e só deve invocar sub-rotinas que também atendam as qualidades anteriores, isto é, que também sejam reentrantes. (pt)
  • Комп'ютерна програма або підпрограма є повторновикористовною або інакше повторновхідною (англ. reentrant), якщо вона може бути безпечно викликана знову до завершення роботи її попереднього виклику (тобто вона може бути безпечно виконана паралельно). Щоб бути повтороновикористовною, комп'ютерна програма або підпрограма: (uk)
  • 若一個程式或副程式可以「在任意時刻被中斷然後作業系統調度執行另一段程式碼,這段程式碼又使用了該副程式不會出錯」,則稱其為可重入(reentrant 或 re-entrant)的。即當該副程式正在運作時,執行线程可以再次進入並執行它,仍然可得到符合設計時所預期的結果。與多執行緒併發執行的執行緒安全不同,可重入強調對單一執行緒執行時重新進入同一個子程序仍然是安全的。 可重入概念是在單執行緒作業系統的時代提出的。一個副程式的重入,可能由於自身原因,如執行了jmp或者call,類似于子程序的遞迴调用;或者由於作業系统的中斷回應。UNIX系统的的处理,即子程序被中断处理程序或者signal处理程序调用。所以,可重入也可称作“异步信号安全”。这里的异步是指信号中断可发生在任意时刻。 重入的子程序,按照后进先出线性序依次执行。 若一个函数是可重入的,則该函数應當满足下述条件: * 不能含有静态(全域)非常量数据。 * 不能返回静态(全域)非常量数据的地址。 * 只能处理由调用者提供的数据。 * 不能依赖于单实例模式资源的锁。 * 调用(call)的函数也必需是可重入的。 上述条件就是要求可重入函数使用的所有变量都保存在呼叫堆疊的目前(frame)上,因此同一执行线程重入执行该函数时加载了新的函数帧,与前一次执行该函数时使用的函数帧不冲突、不互相覆盖,从而保证了可重入执行安全。 (zh)
rdfs:label
  • Codi reentrant (ca)
  • Eintrittsinvarianz (de)
  • Reentrancia (informática) (es)
  • Réentrance (fr)
  • Codice rientrante (it)
  • 재진입성 (ko)
  • リエントラント (ja)
  • Reentrancy (computing) (en)
  • Wielobieżność (pl)
  • Реентерабельность (ru)
  • Reentrância (pt)
  • Повторновикористовна підпрограма (uk)
  • 可重入 (zh)
owl:sameAs
prov:wasDerivedFrom
foaf:isPrimaryTopicOf
is dbo:wikiPageRedirects of
is dbo:wikiPageWikiLink of
is foaf:primaryTopic of
Powered by OpenLink Virtuoso    This material is Open Knowledge     W3C Semantic Web Technology     This material is Open Knowledge    Valid XHTML + RDFa
This content was extracted from Wikipedia and is licensed under the Creative Commons Attribution-ShareAlike 3.0 Unported License