SóProvas


ID
885052
Banca
CESPE / CEBRASPE
Órgão
ANP
Ano
2013
Provas
Disciplina
Sistemas Operacionais
Assuntos

Acerca de sistemas operacionais, julgue os itens a seguir.

No gerenciamento de memória, caso um programa seja inicializado duas vezes, o sistema operacional pode compartilhar todas as páginas de texto, mantendo somente uma cópia em memória. Esse recurso mantém páginas de texto apenas para leitura e permite que os processos façam modificação na página de dados. Esse procedimento para modificação dos dados compartilhados denomina-se bibliotecas compartilhadas.

Alternativas
Comentários
  • Errado. O gerenciamento de memória do sistema operacional pode compartilhar algumas informações, mas não TODAS as páginas de texto. Normalmente o que acontece nos sistemas desktop, é a execução em cópia do aplicativo completo em duas áreas da memória distintas, quando não existe sistema de detecção para evitar (por exemplo, MSPaint).
  • Segundo o Tanembaum: "If a program is started up twice, most operating systems will automatically share all the text pages so that only one copy is in memory. Text pages are always read-only, so there is no problem here".
    Então os dois primeiros períodos da questão estão corretos, e o erro está em: "Esse procedimento... compartilhadas".
  • A inicialização de um programa duas vezes, em geral, faz com que os dois programas compartilhem as páginas de código (que são read-only). Isso permite economizar memória.
    O erro está em "Esse procedimento para modificação dos dados compartilhados denomina-se bibliotecas compartilhadas". Bibliotecas compartilhadas são um conjunto de funções alocadas em código independente para ser carregado por múltiplos programas. Elas também utilizam o método de compartilhar a parte de código entre os processos. Porém, esse não é o nome dado quando se invoca o mesmo programa.
  • Pg 137 do livro do Tanenbaum - 3 ed
  • E alguém sabe como chama o procedimento para modificação dos dados compartilhados?
  • O erro está em falar "Esse procedimento para modificação dos dados compartilhados (...)". Os dados compartilhados não serão modificados.
    Percebam que as páginas de texto é que serão compartilhadas e elas serão somente leitura como o próprio texto diz (e essa afirmação está no livro do Tanenbaum). As páginas de dados é que serão modificadas e elas não são compartilhadas.
  • Eu atribuo esse procedimento ao conceito de reentrância. 

  • Sou fã do Nishimura. Mas, nesse caso, o comentário feito por ele não está correto.

     

    Quando a questão fala em compartilhar as páginas de memória de TEXTO, é preciso compreender que a área de TEXTO é a área onde o PROGRAMA será alocado. O PROGRAMA (texto) é o mesmo, em todas as execuções. Logo, é correto que o SO pode compartilhar TODAS as páginas de texto, sem problemas. O que não dá pra compartilhar é a PILHA do programa.

     

    O erro está em afirmar que esse seria o contexto de "biblioteca compartilhada". Biblioteca compartilhada seriam, por exemplo, as LIBs no Linux ou as DLLs no Windows.

     

    O conceito trazido pela questão é o de reentrância. E é justamente o nome do conceito que torna a assertiva errada.

  • O erro da questão está na parte que diz que esse procedimento permite modificações. Na verdade, ele permite somente a leitura do texto, quando um dos programas realiza a modificação de alguma página, o sistema operacional  cria uma cópia  dela para uso individual daquele processo.

  • Pessoal, errado!!

    Esse procedimento é chamado de REENTRÂNCIA!

    Deem uma olhadinha nessa questão Q345076

    .

    Compartilhamento de Memória (código reentrante)
    O  código  executável  de  alguns  programas,  principalmente  utilitários  e  programas  de sistema,  podem  ser  compartilhados  afim  de  evitar  o  consumo  desnecessário  de  MP.  Para  que isto ocorra o programa reentrante precisa ser especificamente caracterizado como tal pelo gerente do sistema e, assim, automaticamente, o sistema operacional se encarrega de fazer com que os processos que estiverem usando um determinado programa reentrante estejam com as entradas  das  suas  respectivas page ou segment tables apontando  para  os  mesmos  frames na MP (frames estes ocupados pelo código executável do programa reentrante).

    A utilização de código reentrante não só otimiza a ocupação da MP, uma vez que evita a coexistência de cópias idênticas de um mesmo trecho de programa na memória, mas também melhora o desempenho dos programas, uma vez que reduz a paginação ou segmentação destes pelo fato do programa reentrante permanecer residente em memória.

  • Reentrância é a possibilidade de vários usuários acessarem pontos diferentes do mesmo programa, armazenado na memória (código reentrante), manipulando dados próprios e exclusivos de cada usuário.