Buscar

Questões Prova 3

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 4 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

OBS: FAVOR MODIFICAREM SUAS RESPOSTAS PARA DIFERENCIAR UMAS DAS OUTRAS.
Explique a diferença entre fragmentação externa e interna no contexto de gerenciamento de memória. Explique como podem surgir e como podem ser evitadas.
Fragmentação interna: a memória é dividida em blocos de tamanhos fixos e a acesso á memória é feito pelos blocos. A fragmentação interna é a sobra da memória que está alocada aos processos, ou seja, é a sobra dentro do processo (é o espaço que sobrou dentro do processo).
Como surgi: um processo que solicita 64 bytes e você deu 512 bytes, sobram 448 bytes sem ser usado, esse espaço que sobra é a fragmentação interna.
Como evitar: diminuir o tamanho dos blocos (páginas de blocos menores), esse procedimento acarreta em blocos menores, com isso, diminui a fragmentação interna devido a uma perda menor de espaço.
Fragmentação externa: é o espaço que sobrou fora dos processos que não está alocado para ninguém, é o espaço que sobra na memória entre os processos alocados. 
Como surgi: surgi por conta de métodos de alocação que não conseguem utilizar espaços separados na memória. 
Como evitar: para evitar é necessário realocar os processos na memória, ou seja, compactar os processos ou desfragmentar os processos.
Quais as estruturas e técnicas a seguir são boas (geram poucas falhas de páginas) para um ambiente de paginação por demanda? Quais são más? Argumente suas respostas.
Pilha
Busca binaria
Busca sequencial
Pilha: Estrutura simples que gera poucas falhas de página, é considerada boa. Essa estrutura pode permitir que a memória esteja contígua se a mesma for utilizada de tamanho fixo.
Busca binaria: Gera muita falha de página, é considerada ruim. Nesse tipo de busca muito provavelmente não esteja contígua, com isso, poderá haver acesso a páginas de páginas de memória, assim tornando ineficiente.
Busca sequencial: Gera poucas falhas de página, é considerada boa. Dependendo de como o vetor está alocado, a busca sequencial pode ser rápida porque os dados podem estar contíguos.
Defina paginação e segmentação de memória, dando exemplo que expliquem sua definição. Discuta o impacto dessas técnicas com respeito á fragmentação de memória.
Paginação: a memória lógica é dividida em páginas de tamanho fixo e a memória física é dividida em quadros (frames). Cada página da memória lógica exibe um frame da memória física, porém não é necessário estar em sequencia.
Exemplo: imagine uma memória de 2GB na qual foi dividida em 20 quadros de 100MB cada, se houver um processo com tamanho de 150MB, ou seja, maior que o tamanho dos quadros da memória. É possível através do compartilhamento de quadros atender esse processo utilizando 2 quadros que não precisam estar em sequencia e nem em ordem. 
Impacto dessa técnica com a fragmentação: resolve o problema da fragmentação externa e do crescimento dos processos, porém, traz o problema da fragmentação interna. Ainda assim ela é mais interessante devido ao porcentual de desperdício da fragmentação interna ser muito inferior á da alocação contínua, e ainda garante um número de multiprocessamento maior que a alocação continua.
Segmentação: tenta alocar a memória de acordo com a visão do desenvolvedor sobre os programas. Ela divide o programa nos seguimentos lógicos, onde cada seguimento tem sua porção alocada em uma posição na memória. É parecido com a alocação contínua só que o programa que antes era alocado por inteiro é dividido em vários pedaços. 
Exemplo: um programa que tem 200MB, se ele for dividido em 4 seguimentos de 50MB não é necessário que seus seguimentos estejam contíguos na memória. 
Impacto dessa técnica com a fragmentação: Não tem fragmentação interna porque os seguimentos são divididos e alocados em uma posição de tamanho fixo na memória. Porém, a fragmentação externa porque não tem como prever os tamanhos dos seguimentos. 
Explique sobre a técnica do Copy On Write (COW) e sua relação com a criação de processos.
É criado um processo filho do processo pai, finge-se que aloca memória para o processo filho, mais ele usa a memória do processo pai, só aloca mais memória se o processor pai ou o processo filho fizer alguma alteração, se houver alguma escrita ou modificação é feita a cópia, se não houver nenhuma modificação compartilha o mesmo código, os mesmos dados e as mesmas variáveis. 
Explique os seguintes métodos de alocação contígua: first-fit, best-first e worst-fit.
First-fit (primeiro apto): é escolhido na memória o primeiro intervalo grande o suficiente para atender o processo que solicitou. Essa escolha pode ocorrer do começo do espaço de busca ou a partir do intervalo escolhido anteriormente. Assim que for encontrado um espaço grande o suficiente a busca é encerada.
Best-first (melhor apto): é feito uma busca no conjunto de intervalo com o intuito de encontrar o menor intervalo, porém que, seja grande o suficiente para atender o processo que solicitou. Esse método percorre todo o conjunto de intervalo e retorna o menor intervalo que seja capaz de alocar o processo solicitante.
Worst-fit (menos apto): é feito uma busca no conjunto de intervalo com intuito de verificar qual o maior intervalo e se o mesmo é grande o suficiente para acomodar o processo que solicitou. Esse método percorre todo o conjunto de intervalo e retorna o maior intervalo encontrado e que seja grande o suficiente para alocar o processo solicitante.
Explique, utilizando exemplos, sobre como a paginação possibilita o compartilhamento de memórias, especialmente em bibliotecas dinâmicas.
Na paginação o processo pode ser alocado em partes diferentes na memória. Exemplo: uma parte de um código pode estar em uma parte da memória que compreende entre 256 à 512 e outra parte pode estar entre 1024 a 2048. Como vários processos podem executar o mesmo código não é necessário alocar um código na memória mais de uma vez. O controle do compartilhamento é feito por um bit (bit - sujo). Se um processo alterar o conteúdo da memória que é compartilhado por outro processo, o processo que ocasionou a modificação irá copiar o conteúdo compartilhado para outra parte da memória e irá gravar a alteração no disco (cópia após gravação). No contexto de bibliotecas dinâmicas (DLL), se um processo compartilha memória com outro processo, quando a DLL for chamada por um processo o outro não precisará carregar essa DLL, pois em sua memória compartilhada já tem a DLL carregada.
Explique, utilizando exemplos, o algoritmo de segunda chance para substituição de páginas.
O algoritmo de segunda chance é parecido com o algoritmo FIFO, porém com algumas modificações. Esse algoritmo também trabalha com o critério que o primeiro a chegar é o primeiro a sair, só que há algumas regras que modificam a ordem de cada processo. Quando um processo entra no quadro da memória ele inicialmente ganha uma segunda chance e o ponteiro fica apontado para ele, quando todos os quadros da memória estiverem cheios o algoritmo começa a verificar quem vai sair para dar lugar a um novo processo. Nesse momento o algoritmo passa pelos quadros da memória verificando qual processo vais sair, se todos os processos tiverem segunda chance o algoritmo corre todos os quadros da memória e retorna no primeiro e faz a troca, se caso for encontrado algum processo que não tenha a segunda chance pelo percurso, esse processo é removido da memória. O processo que entra na memória ganha uma segunda chance e tem o ponteiro apontado para o seu quadro (nesse caso o ponteiro poderia ser movido para o próximo quadro, ficando essa decisão a ser tomada na hora do desenvolvimento do algoritmo). Outra diferença que há entre o algoritmo de segunda chance e o FIFO, é que processos que já estão na memória e são solicitados, se o ponteiro estiver apontado para ele, o processo ganha a sua segunda chance e o ponteiro continua apontado para ele mesmo, se o ponteiro estiver em outro quadro da memória o processo solicitado vai receber a segunda chance do mesmo jeito, porém o ponteiro continua apontado para o quadro que seencontrava no momento da solicitação e a execução do algoritmo segue de onde está o ponteiro. 
No contexto de gerenciamento de memória, o que são falhas de páginas e em que circunstância elas ocorrem? Quais as ações tomadas pelo S.O quando ocorre uma falha de página?
Falha de página é quando se tenta acessar um endereço de memória que ainda não foi trazido para a memória principal. A falha ocorre quando tem a necessidade de alocar uma nova página na memória e não há nenhum quadro livre.
Ações tomadas pelo S.O: o S.O quando verifica uma falha de página ele faz uma substituição de página. O S.O pega uma página que está na memória e leva de volta para liberar um quadro de memória para a nova página.
Explique, com exemplo ou detalhes, o que é Anomalia de Belady.
Anomalia de Belady é uma anomalia que acontece com uma determinada sequência do algoritmo FIFO, nessa sequência o aumento do número de quadros de memória não diminui o número de falhas, e sim aumenta. 
Exemplo: uma sequencia que gera 6 falhas de páginas com 3 quadros de memória, ao aumentar o número de quadros da memória de 3 para 4 quadros, o que se espera é uma diminuição no número de falhas devido ao aumento da memória, porém ao invés de diminuir o número de falhas de página a um aumento.
Explique como o S.O poderia utilizar ao mesmo tempo paginação e segmentação de memória, segmentação com paginação, dando exemplos de como isso é utilizado em S.Os modernos.
Segmentação com paginação a memória é dividida em segmentos, e os segmento são paginados. 
Exemplos: o Linux divide a memória em três segmentos, um para o kernel, um para bibliotecas do sistema e um segmento para aplicações do sistema, ele faz isso para a proteção da memória e acima disso para a paginação. 
Explique a diferença entre carga dinâmica e ligação dinâmica.
Carga dinâmica: tem códigos de dados carregados sob demanda, os objetos que não se encontram na memória são alocados dinamicamente na memória. Essa atividade de carga dinâmica exige pouco do S.O, a única exigência que é feita ao S.O é alocar memória.
Ligação dinâmica: usa biblioteca (DLL) e exige mais do S.O. Você adia a ligação, é uma função que não é inserida no código. Na hora de chamar a função ele executa a DLL.

Outros materiais

Materiais relacionados

Perguntas relacionadas

Perguntas Recentes