Cache - Grupo Interdisciplinar de Redes de Computadores e

Propaganda
Nível 3 – Sistema Operacional
Universidade Tuiuti do Paraná – UTP
Faculdade de Ciências Exatas - FACET
Tecnologia de Análise e Desenvolvimento de Sistemas
Organização de Computadores
Prof. André Luiz
1
Nível 3 – Sistema Operacional
O sistema operacional implementa uma série de novas instruções e
características, acima e além do que o nível ISA fornece. Determinar o
método de alocação de recursos, escalonamento e liberação dos recursos
de memória e processamento é um dos principais desafios deste nível.
Muitos são os desafios deste nível como por exemplo, fazer com que
vários processos sejam executados em paralelo, sendo executados, se
comunicando e sincronizando.
2
Nível 3 – Sistema Operacional
O sistema operacional é uma camada de software que opera entre
o hardware e os programas aplicativos voltados ao usuário final.
O sistema operacional é uma estrutura de software ampla, muitas vezes
complexa, que incorpora aspectos de baixo nível (como drivers de
dispositivos e gerência de memória física) e de alto nível
(como programas utilitários e a própria interface gráfica).
3
Nível 3 – Sistema Operacional
Gerência de Recursos
Os programas aplicativos usam o hardware para atingir seus
objetivos: ler e armazenar dados, editar e imprimir documentos,
navegar na Internet, tocar música, etc. Em um sistema com várias
atividades simultâneas, podem surgir conflitos no uso do hardware,
quando dois ou mais aplicativos precisam dos mesmos recursos para
poder executar. Cabe ao sistema operacional definir políticas para
gerenciar o uso dos recursos de hardware pelos aplicativos, e resolver
eventuais disputas e conflitos.
4
Nível 3 – Sistema Operacional
Gerência de Recursos
• Escalonamento de processos;
• Gerenciamento de usuários;
• Gerenciamento de memória;
• Gerenciamento de arquivos;
• Gerenciamento de dispositivos (E/S);
• Suporte a rede;
5
Nível 3 – Sistema Operacional
Estrutura
Um sistema operacional não é um bloco único e fechado de
software executando sobre o hardware.
• Núcleo (Kernel);
• Drivers (Módulos);
• Código de inicialização;
• Programas e utilitários;
• etc...
6
Nível 3 – Sistema Operacional
Memória
É um dispositivo que tem capacidade de adquirir (aquisição),
armazenar (consolidação) e recuperar informações.
Características das memórias:
• Capacidade de armazenamento
• Velocidade de acesso
• Taxa de transferência
• Volatibilidade
• Formato
7
Nível 3 – Sistema Operacional
O problema básico para o gerenciamento de memória é que
os programas atuais são muito grandes para rodarem,
completamente, na memória cache. O gerenciador de
memória deve ser capaz de controlar parte da memória está
em uso (e quais não estão), alocar memória para processos
quando eles necessitam e desalocar quando eles terminam
e, principalmente, gerenciar a troca entre a memória
principal e o disco, quando a memória principal é muito
pequena para armazenar todos os processos.
8
Nível 3 – Sistema Operacional
Memória lógica
É manipulada pelos programas, é visivel pelos processos
que o S.O. está executando. É dividida em partes do mesmo
tamanho chamadas páginas.
Memória física
É a memória física, implementada pelos circuitos
integrados. É nela que os dados vão realmente residir, é
dividida em blocos.
A tradução de endereços lógicos em endereços físicos é realizado por
uma unidade de Nível 3 – Sistema Operacional chamada MMU.
Memory Management Unit
9
Nível 3 – Sistema Operacional
Para que um programa seja executado ele precisa ser
transformado em processo(s), assim é necessário alocar o
descritor de processos, alocar espaço na memória para o
código, os dados, a pilha (HEAP - área onde se localiza as
variáveis dinâmicas, e o STACK - endereços de retorno de
chamadas e parâmetros de funções).
10
Nível 3 – Sistema Operacional
Subsistema de Memória Cache
Caches são memórias muito pequenas e rápidas localizadas
próximas ao processador (cache de memória), em
organização de computadores se estuda como são
organizadas e implementadas. Devendo ser necessário
determinar quanta memória é necessária para uma cache de
um dado tamanho e organização.
11
Nível 3 – Sistema Operacional
Subsistema de Memória Cache
Uma vez que um dado requisitado seja encontrado na matriz
de etiquetas da cache significa que houve acerto na
organização de utilização da cache (hit cache), reduzindo o
tempo de acesso global.
12
Nível 3 – Sistema Operacional
Caches de dados e de Instruções
Arquitetura de Harvard
No cache as instruções e dados são armazenados em
caches distintas para aumentar o nível de acerto. o cache L1
de instruções, que é usado para armazenar instruções que
serão executadas pelo o processador; e o cache L1 de dados,
que é usado para armazenar dados que serão escritos de
volta na memória.
13
Nível 3 – Sistema Operacional
Caches de dados e de Instruções
Arquitetura de Harvard
14
Nível 3 – Sistema Operacional
Subsistema de Memória Cache
Características da cache:
* Capacidade
* Comprimento da linha
* Associatividade
* Política de substituição: write-black ou write-through
15
Nível 3 – Sistema Operacional
Subsistema de Memória Cache
Comprimento da Linha
O comprimento da linha de uma cache é o tamanho do
seu bloco. Exemplo:
Quando uma cache com linhas de 32 bytes tem uma falta de
cache, ela traz para dentro de si um bloco de 32 bytes de
dados contendo o endereço de falta, descartando um bloco
antigo para abrir espaço.
16
Nível 3 – Sistema Operacional
Subsistema de Memória Cache
Propriedade de localidade
“Um programa acessa uma porção relativamente pequena
do espaço endereçável em um instante qualquer.”
17
Nível 3 – Sistema Operacional
Subsistema de Memória Cache
Localidade temporal
“Se um item é referenciado, ele tenderá a ser referenciado
novamente.” Um exemplo são os loops ( instruções e dados).
Localidade espacial
“Se um item é referenciado, itens cujos endereços são
próximos a este, tenderão a ser referenciados também.”
Um exemplo é o acesso a dados de um array.
18
Nível 3 – Sistema Operacional
Subsistema de Memória Cache
Associatividade
A associatividade refere-se ao tipo de mapeamento que é
utilizado para um endereço de memória dentro da cache,
podendo ser:
• Mapeamento Direto
• Mapeamento Completamente Associativo
• Mapeamento Grupo Associativo
19
Nível 3 – Sistema Operacional
20
Nível 3 – Sistema Operacional
Monoprogramação
A monoprogramação consiste em executar um processo
por vez na memória, dessa forma todos os recursos de
hardware são exclusivos para execução do mesmo.
21
Nível 3 – Sistema Operacional
Multiprogramação com partições fixas
Aumenta a utilização da CPU, a multiprogramação permite que
enquanto um processo é bloqueado esperando a E/S acabar, outro
pode utilizar a CPU, melhorando a utilização da CPU e assim evitando
disperdiçios de ciclos de processamento. Na multiprogramação a
memória é dividida em N partes, normalmente quando o sistema é
iniciado.
22
Nível 3 – Sistema Operacional
Multiprogramação com partições fixas
23
Nível 3 – Sistema Operacional
Tamanho da página e fragmentação
Os programas são colocados em filas de entrada associadas à
menor partição capaz de armazená-lo, por usar partições de tamanho
fixo, todos o restante de espaço de memória não utilizado pelo Job
será perdido, tal desperdício é chamado de Fragmentação Interna.
24
Nível 3 – Sistema Operacional
Tamanho da página e fragmentação
Outro tipo de fragmentação existente é a Fragmentação Externa
que acontece na seguinte ocasião: imagine que exista duas partições
livres, uma de 50 e outra de 80 kbytes, nesse instante é criado um
processo de 90 Kbytes que não poderá ser carregado em memória
pela forma como ela é gerenciada, sendo assim acontece uma
fragmentação externa para que processo possa "interagir" com a
memória.
25
Nível 3 – Sistema Operacional
Segmentação
A segmentação parte do principio que um software é dividido em
módulos, funções e objetos, onde todos eles podem ser considerados
segmentos. Dependendo da granularidade o segmento pode ser
compartilhado para aproveitamento de recurso, como uma função
que é executada em diversas partes do programa.
Esse método garante economia de memória, porém sofre de
fragmentação externa já que o segmento precisa de uma área
contigua de memória para alocar recursos.
26
Nível 3 – Sistema Operacional
Segmentação
27
Nível 3 – Sistema Operacional
Algoritmos para escolha das partições de um segmentação:
• Função para determinar em qual partição livre um programa será carregado
para execução.
• Função de evitar, ou diminuir, o problema da fragmentação antes que ele
ocorra.
• O tamanho do programa é o fator mais importante para a adoção da melhor
estratégia.
28
Nível 3 – Sistema Operacional
Best-fit / Melhor ajuste
• Escolhe a melhor partição, ou seja, aquela que o programa deixa o
menor espaço sem utilização.
• Lista de áreas livres alocada por tamanho, diminuindo o tempo de
busca
• Desvantagem de deixar pequenas áreas não contíguas, aumentando
o problema da fragmentação.
29
Nível 3 – Sistema Operacional
First-fit / Primeiro ajuste
• Escolhe a primeira partição livre de tamanho suficiente
para carregar o programa.
• Lista de áreas livres ordenada por endereços crescentemente.
• Grande chance de se obter uma grande partição livre nos
endereços de memórias mais altos.
• Mais rápida e consome menos recursos do sistema.
30
Nível 3 – Sistema Operacional
Worst-fit / Pior ajuste
• Escolhe a pior partição, ou seja, aquela que o programa deixa o
maior espaço sem utilização.
• Diminui o problema de fragmentação, deixando espaços livres
maiores que permitem a um maior número de programas utilizar a
memória.
31
Atribuição-Compartilhamento pela mesma licença 2.5
(http://creativecommons.org/licenses/by-sa/2.5/deed.pt)
Você pode:
●
copiar, distribuir, exibir e executar a obra
●
criar obras derivadas
●
fazer uso comercial da obra
Sob as seguintes condições:
Atribuição. Você deve dar crédito ao autor original, da forma especificada pelo autor ou
licenciante.
Compartilhamento pela mesma Licença. Se você alterar, transformar, ou criar outra
obra com base nesta, você somente poderá distribuir a obra resultante sob uma licença
idêntica a esta.
●
●
Para cada novo uso ou distribuição, você deve deixar claro para outros os termos da licença desta
obra.
Qualquer uma destas condições podem ser renunciadas, desde que Você obtenha permissão do
autor.
Qualquer direito de uso legítimo (ou "fair use") concedido por lei, ou qualquer outro direito protegido pela
legislação local, não são em hipótese alguma afetados pelo disposto acima.
Este é um sumário para leigos da Licença Jurídica
(na íntegra: http://creativecommons.org/licenses/by-sa/2.5/br/legalcode).
Termo de exoneração de responsabilidade:
http://creativecommons.org/licenses/disclaimer-popup?lang=pt
Download