-
Reentrância
É comum, em sistemas multiprogramáveis, vários usuários utilizarem os mesmos aplicativos simultaneamente, como editores de texto, compiladores e outros utilitários. Nesta situação, se cada usuário que utilizasse um destes aplicativos trouxesse o código executável para a memória, haveria então diversas cópias de um mesmo programa ocupando espaço na memória, o que causaria um grande desperdício de espaço. Reentrância é a capacidade de um código executável (código reentrante) ser compartilhado por vários usuários, exigindo apenas uma cópia do programa em memória. A reentrância permite que cada usuário esteja executando um trecho diferente do código reentrante, manipulando dados próprios, exclusivos de cada usuário.
fonte: http://escreveassim.com/2012/10/15/voce-sabe-o-que-e-sistema-operacional-p2/
-
Apenas clarificando o conceito do nosso amigo abaixo, todo o processo que entra na memória é dividido em três partes:
Pilha
Dados
Código (também chamado de texto)
A pilha e os dados são exclusivos de cada processo, pois cada um ocupa um espaço exclusivo na memória, bem como a particularidade dos dados que cada um manipula.
A reentrância é um mecanismo que venho para tornar o gerenciamento de processos mais inteligente. Imagina eu abrindo dois "Words" e permitindo que cada processo trouxesse o seu próprio código? Desperdício, né? Se o código faz parte da mesma aplicação, por que não permitir o seu compartilhamento?
Por essa razão, letra B
-
Gabarito B
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.
"Retroceder Nunca Render-se Jamais !"
Força e Fé !
Fortuna Audaces Sequitur !
-
Acredito que com os conceitos de multiprogramação e multiprocessamento dá para matar a questão. A dúvida ficaria apenas entre A e B.
Multiprogramação (multitarefa) - sistemas mais complexos e eficientes, vários usuários, preocupação em gerenciar acesso concorrente. Vantagem: Redução de custos.
Multiprocessamento (2 ou mais CPUs envolvidas.) – É a capacidade de um SO executar dois ou mais processos. SIMULA A SIMULTANEIDADE, diferente da multitarefa. Problemas de concorrência (processadores podem estar acessando a mesma área de memória)
Reentrância - Capacidade de um código executável ser compartilhado por diversos usuários, exigindo que apenas uma cópia do programa esteja na memória.
-
Realizarem a carga na memória de apenas uma cópia do programa que pode ser compartilhado por vários usuários.