Translation

(itstool) path: sect3/para
The solution <trademark class="registered">Linux</trademark> 2.6 implements is called futexes. Futexes implement the check for contention in userspace and call kernel primitives only in a case of contention. Thus the typical case takes place without any kernel intervention. This yields reasonably fast and flexible synchronization primitives implementation.
387/3580
Context English Portuguese (Brazil) State
Threaded programs should be written with as little contention on locks as possible. Otherwise, instead of doing useful work the thread just waits on a lock. Because of this, the most well written threaded programs show little locks contention.
Os programas em threading devem ser escritos com o mínimo de contenção possível em bloqueios. Caso contrário, em vez de fazer um trabalho útil, a threading apenas espera em um bloqueio. Devido a isso, os programas encadeados mais bem escritos mostram pouca contenção de bloqueios.
Futexes introduction
Introdução a Futexes
<trademark class="registered">Linux</trademark> implements 1:1 threading, i.e. it has to use in-kernel synchronization primitives. As stated earlier, well written threaded programs have little lock contention. So a typical sequence could be performed as two atomic increase/decrease mutex reference counter, which is very fast, as presented by the following example:
O <trademark class="registered">Linux</trademark> implementa a segmentação 1:1, ou seja, tem de utilizar primitivas de sincronização no kernel. Como afirmado anteriormente, programas encadeados bem escritos possuem pouca contenção de bloqueio. Assim, uma sequência típica poderia ser executada como dois contador de referência de mutex de aumento/redução atômico, que é muito rápido, conforme apresentado pelo exemplo a seguir:
pthread_mutex_lock(&amp;mutex);
....
pthread_mutex_unlock(&amp;mutex);
pthread_mutex_lock(&amp;mutex);
....
pthread_mutex_unlock(&amp;mutex);
1:1 threading forces us to perform two syscalls for those mutex calls, which is very slow.
O threading 1:1 nos força a executar dois syscalls para as chamadas mutex, o que é muito lento.
The solution <trademark class="registered">Linux</trademark> 2.6 implements is called futexes. Futexes implement the check for contention in userspace and call kernel primitives only in a case of contention. Thus the typical case takes place without any kernel intervention. This yields reasonably fast and flexible synchronization primitives implementation.
A solução que o <trademark class="registered">Linux</trademark> 2.6 implementa é chamada de futexes. Futexes implementam a verificação de contenção no espaço do usuário e chama primitivas do kernel apenas em um caso de contenção. Assim, o caso típico ocorre sem qualquer intervenção do kernel. Isso produz uma implementação de primitivas de sincronização razoavelmente rápida e flexível.
Futex API
API do Futex
The futex syscall looks like this:
A syscall do futex é assim:
int futex(void *uaddr, int op, int val, struct timespec *timeout, void *uaddr2, int val3);
int futex(void *uaddr, int op, int val, struct timespec *timeout, void *uaddr2, int val3);
In this example <varname>uaddr</varname> is an address of the mutex in userspace, <varname>op</varname> is an operation we are about to perform and the other parameters have per-operation meaning.
Neste exemplo <varname>uaddr</varname> é um endereço do mutex no espaço do usuário, <varname>op</varname> é uma operação que estamos prestes a executar e os outros parâmetros têm significado por operação.
Futexes implement the following operations:
Futexes implementam as seguintes operações:

Loading…

The solution <trademark class="registered">Linux</trademark> 2.6 implements is called futexes. Futexes implement the check for contention in userspace and call kernel primitives only in a case of contention. Thus the typical case takes place without any kernel intervention. This yields reasonably fast and flexible synchronization primitives implementation.
A solução que o <trademark class="registered">Linux</trademark> 2.6 implementa é chamada de futexes. Futexes implementam a verificação de contenção no espaço do usuário e chama primitivas do kernel apenas em um caso de contenção. Assim, o caso típico ocorre sem qualquer intervenção do kernel. Isso produz uma implementação de primitivas de sincronização razoavelmente rápida e flexível.
3 months ago
Browse all component changes

Glossary

English Portuguese (Brazil)
No related strings found in the glossary.

Source information

Source string comment
(itstool) path: sect3/para
Labels
No labels currently set.
Source string location
article.translate.xml:2024
Source string age
3 months ago
Translation file
articles/pt_BR/linux-emulation.po, string 294