Sistemas Operacionais

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Operacionais
Sistemas Operacionais
Capitulo 6: Entrada e Saída
DESENVOLVIMENTO DE SISTEMAS PARA INTERNET
Arquitetura e organização de computadores
Sistemas operacionais
Sistemas operacionais
Entrada e Saída Introdução.
Técnicas para operações E/S
Sistemas Operacionais
Ambientes Operacionais
Ambientes Operacionais
Gerenciamento de memória
Arquitetura de Sistemas Operacionais Francis Berenger Machado
Sistemas Operacionais
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
SSC541 - SISTEMAS OPERACIONAIS I Aula 13 – Gerenciamento de Memória
Sistemas Operacionais
Gerência de Memória.
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.
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
Fundamentos da Arquitetura de Computadores
Fundamentos da Arquitetura de Computadores
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Gerência de Memória Fundamentos Swapping Alocação Contígua de memória
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Gerência de Memória Virtual
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Gerenciamento de Memória (Paginação e Memória Virtual)
Sistemas Operacionais
SISTEMAS OPERACIONAIS I Memória Virtual e Paginação
SISTEMAS OPERACIONAIS I
Sistemas Operacionais
Sistemas Operacionais
Capítulo 8: Memória principal
SISTEMAS OPERACIONAIS I
SISTEMAS OPERACIONAIS I
DEPARTAMENTO DE INFORMÁTICA UFPE GRECO Gerenciamento de Memória.
Sistemas Operacionais
Subsistema de Entrada e Saída do Kernel
Capítulo 8: Memória Principal
Infra-Estrutura de Software Gerenciamento de Memória.
Gerenciamento de Memória
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 Sistemas Operacionais Profa. Priscila Facciolli
Memória Virtual.
MEMÓRIAS.
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Gerência de Memória Sidney Cunha de Lucena Baseado no livro
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.
Pearson Education Sistemas Operacionais Modernos – 2ª Edição 1 Sistemas Operacionais FATEC-PB Professor: Gustavo Wagner
Transcrição da apresentação:

Sistemas Operacionais Gerência de Memória Sistemas Operacionais

Memória Década de 30 – John Von Neumann Computador composto por três partes: Processador, Dispositivos I/O e a Memória Programa deveria ser armazenado na memória junto com os dados. Capaz de lembrar sequências de comandos previamente fornecidos executando-as fielmente.

Memória Década de 30 – John Von Neumann Arquitetura Princeton e Arquitetura Harward

Princeton Único barramento para transferência de dados e instruções entre memória e processador Predominou pela simplicidade

Harward Dispositivos de memória distintos para armazenamento de dados e programas; Dois barramentos ligando o processador aos dispositivos de memória de dados e programas; Mais eficiente

Ambos foram conceitos revolucionários ; Não existia tecnologia suficiente para construção de dispositivos que funcionassem como memória; Processadores evoluíram primeiro.

1ª Memória primária foi construída com pequenos núcleos magnetizáveis de ferrite interligados matricialmente por uma delicada fiação de cobre, onde cada núcleo armazenava um único bit. processadores são capazes de ler e escrever mais rápido do que os circuitos de memória do mesmo nível tecnológico. Wait States: é o tempo de espera por parte do processador até que a memória esteja preparada para ler ou gravar os dados.

Quando se fala em memória, estamos nos referindo aos circuitos que trocam dados diretamente com o processador durante o ciclo de execução de seus comandos mais básicos, ou seja, a memória primária ou armazenamento primário. (RAM, ROM, REGISTRADORES E CACHE) Os dispositivos de armazenamento secundário, isto é, dispositivos de memória de massa que não devem ser confundidos com a memória básica do computador. (Discos rígidos, CDs, DVds, PenDrive)

Memória Memória é um termo genérico usado para designar as partes do computador ou dos dispositivos periféricos onde os dados e programas são armazenados. Sem uma memória de onde os processadores podem ler e escrever informações, não haveria nenhum computador digital de programa armazenado.

Memória A memória pode ser vista como um array (vetor) de células de armazenamento (palavras ou bytes), cada célula com seu endereço 2 1 31 4 3 35 26 5 124 6 42 7 12 8

Memória A CPU e os controladores dos dispositivos periféricos podem ler e escrever em posições de memória.

Memória Considerações: Recurso caro e escasso; era ou é? Preocupação do projetista: SO que não ocupassem muito espaço de memória; Programas só executam se estiverem na memória principal; Necessidade de uso otimizado; “É um dos fatores mais importantes em um projeto de S.O.”.

Memória O objetivo principal de um Sistema Computacional é executar programas; Estes programas devem estar localizados na memória principal; Memória principal não possui tamanho suficiente; SO modernos utilizam principalmente dos discos rígidos como dispositivos secundários de apoio à memória. Por isso existe a necessidade do Gerente de Memória.

Gerência de Memória Algumas funções do Gerente de Memória Controlar quais as unidades de memória estão ou não estão em uso, para que sejam alocadas quando necessário; Liberar as unidades de memória que foram desocupadas por um processo que finalizou; alocação da memória de acordo com as necessidades dos processos Tratar do Swapping entre memória principal e memória secundária. Transferência temporária de processos residentes na memória principal para memória secundária

Mecanismos para Gerência de Memória máquina pura monitor residente swapping partições múltiplas paginação segmentação sistemas combinados

Máquina Pura É o esquema mais simples, pois não existe gerência de memória; O usuário lida diretamente com o hardware e possui total controle sobre toda a memória; Não exige nenhum software ou hardware especiais; Viável apenas em sistemas dedicados, onde o computador controla um equipamento específico.

Máquina Pura Problemas: não existe a infra-estrutura do SO (rotinas de E/S, por exemplo) não há monitor residente para controlar chamadas de sistema ou erros

Sistemas Monoprogramados Alocação Contígua Simples Com monoprogramação a gerência de memória fica simples; O espaço é dividido entre o SO e o processo do usuário que está sendo executado;

Monoprogramação Vantagens: simplicidade custo baixo de implementação e uso flexibilidade

Monitor Residente Normalmente, este esquema é usado em sistemas monoprogramados; Memória dividida em duas partes: área do SO área do usuário Registrador limite: contém o primeiro endereço do programa usuário

Área para o programa usuário Monitor Residente Sistema Operacional Registrador Limite Área para o programa usuário Área livre

E se o tamanho do programa for maior do que a memória disponível? Neste caso utiliza-se a técnica conhecida como overlay, o programa é dividido em módulos que são executados independentemente na mesma área de memória

Overlay Cadastramento Sistema Operacional 2 kb 4 kb Módulo principal Impressão Área de Overlay 4 kb 2 kb Área livre 1 kb Área não utilizada 2 kb

Multiprogramação através de Swapping É implementada por um SO do tipo monitor residente O esquema de gerenciamento de memória é estendido para implementar swapping O programa que perde a CPU é copiado p/ disco, enquanto o programa que ganha a CPU é transferido do disco p/ a memória principal

Swapping reg. limite Monitor Espaço do Usuário Swap-in U1 Swap-out U2

Exercício 1)O que é Memória 2)Cite exemplos de memória primária: 3)Cite exemplos de memória secundária: 4)Para a sua execução, em qual memória o programa precisa estar? 5)Quais as funções do Gerente de Memória 6)O que é Swapping?

Gerenciador de Memória Gerência de Memória Memória Lógica - é aquela que o processo enxerga, o processo é capaz de acessar. Memória Física - é aquela implementada pelos circuitos integrados de memória, pela eletrônica do computador Endereço lógico Gerenciador de Memória Endereço físico Memória CPU

Partições Múltiplas Com multiprogramação, é conveniente ter vários programas na memória ao mesmo tempo para que a CPU seja rapidamente alternada entre eles Solução: dividir a memória em partições que podem ser: Partições Fixas (regiões estáticas) Partições variáveis (regiões dinâmicas)

Partições Fixas A memória é dividida em partições que não são alteradas durante a execução do sistema. Quando um processo é criado, ele é colocado em uma fila à espera que uma partição de tamanho suficiente se torne disponível

Partições Fixas Para definir a partição onde o programa vai ser colocado, existem duas opções: Montar uma fila individual para cada partição Montar uma fila única para todas as partições

Partições Fixas

Fragmentação São perdas (desperdício) de memória: fragmentação interna: memória é perdida dentro da partição alocada (é um desperdício de espaço dentro da partição usada pelo processo) fragmentação externa: ocorre quando existe espaço disponível mas este é pequeno demais para os processos que estão à espera (perda de espaço fora das partições alocadas)

Fragmentação

Partições Fixas O controle de partições fixas é conceitualmente simples. Necessita levar em conta: tamanhos das partições de memória algoritmo para gerenciar a lista de processos em espera

Partições Fixas Exemplo: memória de 256K espaço do SO: 64K espaço para processos pequenos: 16K espaço para processos médios: 48K espaço para processos grandes: 128K

Partições Fixas Partições Variáveis O maior problema das partições fixas é determinar a melhor divisão da memória; A solução é permitir que o tamanho das partições varie ao longo do tempo. Partições Variáveis

Partições Variáveis Os tamanhos das partições variam de acordo com a necessidade Tanto o tamanho quanto o número de partições variam dinamicamente Elimina a fragmentação interna Mais difícil de implementar

Partições Variáveis O SO mantém uma lista indicando quais partes da memória estão disponíveis e quais estão ocupadas. As áreas disponíveis são denominadas lacunas (holes) Quando um processo chega para ser executado, a lista de lacunas é consultada e é escolhida uma lacuna de tamanho suficiente

Partições Variáveis JOB 1 2 3 4 5 Memória 60K 100K 30K 70K 50K Tempo 10 5 20 8 15

Partições Variáveis - Características Vai existir um conjunto de áreas livres (lacunas) espalhadas pela memória; Para executar um programa, o conjunto é pesquisado à procura de uma área maior ou igual à necessidade ; Se a área é maior, a parte restante vai continuar livre; Quando um processo termina, a área é liberada. Se a área é adjacente a outra área livre, as duas áreas são aglutinadas em uma única lacuna;

Existem algoritmos para a escolha de uma área livre. Partições Variáveis Existem algoritmos para a escolha de uma área livre.

Partições Variáveis - Algoritmos de Alocação para partições variáveis Algoritmos para escolha da área livre (alocação dinâmica da memória): first-fit: aloca o primeiro espaço livre de tamanho suficiente best-fit: aloca o menor espaço livre que seja suficiente. Produz a menor sobra de espaço worst-fit: aloca o maior espaço livre. Produz a maior sobra de espaço livre (a sobra é mais útil que a gerada por best-fit)

Partições Variáveis - Algoritmos de Alocação

Programas precisam estar na MP para serem executados; Aula Passada vimos: O que é memória; Programas precisam estar na MP para serem executados; Mecanismos para Gerenciar Memória: Máquina Pura: Para sistemas dedicados Monoprogramação: Espaço da MP dividido apenas entre o SO e o programa de usuário. (Overlay e Swapping)

Multiprogramação: Partições Fixas (uma fila para cada partição ou uma fila pra todas as partições) Partições Variáveis (Algorítimos First-fit, Best-fit, Worst-fit)

Partições Variáveis - Compactação Para resolver o problema da fragmentação externa, a solução é a compactação da memória: os programas são deslocados na memória de forma que todo os espaço livre fique reunido em uma única lacuna necessidade de relocação dinâmica (pois a relocação estática impossibilita a compactação) No Windows: Aplicativos free disponíveis (Memory Improve Master Free) No Linux: Algoritmo de Compressão

Partições Variáveis - Compactação

Mas ainda há problemas

Introdução à Paginação e Segmentação Problemas com alocação particionada: Fixa: Fragmentação Interna e Externa Variável: Fragmentação externa, quando a memória livre está fragmentada em diversos blocos espalhados; A compactação resolve a situação mas possui um custo de CPU associado.

O mecanismo de Paginação poderá resolver estes problemas A Paginação permite que o espaço físico ocupado por um processo seja não contíguo.

Introdução à Paginação e Segmentação Nova abordagem é considerar a existência de um espaço de endereçamento lógico e de um espaço de endereçamento físico O espaço de endereçamento físico não precisa ser contíguo Necessita “mapear” o espaço lógico no espaço físico Dois métodos básicos: Paginação Segmentação

Introdução à Paginação e Segmentação Suposição: para ser executado o processo necessita estar completamente carregado em memória Solução: Processo é dividido em páginas (blocos de processos); MP é dividida em quadros de mesmo tamanho

Paginação A memória física é dividida em um número de partições de mesmo tamanho, denominadas páginas físicas, quadros ou frames A memória lógica é dividida em partições do mesmo tamanho, denominadas páginas lógicas (ou, simplesmente, páginas) Cada página lógica é carregada em um frame quando o processo é carregado na memória principal Nessa ocasião, uma tabela de páginas é criada Permite que o espaço físico ocupado por um processo seja não contíguo

Paginação Páginas Físicas ou Frames Páginas Lógicas Processos A, B, C estão prontos C4 C3 C2 C1 B3 B2 B1 A4 A3 A2 A1 Exemplo: número de páginas/processo 5 D 4 C 3 B A Páginas Físicas ou Frames Páginas Lógicas IC - UFF

Paginação

Paginação B termina D é submetido C4 C3 C2 C1 A4 A3 A2 A1 D4 D5 C1 C2 IC - UFF

Paginação

Esquema de Tradução de Endereços Endereços gerados pela CPU são divididos em: Nr de páginas(p): usado como um índice em uma tabela de páginas, a qual contém o endereço base de cada página na memória física Deslocamento de página(d): combinado com o endereço base para definir o endereço na memória física que será enviado para a memória.

Paginação SO mantém cópia (apontador) das tabelas de páginas de cada processo Cada descritor de processo contém o endereço de sua respectiva tabela de páginas. A UCP possui um registrador que aponta para a tabela de páginas atual Para acessar um dado na memória são necessários dois acessos: um de mapeamento (acesso à tabela) e outro para acessar o dado

Exercício O que é Memória lógica e Memória Física: Explique as vantagens e desvantagens da alocação Fixa e Variável Explique: Fragmentação Interna e Externa Qual seria uma solução para resolver a fragmentação externa?

Paginação não existe fragmentação externa existe fragmentação interna (Ex: um programa que ocupe 201kb, o tamanho de página é de 4 kb, serão alocadas 51 páginas resultando uma fragmentação interna) A fragmentação ocorre apenas na última página usada pelo programa. A fragmentação é consequência do tamanho da página páginas pequenas evitam o problema de fragmentação a literatura indica o uso de páginas pequenas

Segmentação A segmentação é uma forma de gerência de memória que suporta a visão do usuário. Com segmentação, o espaço de endereçamento lógico é uma coleção de segmentos. Cada posição da memória lógica é especificada por um segmento e um deslocamento.

Segmentação Para facilitar a implementação, os segmentos não recebem nomes, mas sim números. Os compiladores automaticamente criam segmentos para refletir a organização do programa. No momento que o programa é carregado, cada um recebe um número de segmento específico.

Segmentação Simplificando • Um programa é dividido logicamente em subrotinas e estruturas de dados, que são alocadas em segmentos.

Segmentação

Segmentação

Segmentação Mapeamento é muito semelhante ao de paginação. Os segmentos são mapeados através de tabelas de mapeamento de segmentos (TMS) Endereços são compostos pelo número do segmento virtual (NSV) e por deslocamento Endereço físico é obtido, então, combinando-se o endereço do segmento, localizado na TMS, com o deslocamento, contido no endereço virtual.

Segmentação Uma vantagem da segmentação em relação à paginação e a sua facilidade em lidar com estruturas de dados Técnica de segmentação, apenas os segmentos referenciados são transferidos da memória secundária para a memória principal

Segmentação A política de alocação de páginas pode ser a mesma usada na alocação particionada dinâmica (best-fit, worst-fit ou first-fit) Problemas de fragmentação externa Proteções de memória é mais simples de ser implementada do que sistemas de paginação, Cada segmento tem um conteúdo bem definido

Segmentação e Paginação Qual o melhor? Discussão antiga, sem vencedores Fragmentação Paginação : apresenta fragmentação interna Segmentação : apresenta fragmentação externa Administração Paginação é mais simples Proteção (segurança) e compartilhamento Segmentação é melhor, pois: segmentos são unidades lógicas páginas são mais misturadas (dados, código)

Sistemas Combinados Existem sistemas onde a paginação e a segmentação são usadas em conjunto, procurando tirar proveito de ambos os esquemas. Segmentação paginada (mais comum) Paginação segmentada (menos comum)

Segmentação com Páginas Técnica de gerenciamento na qual o espaço de endereçamento é dividido em segmentos e, por sua vez, cada segmento é dividido em páginas Objetivos de oferecer as vantagens da técnica de paginação e segmentação

Segmentação com Páginas Endereço virtual é formado pelo número do segmento virtual (NSV) Um número de página virtual (NPV) e um deslocamento O deslocamento indica a posição do endereço virtual em relação ao inicio da página na qual se encontra. O endereço físico é obtido, então, combinando-se o endereçamento do frame, localizado na tabela de páginas com o deslocamento contido no endereço virtual

Segmentação

Sistemas Combinados Segmentação com Páginas Técnica de gerenciamento na qual o espaço de endereçamento é dividido em segmentos e, por sua vez, cada segmento é dividido em Páginas. Objetivos de oferecer as vantagens da técnica de paginação e segmentação.

Sistemas Combinados Endereço virtual é formado: pelo número do segmento virtual (NSV). Um número de página virtual (NPV) e um deslocamento. O deslocamento indica a posição do endereço virtual em relação ao inicio da página na qual se encontra.

Sistemas Combinados O endereço físico é obtido, então, combinando-se o endereçamento do frame, localizado na tabela de páginas com o deslocamento contido no endereço virtual.

Segmentação com Paginação