Dispositivos de Entrada e saída

Propaganda
Sistemas Operacionais
Gerenciamento de Memória
Sistemas Operacionais I
Dionisio Gava Junior
Reynaldo G. de Oliveira – [email protected]
Gerenciamento da Memória
FATEC - Sistemas Operacionais I
Gerenciamento da Memória
•
•
•
•
•
•
•
•
•
Funções Básicas.
Memória Contínua Única.
Gerenciamento de Memória com Multiprogramação.
Partições Fixas.
Particionada Relocável.
Regiões Variáveis.
Alocação das Regiões
Memória Paginada.
Controle da Memória Paginada
Gerenciamento da Memória
FATEC - Sistemas Operacionais I
Funções Básicas
É realizado por módulos do Sistema Operacional, tendo como funções básicas:
• Acompanhar o estado de cada localização de memória, tendo o controle do que está
alocado, quem está alocando e o que está livre.
• Determinar o método de alocação, decidindo para quem ser alocado, o quanto ser alocado,
por quanto tempo e onde.
• Alocar a memória ou seja, selecionar as localizações específicas e atualizar as informações
da alocação.
• Desalocar a memória, ou seja, após o término do processo, ou mediante solicitação de
liberação parcial de memória alocada, proceder a desalocação, atualizando as informações
de estado.
A flexibilidade do gerenciador diretamente proporcional ao custo de implementação e grau
de complexidade.
Gerenciamento da Memória
FATEC - Sistemas Operacionais I
Contínua e Única
Hardware
Simplicidade, baixo custo.
Utilização registradores, contendo os limites de endereçamento.
Vantagens
Simplicidade na utilização.
Módulos pequenos no Sistema Operacional.
Desvantagens
Subutilização da memória.
Baixa utilização da CPU.
Programas limitados a única partição.
Características
Acompanhamento do estado : Alocado ou não alocado
Determina o método de alocação: o programa A alocar tudo.
Alocação : alocado para o programa A.
Desalocação: ao final do programa A, a memória fica livre.
SO
A
Área livre
porém não
utilizada
Gerenciamento da Memória
FATEC - Sistemas Operacionais I
Gerenciamento de Memória com Multiprogramação
A ineficiência associada ao gerenciamento com memória contínua e única consiste
basicamente em balancear um número fixo de recursos disponíveis com uma demanda
variável de recursos.
Cada programa tem características de uso de recursos específicos: tempo de CPU,
tamanho da memória, periféricos, etc. Forçar os programadores a desenvolver aplicações
com idênticos requisitos de recursos é impraticável. Desta forma, torna-se mais eficiente
executar vários serviços concorrentemente, distribuirndo-se os recursos entre os mesmos.
A colocação de vários programas na memória, todos concorrendo pelos recursos
disponíveis denominada MULTIPROGRAMAÇÃO.
SO
A
B
memória
C
N
Gerenciamento da Memória
FATEC - Sistemas Operacionais I
Partições Fixas
É uma forma de gerenciamento cuja técnica empregada pouco complexa. A memória é
dividida em regiões fixas denominadas partições. Cada partição acomoda um serviço com
seu próprio espaço de endereçamento.
As partições são especificadas antes da execução dos serviços através de parâmetros
fornecidos ao sistema operacional. O sistema operacional, com base nos parâmetros
fornecidos estruturar a tabela de partições, contendo basicamente:
P1
• PX - Identificação da partição.
• TAM - Tamanho da partição.
• .LOC - Localização da partição na memória.
• ESTADO - Estado da partição (em uso, livre).
• PGM – Processo em uso.
P2
P3
P4
P5
P6
SO
A mudança de tamanho e quantidade de partições normalmente pode ser alterada pelo
operador do computador, porém, nenhum serviço poder estar sendo executado.
P7
Gerenciamento da Memória
FATEC - Sistemas Operacionais I
Partições Fixas.
Desvantagens
O gerenciamento com partições fixas implica quase sempre em desperdício de memória,
pois, a divisão das partições feita a partir dos tamanhos de medidas dos programas, porém,
a frequência de execução e os tamanhos específicos não são normalmente conhecidos ou
de difícil gerenciamento.
Vantagens
Baixo custo.
Simplicidade no uso.
Gerenciamento da Memória
FATEC - Sistemas Operacionais I
Regiões Variáveis
A alocação de memória feita para cada serviço no momento anterior a carga do programa.
É também chamada PARTIÇÃO DINÂMICA.
Muitos sistemas algorítmicos são possíveis na alocação de regiões variáveis.
Basicamente no esquema de regiões variáveis, tabelas deverão ser inicializadas, as quais
conterão entradas para cada região alocada e para cada área livre. Cada entrada, contém
o tamanho, a localização e o estado.
Um possível esquema utilizado contem duas tabelas não necessariamente ocupadas, o
campo de estado, se a entrada correspondente estiver em uso, ou seja, representa uma
área alocada ou livre, ou não está em uso, sendo somente uma entrada vazia na tabela.
O tamanho da região especificado através de parâmetros no momento da execução, e
com base nos parâmetros, o sistema operacional processa a alocação.
Gerenciamento da Memória
FATEC - Sistemas Operacionais I
Regiões Variáveis – Alocação da região
A alocação de memória feita para cada serviço no momento anterior a carga do programa.
É também chamada PARTIÇÃO DINÂMICA.
Muitos sistemas algorítmicos são possíveis na alocação de regiões variáveis.
Basicamente no esquema de regiões variáveis, tabelas deverão ser inicializadas, as quais
conterão entradas para cada região alocada e para cada área livre. Cada entrada, contém
o tamanho, a localização e o estado.
Um possível esquema utilizado contem duas tabelas não necessariamente ocupadas, o
campo de estado, se a entrada correspondente estiver em uso, ou seja, representa uma
área alocada ou livre, ou não está em uso, sendo somente uma entrada vazia na tabela.
O tamanho da região especificado através de parâmetros no momento da execução, e
com base nos parâmetros, o sistema operacional processa a alocação.
Gerenciamento da Memória
FATEC - Sistemas Operacionais I
Particionada Relocável
A cada termino de um processo a sistema estará relocando as partições tornando-as
adjacentes. Ao torná-las adjacentes, libera-se incodicionalmente um espaço contínuo de
memória, permitindo alocações com melhor aproiveitamento contínuo o espaço.
Vantagens
Elimina fragmentação (embora o programa deva ser alocado continuamente).
Aumenta o grau de Multiprogramação (aumenta a utilização de CPU).
Desvantagens
Aumento no custo do hardware.
Tempo de alocação pode ser substancial (OVERHEAD).
Informações nunca usadas permanecem na memória.
Gerenciamento da Memória
FATEC - Sistemas Operacionais I
Memória Paginada
Cada programa tem o seu espaço endereçável dividido em pedaços iguais, denominados
páginas. Da mesma forma, a memória física dividida em pedaços do mesmo tamanho
chamado BLOCOS.
Qualquer página pode residir em qualquer bloco. Quando o programa carregado criada
uma tabela, denominada TABELA DE PÁGINAS, contendo as páginas e os blocos
correspondentes.
Quando o programa executado, o sistema consulta a tabela específica do programa que
contém as páginas e os blocos correspondentes, tornando transparente ao programa.
As páginas as quais constituem uma visão lógica do programa, são alocadas
continuamente, mas os blocos correspondentes não são necessariamente contínuos na
memória.
Gerenciamento da Memória
FATEC - Sistemas Operacionais I
Gerenciamento paginado de memória soluciona o problema de fragmentação, uma vez que
o programa visto continuamente através da alocação de suas páginas.
Controle da Memória Paginada
O sistema exerce controle da memória utilizando basicamente duas tabelas:
Tabela de Páginas: Uma para cada espaço de endereçamento, e contém uma entrada
para cada página. Cada espaço de endereçamento ser mapeado totalmente. Nesta tabela a
qual contém os blocos correspondentes a cada página.
Vantagens
- Elimina fragmentação
-Não há overhead (relocação)
Desvantagens
-Custo aumentado
-Tempo de processamento diminuído (aumento do tempo de pesquisa na tabela do mapa).
-Tabela deve ser alocada para tabela de páginas (overhead).
Gerenciamento da Memória
FATEC - Sistemas Operacionais I
Sistemas não Virtuais
Em todos os esquemas vistos previamente, o serviço não executaria caso não existisse
memória suficiente para a carga do programa inteiro. Esta restrição frequentemente
resulta em áreas livres e serviços esperando para ser carregado e executado.
Mais do que isso, os programadores quando pressionados a manter o espaço de
endereçamento do programa pequeno, diminuem a produtividade bem com a qualidade
da programação.
Muitos estudos realizados tem mostrado que um programa quando restrito em termos de
espaço de memória, implicará em um custo crescente de programação ao longo de sua
manutenção.
Gerenciamento da Memória
FATEC - Sistemas Operacionais I
Necessidades da Memória Virtual
O tamanho da memória de um computador não deve influir na programação, ou mesmo
na estruturação aplicativa.
Se o programa for muito grande em relação a memória disponível, o sistema operacional,
não o programador, deverá alocá-lo adequadamente na memória.
O programa dever utilizar somente a memória necessária durante a sua execução.
O sistema operacional não deve permitir que a memória torne-se fragmentada ou
qualquer outra situação de sub-utilização.
O sistema deverá se adaptar a demanda das atividades aplicativas, alocando,
desalocando ou adicionando quando necessário, de forma transparente e automática.
Download