510 likes | 745 Views
Sistemas Operacionais. Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas - 2013 IFSP – Campus Capivari. Gerência de recursos Memória. 01/10/2013. Introdução. Historicamente a memória é um recurso caro e escasso;
E N D
Sistemas Operacionais Prof. Edivaldo Serafim Curso: Tecnólogo em Análise e Desenvolvimento de Sistemas - 2013 IFSP – Campus Capivari
Gerência de recursosMemória 01/10/2013
Introdução • Historicamente a memória é um recurso caro e escasso; • Mesmo atualmente, onde as memórias têm menor custo e maior capacidade, sua gerência é uma das maiores preocupações dos SOs; • Gerência de memórias: • SO monoprogramáveis são mais simples; • SO multiprogramável são mais complexos; Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Funções básicas • Programas são armazenados em memórias secundárias, que são grandes e de baixo custo; • Para serem executados, os programas devem ser transferidos para a memória principal; • A gerência de memória deve manter na memória principal o maior número possível de processos; • Mesmo sem espaço, novos programas devem ser executados: • Swapping ou memória virtual. • Programas maiores que a capacidade da memória podem ser executados através de: • Overlay e memória virtual. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Funções básicas • Em sistemas multiprogramados, a gerência de memória deve proteger os espaços de endereçamento dos processos; • Deve proteger também o espaço onde reside o SO; • Mecanismos de compartilhamento podem garantir que haja troca de informações entre processos de forma protegida: • Condições de corrida; • Exclusão mútua; • Região crítica. Prof. Edivaldo Serafim Sistemas OperacionaisIFSP 2013
Alocação contígua simples • Foi implementada nos primeiros SOsmonoprogramáveis; • A memória é dividida em duas partes: • Uma para o SO; • Outra para o programa do usuário. • Programadores deveriam se preocupar em apenas não ultrapassar os limites de uma ou de outra; • Programadores tinham o controle sobre toda a memória, inclusive na parte destinada para o SO; • Para proteger o SO, utilizava-se um registrador para verificar o limite entre a área do SO e do aplicativo. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação contígua simples Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação contígua simples • A principal vantagem: • Muito simples de implementar; • As principais desvantagens: • Uso ineficiente dos recursos computacionais. • Apenas um usuário pode utilizar o computador; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação contígua simples Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Técnica de Overlay • Na alocação contígua simples, todos os programas devem caber no espaço de memória principal para executar; • A técnica de Overlay divide o programa em módulos: • Cada módulo é executado de forma independente na mesma área de memória; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Técnica de Overlay • Considerando o exemplo de um programa com três módulos: • Módulo principal, Cadastramento e impressão, que juntos somam 9 Kb; • Total de espaço na memória para o programa usuário de 8 Kb; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Técnica de Overlay Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Técnica de Overlay • Para implementar, o programador é quem define a área para Overlay; • O tamanho da área é determinada pelo maior módulo; • Essa técnica permite expandir o tamanho da memória principal; • Deve ser implementada com cautela: • Problemas na manutenção do código; • Excesso de I/O para troca de módulos na memória. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação particionada • Com a evolução para os sistemas multiprogamáveis, houve a necessidade de melhor gerência de memória; • Surgiram novas formas de gerência: • Alocação particionada Estática: • Fixa ou relocável. • Alocação particionada Dinâmica; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação particionada Estática • Na alocação particionada estática, a memória é dividida em partes fixas, chamadas partições; • As partições eram definidas na inicialização do sistema com base nas aplicações que iriam abrigar; • O tamanho das partições era fixo e para alterar, o sistema deveria ser reiniciado; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação particionada Estática Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação particionada Estática • Nesse esquema de particionamento de memória, os programas podem não utilizar todo o espaço de endereçamento da partição; • Isso é conhecido como fragmentação interna; • Por exemplo: • Os programas A, C e E não ocupam toda a partição Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação particionada Estática Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação particionada Estática fixa • Compiladores e montadores geravam código absoluto: • Posições de memórias físicas específicas definidas no código; • Assim os programas somente poderiam ser carregados nas posições de memórias específicas; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação particionada Estática fixa • Exemplo: • Os programas A e C, B e E possuem os mesmos endereços de memória; • Se A e B estão sendo executados, C e E não podem ser executados. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação particionada Estática fixa Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação particionada Estática relocável • Com a evolução surgiu o conceito de código relocável: • As referências são no início do código e não a endereços físicos de memória; • Programas podem residir em qualquer partição; • Quando o programa é carregado, o loader examina as partições; • Caso existam partições vazias, o loader aloca o programa; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação particionada Estática relocável Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação particionada Estática relocável • Para manter o controle, o gerenciador de memória mantém uma tabela contendo: • Endereço inicial de cada partição; • Seu tamanho; • Se está em uso. • Utiliza dois registradores para determinar o tamanho da partição: • Um no limite inferior do programa; • Um no limite superior do programa. • Caso um programa tente acessar uma área fora do seus limites, ocorre uma exceção e um aviso para o usuário. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação particionada Estática relocável Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Tabela usada pelo gerenciador de memória
Alocação particionada Estática relocável Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013 Uso de registradores para limitar as posições das partições
Alocação particionada Dinâmica • Para diminuir a fragmentação interna e aumentar o compartilhamento da memória surgiu a Alocação particionada Dinâmica; • Eliminou-se o conceito de partição física, sendo o espaço do programa o tamanho da partição; • Logo a fragmentação interna não existe mais; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação particionada Dinâmica Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação particionada Dinâmica • Porém outro tipo de fragmentação começa a ocorrer, quando programas terminam a execução: • Fragmentação externa; • A fragmentação externa ocorre quando programas deixam de existir na memória, e espaços não contíguos impedem o carregamento de outros programas; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação particionada Dinâmica Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação particionada Dinâmica • Duas soluções para a fragmentação externa foram propostas • A primeira é a junção de partições livres contíguas, formando partições maiores; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação particionada Dinâmica Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação particionada Dinâmica • A segunda é a relocação de todas as partições ocupadas, eliminando espaços entre elas: • Alocação particionada dinâmica com relocação; • Resolve o problema, porém torna o algoritmo mais complexo, demandando maior processamento e memória. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Alocação particionada Dinâmica Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Estratégias para alocação de partição • Existem basicamente três estratégias para determinar qual área livre os programas serão armazenados: • Best-fit; • Worst-fit; • First-fit. • As estratégias tentam evitar ou diminuir a fragmentação externa; • A melhor estratégia a ser adotada depende de vários fatores, mas o principal é o tamanho do programa a ser executado; • Independente do algoritmo utilizado, o sistema possui uma lista com áreas livres, endereços e tamanho de cada uma. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Best-fit • A melhor partição é escolhida para abrigar o programa, ou seja, a que menos deixará espaço livre; • A lista de áreas livres é ordenada por tamanho, diminuindo a busca; • Como o algoritmo aloca o programa em partições que ficam com pouca área livre, a fragmentação pode aumentar, com pequenas áreas não contíguas; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Best-fit Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Worst-fit • A pior partição é escolhida para abrigar o programa, ou seja, a que mais deixará espaço livre; • Como o algoritmo aloca o programa em partições que ficam com mais área livre, a fragmentação tende a diminuir. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Worst-fit Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
First-fit • A primeira partição livre que caiba o programa é escolhida; • A lista é ordenada em ordem crescente por endereços; • É mais rápida consumindo menos recursos. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
First-fit Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Swapping • Mesmo com as técnicas apresentadas, muitos programas não conseguiam partições para execução; • Swapping foi introduzido para eliminar essa insuficiência; • Nas técnicas apresentadas, os programas permaneciam na memória principal até o final da execução, mesmo esperando algum evento; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Swapping • Swapping é uma técnica de gerência de memória para programas que esperam por memória livre; • O Swappingconsiste em dois momentos: • Swap out: • O sistema escolhe um processo residente e o envia para a memória secundária; • Swap in: • O processo volta para a memória principal e volta a execução, como se nada tivesse ocorrido. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Swapping Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Swapping • O algoritmo de escolha do processo para swap prioriza processos em espera; • Possivelmente processos em estado de pronto podem ser escolhidos, porém com maior custo computacional; • Para efetuar o swap, o sistema conta com um loader que efetua a relocação dinâmica; • O processo pode sair e voltar diversas vezes, e o loader deve relocar a cada carregamento. Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
Swapping • O conceito de swappingpossibilita maior compartilhamento de recursos do computador; • O problema principal é o custo nas operações de I/O; • Em situações de pouca memória, o sistema pode passar a maior parte do tempo fazendo swapping ao invés de efetuar outras tarefas; Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013
1 • 5 • 8 • 10 • 13 • 14 Prof. Edivaldo Serafim - Arquitetura de Computadores - IFSP 2013