Docente: Lambo Vasco Chiungo
E-mail: lambochiungo@gmail.com
Aula 3
Gestão de Memória
Lambo Chiungo
Considerações Gerais
 Memória necessita ser alocada de forma eficiente para
permitir o máximo possível de processos.
 Um sistema de memória possui pelo menos dois níveis:
Memória principal: acessada pela CPU
Memória secundária: discos
 Programas são armazenados em disco.
Executar um programa se traduz em transferi-lo da memória
secundária à memória primária.
 Qualquer sistema operativo tem gerência de memória.
Monotarefa: gerência é simples
Multitarefa: complexa
Lambo Chiungo
Memória lógica e Memória física
 Memória lógica
É aquela que o processo “enxerga”
Endereços lógicos são aqueles manipulados por um
processo
 Memória física
Implementada pelos circuitos integrados de memória
Endereços físicos são aqueles que correspondem a uma
posição real de memória
Lambo Chiungo
Endereço lógico versus endereço físico
 Espaço lógico de um processo é diferente do espaço
físico.
Endereço lógico: gerado pela CPU (endereço virtual)
Endereço físico: endereços enviados para a memória
RAM
 Programas de usuários “vêem” apenas endereços
lógicos.
 Endereços lógicos são transformados em endereços
físicos no momento de execução dos processos.
Lambo Chiungo
Unidade de gerência de memória
Lambo Chiungo
 Memory Management Unit (MMU)
Hardware que faz o mapeamento entre endereço lógico e
endereço físico.
 Existem inúmeros tipos de MMU (ou UGM):
 Inicialmente simples, baseada em registos de relocação
 Constituída depois por um chip dedicado com mais
funções.
 Actualmente faz parte do chipset da maioria dos
processadores, tendo-se tornado bastante complexo de
utilizar e programar.
Lambo Chiungo
Ligação de Instruções e Dados à Memória
Lambo Chiungo
 A ligação das Instruções e Dados a Endereços Físicos da Memória
podem ser feitos em três alturas distintas:
 Na compilação: se os endereços de memória são conhecidos à priori,
o código pode ser gerado de forma absoluta.
 Mas se o endereço de início muda, terá de ser recompilado.
 No carregamento: se os endereços da memória onde o processo vai
ser carregado não são conhecidos no momentoda compilação, o código
é gerado em modo relocável.
 Na execução: se o processo pode ser carregado em vários endereços e
memória diferentes durante a sua execução, a ligação aos endereços
não pode ser realizada de forma definitiva.
 Nesse dois últimos casos é necessário suporte do hardware para
realizar o mapeamento de endereços:
 Registos de Base e Limite
 Unidade de Gestão Memória
Código relocável
 Carregador relocador
Correção de todas as referências a memória de forma a
corresponder ao endereço de carga do programa
 Necessidade de identificar quais endereços devem ser
corrigidos.
Código relocável
Mapeamento das posições a serem corrigidas é mantida
através de tabelas
 Código executável mantém informações de relocação na
forma de tabelas
No momento da carga o programa executável é interpretado e
os endereços corrigidos
Lambo Chiungo
Código absoluto
 Carregador absoluto
Não realiza correção de endereços no momento da carga
do programa em memória.
 Código executável absoluto não necessita manter
tabelas de endereços a serem corrigidos.
 Endereço de carga
Fixo pelo programa (programador)
Qualquer correção pode ser feita automaticamente, de
forma transparente, a partir de registradores de base.
Lambo Chiungo
Mecanismo Básico de Relocação
 A todos os endereços lógicos gerados pelo CPU é
adicionado o valor contido num registo de relocação.
Lambo Chiungo
Mecanismo Básico de Limitação
 É também necessário limitar o espaço de
endereçamento lógico a que um processo pode aceder.
 Para isso são utilizados os dois registos base e limite.
Lambo Chiungo
Mecanismo Básico de Protecção
 Com os Registos de Base e Limite é possível implementar
um esquema de protecção muito simples:
 Quando o endereço gerado pelo CPU é inferior à base ou superior
ao limite é gerada uma excepção para o sistema operativo.
 Para cada processo são carregados valores diferentes nos registos.
Lambo Chiungo
Alocação de Memória
 Para carregar um processo em memória, é necessário
atribuir-lhe uma zona de memória de tamanho igual ou
superior ao espaço físico total que ocupa.
 A alocação de Memória mais simples é feita através do
particionamento do espaço físico disponível em
múltiplos blocos
 Bloco livre: espaço contínuo de memória livre que pode
estar localizado em qualquer sítio da memória física.
 Quando um processo está para ser carregado em memória,
é-lhe atribuída memória de um bloco livre.
 O Sistema Operativo mantém informações sobre os
 Blocos livres.
 Blocos ocupados.
Lambo Chiungo
Lambo Chiungo
Mecanismos de Particionamento
 Existem várias formas de particionar o espaço memória, que
dependem sobretudo do tipo de Unidade de Gestão Memória
utilizada.
 O mecanismo mais simples consiste na utilização de dois registos
base e limite, que só permitem alocação contínua de toda a
memória de um processo.
 Com a evolução do hardware, mecanismos mais complexos têm
sido desenvolvidos e integrados pelos SO ao longo dos tempos.
 Utilização de múltiplos registos de relocação, permitindo
distinguir várias zonas distintas no espaço de um processo.
 Segmentação
 Decomposição do espaço lógico e físico em inúmeras pequenas
zonas independentes da natureza do seu conteúdo
 Paginação
Lambo Chiungo
Alocação Memória em Modo Contínuo
 Como responder a um pedido de alocação de N bytes a partirde
uma lista de blocos livres:
 First-fit: alocar o primeiro bloco livre suficientemente grande
para conter N bytes.
 Best-fit: alocar o mais pequeno bloco que seja suficientemente
grande para conter N bytes.
 É preciso percorrer a lista toda, a menos que esteja ordenada por
tamanhos.
 Produz os melhores resultados pois provoca menos desperdícios.

 Worst-fit: alocar o maior bloco que seja suficientemente grande.
 Necessita percorrer a lista toda.
Lambo Chiungo
Algoritmos de Alocação de Memória

Lambo Chiungo
Lambo Chiungo
Lambo Chiungo
Lambo Chiungo
Swapping
 Um processo pode ser temporariamente e parcialmente
retirado da memoria central caso haja falta de espaço para
manter todos os processo, e mais tarde de novo carregado
para continuar a execução.
 A unidade de swapping é geralmente o segmento.
 Memória Secundária (Backing Store) – espaço em disco
rápido suficientemente grande para guardar cópias das
imagens memória de todos os processos residentes; deve
permitir acesso rápido e directo a essas imagens.
 Roll out, roll in – variante do swapping utilizada para
algoritmos de scheduling baseados na prioridade: os
processos com baixa prioridade podem ser retirados da
memória para deixar espaço a processos com maior
prioridade.
Lambo Chiungo
Lambo Chiungo
Swapping
Gestão de Ficheiros
Lambo Chiungo
Introdução
 O sistema de ficheiros é a parte mais vísivel do sistema
operativo.
 Cria um recurso lógico a partir de recursos físicos através de
uma interface coerente e simples, fácil de usar.
 Mecanismo para armazenamento e acesso a dados e a
programas.
 Duas partes básicas:
Ficheiros
 Armazenamento de dados e de programas
Directórios
 Organização e informações sobre ficheiros
Lambo Chiungo
Ponto de vista do usuário
 Cada usuário deve ser capaz de:
Criar, apagar, ler e alterar ficheiros.
Controlar as permissões de acesso a seus ficheiros.
Nomear ficheiros de forma simbólica.
Estruturar os ficheiros de forma a adequá-los a suas
necessidades específicas.
 Criação de diretórios e subdiretórios.
Realizar back-ups e recuperar ficheiros em caso de
problemas.
Lambo Chiungo
Ponto de vista do sistema
 O sistema operativo deve ser capaz:
Descrever a localização de todos os ficheiros e de seus
atributos.
 Via directório.
Gerenciar espaço físico do disco.
 Alocar blocos livres a ficheiros em criação/expansão.
 Liberar blocos de ficheiros removidos.
 Mecanismos para localizar eficientemente blocos (setores)
que compõem ficheiros.
Lambo Chiungo
Conceitos básicos
 Ficheiros
Recipientes que contêm dados
 Directórios
Conjuntos de referências a ficheiros
 Partição
Abstração que permite a partir do disco físico criar
discos lógicos
Lambo Chiungo
Conceito de Ficheiro
 Informação pode ser armazenada em diferentes tipos de mídia.
 O sistema operativo deve oferecer uma visão uniforme da
informação independente do dispositivo físico de armazenamento
 Visão lógica é o ficheiro.
 Ficheiros são mapeados para dispositivos físicos.
 Ficheiros possuem:
 Nome
 Atributos
 Estrutura interna
 Tipo
 Método de acesso
 Operações
Lambo Chiungo
Nomes de Ficheiros
 O sistema de ficheiros define um espaço de nomes.
Conjunto de regras e convenções para identificar
simbolicamente um ficheiro.
 Variam de sistema para sistema:
Distinção entre letras maiúsculas e minúsculas.
Obrigatoriedade ou não de uma extensão.
 As vezes extensões são apenas convenções.
Tamanho máximo de nome e da extensão (se houver).
Lambo Chiungo
Atributos de um Ficheiro
 Informações sobre ficheiros:
Nome: informação simbólica empregada para referenciar o
ficheiro.
Tipo: binário, texto, executável, caracter, bloco.
Localização: posição do ficheiro em um determinado
dispositivo E/S.
Tamanho: número de bytes que compõem o ficheiro.
Proteção: controla acesso de leitura, escrita e execução ao
ficheiro.
Hora e data de criação, identificação do usuário: informações
destinadas a proteção, segurança e monitoração.
 Varia de sistema operativo a sistema operativo.
 Atributos são mantidos em uma estrutura a parte.
Directório
Lambo Chiungo
Estruturas de Ficheiros
 Sequência de bytes;
 Sequência de registros;
 Árvore.
Lambo Chiungo
Sequência de bytes
 Sistema operativo não “interpreta” o conteúdo do
ficheiro.
Enxerga apenas ‘bytes’
 Interpretação é a nível do programa de usuário.
 Vantagem:
Flexibilidade.
Lambo Chiungo
Sequência de registros
 Ficheiro é “interpretado” como uma sequência de
registros, isto é:
Tamanho fixo;
Estrutura interna.
 Operações lêem/escrevem registros.
Lambo Chiungo
Árvore
 Conjunto de registros não necessariamente de mesmo
tamanho.
Possuem um campo de acesso (chave).
 Comum em mainframes.
Método ISAM (Indexed Sequential Access Method).
Lambo Chiungo
Operações Sobre Ficheiros
 Open - é a função que permite o mapeamento entre o nome de um ficheiro e o seu
descritor interno (FCB= File Control Block).
 Procura o nome do ficheiro num directório, acede ao seu FCB e traz o seu
conteúdo para memória.
 Valida as permissões de acesso do utilizador.
 O sistema mantém uma tabela de ficheiros abertos, na qual são armazenados
os respectivos FCBs.
 Close - função inversa.
 Liberta o FCB em memória e realiza a actualização dos seus atributos.
 Create - cria um novo ficheiro, alocando uma nova entrada no catálogo
 Write - transfere uma zona espaço do processo para dentro do ficheiro, realizando a
alocação de espaço necessária à medida.
 Read - função inversa.
 Seek - permite posicionar o ponteiro de I/O em qualquer parte do conteúdo
 do ficheiro.
 Etc…
Lambo Chiungo
Operações sobre Directórios
 Lookup: procura de um ficheiro num directório,
retorna um descriptor de ficheiro.
 Create: Criação de um ficheiro.
 Delete: remoção de um ficheiro.
 List: listagem do conteúdo.
 Traverse: atravessamento do directório na procura de
um nó situado mais abaixo.
Lambo Chiungo
É o suficiente por hoje!
Feliz Semana Santa
Lambo Chiungo

Aula 3- Disciplina:Pratica Técnico Profi

  • 1.
    Docente: Lambo VascoChiungo E-mail: lambochiungo@gmail.com Aula 3
  • 2.
  • 3.
    Considerações Gerais  Memórianecessita ser alocada de forma eficiente para permitir o máximo possível de processos.  Um sistema de memória possui pelo menos dois níveis: Memória principal: acessada pela CPU Memória secundária: discos  Programas são armazenados em disco. Executar um programa se traduz em transferi-lo da memória secundária à memória primária.  Qualquer sistema operativo tem gerência de memória. Monotarefa: gerência é simples Multitarefa: complexa Lambo Chiungo
  • 4.
    Memória lógica eMemória física  Memória lógica É aquela que o processo “enxerga” Endereços lógicos são aqueles manipulados por um processo  Memória física Implementada pelos circuitos integrados de memória Endereços físicos são aqueles que correspondem a uma posição real de memória Lambo Chiungo
  • 5.
    Endereço lógico versusendereço físico  Espaço lógico de um processo é diferente do espaço físico. Endereço lógico: gerado pela CPU (endereço virtual) Endereço físico: endereços enviados para a memória RAM  Programas de usuários “vêem” apenas endereços lógicos.  Endereços lógicos são transformados em endereços físicos no momento de execução dos processos. Lambo Chiungo
  • 6.
    Unidade de gerênciade memória Lambo Chiungo  Memory Management Unit (MMU) Hardware que faz o mapeamento entre endereço lógico e endereço físico.  Existem inúmeros tipos de MMU (ou UGM):  Inicialmente simples, baseada em registos de relocação  Constituída depois por um chip dedicado com mais funções.  Actualmente faz parte do chipset da maioria dos processadores, tendo-se tornado bastante complexo de utilizar e programar.
  • 7.
  • 8.
    Ligação de Instruçõese Dados à Memória Lambo Chiungo  A ligação das Instruções e Dados a Endereços Físicos da Memória podem ser feitos em três alturas distintas:  Na compilação: se os endereços de memória são conhecidos à priori, o código pode ser gerado de forma absoluta.  Mas se o endereço de início muda, terá de ser recompilado.  No carregamento: se os endereços da memória onde o processo vai ser carregado não são conhecidos no momentoda compilação, o código é gerado em modo relocável.  Na execução: se o processo pode ser carregado em vários endereços e memória diferentes durante a sua execução, a ligação aos endereços não pode ser realizada de forma definitiva.  Nesse dois últimos casos é necessário suporte do hardware para realizar o mapeamento de endereços:  Registos de Base e Limite  Unidade de Gestão Memória
  • 9.
    Código relocável  Carregadorrelocador Correção de todas as referências a memória de forma a corresponder ao endereço de carga do programa  Necessidade de identificar quais endereços devem ser corrigidos. Código relocável Mapeamento das posições a serem corrigidas é mantida através de tabelas  Código executável mantém informações de relocação na forma de tabelas No momento da carga o programa executável é interpretado e os endereços corrigidos Lambo Chiungo
  • 10.
    Código absoluto  Carregadorabsoluto Não realiza correção de endereços no momento da carga do programa em memória.  Código executável absoluto não necessita manter tabelas de endereços a serem corrigidos.  Endereço de carga Fixo pelo programa (programador) Qualquer correção pode ser feita automaticamente, de forma transparente, a partir de registradores de base. Lambo Chiungo
  • 11.
    Mecanismo Básico deRelocação  A todos os endereços lógicos gerados pelo CPU é adicionado o valor contido num registo de relocação. Lambo Chiungo
  • 12.
    Mecanismo Básico deLimitação  É também necessário limitar o espaço de endereçamento lógico a que um processo pode aceder.  Para isso são utilizados os dois registos base e limite. Lambo Chiungo
  • 13.
    Mecanismo Básico deProtecção  Com os Registos de Base e Limite é possível implementar um esquema de protecção muito simples:  Quando o endereço gerado pelo CPU é inferior à base ou superior ao limite é gerada uma excepção para o sistema operativo.  Para cada processo são carregados valores diferentes nos registos. Lambo Chiungo
  • 14.
    Alocação de Memória Para carregar um processo em memória, é necessário atribuir-lhe uma zona de memória de tamanho igual ou superior ao espaço físico total que ocupa.  A alocação de Memória mais simples é feita através do particionamento do espaço físico disponível em múltiplos blocos  Bloco livre: espaço contínuo de memória livre que pode estar localizado em qualquer sítio da memória física.  Quando um processo está para ser carregado em memória, é-lhe atribuída memória de um bloco livre.  O Sistema Operativo mantém informações sobre os  Blocos livres.  Blocos ocupados. Lambo Chiungo
  • 15.
  • 16.
    Mecanismos de Particionamento Existem várias formas de particionar o espaço memória, que dependem sobretudo do tipo de Unidade de Gestão Memória utilizada.  O mecanismo mais simples consiste na utilização de dois registos base e limite, que só permitem alocação contínua de toda a memória de um processo.  Com a evolução do hardware, mecanismos mais complexos têm sido desenvolvidos e integrados pelos SO ao longo dos tempos.  Utilização de múltiplos registos de relocação, permitindo distinguir várias zonas distintas no espaço de um processo.  Segmentação  Decomposição do espaço lógico e físico em inúmeras pequenas zonas independentes da natureza do seu conteúdo  Paginação Lambo Chiungo
  • 17.
    Alocação Memória emModo Contínuo  Como responder a um pedido de alocação de N bytes a partirde uma lista de blocos livres:  First-fit: alocar o primeiro bloco livre suficientemente grande para conter N bytes.  Best-fit: alocar o mais pequeno bloco que seja suficientemente grande para conter N bytes.  É preciso percorrer a lista toda, a menos que esteja ordenada por tamanhos.  Produz os melhores resultados pois provoca menos desperdícios.   Worst-fit: alocar o maior bloco que seja suficientemente grande.  Necessita percorrer a lista toda. Lambo Chiungo
  • 18.
    Algoritmos de Alocaçãode Memória  Lambo Chiungo
  • 19.
  • 20.
  • 21.
  • 22.
    Swapping  Um processopode ser temporariamente e parcialmente retirado da memoria central caso haja falta de espaço para manter todos os processo, e mais tarde de novo carregado para continuar a execução.  A unidade de swapping é geralmente o segmento.  Memória Secundária (Backing Store) – espaço em disco rápido suficientemente grande para guardar cópias das imagens memória de todos os processos residentes; deve permitir acesso rápido e directo a essas imagens.  Roll out, roll in – variante do swapping utilizada para algoritmos de scheduling baseados na prioridade: os processos com baixa prioridade podem ser retirados da memória para deixar espaço a processos com maior prioridade. Lambo Chiungo
  • 23.
  • 24.
  • 25.
    Introdução  O sistemade ficheiros é a parte mais vísivel do sistema operativo.  Cria um recurso lógico a partir de recursos físicos através de uma interface coerente e simples, fácil de usar.  Mecanismo para armazenamento e acesso a dados e a programas.  Duas partes básicas: Ficheiros  Armazenamento de dados e de programas Directórios  Organização e informações sobre ficheiros Lambo Chiungo
  • 26.
    Ponto de vistado usuário  Cada usuário deve ser capaz de: Criar, apagar, ler e alterar ficheiros. Controlar as permissões de acesso a seus ficheiros. Nomear ficheiros de forma simbólica. Estruturar os ficheiros de forma a adequá-los a suas necessidades específicas.  Criação de diretórios e subdiretórios. Realizar back-ups e recuperar ficheiros em caso de problemas. Lambo Chiungo
  • 27.
    Ponto de vistado sistema  O sistema operativo deve ser capaz: Descrever a localização de todos os ficheiros e de seus atributos.  Via directório. Gerenciar espaço físico do disco.  Alocar blocos livres a ficheiros em criação/expansão.  Liberar blocos de ficheiros removidos.  Mecanismos para localizar eficientemente blocos (setores) que compõem ficheiros. Lambo Chiungo
  • 28.
    Conceitos básicos  Ficheiros Recipientesque contêm dados  Directórios Conjuntos de referências a ficheiros  Partição Abstração que permite a partir do disco físico criar discos lógicos Lambo Chiungo
  • 29.
    Conceito de Ficheiro Informação pode ser armazenada em diferentes tipos de mídia.  O sistema operativo deve oferecer uma visão uniforme da informação independente do dispositivo físico de armazenamento  Visão lógica é o ficheiro.  Ficheiros são mapeados para dispositivos físicos.  Ficheiros possuem:  Nome  Atributos  Estrutura interna  Tipo  Método de acesso  Operações Lambo Chiungo
  • 30.
    Nomes de Ficheiros O sistema de ficheiros define um espaço de nomes. Conjunto de regras e convenções para identificar simbolicamente um ficheiro.  Variam de sistema para sistema: Distinção entre letras maiúsculas e minúsculas. Obrigatoriedade ou não de uma extensão.  As vezes extensões são apenas convenções. Tamanho máximo de nome e da extensão (se houver). Lambo Chiungo
  • 31.
    Atributos de umFicheiro  Informações sobre ficheiros: Nome: informação simbólica empregada para referenciar o ficheiro. Tipo: binário, texto, executável, caracter, bloco. Localização: posição do ficheiro em um determinado dispositivo E/S. Tamanho: número de bytes que compõem o ficheiro. Proteção: controla acesso de leitura, escrita e execução ao ficheiro. Hora e data de criação, identificação do usuário: informações destinadas a proteção, segurança e monitoração.  Varia de sistema operativo a sistema operativo.  Atributos são mantidos em uma estrutura a parte. Directório Lambo Chiungo
  • 32.
    Estruturas de Ficheiros Sequência de bytes;  Sequência de registros;  Árvore. Lambo Chiungo
  • 33.
    Sequência de bytes Sistema operativo não “interpreta” o conteúdo do ficheiro. Enxerga apenas ‘bytes’  Interpretação é a nível do programa de usuário.  Vantagem: Flexibilidade. Lambo Chiungo
  • 34.
    Sequência de registros Ficheiro é “interpretado” como uma sequência de registros, isto é: Tamanho fixo; Estrutura interna.  Operações lêem/escrevem registros. Lambo Chiungo
  • 35.
    Árvore  Conjunto deregistros não necessariamente de mesmo tamanho. Possuem um campo de acesso (chave).  Comum em mainframes. Método ISAM (Indexed Sequential Access Method). Lambo Chiungo
  • 36.
    Operações Sobre Ficheiros Open - é a função que permite o mapeamento entre o nome de um ficheiro e o seu descritor interno (FCB= File Control Block).  Procura o nome do ficheiro num directório, acede ao seu FCB e traz o seu conteúdo para memória.  Valida as permissões de acesso do utilizador.  O sistema mantém uma tabela de ficheiros abertos, na qual são armazenados os respectivos FCBs.  Close - função inversa.  Liberta o FCB em memória e realiza a actualização dos seus atributos.  Create - cria um novo ficheiro, alocando uma nova entrada no catálogo  Write - transfere uma zona espaço do processo para dentro do ficheiro, realizando a alocação de espaço necessária à medida.  Read - função inversa.  Seek - permite posicionar o ponteiro de I/O em qualquer parte do conteúdo  do ficheiro.  Etc… Lambo Chiungo
  • 37.
    Operações sobre Directórios Lookup: procura de um ficheiro num directório, retorna um descriptor de ficheiro.  Create: Criação de um ficheiro.  Delete: remoção de um ficheiro.  List: listagem do conteúdo.  Traverse: atravessamento do directório na procura de um nó situado mais abaixo. Lambo Chiungo
  • 38.
    É o suficientepor hoje! Feliz Semana Santa Lambo Chiungo