Virtualização, gerenciamento de memória e estrutura do sistema operacional
Por: Daniel Milhomem • 23/11/2017 • Resenha • 1.875 Palavras (8 Páginas) • 310 Visualizações
Gerenciamento de memória
Memória de curto prazo ou volátil: necessita constantemente de ser alimentada para não perder as informações ali armazenadas. Exemplos: Cache, registradores e memória principal.
Memória de longo prazo ou não volátil: não necessita de constante alimentação, tais como, cd-rom, dvd-rom, fitas, disco flexível ou rígido.
O Sistema operacional gerencia toda a utilização da memória, além da migração de programas de memória principal para secundária e vice-versa, os processos somente executam em memória principal, programas podem estar armazenados em memória secundária até sua execução.
Funções Básicas: Proteção, compartilhamento, swapping, manter o maior número de processos na memória, execução de programas maiores que a memória disponível, maximizar o compartilhamento da UCP e demais recursos.
Os sistemas de gerenciamento de memória podem ser divididos em duas grandes categorias as que movem os processos entre a memória principal e disco (Swapping, onde aloca espaço para programas que esperam por memória livre para serem processados, tentando resolver o problema de insuficiência de memória para todos os usuários, e Paginação onde o espaço de endereçamento virtual e de endereçamento real são divididos em blocos do mesmo tamanho (páginas)) e aqueles que não movimentam os processos entre tais dispositivos de armazenamento.
Alocação contígua simples
A organização é dividida em duas partes, uma para o sistema operacional e outra para o programa do usuário, foi implementada nos primeiros sistemas operacionais desenvolvidos, onde o programador deve desenvolver suas aplicações preocupando-se apenas em não ultrapassar o espaço de memória disponível, o usuário tem o controle da memória principal, acessando qualquer posição.
Contras, não permite a utilização eficiente do processador e da memória, caso o programa no preencha a memória existirá um espaço de memória sem utilização ou se for maior o espaço não poderá ser utilizado.
Sobre os problemas listados acima foi criada uma técnica chamada Overlay que serve para “quebrar” ou dividir em pedaços o processo e instanciar para a memória, sendo que quando um dos pedaços terminar a execução será trocado por outro pedaço que faz parte do processo.
Os próprios Sistemas operacionais consistem de programas residentes e transientes, onde os residentes estão presentes na memória e os transientes estão na memória caso sejam chamados se necessário.
Alocação Particionada
- Partições físicas ou estáticas: tanto em sistemas monoprogramados e multiprogramado, há uma abordagem simples para o gerenciamento de memória, envolve a divisão da memória em regiões de tamanho fixo, denominada de partições.
O Sistema operacional manipula uma tabela contendo informações a respeito das partições (tabela de partições). Uma vez determinado o tamanho da partição, ele não poderá ser alterado.
- Alocação particionada estática absoluta: Programas exclusivos para partições específicas, simples de gerenciar, código absoluto.
- Alocação particionada estática realocável/relocável: Código relocável e programas podem rodar em qualquer partição.
Sempre que um programa é carregado para a memória, o Sistema operacional examina a tabela de partições e se há uma entrada indicando uma partição vazia, o Sistema operacional armazena nela o código do processo, o Sistema operacional deve alterar a entrada na tabela para refletir a modificação das novas partições ocupadas, sendo assim, acontece quando é iniciado o processo e quando o processo finaliza.
- Proteção: Registradores de limites é a maneira de verificar se as referências de memória são válidas ou não, são utilizados dois registradores que possuem os endereços superior e inferior (limites) da área alocada para um determinado processo, valores maiores ou menores aos limites serão inválidos.
Contras, partições muito grandes podem criar um desperdício de memória provocando a fragmentação interna da memória. Solução criar partições variáveis, sendo uma alternativa partições dinâmicas.
- Alocação particionada dinâmica
Não é definida antecipadamente e sim é definida dinamicamente de acordo com as necessidades decorrentes apontadas pelo Sistema operacional, onde seu tamanho corresponde ao uso necessário de memória no processo, não há fragmentação interna, a partição do programa é o pedaço que ele usa, a tabela de gerenciamento de memória torna-se complexa, completando não há número fixo de entradas, variando de acordo com o número de partições.
Para evitar ou diminuir o problema de fragmentação antes que ela ocorra existem 3 principais técnicas para a escolha da partição:
- Best-fit: Escolhe a melhor partição, onde o programa deixa o menor espaço sem utilização.
- Worst-fit: Escolhe a pior partição, onde o programa deixa o maior espaço sem utilização.
- First-fit: Escolhe a primeira partição livre, de tamanho suficiente para carregar o programa.
Estrutura do Sistema Operacional
O Sistema operacional deve garantir a confiabilidade nos dados dos usuários e na concorrência de execução dos programas, como também, deve garantir a integridade do Sistema operacional, onde o mesmo é formado por rotinas (procedimentos) que oferecem serviços aos usuários e aplicações, o conjunto de rotinas é chamado de núcleo do sistema ou kernel.
Kernel: Faz a gerência de memória, do sistema de arquivos, faz o escalonamento e controle dos processos, sincroniza e comunica entre os processos, cria ou elimina processos, executa tratamento de interrupções, faz operações de entrada e saída, contabilização e segurança do sistema. Não há uma ordem pré-definida para execução concorrente dessas rotinas por meio eventos assíncronos.
Modo de acesso: Instruções privilegiadas (modo kernel ou supervisor), tem o poder de comprometer o sistema, onde pode ter o acesso ao conjunto total de instruções do processador. Instruções não-privilegiadas (modo usuário) não oferecem perigo ao sistema, onde uma aplicação só pode executar instruções não-privilegiadas, tendo acesso a um número reduzido de instruções.
...