Prévia do material em texto
Pontifícia Universidade Católica de Minas Disciplina: Sistemas Operacionais Professor: Mark Alan Junho Song Aluno: Ludmila Bruna Santos Nascimento Matrícula: 541564 Questão 1. Explique o conceito de alocação contígua de memória. A alocação de memória contígua é um método no qual uma única seção / parte contígua da memória é alocada para um processo ou arquivo que precisa dela. Quando um processo vai ser executado, a memória é requerida por ele. O tamanho do processo é comparado com a quantidade de memória principal contígua disponível para executar o processo. Se memória contígua suficiente for encontrada, o processo receberá memória alocada para iniciar sua execução. Senão, ele será adicionado a uma fila de processos em espera até que a memória contígua livre suficiente esteja disponível. Questão 2. Qual a função da MMU na gerência de memória? MMU, Memory Management Unit (Unidade de Gerenciamento de Memória), é um dispositivo de hardware que traduz endereços virtuais (endereço da memória virtual) em endereços físicos da memória (RAM), é geralmente implementada como parte da CPU (Central Processing Unit), mas também pode estar como um circuito integrado separado. Questão 3. Qual a diferença entre endereço físico e virtual? Endereço virtual de um processo é diferente do endereço físico pois, o endereço virtual é gerado pela CPU e endereço físico são endereços enviados para a memória RAM. Endereços virtuais são transformados em endereços físicos no momento de execução dos processos. Questão 4. Se todos os processos que precisam executar não cabem na memória, o que pode ser feito? Explique a ideia de swapping. • Carregar todos os processos que couberem na memória • Se não couber, retirar um processo da memória principal (RAM) e copiar seu conteúdo na memória secundária (HD/SSD) • Quando o processo for executar trazer ele de volta da memória secundária (HD/SSD) para a primária (RAM) A ideia de swapping é exatamente esses passos descritos acima, trocar os processos usados no gerenciamento de memória conforme os recursos do hardware. O swapping pode prejudicar o desempenho do sistema, pois, sua velocidade de transferência em relação ao disco é lenta. Questão 5. Explique o problema da fragmentação externa. Como solucionar o problema? A fragmentação externa ocorre quando há uma quantidade de área suficiente na memória para satisfazer a solicitação de memória de um método. no entanto, a solicitação de memória do processo não pode ser atendida porque a memória oferecida é de forma não contígua. Para minimizar a ocorrência de fragmentação externa, cada pedido de alocação pode ser analisado para encontrar a área de memória livre que melhor o atenda. Essa análise pode ser feita usando um dos seguintes critérios: First-fit (primeiro encaixe) Best-fit (melhor encaixe) Worst-fit (pior encaixe) Next-fit (próximo encaixe) Pontifícia Universidade Católica de Minas Disciplina: Sistemas Operacionais Professor: Mark Alan Junho Song Questão 6. O que acontece quando um processo excede o tamanho alocado da sua área de crescimento? Ele precisará ser realocado em uma área de memória com espaço contínuo que caiba o seu novo tamanho. Isso pode levar muito tempo, pois pode ser necessário fazer swap-out de outros processos e ainda mover os dados do processo para uma nova área de memória Questão 7. O sistema operacional mantém uma lista de espaços livres na memória física. Sempre que um novo processo é criado esta lista é percorrida e usada. Quais as formas de percorrer a lista, ou seja, de alocar um bloco na memória para o processo? Gerenciamento de memória livre com mapas de bits Com mapas de bits, a memória é dividida em unidades de alocação. Cada bit do mapa representa uma unidade de alocação, sendo que se o bit for 0, a unidade está livre; caso contrário, a unidade está ocupada. Quanto menor for a unidade de alocação, maior será o mapa de bits e vice-versa. O maior problema com os mapas de bits é que procurar uma lacuna (seqüência de 0s) suficientemente grande para um determinado processo pode ser uma operação muito lenta. Gerenciamento de memória livre com listas encadeadas Neste caso, é mantida uma lista encadeada com os segmentos de memória livres e encadeados. Uma possível configuração seria manter, em cada entrada, o endereço em que inicia, o seu comprimento e, evidentemente, o ponteiro para a próxima entradaVários algoritmos podem ser utilizados para encontrar uma lacuna de memória para alocação de um processo: Primeiro ajuste: varre a lista desde o início e aloca no primeiro espaço (lacuna) suficientemente grande; Próximo ajuste: varre a lista da posição atual e aloca no primeiro espaço suficientemente grande; Melhor ajuste: varre a lista completamente e aloca no espaço que gerar a menor lacuna de memória; Pior ajuste: varre a lista completamente e aloca no espaço que gerar a maior lacuna de memória disponível, de modo que a lacuna resultante possa ser suficientemente grande para ser útil; Ajuste rápido: mantém diversas listas separadas para os tamanhos de processos mais comuns. Questão 8. Considere um sistema cuja gerência de memória é feita através de partições variáveis.Inicialmente, existem os seguintes blocos: 10K, 4K, 20K, 18K, 7K, 9K, 12K e 13K, nessa ordem. Desenhe a memória e mostre como os blocos serão ocupados pelos processos de tamanho: 5K, 10K, 15K, 8K, 3K, 7K e 6K. Considere essa ordem de solicitação. Simule os seguintes algoritmos: a. First-fit Inicia a procura a partir da primeira página de memória (parte baixo) e ira varrendo a memória até encontrar a primeira lacuna suficientemente grande para se armazenar e não se encontrar exibe mensagem de erro do processo. 5 KB – É alocado na partição de 10 KB – 5 10 KB – É alocado na partição de 4 KB – 6 15 KB – É Alocado na partição de 20 KB – 5 8 KB – É alocado na partição de 18 KB – 10 3 KB – É alocado na partição de 7 KB – 4 7 KB – É alocado na partição de 9 KB- 2 Pontifícia Universidade Católica de Minas Disciplina: Sistemas Operacionais Professor: Mark Alan Junho Song 6 KB – É alocado na partição de 12 KB -6 13 KB- Precisa aguardar b. Best-fit Tenta determinar o melhor lugar para alocar os dados. A definição de melhor varia nas implementações, mas por exemplo pode ser escolhido o espaço que deixaria menor resíduo no final do bloco. 5 KB – É alocado na partição de 4 KB – 1 10 KB – É alocado na partição de 4 KB - 6 15 KB – É Alocado na partição de 13 KB -2 8 KB – É alocado na partição de 4 KB – 4 3 KB – Precisa aguardar 7 KB – É alocado na partição de 4 KB - 3 6 KB – É alocado na partição de 4 KB- 2 13 KB- É alocado na partição de 12 KB -1 c. Worst-fit O algoritmo seleciona o maior espaço possível que a informação pode ser armazenada (maior que a informação). É o completamente oposto do Best – Fit que procura o menor espaço possível. 5 KB – É alocado na partição de 10 KB -5 10 KB – É alocado na partição de 2O KB - 10 15 KB – É alocado na partição de 13 KB- 2 8 KB – É alocado na partição de 10 KB -2 3 KB – É alocado na partição de 4 KB- 1 7 KB – É alocado na partição de 10 KB- 3 6 KB – É alocado na partição de 9K – 3 13 KB- Precisa aguardar