Prévia do material em texto
Público Sistemas Operacionais Gerenciamento de Dispositivos Público Gerenciamento de Memória03 Monoprogramação e Multiprogramação Público Contextualização ● Quando vamos comprar um computador, precisamos nos atentar a alguns recursos não é mesmo? ● Claro que depende do que cada indivíduo necessita para realizar suas tarefas cotidianas, porém quando vamos escolher um novo computador para comprar queremos garantir que tenhamos basicamente: processamento eficiente e alta capacidade de armazenamento. ● Na compra de uma máquina: Qual é o tipo de processador? Quanto tem de memória RAM? Qual a capacidade de armazenamento do hard disk – disco rígido (HD)? O S.O que já vem licenciado e instalado na máquina? Público Gerenciamento de Memória ● O S.O deve proteger as áreas de memória utilizadas pelos processos de forma que se um programa tente acessá-la indevidamente o sistema seja impedido. ● A hierarquia de memória é controlada pelo gerenciador de memória responsável por gerenciar quais partes estão em uso e quais não estão alocando-a quando os processos precisarem liberando-a após o término dos processos e controlando a troca de processos entre a memória e o disco quando a memória principal não é suficiente para manter todos os processos em execução. Público Gerenciamento de Memória ● Registradores fazem parte da unidade central de processamento (CPU) e são rápidos pois armazenam a informação ou instrução de processo que deverá ser executada imediatamente. ● A memória cache é considerada mais lenta que os registradores porém mais rápida que a memória principal. ● Ela existe pois são necessários alguns mecanismos de armazenamento para permitir que a CPU acesse e realize o processamento da instrução de processo mais rapidamente do que se tivesse que acessar determinado dado ou instrução diretamente em uma das outras memórias: principal, secundária ou permanente. Público Gerenciamento de Memória ● A Memória principal conhecida também como de armazenamento primário é nela que se concentra o gerenciamento de memória realizado pelo sistema operacional nela se concentram as aplicações que serão diretamente solicitadas pelo processador através do mecanismo de endereçamento. Não é considerada muito rápida, porém pode ser de capacidade de armazenamento relevante na ordem de alguns gigabytes. Como exemplo, podemos citar a memória RAM. ● A memória RAM permite apenas as operações de leitura e escrita. É volátil assim que o computador é desligado ela perde todas as instruções ali carregadas e disponibilizadas para acesso rápido pelos registradores e processos de programas em execução. Público Gerenciamento de Memória ● Na memória ROM ficam gravadas as especificações do sistema e não devem ser alteradas. Por esse motivo, a memória ROM fica disponível apenas para leitura. A memória secundária é responsável pelo armazenamento permanente de dados e não permite endereçamento, por exemplo, os pen drives, os CDs e DVDs. É considerada mais lenta em função de não permitir endereçamento e ter de ser localizada por um sistema de arquivos, que é tratado de forma diferenciada e separado do sistema operacional. Público Gerenciamento de Memória e de Processor ● O gerenciamento de memória também conhecida como MMU (Memory Management Unit) cuja função é a de mapear os endereços lógicos em que estão as instruções nas memórias físicas. ● O acesso ao endereço lógico que é gerado pelo processo e com isso a MMU direcionará o endereço lógico para o mesmo correspondente na memória física. Quando o próprio processo gera o endereço lógico e físico, eles são idênticos tanto na memória lógica, responsável pelos endereçamentos, quanto na memória física, que é correspondente a memória principal. ● Para realizar o gerenciamento de memória a MMU de um processo de usuário que é limitado são utilizados dois registradores de limite. Fonte: Adaptado de Oliveira (2010) Público Gerenciamento de Memória ● A alocação contígua simples é mais voltada a realidade dos primeiros S.O que eram monoprogramáveis, sendo a memória principal dividida em duas grandes áreas: uma para alocar o sistema operacional e a outra para alocar as aplicações do usuário. ● O desenvolvimento dessas aplicações de usuários tinha de respeitar as limitações da área de alocação das aplicações de usuário predeterminadas. Fonte: Adaptado de Oliveira (2010) Público Gerenciamento de Memória ● O desenvolvimento dessas aplicações de usuários tinha de respeitar as limitações da área de alocação das aplicações de usuário predeterminadas. ● A técnica de overlay considera que diante de uma aplicação a divisão de módulos auxiliará na determinação do espaço de memória necessária a executar os módulos de forma independente. ● É no desenvolvimento da aplicação que deverá ser especificado o tamanho do módulo e como será a sua alocação de forma a permitir a execução de um módulo por vez. ● A alocação particionada permite um maior aproveitamento dos espaços de memória principal. Existes dois tipos de alocação de memória particionada: estática ou dinâmica. Fonte: Adaptado de Oliveira (2010) Público Gerenciamento de Memória ● Nos primeiros sistemas operacionais multiprogramáveis as partições precisavam ter tamanho fixo definido de acordo com as necessidades dos sistemas que seriam utilizados era a alocação particionada estática ou fixa ● Quando existia a necessidade de uma das partes ser desabilitada ou redimensionada era preciso reconfigurar os sistemas e instalá-los de acordo com o tamanho das demais partições. ● Em alocação particionada dinâmica não temos mais a necessidade de definir o tamanho das partições pois os programas será disponibilizado apenas o espaço em memória que seja o suficiente para o seu armazenamento. Fonte: Adaptado de Oliveira (2010) Público Gerenciamento de Memória ● O gerenciamento de memória pode ser dividido em duas classes: 1) Sistemas que durante o processamento levam e trazem a informação da memória para o disco (troca de processos e paginação). 2) Sistemas que não o fazem. A troca de processos (swapping) carrega todo o programa para a memória principal, o executa por um determinado tempo e depois o mesmo retorna para o disco. A paginação divide a memória em partições para a execução das aplicações de forma eficiente. Público Monoprogramação sem troca de Processos ou Paginação ● Este método de gerenciamento de memória é o mais simples, pois somente um programa é executado por vez e a memória é compartilhada entre o sistema operacional e o programa. ● O sistema operacional está utilizando o espaço de endereçamento em RAM ((a)), modelo aplicado aos mainframes e minicomputadores. ● O sistema operacional está utilizando o espaço de endereçamento em ROM somente para a leitura ((b)), usado em alguns computadores de mão e em sistemas embarcados. Público Monoprogramação sem troca de Processos ou Paginação Os drives de dispositivos estão em ROM e os programas do usuário e o sistema operacional está em RAM ((c)) – modelo utilizado nos primeiros computadores pessoais (MS-DOS). Fonte: Machado e Maia (2013) Público Multiprogramação com Partições Fixas • A maioria dos sistemas operacionais modernos permite que vários processos executem ao mesmo tempo (multiprogramação) e quando um processo é bloqueado aguardando uma informação de entrada/ saída, outro processo poderá utilizar a CPU, aumentando a sua utilização. Fonte: Machado e Maia (2013) Público Problemas da Multiprogramação: relocação e proteção ● A multiprogramação apresenta dois problemas essenciais: relocação e proteção. ● A relocação é a transferência de um código de um local para outro de forma que um programa não escreva na área de outro programa. ● A relocação é necessária uma vez que processos executam em diferentes endereços na memória física. ● Tanto os problemas de relocação quanto deproteção podem ser resolvidos fornecendo o processador com dois registradores(memória localizada no processador): base e limite. Sistemas Operacionais Gerenciamento de Memória Contextualização Gerenciamento de Memória (2) Gerenciamento de Memória (3) Gerenciamento de Memória (4) Gerenciamento de Memória (5) Gerenciamento de Memória e de Processor Gerenciamento de Memória (6) Gerenciamento de Memória (7) Gerenciamento de Memória (8) Gerenciamento de Memória (9) Monoprogramação sem troca de Processos ou Paginação Monoprogramação sem troca de Processos ou Paginação (2) Multiprogramação com Partições Fixas Problemas da Multiprogramação: relocação e proteção