Um sistema operacional deve garantir a exclusividade no ace...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é: D - As técnicas de TSL (Test and Set Lock) e XCHG (Exchange) são implementadas em mais baixo nível, no nível de registradores.
Vamos entender a razão pela qual a alternativa D está correta, além de explorar o tema da questão: exclusão mútua em sistemas operacionais.
Exclusão mútua é um conceito fundamental em sistemas operacionais e refere-se à necessidade de garantir que múltiplos processos ou threads não acessem simultaneamente uma mesma seção crítica — uma parte do código onde recursos compartilhados são manipulados. Para garantir a exclusão mútua, várias técnicas e mecanismos são empregados.
A técnica TSL (Test and Set Lock) e a instrução XCHG (Exchange) são implementadas no nível de hardware, especificamente nos registradores do processador. Essas técnicas permitem a criação de mecanismos eficientes de bloqueios (locks) que garantem a exclusão mútua, evitando que mais de um processo entre na seção crítica ao mesmo tempo.
Vamos analisar por que as outras alternativas estão incorretas:
A - Desabilitar interrupções não permite que dois processos compartilhem a memória sem erros, pois essa técnica apenas impede a interrupção do processador, mas não resolve problemas de acesso simultâneo por processos em sistemas multiprocessados.
B - A técnica de chaveamento obrigatório (obrigação de alternância) pode ser uma tentativa de garantir exclusão mútua, mas não é infalível e pode resultar em condições de corrida se não houver um controle rigoroso.
C - A Solução de Peterson é uma técnica de software para exclusão mútua, mas ela não utiliza semáforos. Em vez disso, usa variáveis compartilhadas e um protocolo específico para garantir que apenas um processo acesse a região crítica de cada vez.
E - Variáveis do tipo trava (locks) podem ser úteis, mas sua eficácia depende do algoritmo de escalonamento. Não é garantido que qualquer algoritmo funcionará sem problemas em todos os cenários.
Espero que essa explicação tenha esclarecido o tema abordado na questão. Compreender as diferentes técnicas de exclusão mútua é essencial para garantir que os recursos compartilhados sejam acessados de forma segura e eficiente em um sistema operacional. Se tiver mais dúvidas, estou aqui para ajudar!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
d-
In computer science, the test-and-set instruction is an instruction used to write (set) 1 to a memory location and return its old value as a single atomic (i.e., non-interruptible) operation. The caller can then "test" the result to see if the state was changed by the call. If multiple processes may access the same memory location, and if a process is currently performing a test-and-set, no other process may begin another test-and-set until the first process's test-and-set is finished. A CPU may use a test-and-set instruction offered by another electronic component, such as dual-port RAM; a CPU itself may also offer a test-and-set instruction.
https://en.wikipedia.org/wiki/Test-and-set
GABARITO D
A) Quando se utiliza a técnica de desabilitar interrupção, dois processos podem compartilhar o acesso à memória compartilhada sem erros.
- ERRADO: A técnica de desabilitar interrupção objetiva atingir a exclusão mútua, a qual afirma que um único processo pode acessar a memória compartilhada (região crítica) por vez.
B) Ao utilizar a técnica de chaveamento obrigatório, nenhuma das quatro condições necessárias para evitar condições de corrida é violada.
- ERRADO: Chaveamento obrigatório não é uma boa ideia quando um dos processos é muito mais lento que o outro. Esta solução requer a entrada estritamente alternada de dois processos em suas regiões críticas. Essa técnica não é implementável na prática.
- FONTE: https://cic.unb.br/~alchieri/disciplinas/graduacao/so/ipc.pdf
C) A técnica chamada de Solução de Peterson utiliza-se de semáforos para contar o número de sinais de acordar (wakeup) e sinais de dormir (sleep).
- ERRADO: a solução de Peterson utiliza a chamada de duas funções: enter_region (entrar na região crítica) e leave_region (sair da região crítica).
D) As técnicas de TSL (Test and Set Lock) e XCHG (Exchange) são implementadas em mais baixo nível, no nível de registradores.
- CORRETO: As duas técnicas são implementadas a nível de hardware.
E) Ao utilizar a técnica de variáveis do tipo trava, com qualquer algoritmo de escalonamento dos processos, não serão apresentados problemas no acesso à memória compartilhada.
- ERRADO: "Infelizmente, essa ideia contém exatamente a mesma falha fatal que vimos no diretório de spool. Suponha que um processo lê a trava e vê que ela é 0. Antes que ele possa configurar a trava para 1, outro processo está escalonado, executa e configura a trava para 1. Quando o primeiro processo executa de novo, ele também configurará a trava para 1, e dois processos estarão nas suas regiões críticas ao mesmo tempo." - TANENBAUM
test and set lock (TSL) e exchange consoante reddit:
Test and Set Lock (TSL)- Imagine you're trying to enter a room, and there's a lock on the door. You want to check if the lock is open (test) and, if it is, you immediately lock it (set) so no one else can enter while you're inside.
In programming terms, TSL does two things in one atomic step:
It reads the value of a "lock" (test if it's open or closed).
If it's open (unlocked), it closes (locks) it.
All of this happens in one go so no other process can interfere while you're doing it.
This ensures that once a process has the lock, no other process can grab it until it's released.
Exchange (XCHG)- Imagine you and a friend have two objects, and you want to swap them without dropping or losing anything. XCHG swaps the values of two variables in one atomic operation. if one variable holds 1 and another holds 2, the first variable will hold 2, and the second will hold 1.
https://www.reddit.com/r/rust/comments/h8d91v/memory_access_ordering_required_to_implement/
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo