SISTEMAS OPERACIONAIS I

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Sistema Operacional Introdução
DESENVOLVIMENTO DE SISTEMAS PARA INTERNET
Sistemas Operacionais – Sérgio Fernando Parte 7 – Gerência de Memória1 Sistemas Operacionais Prof. Sérgio Fernando Adaptado do livro: Arquitetura de Sistemas.
Sistemas Operacionais
Ambientes Operacionais
Gerenciamento de memória
Arquitetura de Sistemas Operacionais Francis Berenger Machado
SSC541 - SISTEMAS OPERACIONAIS I Aula 12 – Gerenciamento de Memória
SSC SISTEMAS OPERACIONAIS I Aula 10 – Gerenciamento de Memória
SSC SISTEMAS OPERACIONAIS I Aula 15 – Gerenciamento de Memória
Memória.
Gerência de Memória.
Discos rígidos. Os discos tem uma superfície superior e uma inferior. A informação é, geralmente, armazenada em ambas as superfícies. O tamanho e o número.
Arquitetura de Computadores
Sistemas Operacionais Turmas MBI1 e NBI2. Prof: Marcelo Mendes.
Claudio de Oliveira – Gerência de Memória 09/03/10 20:13 Claudio de Oliveira –
Debian Gerência de Memória.
Threads.
Sistemas Operacionais I
Gerência de Memória.
Sistemas Operacionais I
Software de Rede Willamys Araújo.
Proteção de Memória O sistema operacional deve impedir que um processo tenha acesso ou modifique uma página do sistema sem autorização. Proteção para páginas.
Sistemas Operacionais Gerenciamento de Memória
Sistemas Operacionais
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Fundamentos da Arquitetura de Computadores
Fundamentos da Arquitetura de Computadores
Linguagem de Programação II Parte IX
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Gerência de Memória Fundamentos Swapping Alocação Contígua de memória
SISTEMAS OPERACIONAIS
Sistema Operacional Processos
Conteúdo Processos e threads Partes do processo
Memória virtual Professor Esp. Diego André Sant’Ana
Sistemas Operacionais
Sistemas Operacionais
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
Geração de Código aula-12-geração-de-código.pdf.
SISTEMAS OPERACIONAIS I
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Capítulo VIII Ambientes de Execução
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Processos.
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Infra-Estrutura de Software Gerenciamento de Memória.
Gerenciamento de Memória
SISTEMAS OPERACIONAIS
Gerenciamento de Memória - Capítulo 7 - Sistemas Operacionais Prof. Dr. José Carlos Becceneri Luciana Sêda Cardoso.
Gerenciamento de Memória Sistemas Recentes
Bruno Iran Ferreira Maciel
Sistemas de Arquivos- Cap4
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Sistemas de Arquivos. Alocação em memória – Problemas Quantidade Limitada de Informações Perda de informações quando o processo é terminado Vários processos.
MEMÓRIAS.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Gerenciamento de Memória Capítulo Gerenciamento básico de memória 3.2 Troca de processos.
Gerência de Memória. Memória Considerações: Recurso caro e escasso; Programas só executam se estiverem na memória principal; Quanto mais processos residentes.
Sistemas Operacionais Gerência de Memória Funções básicas (número, tamanho e segurança) Alocação contígua simples Técnica de overlay Alocação particionada.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Transcrição da apresentação:

SISTEMAS OPERACIONAIS I Gerência de memória Em geral, programas são armazenados em memórias secundárias, como disco ou fita, por serem meios não-voláteis, abundantes e de baixo custo. Como o processador somente executa instruções localizadas na memória principal, o sistema operacional deve sempre transferir programas da memória secundária para a memória principal, antes de serem executados.

SISTEMAS OPERACIONAIS I Gerência de memória A gerência de memória deve tentar manter na memória principal o maior número de processos residentes, permitindo maximizar o compartilhamento do processador e demais recursos computacionais. Mesmo na ausência de espaço livre, o sistema deve permitir que novos processos sejam aceitos e executados.

SISTEMAS OPERACIONAIS I Gerência de memória Isso é possível por meio da transferência temporária de processos residentes na memória principal para a memória secundária, liberando espaço para novos processos. Esse mecanismo é conhecido como swappping e será detalhado posteriormente.

SISTEMAS OPERACIONAIS I Gerência de memória Em um ambiente de multiprogramação, o sistema operacional deve proteger as áreas de memória ocupadas por cada processo, além da área onde reside o próprio sistema. Caso um programa tente realizar algum acesso indevido à memória, o sistema deve impedi-lo de alguma forma.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação contígua simples Na alocação contígua simples a memória principal é subdividida em duas áreas: uma para o sistema operacional e outra para o programa do usuário. Dessa forma, o programador deve desenvolver suas aplicações, preocupado apenas em não ultrapassar o espaço de memória disponível, ou seja, a diferença entre o tamanho total da memória principal e a área ocupada pelo sistema operacional.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação contígua simples Esse tipo de organização foi implementado nos primeiros sistemas operacionais, porém ainda está presente em alguns sistemas monoprogramáveis.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação contígua simples Para proteger o sistema do acesso de usuários, que pode ser intencional ou não, alguns sistemas implementam proteção por meio de um registrador que delimita as áreas do sistema operacional e do usuário. Dessa forma, sempre que um programa faz referência a um endereço na memória, o sistema verifica se o endereço está dentro dos limites permitidos.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação contígua simples Apesar da fácil implementação e do código reduzido, a locação contígua simples não permite a utilização eficiente dos recursos computacionais, pois apenas um usuário pode dispor desses recursos. Em relação à memória principal, caso o programa do usuário não a preencha totalmente, existirá um espaço de memória livre, sem utilização.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação particionada Nos sistemas monoprogramáveis, o processador permanece grande parte do tempo ocioso e a memória principal é subutilizada. Os sistemas multiprogramáveis já são muito mais eficientes no uso do processador, necessitando assim, que diversos programas estejam, ao mesmo tempo, na memória principal e que novas formas de gerência da memória sejam implementadas.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação particionada estática Na alocação particionada estática ou fixa, a memória é dividida em pedaços de tamanho fixo, chamados partições. O tamanho das partições deve ser estabelecido na fase de iniciação do sistema, e definido em função do tamanho dos programas que executarão no ambiente. Sempre que for necessária a alteração do tamanho de uma partição, o sistema deverá ser desativado e reinicializado com uma nova configuração.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação particionada estática Esse tipo de gerência de memória foi utilizado nos primeiros sistemas multiprogramáveis.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação particionada estática Inicialmente, os programas só podiam ser carregados e executados em apenas uma partição específica, mesmo se outras estivessem disponíveis. Essa limitação se devia aos compiladores e montadores que geravam apenas código absoluto. No código absoluto, todas as referências a endereços no programa são posições físicas na memória principal, ou seja, o programa só poderia ser carregado, a partir do endereço de memória especificada no seu código próprio.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação particionada estática Se, por exemplo, os programas A e B estivessem sendo executados e a terceira partição estivesse livre, os programas C e E não poderiam ser processados.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação particionada estática Com a evolução dos compiladores, montadores, linkers e loaders, o código gerado deixou de ser absoluto e passou a ser relocável. No código relocável, todas as referências a endereços no programa são relativas ao início do código, e não, a endereços físicos de memória. Dessa forma, os programas puderam ser executados a partir de qualquer partição.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação particionada estática Esse tipo de gerência de memória é denominado alocação particionada estática relocável.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação particionada estática Para manter o controle sobre quais partições estão alocadas, a gerência de memória mantém uma tabela com o endereço inicial de cada partição, seu tamanho e a informação de seu uso.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação particionada estática Nesse esquema de alocação de memória, a proteção baseia-se em dois registradores que indicam o limite inferior e superior de partição, onde o programa está sendo executado.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação particionada estática Tanto nos sistemas de alocação absoluta quanto nos de alocação relocável, os programas, normalmente, não preenchem totalmente as partições onde são carregados. Esse tipo de problema, decorrente da alocação fixa das partições, é conhecido como fragmentação interna.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação particionada dinâmica Na alocação particionada dinâmica ou variável, cada programa utiliza um espaço necessário, tornando essa área sua partição. Como os programas utilizam apenas o espaço de que necessitam, o problema da fragmentação interna não ocorre no esquema de alocação particionada dinâmica.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação particionada dinâmica Em princípio, o problema da fragmentação interna está resolvido, porém, nesse caso, existe um problema que não é tão óbvio quanto no esquema anterior. Um tipo diferente de fragmentação começará a ocorrer, quando os programas forem terminando e deixando espaços cada vez menores na memória, não permitindo o ingresso de novos programas.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação particionada dinâmica Esse tipo de problema é chamado fragmentação externa.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação particionada dinâmica Existem duas soluções para o problema da fragmentação externa da memória principal. Na primeira solução, conforme os programas terminam, apenas os espaços livres adjacentes são reunidos, produzindo áreas livres de tamanho maior.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação particionada dinâmica A segunda solução para o problema envolve a relocação de todas as partições ocupadas, eliminando todos os espaços entre elas e criando uma única área livre contígua.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação no Linux O Linux dá suporte a diversos mecanismos para alocação de memória. O principal deles é denominado alocador de páginas, que opera utilizando o conhecido algoritmo companheiro. A ideia básica para a alocação de um bloco de memória é a seguinte: inicialmente, a memória consiste em uma divisão contígua única, com 64 páginas.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação no Linux Quando uma requisição de memória é feita, a quantidade requerida é primeiro arredondada para uma potência de 2 – por exemplo oito páginas.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação no Linux A memória toda é, então, dividida pela metade. Visto que cada uma dessas partes ainda é muito grande, a parte mais abaixo é dividida na metade novamente e de novo dividida. Nesse ponto, temos um bloco de tamanho correto que é alocado para o chamador.

SISTEMAS OPERACIONAIS I Gerência de memória Alocação no Linux Esse algoritmo gera uma considerável fragmentação interna pois, se você deseja um bloco de 65 páginas, você tem de solicitar e obter um bloco de 128 páginas. Para amenizar esse problema, o Linux tem uma segunda alocação de memória, denominada alocador de fatias, que corta em fatias ainda menores e as gerencia separadamente.

SISTEMAS OPERACIONAIS I Exercicios: Qual a finalidade da gerência de memória? Defina alocação contigua simples, de memória. Diferencie alocação particionada dinâmica e estática. Descreva o funcionamento da gerência de memória no Linux.