Buscar

Sistemas Operacionais

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 7 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

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 6, do total de 7 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

9 – Gerência de Memória
9.1 – Introdução
Na memória principal residem os programas em execução.
Memória secundária são mecanismos de armazenamento permanente, são mais abundantes e baratas.
Para um programa ser executado deve ser carregado na memória principal.
Gerenciamento complexo em sistemas multiprogramáveis com múltiplos usuários utilizando-a eficientemente.
9.2 – Alocação Contígua Simples
Implementada nos primeiros Sistemas Operacionais e ainda existentes em alguns sistemas monoprogramáveis.
Memória dividida em duas partes, Sistema Operacional e programa do usuário.
O programador tem controle sobre toda a memória principal, podendo acessar qualquer posição da memória, inclusive onde está residente o Sistema Operacional.
Um mecanismo de proteção utilizado é delimitar a área do Sistema Operacional que delimita a área do mesmo.
Fácil implementação e código reduzido, porém Ineficiência no uso do processador e da memória, pois apenas um usuário pode dispor desse recurso.
Programas limitados ao tamanho da memória disponível. Overlay (sobreposição) – Solução encontrada para dividir o programa em partes (módulos), de forma que pudessem executar independentemente uma da outra, utilizando uma mesma área de memória. A definição das áreas de Overlay são de responsabilidade do programador através de comandos específicos da linguagem utilizada.
9.3 – Alocação Particionada
A eficiência da multiprogramação exige que vários programas estejam na memória ao mesmo tempo, vindo a necessidade de organização da memória.
9.3.1 – Alocação Particionada Estática:
Divisão da memória em tamanhos fixos (partições) definidos na inicialização do Sistema em função dos programas que executariam no ambiente.
A alteração do tamanho de uma partição necessita a inicialização do Sistema Operacional.
Os programas só podiam executar em uma das partições, mesmo com outras disponíveis.
Limitações impostas pelos compiladores e montadores que geravam apenas códigos absolutos.
Posteriormente, evolução dos compiladores, linkers e loaders com geração de código realocável, sendo que os programas puderam ser carregados em qualquer partição (alocação particionada estática realocável).
Surgimento da tabela de partições com informações de tamanho, uso e delimitações.
Proteção da memória através de dois registradores, início e fim da partição.
Os programas não preenchiam totalmente as partições onde eram carregados.
Problemas de fragmentação.
9.3.2 – Alocação Particionada Dinâmica
Aumento do grau de compartilhamento diminuindo o problema da fragmentação.
Partições sem tamanho fixo, onde cada programa utiliza o espaço que necessita.
Existe ainda o problema de fragmentação, conforme os programas vão terminando e deixando espaços cada vez menores.
Soluções para resolver o problema de fragmentação:
Primeira – Reunir os espaços adjacentes, produzindo um único espaço de tamanho maior.
Segunda – Realocação de todas as partições ocupadas, eliminando todos os espaços entre elas (alocação dinâmica com realocação), porém, aumentando a complexibilidade do algoritmo e consumindo mais recursos do sistema.
9.3.3 – Estratégias para Escolha da Partição
Função para determinar em qual partição livre um programa será carregado para execução.
Função de evitar, ou diminuir, o problema da fragmentação antes que ele ocorra.
O tamanho do programa é o fator mais importante para a adoção da melhor estratégia.
Best-fit:
Escolhe a melhor partição, ou seja, aquela que o programa deixa o menor espaço sem utilização.
Lista de áreas livres alocada por tamanho, diminuindo o tempo de busca
Desvantagem de deixar pequenas áreas não contíguas, aumentando o problema da fragmentação.
Worst-fit:
Escolhe a pior partição, ou seja, aquela que o programa deixa o maior espaço sem utilização.
Diminui o problema de fragmentação, deixando espaços livres maiores que permitem a um maior número de programas utilizar a memória.
First-fit:
Escolhe a primeira partição livre de tamanho suficiente para carregar o programa
Lista de áreas livres ordenada por endereços crescentemente.
Grande chance de se obter uma grande partição livre nos endereços de memórias mais altos.
Mais rápida e consome menos recursos do sistema.
Swapping
Tenta resolver o problema de insuficiência da memória para todos os usuários.
Aloca espaço para programas que esperam por memória livre para serem processados.
O sistema escolhe um programa residente, que é levado da memória para o disco (swap out), retornando posteriormente para a memória principal (swap in) como se nada tivesse ocorrido.
Problema da realocação dos programas. O loader realocável permite que um programa seja colocado em qualquer posição da memória, porém a realocação é realizada no momento do carregamento.
Mecanismo ineficiente em função do tempo gasto para carregamento.
Uma alternativa é esperar que a região de memória usada pelo programa na ocasião do seu primeiro carregamento esteja disponível.
Realocação Dinâmica:
É a melhor solução, uma implementação no hardware dos computadores, permitindo que a realocação seja realizada durante a execução do programa.
Realizada através de um registrador especial denomidado registrador de alocação, que recebe o endereço inicial da região da memória que o programa irá ocupar no momento do carregamento do programa na memória.
Toda vez que ocorrer uma referência a algum endereço, o endereço contido na instrução será somado ao conteúdo do registrador, gerando assim, o endereço físico.
Essencial para a implementação de um sistema multiprogramável.
Permitiu um maior throughput através de um maior compartilhamento da memória.
Mais eficiente para programas onde existiam poucos usuários competindo por memória e em ambientes que trabalhavam com aplicações pequenas.
Seu maior problema é o elevado custo das operações de entrada/saída (swapped in/out).
De vermelho: Geral.
De Azul escuro: Anotações especificas.
O que a professora passou:
OBJETIVOS ESPECÍFICOS:
Conceituar sistemas operacionais monoprogramáveis e multiprogramáveis;
Conceituar memória principal e de armazenamento;
Descrever as técnicas de alocação de memória;
GERENCIAMENTO DE MEMÓRIA
INTRODUÇÃO:
Monoprogramáveis – Gerência simples – apenas um programa residindo na memória.
Multiprogramáveis – Gerência complexa - devido a necessidade de maximização do número de aplicações utilizando a memória principal. 
monoprogramáveis – SO e programa do usuário
Multiprogramáveis – SO e vários programas ao mesmo tempo o que requer uma utilização mais eficiente da memória.
FUNÇÕES BÁSICAS:
Armazenamento: Memórias secundárias
Meios não voláteis
Maior poder de armazenamento 
Baixo custo
Processador executa somente instruções da memória principal.
O TEMPO DE ACESSO À MEMÓRIA SECUNDÁRIA É MUITO SUPERIOR AO TEMPO DE ACESSO A MEMÓRIA PRINCIPAL, POR ISSO O SO DEVE REDUZIR O NÚMERO DE ACESSO A MEM. SECUNDARIA PARA NÃO DEIXAR O PROCESSADOR O MENOS OCIOSO POSSÍVEL. 
FUNÇÕES BÁSICAS:
Manter o maior número de processos possíveis residindo na memória principal.
Permitir que novos processos sejam executados mesmo sem espaço livre.
Memória virtual e swapping. 
Executar programas maiores que a memória física
Proteção de área de memória.
ALOCAÇÃO CONTÍGUA SIMPLES: 
Memória Principal divida em duas áreas:
Sistema operacional 
Área de programa 
RL RESGITRADOR DE LIMITE QUE DELIMITA A ÁREA DO SO E DO PROGRAMA DE USUÁRIO.
TÉCNICAS UTILIZADO EM SO MONOPROGRAMÁVEIS.
O USUÁRIO PODE ACESSAR QUALQUER POSIÇÃO NA MEMÓRIA ( INTENCIONAL OU NÃO)
REGISTRADORES DELIMITAM O AS ÁREAS DO SO E DO USUÁRIO. QUANDO O PROGRAMA FAZ REFERÊNCIA A UM ENDEREÇO O SISTEMA VERIFICA SE O ENDEREÇO ESTÁ DENTRO DOS LIMITES.
ALOCAÇÃO PARTICIONADA:
Sistemas multiprogramáveis usam o processador com mais eficiência executando concorrentemente vários programas ao mesmo tempo, o que requer um melhor gerenciamento da memória.
Alocação particionada estática
Alocação particionada estática relocável 
Alocação particionada estáticaabsoluta
Alocação particionada dinâmica
SISTEMAS OPERACIONAIS MULTIPROGRAMÁVEIS
VÁRIOS PROGRAMAS NA MEMÓRIA AO MESMO TEMPO
NOVAS TÉCNICAS DE GERÊNCIAMENTO
ALOCAÇÃO PARTICIONADA ESTÁTICA:
 MEMÓRIA É DIVIDA EM PEDAÇOS DE TAMANHO FIXO (PARTIÇÕES), CUJO TAMANHO É ESTABELECIDO NA INICIALIZAÇÃO DO SISTEMA E DEVE SER DEFINIDO EM FUNÇÃO DOS PROGRAMAS QUE SERÃO EXECUTADOS. SÓ PODEM MUDAR DE TAMANHO SE O PROGRAMA FOR RENICIALIZADO.
CADA PROGRAMA SÓ PODERIA SER EXECUTADO EM UMA PARTIÇÃO. 
ALOCAÇÃO PARTICIONADA ESTÁTICA:
ABSOLUTA ENDEREÇOS ABSOLUTOS NA MEMÓRIA, OU SEJA, PROGRAMA X FAZ REF. A POSIÇÃO 5K É A POSIÇÃO 5K DA MEMÓRIA
RELOCÁVEL ENDEREÇOS RELATIVOS PROG. X FAZ REF. A POSIÇÃO 1K É A POSIÇÃO 1K A PARTIR DO INICIO DA PARTIÇÃO. 
FRAGMENTAÇÃO INTERNA:
OS PROGRAMAS GERALMENTE NÃO OCUPAM TODA A PARTIÇÃO, DEIXANDO ÁREAS LIVRES ENTRE AS PARTIÇÕES ESSE PROBLEMA É CONHECIDO FRAGMENTAÇÃO INTERNA. 
 
ALOCAÇÃO PARTICIONADA DINÂMICA OU VARIÁVEL:
NÃO HÁ PARTIÇÕES PRE DEFINIDAS, CONFORME OS PROGRAMAS VÃO OCUPANDO A MEMÓRIA ESTA ÁREA PASSA A SER SUA PARTIÇÃO.
FRAGMENTAÇÃO EXTERNA:
QUANDO OS PROGRAMAS FOREM TERMINANDO ELES VÃO DEIXANDO BURACOS VAI ACONTECER A FRAGMENTAÇÃO EXTERNA. 
DESFRAGMENTAÇÃO
REORGANIZAR OS PROGRAMAS EM EXECUÇÃO PARA QUE AS PARTES LIVRES FIQUEM CONGRUENTES. O ALGORITMO É COMPLEXOE DEMANDA MUITO RECURSO DO SISTEMA E TALVES DEMORE TANTO OU MAIS DO QUE ESPERAR UM PROGRAMA TERMINAR DE SER EXECUTADO. 
ESTRATÉGIAS DE ALOCAÇÃO DE PARTIÇÃO:
Best-fit – Escolhe a área livre que resulta no menor espaço de sobra.
BEST-FIT ALGORITMO USA LISTA DE ÁREAS LIVRES ORDENADA POR TAMANHO O QUE REDUZ O TEMPO DE BUSCA POR UMA ÁREA DESOCUPADA. DESVANTAGEM O TENDENCIA A FICAR COM PEQUENAS ÁREAS NÃO CONTIGUAS.
Worst-fit – Escolhe a área livre que resulta em um maior espaço de sobra. 
WORST-FIT VERIFICA TODAS AS ÁRES EM QUE O PROGRAMA CABE E UTILIZA A QUE FICA COM A MAIOR ÁREA LIVRE. MAIS PROGRAMA PODEM SER EXECUTADOS POIS AS ÁREAS LIVRES SÃO MAIORES, DIMINUINDO A FRAGMENTAÇÃO.
First-fit – Escolhe a primeira área livre com tamanho suficiente. 
FIRST-FIT ALGORITMO QUE LISTA ÁREAS LIVRES ORDENADAS DE FORMA CRESCENTE POR ENDEREÇO. E UTILIZA PRIMEIRO AS ÁREAS LIVRES E ENDEREÇOS MAIS BAIXOS ENTÃO RESULTARÃO EM GRANDES ÁREAS LIVRES NOS ENDEREÇOS MAIS ALTOS.
SWAPPING:
UTILIZA PARTE DA MEMÓRIA DE ARMAZENAMENTO COMO MEMÓRIA PRINCIPAL.
PARA RETIRADA DO PROCESSO DA MEMÓRIA PRINCIPAL O ALGORITMO ESCOLHE AQUELE COM A MENOR CHANCE DE SER EXECUTADO.
DIMINUE O DESEMPENHO POR QUE A LEITURA NA MEMÓRIA DE ARMAZENAMENTO É MAIS LENTA DO QUE NA MEMÓRIA PRINCIPAL.

Outros materiais