Escolar Documentos
Profissional Documentos
Cultura Documentos
br
Sistemas Operacionais
Organização e Arquitetura
(para concursandos da ÁREA de TI)
TI
Capítulo 1
Conceitos Básicos
Histórico
Arquiteturas
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Fun ções b
Funções ásicas: gerenciar recursos
básicas: 3
usuários
programadores programas,
e analistas sistemas e
aplicativos
Usuários
Sistema Operacional
memória discos
Hardware
fitas
UCP
impressoras monitores
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Fun ções b
Funções ásicas: computador em camadas
básicas: 4
Aplicativos
Utilitários
Sistema Operacional
Linguagem de Máquina
Microprogramação
Circuitos Eletrônicos
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Hist órico
Histórico 5
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Taxonomia de hardware [[Flynn
Flynn 1972] 6
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Sistemas Operacionais: tipos de processamento 7
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Monoprograma ção x Multiprograma
Monoprogramação ção
Multiprogramação 8
programa/ programa/
tarefa UCP tarefa
UCP
programa/
tarefa
Memória Dispositivos
Principal de E/ S
Memória Dispositivos
Principal de E/ S
programa/ programa/
tarefa tarefa
programa/
tarefa
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Acoplamento 9
Memória
UCP Principal UCP
Forte
Dispositivos Dispositivos
de E/ S de E/ S
link de comunicação
UCP UCP
Fraco
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Classifica ção dos SO
Classificação 10
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Ambientes de SO 11
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Sistemas fechados x Sistemas abertos 12
•Windows
–Código proprietário (fechado)
–GUI - cada vez mais oferecendo CLI
–Pago (licenciamento)
•Linux
–Código disponibilizado livremente (aberto)
–CLI - cada vez mais oferecendo GUI
–Gratuito
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Estrutura llógica
ógica de um SO 14
Usuário
Shell
Aplicação (interpretador de comandos)
(não faz parte do kernel)
Modo usuário
System Calls (API´s)
Sistema Operacional
Núcleo* (kernel)
Drivers
Hardware
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Arquiteturas de SO 16
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Arquitetura monolítica
monolítica 17
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Arquitetura monolítica
monolítica 18
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Arquitetura em camadas 19
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Arquitetura em camadas 20
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Arquitetura de micron úcleo (cliente
micronúcleo -servidor)
(cliente-servidor) 21
Gerenciador de
Gerenciador de Impressão
Memória
professorbelfort@gmail.com
www.cliqueapostilas.com.br
M áquina Virtual
Máquina 23
VM 1
VM 2
VM n
Ap1 Ap2 Apn
Hardware
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Exokernel 24
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Tipo de kernel 25
•Linux: monolítico-modular
•Windows: microkernel-monolítico
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Linguagens 26
professorbelfort@gmail.com
www.cliqueapostilas.com.br
27
Cria ção do programa
Criação
Linguagem de alto nível (3ª e 4ª gerações)
•Compilador
–Análise Léxica
–Análise Sintática
–Análise Semântica
–Código intermediário
–Otimização: código-objeto não-executável
•Ligação (linker)
–Integração de várias bibliotecas (módulos pré-compilados)
–Gera uma grande unidade executável
•Carregamento
Linguagem de baixo nível (Assembly)
•Montador (Assembler): código-objeto não-executável
•Ligação (linker)
–Integração de várias bibliotecas (módulos pré-compilados)
–Gera uma grande unidade executável
•Carregamento professorbelfort@gmail.com
API ((Application
Application Programming Interface) www.cliqueapostilas.com.br
28
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Mecanismos de proteção de um SI
proteção 29
•Processador
–Modos: usuário x kernel (real x protegido)
–Instrução privilegiada
•Memória
–Registrador de limite superior
–Registrador de limite inferior
•Execução
–Interrupção e exceção
–Temporizador
•Disco
–Permissão
–Criptografia
•Rede
–Autenticação
–Firewall
•Princípio do privilégio mínimo
–UAC (Windows Vista)
–su (Unix)
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Capítulo 2
Processos e Trheads
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Processo 31
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Contextos de um processo (3 partes) 32
prioridade de
execução registrador PC
data/ hora
de criação Contexto de Contexto de
Software Hardware
tempo de registrador SP
processador
quotas
Programa registrador
privilégios de status
Espaço de
Endereçamento
endereços de memória
principal alocados Espaço na RAM
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Ciclo de vida do processo (diagrama de estados) 33
Estado de Execução
Início
c
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Gerenciamento de processos 36
Ponteiros
Estado do processo
Nome do processo
Prioridade do processo
Registradores
Limites de memória
Lista de arquivos abertos
Pai
Filhos
......
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Chaveamento de contexto (alternância de processos) 39
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Chaveamento de contexto (alternância de processos) 40
Sistema Operacional
Processo A Processo B
executando
Salva registradores do
Processo A
Carrega registradores do
Processo B
Sobrecarga executando
Salva registradores do
Processo B
Carrega registradores do
Processo A
executando
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Gerenciamento de filas 41
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Interrupção, Exce
Interrupção, ção e Sinal
Exceção 42
HW
SW
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Sinal (ciência da computa ção): leitura recomendada
computação): 43
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Atendimento à interrup ção
interrupção 44
VETOR DE INTERRUPÇÃO:
É uma tabela, na RAM, que
contém todas as rotinas de
tratamento de interrupção
(número da interrupção x
endereço da rotina de trata-
Para alguns autores: interrupção de hardware e interrupção de software (trap) mento).
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Comunica ção entre processos (IPC)
Comunicação 45
saída do
Processo A
entrada do saída do
Processo A Processo B
entrada do
Processo B
Processo A Processo B
ls | more
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Threads (processos leves) 47
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Threads (processos leves) 48
Leia: http://msdn.microsoft.com/pt-br/library/3dasc8as.aspx
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Threads de um processo 49
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Aplica ções ttípicas
Aplicações ípicas de threads 50
•Servidor WEB
–Cada solicitação de cliente: ativa uma thread (operária)
–Processo pai
• Atende às novas solicitações que chegam
• Despacham threads operárias para execução
•Servidor de BD
–Cada query de usuário: ativa uma thread (operária)
–Processo pai: igual ao exemplo anterior
•Processador de texto
–Uma rotina básica de captura de teclas (principal)
–Com menor prioridade, pode implementar threads para:
• Formatar o texto
• Fazer revisão ortográfica
• Fazer revisão gramatical
• Salvar automaticamente o texto (a cada 15 minutos)
•Paralelismo: visa aumentar o desempenho (processo e SO)
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Motiva ções para usar threads
Motivações 51
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Tipos de thread 53
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Threads de usu ário (não suportadas pelo n
usuário úcleo)
núcleo) 54
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Threads de n úcleo (suportadas pelo n
núcleo úcleo)
núcleo) 55
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Threads híbridos
híbridos 56
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Capítulo 3
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Execu ção simultânea de processos
Execução 58
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Programa ção concorrente
Programação 59
•Vantagens:
–Maior eficiência em sistemas multiprocessados
–Menor tempo de resposta nos programas interativos
–Transição mais suave e harmônica entre processos
–Melhores soluções para problemas inerentemente paralelos
–Otimização do escalonamento baseado em prioridade
Program Expressao;
Var X, Temp1, Temp2, Temp3: Real;
Begin
ParBegin
Temp1:= SQRT(1024);
Temp2:= 35.4 * 0.23;
Temp3:= 302 / 7;
ParEnd;
X:= Temp1 + Temp2 + Temp3;
WriteLn(“O valor de x é: ”, X);
End.
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Programa ção concorrente:condi
Programação ções de disputa
concorrente:condições 61
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Solu ções para região cr
Soluções ítica
crítica 64
•Soluções de hardware
–Desabilitar interrupções (mascaramento)
–Instrução test-and-set (atomicidade): “variável global” na RAM
•Soluções de software
–Algoritmo de Dekker
–Algoritmo de Peterson
–Algoritmo de Lamport
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Algoritmo de Peterson (espera ocupada) 65
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Sincroniza ção pelo SO
Sincronização 66
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Problema com uso de semáforos
semáforos 69
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Monitores 70
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Monitores 71
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Deadlock (impasse) 72
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Condições necess
Condições árias para deadlock (simultâneas)
necessárias 73
•Exclusão mútua
–Recurso está alocado a um único processo ou
–Está disponível
•Posse e espera por recurso
–Processo retém um recurso (posse) e
–Pode requisitar outro recurso (espera)
•Não-preempção
–Processo obtém um recurso (e só ele pode liberá-lo)
–SO não tem poder de liberá-lo (quando necessário)
• Não-preemptíveis: impressora, gravador de CD
• Preemptíveis: memória RAM, disco rígido
•Espera circular (gera um grafo cíclico de 2 ou mais processos)
–Processo A espera recurso 2 ora alocado ao Processo B e
–Processo B espera recurso 1 ora alocado ao Processo A
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Deadlock 74
Grafo cíclico
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Solu ções para deadlock
Soluções 75
•Prevenção
–Negar qualquer uma das 4 condições necessárias
•Anulação Dinâmica
–Alocar recursos criteriosamente
–Algoritmo do banqueiro (de Dijkstra)
•Detecção e recuperação: muito caro
–Deixar ocorrer, detecta e elimina:
• Reverter o estado do processo (rollback)
• Tomar o recurso de um dos processos (preempção)
• Encerrar um dos processos envolvidos
•Ignorar (Algoritmo do Avestruz)
–Muitos SO modernos ignoram o deadlock (evento raro)
• Windows
• Unix like (Linux)
–Assim: assume-se a possibilidade de reiniciar o sistema
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Algoritmo do Banqueiro (de Dijkstra
Dijkstra)) 76
professorbelfort@gmail.com
www.cliqueapostilas.com.br
77
Adiamento indefinido ((starvation
starvation = inani ção)
inanição)
•É uma situação, também, conhecida como:
–Postergação indefinida
–Espera indefinida
–Inanição ou
–Starvation
•Processo nunca consegue:
–Executar sua região crítica, ou seja
–Acessar o recurso compartilhado
•Por que isso ocorre?
–Quando o recurso desejado é liberado
–SO sempre escalona outro processo para o recurso
•Eliminação: técnica de envelhecimento: aging
–Elevando a prioridade do processo gradativamente
–Enquanto ele espera por um recurso
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Capítulo 4
Gerenciamento de processos
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Políticas de escalonamento ((agendamento)
Políticas agendamento) 79
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Escalonamento 81
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Políticas de escalonamento ((agendamento)
Políticas agendamento) 82
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Políticas de escalonamento com prioridades
Políticas 83
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Políticas de escalonamento: crit
Políticas érios
critérios 84
professorbelfort@gmail.com
www.cliqueapostilas.com.br
FIFO: First In First Out ((First
First Come First Served
Served)) 85
professorbelfort@gmail.com
www.cliqueapostilas.com.br
SPF: Shortest Process First ((Shortest
Shortest Job First
First)) 86
professorbelfort@gmail.com
www.cliqueapostilas.com.br
SRT: Shortest Remaining Time 87
professorbelfort@gmail.com
www.cliqueapostilas.com.br
RR: Round Robin (alternância circular) 88
professorbelfort@gmail.com
www.cliqueapostilas.com.br
por Prioridades (Filas de Prioridades) 89
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Filas M últiplas ((multinível
Múltiplas multinível com feedback) 90
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Fra ção Justa ((Fair-share)
Fração Fair-share) 91
professorbelfort@gmail.com
www.cliqueapostilas.com.br
HRRN: Highest Response Rate Next (Próxima
(Próxima taxa
taxa de
de resposta
resposta mais
mais alta)
alta)
93
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Outras pol íticas de escalonamento
políticas 94
•Escalonamento Garantido
–Cumpre promessas feitas a usuários (% alocação de CPU)
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Escalonamento de Tempo Real 95
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Resumo: Políticas de Escalonamento
Políticas 96
Não-preemptivos Preemptivos
FIFO (FCFS) SRT
SPF (SJF) RR
HRRN por Prioridades
Filas Múltiplas
Fração Justa
Tempo Real
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Capítulo 5
Gerenciamento de Memória
(métodos primitivos)
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Mem ória prim
Memória ária x Mem
primária ória secund
Memória ária
secundária 98
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Gerenciador de mem ória
memória 99
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Estrat égias de gerenciamento de mem
Estratégias ória
memória 100
Considere:
•Agora: programa todo carregado na RAM em espaço contíguo
•Depois: essas limitações serão relaxadas (memória virtual)
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Política de gerenciamento de mem
Política ória
memória 101
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Formas de aloca ção ((particionamento
alocação particionamento da RAM) 102
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Aloca ção cont
Alocação ígua simples ((monoprogramação)
contígua monoprogramação) 103
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Aloca ção cont
Alocação ígua simples ((monoprogramação)
contígua monoprogramação) 104
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Overlay (sobreposição)
(sobreposição) 105
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Overlay (sobreposição)
(sobreposição) 106
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Aloca ção Particionada Est
Alocação ática
Estática 107
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Aloca ção Particionada Est
Alocação ática Absoluta
Estática 108
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Aloca ção Particionada Est
Alocação ática Reloc
Estática ável
Relocável 109
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Aloca ção Particionada Est
Alocação ática
Estática 110
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Aloca ção Particionada Dinâmica
Alocação 111
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Aloca ção Particionada Dinâmica
Alocação 112
TEL:
TEL: Tabela
Tabela de
de Espaços
Espaços Livres
Livres
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Fragmenta ção: interna x externa
Fragmentação: 114
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Swapping (permuta) 115
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Swapping (permuta) 116
Swap out:
•Interrompe processo e armazena temporariamente em disco
•Sobra mais espaço na RAM e a degradação geral diminui
•Escolhe processo com menor chance de execução imediata
–Para evitar novo swapping em seguida
–Para dar preferência a processos no estado de espera
Swap in:
•Depois, processo interrompido é trazido de volta
•Poderá executar com um melhor desempenho
•É necessário um loader que implemente relocação dinâmica
–Pois, o processo pode voltar para uma partição diferente
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Reentrância (c ódigo reentrante)
(código 117
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Reentrância (c ódigo reentrante)
(código 118
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Capítulo 6
Memória Virtual
professorbelfort@gmail.com
Mem ória Virtual (pagina
Memória ção): mapeamento EV
(paginação): ÎER
EVÎER
www.cliqueapostilas.com.br
120
Endereço de um bloco
Endereço de um bloco
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Mem ória Virtual
Memória 123
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Mem ória Virtual
Memória 124
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Mapeamento: consequências da virtualiza ção
virtualização 126
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Tabela de mapeamento (Tabela de Páginas = TP)
Páginas 127
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Mapeamento: forma de endereçamento
endereçamento 128
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Mapeamento: forma de endere çamento (REM = 32b)
endereçamento 129
EV
ER
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Tabela de Páginas multin
Páginas íveis (ou hier
multiníveis árquica)
hierárquica) 132
0 End início da TP 0
End início da TP 1
1023
Cada TP: 10b = 210 ETP
10b = 210 ETD
professorbelfort@gmail.com
Buffer de Tradu ção Lateral (TLB
Tradução (TLB -- Translation
Translation Lookaside
www.cliqueapostilas.com.br
Lookaside Buffer)
Buffer)
135
BV = bit de validade
professorbelfort@gmail.com
Exerc ício
Exercício www.cliqueapostilas.com.br
136
professorbelfort@gmail.com
Mem ória virtual por Segmenta
Memória ção
Segmentação www.cliqueapostilas.com.br
137
professorbelfort@gmail.com
Pagina ção x Segmenta
Paginação ção
Segmentação www.cliqueapostilas.com.br
139
professorbelfort@gmail.com
Mem ória virtual por segmenta
Memória ção paginada
segmentação www.cliqueapostilas.com.br
141
professorbelfort@gmail.com
Swapping em memória virtual
memória www.cliqueapostilas.com.br
143
professorbelfort@gmail.com
Compartilhamento (e prote ção)
proteção) www.cliqueapostilas.com.br
144
professorbelfort@gmail.com
Princ ípio da localidade
Princípio www.cliqueapostilas.com.br
145
professorbelfort@gmail.com
Modos de pagina ção (2 modos)
paginação www.cliqueapostilas.com.br
146
professorbelfort@gmail.com
Substituição de p
Substituição áginas
páginas www.cliqueapostilas.com.br
147
professorbelfort@gmail.com
Ótima)
OPT ((Ótima) www.cliqueapostilas.com.br
148
professorbelfort@gmail.com
RAND (Aleat ória)
(Aleatória) www.cliqueapostilas.com.br
149
professorbelfort@gmail.com
FIFO (First In First Out) www.cliqueapostilas.com.br
150
professorbelfort@gmail.com
LRU (Least Recently Used): Menos
Menos Recentemente
Recentemente Usada
Usada
www.cliqueapostilas.com.br
151
professorbelfort@gmail.com
LFU (Least Frequently Used): Menos
Menos Frequentemente
www.cliqueapostilas.com.br
Usada 152
Frequentemente Usada
•Substitui a página que foi menos referenciada
•Baseada na intensidade de uso das páginas
•Vantagem:
– Maior eficiência, comparada com RAND e FIFO
•Desvantagem:
–Processos recém referenciados são prejudicados
–Logo, desconsidera o princípio da localidade
–Manutenção do contador de uso das páginas gera sobrecarga
•Mnemônico:
– Descarta a página menos popular (usada menos vezes)
– Mesmo que seja a mais quente (usada há menos tempo)
professorbelfort@gmail.com
NRU (Not Recently Used): Não
Não Recentemente
Recentemente Usada
Usada
www.cliqueapostilas.com.br
153
•Variante da LRU
•Baseada em dois parâmetros associados à pagina (bits):
–Bit de referência (R) (1 ao carregar; periodicamente zerado)
–Bit de modificação (M)
•Cada par ordenado corresponde a (R,M)
•Substitui páginas na seguinte ordem: [(0,0);(0,1);(1,0);(1,1)]
•Vantagem:
–Maior eficiência, comparada à LRU e LFU
–Considera mais de um fator
–Gera pouca sobrecarga
•Desvantagem:
–Baixa eficiência, comparada a algoritmos mais avançados
•Mnemônico:
– Descarta: páginas geladas, depois as frias, depois as mornas
– Repare que o bit R tem maior prioridade que o bit M
professorbelfort@gmail.com
Segunda Chance www.cliqueapostilas.com.br
154
•Variante do FIFO
•Baseado no valor do bit de referência da página (R)
•Consulta R da página mais antiga (a primeira da fila)
–Se R = 1, R := 0 e a página vai para o final da fila (tempo := 0)
–Se R = 0, a página será substituída
•Elege a página mais antiga não referenciada
•Se todas as páginas foram referenciadas = FIFO puro
•Vantagem:
–Evita substituir uma página intensamente usada
•Desvantagem:
–Reordenação constante da lista, gera sobrecarga
professorbelfort@gmail.com
Rel ógio (ou FIFO circular)
Relógio www.cliqueapostilas.com.br
155
professorbelfort@gmail.com
Conjunto de Trabalho (Working Set) www.cliqueapostilas.com.br
156
professorbelfort@gmail.com
WSClock www.cliqueapostilas.com.br
157
professorbelfort@gmail.com
P ágina long
Página ínqua (baseada na teoria dos grafos)
longínqua www.cliqueapostilas.com.br
158
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Resumo dos algoritmos de substituição de páginas (Tanenbaum) 159
NRU
LRU
LFU
≈ LRU
professorbelfort@gmail.com
Políticas de aloca
Políticas ção e de substitui
alocação ção do SO
substituição www.cliqueapostilas.com.br
160
Alocação de páginas
•Fixa:
–Número máximo de páginas por um processo é fixo
–Pode ser útil ou não dependendo do processo
•Variável:
–Número máximo de páginas por um processo é variável
–Função da sua taxa de paginação e ocupação na RAM
• Quantidade de page fault na unidade de tempo
Substituição de páginas
•Global (atende apenas a alocação variável)
–Substitui páginas de qualquer processo
–Tende a ignorar prioridades dos processos
•Local (atende as alocações fixa e variável)
–Substitui apenas páginas do mesmo processo
–Ajusta alocação de memória pela importância do processo
professorbelfort@gmail.com
Working Set (Conjunto de Trabalho) www.cliqueapostilas.com.br
161
professorbelfort@gmail.com
Working Set e pagina ção
paginação www.cliqueapostilas.com.br
162
professorbelfort@gmail.com
Exerc ício
Exercício www.cliqueapostilas.com.br
163
24 15 18 23 24 18 17 18 24 17 17 15
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Capítulo 7
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Discos rrígidos:
ígidos: estrutura 165
professorbelfort@gmail.com
www.cliqueapostilas.com.br
166
Disco rrígido
ígido de cabe çote m
cabeçote óvel: trilhas e setores
móvel:
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Discos rrígidos:
ígidos: tempos de atuação
atuação 167
•Tempos de acesso:
–RAM: uniforme em qualquer endereço
–HD: depende da posição do cabeçote de leitura/escrita
•HD: na operação de leitura/gravação, o cabeçote:
–1º Posiciona-se na trilha desejada (cilindro)
–2º Aguarda setor desejado passar por ele (giro do disco)
Assim:
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Discos rrígidos:
ígidos: escalonamento 168
professorbelfort@gmail.com
www.cliqueapostilas.com.br
FCFS (First Come First Served) (primeiro
(primeiro aa chegar
chegar éé atendido)
atendido)
169
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Movimentos do FCFS 170
professorbelfort@gmail.com
www.cliqueapostilas.com.br
SSTF (Shortest Seek Time First) (menor
(menor tempo
tempo de
de busca
busca primeiro)
primeiro)
171
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Movimentos do SSTF 172
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Scan (Varredura) ou Algoritmo do Elevador 173
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Movimentos do C -Scan
C-Scan 176
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Movimentos do Fscan (Freezing Scan) 178
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Movimentos do Scan N -fases
N-fases 180
37,
37,80
80
Fila de requisições: {33, 72, 47, 8, 99, 74, 52, 75}
•Atende nos dois sentidos, primeiros N pedidos da fila (em cada varredura)
•Vai aos batentes, mesmo quando não é necessário professorbelfort@gmail.com
www.cliqueapostilas.com.br
Look (olhar à frente) e C-Look (Look circular)
C-Look 181
Look
•Critério: semelhante a Scan (duplo sentido), porém:
–Não vai aos batentes, em cada direção, se não houver pedidos
–Elimina movimentos desnecessários até os cilindros extremos
•Melhora o desempenho
C-Look
•Critério: semelhante ao C-Scan (sentido único), porém:
–Não vai aos batentes, em cada direção, se não houver pedidos
–Elimina movimentos desnecessários até os cilindros extremos
•Melhora o desempenho
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Movimentos do Look e C -Look
C-Look 182
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Políticas de Cache
Políticas 183
Write-through (escrita-direta):
–Dados são gravados no cache e no disco, simultaneamente
•Pior desempenho
•Mais confiável
–Sem problemas de consistência em caso de queda do sistema
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Capítulo 8
Gerenciamento de Arquivos
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Opera ções com arquivos
Operações 185
•Arquivo:
–Conjunto de dados tratado como uma unidade pelo SO
–Pode ser executável (programa) ou de dados
•SO: realiza diversas operações com arquivos como
–Criar/excluir
–Abrir/fechar
–Copiar/mover
–Listar/renomear
•SO trata estruturas internas dos arquivos (registros):
–Ler para memória/gravar em disco
–Atualizar/inserir/apagar
•Para o SO, arquivos possuem atributos como
–Nome, extensão, local, caminho (path)
–Tamanho (bytes), tipo, permissões
–Datas de criação e última modificação
•SO: basta conhecer a estrutura interna dos programas
•Aplicativos: orientam o tratamento dos arquivos de dados
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Sistema de arquivos 186
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Metadados (dados sobre dados) 187
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Diret órios (também chamados de pastas no Windows)
Diretórios 188
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Técnica de Montagem
Técnica 190
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Arquivos: m étodos de acesso
métodos 192
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Aloca ção cont
Alocação ígua
contígua 194
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Aloca ção cont
Alocação ígua
contígua 195
professorbelfort@gmail.com
www.cliqueapostilas.com.br
ANC por Lista Encadeada 196
professorbelfort@gmail.com
www.cliqueapostilas.com.br
ANC por Lista Encadeada 197
professorbelfort@gmail.com
www.cliqueapostilas.com.br
ANC por Lista Encadeada usando Tabela na Memória 198
professorbelfort@gmail.com
www.cliqueapostilas.com.br
ANC por Lista Encadeada usando Tabela na Memória 199
16
professorbelfort@gmail.com
www.cliqueapostilas.com.br
ANC Indexada (i -Node)
(i-Node) 200
professorbelfort@gmail.com
www.cliqueapostilas.com.br
ANC Indexada (i -Node)
(i-Node) 201
professorbelfort@gmail.com
www.cliqueapostilas.com.br
II-node
-node 202
Bloco 1 IO 2 IO 3 IO 4 IO
Tamanho total do arquivo
Apontador direto dado 10*4KB = 40KB
Apontador indireto A1x dado 1024 x 4KB = 4MB
Apontador 2x indireto A1x A2x dado 1024 x 1024 x 4KB = 4GB
Apontador 3x indireto A1x A2x A3x dado 1024 x 1024 x 1024 x 4KB = 4TB
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Gerenciamento de espa ço livre
espaço 203
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Lista de livres e mapa de bits 204
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Controle de acesso aos dados (em disco) 205
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Configura ção de permissões
Configuração 206
Discricionário
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Prote ção e integridade
Proteção 207
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Sistemas de arquivos do Windows 208
blocos
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Sistemas de arquivos do Linux 209
professorbelfort@gmail.com
www.cliqueapostilas.com.br
210
ooooo
b
b
b
b
OOOO
Críticas e sugestões: professorbelfort@gmail.com
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Leitura recomendada
professorbelfort@gmail.com
www.cliqueapostilas.com.br
RAID 212
professorbelfort@gmail.com
www.cliqueapostilas.com.br
RAID 213
professorbelfort@gmail.com
www.cliqueapostilas.com.br
RAID - funcionamento 214
professorbelfort@gmail.com
www.cliqueapostilas.com.br
RAID 0 215
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Distribui ção RAID 0
Distribuição 216
professorbelfort@gmail.com
www.cliqueapostilas.com.br
RAID 1 217
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Distribui ção RAID 1
Distribuição 218
professorbelfort@gmail.com
www.cliqueapostilas.com.br
RAID 5 219
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Distribui ção RAID 5
Distribuição 220
professorbelfort@gmail.com
www.cliqueapostilas.com.br
RAID 10 e RAID 01 221
RAID 2, 3 e 4
•Previstos no projeto inicial
•Menos evoluídos do que o RAID 5
–RAID 2: paridade Hamming* no nível de bit (ECC) (n discos)
discos
–RAID 3: paridade XOR no nível de bit (disco exclusivo)
exclusivo
–RAID 4: paridade XOR no nível de bloco (disco exclusivo)
exclusivo
•Raramente implementados na prática
RAID 6
•Caso especial de RAID 5
•Não foi previsto no projeto inicial
•Paridade:
–Armazenada duas vezes
–Distribuída pelos discos de dados (discos não-dedicados)
•Torna admissível parada de até 2 discos ao mesmo tempo
•Pouco implementado na prática
*Código de Hamming: vide Wikipedia (teoria e exercícios)
professorbelfort@gmail.com
www.cliqueapostilas.com.br
223
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Disco rrígido:
ígido: particionamento e formata ção
formatação 224
professorbelfort@gmail.com
www.cliqueapostilas.com.br
SPTF e SATF 228
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Movimentos do SPTF e SATF 229
Processamento Paralelo
professorbelfort@gmail.com
www.cliqueapostilas.com.br
231
Processamento paralelo (MIMD)
•Necessidade contínua de computadores mais rápidos
•Saída: computadores paralelos (diferença é a latência)
– Multiprocessadores de memória compartilhada
– Multicomputadores com troca de mensagens
– Sistemas distribuídos de longa distância (computadores completos)
(alta velocidade)
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Computa ção em cluster
Computação 232
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Cluster (identifica ção na rede)
(identificação 233
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Tipos de cluster 234
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Cluster de Alta Disponibilidade (HA) 235
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Implementa ção de Cluster HA
Implementação 237
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Cluster de Balanceamento de Carga (LB) 238
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Implementa ção de Cluster LB
Implementação 239
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Implementa ção de Cluster Beowulf
Implementação 242
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Cluster no Windows 243
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Computa ção em GRID
Computação 244
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Computa ção em GRID
Computação 245
http://arquivosweb.lncc.br/pdfs/relatorio-30-03.pdf
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Grid: organiza ção real x organiza
organização ção virtual
organização 246
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Diferen ças entre Cluster e Grid
Diferenças 247
professorbelfort@gmail.com
www.cliqueapostilas.com.br
Leitura adicional
professorbelfort@gmail.com
www.cliqueapostilas.com.br
249
Escalonamento Windows
O escalonador do Windows NT é preemptivo com prioridades, onde as prioridades são
organizadas em duas classes: tempo real e variável. Cada classe possui 16 níveis de prioridades,
sendo que as threads de tempo real têm precedência sobre as threads da classe variável. Todas
as threads prontas para executar são mantidas em estruturas de filas de acordo com as
prioridades em cada uma das classes. Cada fila é atendida por uma política de Round-Robin. A
atribuição de prioridades é diferente para cada uma das classes. As threads da classe de tempo
real possuem prioridade fixa determinada no momento da criação, enquanto que as threads da
classe variável tem prioridades dinâmicas. Assim quando uma thread da classe variável é
criada, recebe uma prioridade e é inserida sempre na fila dessa prioridade, já uma thread da
classe variável pode migrar entre as filas de prioridades. Na classe variável, a prioridade das
threads é formada por dois parâmetros, um vinculado a própria thread e o outro vinculado ao
processo a que ela pertence. Um objeto processo recebe na sua criação, uma prioridade que
varia de zero a quinze e cada thread recebe uma prioridade variando de duas unidades para
cima ou para baixo da prioridade do processo. O critério usado para variar a prioridade de uma
thread é o tempo de uso do processador. Se a thread é interrompida por usar todo oquantum de
tempo que lhe foi atribuído, o escalonador do Windows 2000 reduz sua prioridade, caso
contrário sua prioridade é aumentada.
O sistema de memória virtual do Windows NT é baseado em um espaço linear de 32
bits, o que fornece até 4 GB de memória virtual. Normalmente, esse espaço é dividido
igualmente entre o processo usuário (parte inferior) e o sistema operacional (parte superior),
mas há a opção de se atribuir 3 GB ao processo usuário e 1 GB ao sistema operacional.
Também é prevista a extensão VLM (Very Large Memory) para os processadores de
arquitetura de 64 bits, que permitem a alocação de até 28 GB de memória suplementar. Já a
alocação de memória é realizada em duas fases. Primeiro, o processo reserva um certo número
de páginas da memória virtual sem necessariamente utilizá-las. Em seguida, à media que o
processo necessita de memória, essas páginas pré-alocadas são mapeadas a áreas efetivas de
armazenamento (commit). As páginas podem ter três estados diferentes: livre (páginas não
utilizadas pelo processo), reservadas (alocadas a algum processo, porém não mapeadas em
disco físico) e dedicadas (já mapeadas).
professorbelfort@gmail.com
www.cliqueapostilas.com.br
250
Escalonamento Windows
A tradução de um endereço virtual em endereço físico se baseia em uma tabela de
paginação em dois níveis. Assim, o endereço virtual de 32 bits é formado por três
componentes: índice de diretório de páginas, índice de tabelas de páginas e índice de byte
(deslocamento dentro da página). O endereço de páginas é acessado para determinar qual a
tabela de páginas correspondente ao endereço virtual. A entrada da tabela, por sua vez, possui
informações referentes ao endereço da página a ser acessada. Finalmente, o índice de byte é
somado ao endereço inicial da página em memória correspondendo ao endereço físico.
Para um sistema de gerencia de memória baseado em paginação, é necessário
determinar quando e como buscar páginas do disco (swap) para a memória. O algoritmo de
paginação é baseado por demanda com clustering. Nesse esquema, quando ocorre uma falta de
página, o gerenciador de memória carrega a página que faltava e algumas ao redor. Uma das
vantagens do clustering é a minimização do número de acessos ao disco provocados pela
paginação de um processo. Além disso, a carga de páginas em avanço diminui o número de
leituras individualizadas, e aumenta a probabilidade de um processo paginado acessar a
memória diretamente. A política para a substituição de páginas na memória depende da
arquitetura e do processador da máquina. Para arquiteturas do tipo multiprocessador, a
estratégia é baseada em FIFO. Para arquiteturas monoprocessadas, o algoritmo de seleção da
página é LRU, implementado através do algoritmo do relógio (clock). Para representar o
número de páginas presentes em memória para um processo, é usado o Working Set. Existem
um valor mínimo e um valor máximo definidos a partir do tamanho, e o Working Set é ajustado
a depender da quantidade de memória existente e da necessidade dos processos.
professorbelfort@gmail.com
www.cliqueapostilas.com.br
251
Escalonamento Linux
O problema básico de escalonamento em sistemas operacionais é como satisfazer
simultaneamente objetivos conflitantes: tempo de resposta rápido, bom throughput para
processos background, evitar postergação indefinida, conciliar processos de alta prioridade com
de baixa prioridade, etc. O conjunto de regras utilizado para determinar como, quando e qual
processo deverá ser executado é conhecido como política de escalonamento. Nesta seção, nós
estudaremos como o Linux implementa seu escalonador e qual a política empregada para
determinar quais processos recebem o processador.
Tradicionalmente, os processos são divididos em três grandes classes: processos
interativos, processos batch e processos tempo real. Em cada classe, os processos podem ser
ainda subdivididos em I/O bound ou CPU bound de acordo com a proporção de tempo que
ficam esperando por operações de entrada e saída ou utilizando o processador. O escalonador
do Linux não distingue processos interativos de processos batch, diferenciando-os apenas dos
processos tempo real. Como todos os outros escalonadores UNIX, o escalonador Linux
privilegia os processos I/O bound em relação aos CPU bound de forma a oferecer um melhor
tempo de resposta às aplicações interativas.
O escalonador do Linux é baseado em time-sharing, ou seja, o tempo do processador é
dividido em fatias de tempo (quantum) as quais são alocadas aos processos. Se, durante a
execução de um processo, o quantum é esgotado, um novo processo é selecionado para
execução, provocando então uma troca de contexto. Esse procedimento é completamente
transparente ao processo e baseia-se em interrupções de tempo. Esse comportamento confere ao
Linux um escalonamento do tipo preemptivo.
O algoritmo de escalonamento do Linux divide o tempo de processamento em épocas
(epochs). Cada processo, no momento de sua criação, recebe um quantum calculado no início
de uma época. Diferentes processos podem possuir diferentes valores de quantum. O valor do
quantum corresponde à duração da época, e essa, por sua vez, é um múltiplo de 10 ms inferior a
100 ms.
professorbelfort@gmail.com
www.cliqueapostilas.com.br
252
Escalonamento Linux
Outra característica do escalonador Linux é a existência de prioridades dinâmicas. O
escalonador do Linux monitora o comportamento de um processo e ajusta dinamicamente sua
prioridade, visando a equalizar o uso do processador entre os processos. Processos que
recentemente ocuparam o processador durante um período de tempo considerado “longo” têm
sua prioridade reduzida. De forma análoga, aqueles que estão há muito tempo sem executar
recebem um aumento na sua prioridade, sendo então beneficiados em novas operações de
escalonamento.
Na realidade, o sistema Linux trabalha com dois tipos de prioridades: estática e
dinâmica. As prioridades estáticas são utilizadas exclusivamente por processos de tempo real
correspondendo a valores na faixa de 1-99. Nesse caso, a prioridade do processo tempo real é
definida pelo usuário e não é modificada pelo escalonador. Somente usuários com privilégios
especiais têm a capacidade de criar e definir processos tempo real. O esquema de prioridades
dinâmicas é aplicado aos processos interativos e batch. Aqui, a prioridade é calculada,
considerando-se a prioridade base do processo e a quantidade de tempo restante em seu
quantum.
O escalonador do Linux executa os processos de prioridade dinâmica apenas quando
não há processos de tempo real. Em outros termos, os processos de prioridade estática recebem
uma prioridade maior que os processos de prioridade dinâmica. Para selecionar um processo
para execução, o escalonador do Linux prevê três políticas diferentes :
SCHED_FIFO: Essa política é valida apenas para os processos de tempo real. Na
SCHED_FIFO
criação, o descritor do processo é inserido no final da fila correspondente à sua prioridade.
Nessa política, quando um processo é alocado ao processador, ele executa até que uma de três
situações ocorra: (i) um processo de tempo real de prioridade superior torna-se apto a executar;
(ii) o processo libera espontaneamente o processador para processos de prioridade igual à sua;
(iii) o processo termina, ou bloqueia-se, em uma operação de entrada e saída ou de
sincronização.
professorbelfort@gmail.com
www.cliqueapostilas.com.br
253
Escalonamento Linux
SCHED_RR
SCHED_RR: Na criação, o descritor do processo é inserido no final da fila
correspondente à sua prioridade. Quando um processo é alocado ao processador, ele executa até
que uma de quatro situações ocorra: (i) seu período de execução (quantum) tenha se esgotado
nesse caso o processo é inserido no final de sua fila de prioridade; (ii) um processo de
prioridade superior torna-se apto a executar; (iii) o processo libera espontaneamente o
processador para processos de prioridade igual a sua; (iv) o processo termina, ou bloqueia-se,
em uma operação de entrada e saída ou de sincronização. Essa política também só é válida para
processos de tempo real.
SCHED_OTHER: Corresponde a um esquema de filas multinível de prioridades
SCHED_OTHER
dinâmicas com timesharing. Os processos interativos e batch recaem nessa categoria. A criação
de processos em Linux, como em todos os sistemas UNIX, é baseada em uma operação do tipo
fork-exec, ou seja, um processo cria uma cópia sua (fork) e em seguida substitui o seu código
por um outro (exec). No momento da criação, o processo pai (o que fez o fork) cede metade de
seu quantum restante ao processo filho. Esse procedimento é, na verdade, uma espécie de
proteção que o sistema faz para evitar que um usuário, a partir de um processo pai, crie um
processo filho que execute o mesmo código do pai. Sem essa proteção, a cada criação o filho
receberia um novo quantum integral. Da mesma forma, o núcleo Linux previne-se contra o fato
de um mesmo usuário lançar vários processos em background, ou executar diferentes sessões
shell.
O escalonador do Linux é executado a partir de duas formas diferentes. A primeira é a
forma direta através de uma chamada explícita à rotina que implementa o escalonador. Essa é a
maneira utilizada pelo núcleo do Linux quando, por exemplo, detecta que um processo deverá
ser bloqueado em decorrência de uma operação de entrada e saída ou de sincronização. A
segunda forma, denominada de lazy, também é conseqüência do procedimento de
escalonamento, ocorrendo tipicamente em uma de três situações.
professorbelfort@gmail.com
www.cliqueapostilas.com.br
254
Escalonamento Linux
A primeira dessas situações é a rotina de tratamento de interrupção de tempo que
atualiza os temporizadores e realiza a contabilização de tempo por processo. Essa rotina, ao
detectar que um processo esgotou seu quantum de execução aciona o escalonador para que seja
efetuada uma troca de processo. A segunda situação ocorre quando um processo de mais alta
prioridade é desbloqueado pela ocorrência do evento que esperava. A parte do código que
efetua o desbloqueio, isto é, trata os eventos de sincronização e de entrada e saída, consulta a
prioridade do processo atualmente em execução e compara-a com a do processo que será
desbloqueado. Se o processo a ser desbloqueado possuir uma prioridade mais alta, o
escalonador é acionado, e ocorre uma troca de processo. A terceira, e última forma de execução
lazy, é quando um processo explicitamente invoca o escalonador através de uma chamada de
sistema do tipo yield. Essa chamada de sistema permite a um processo “passar sua vez de
execução” a outro processo, e, para isso, parece claro, é necessário executar o escalonador.
professorbelfort@gmail.com
www.cliqueapostilas.com.br
FIFO com buffer de p áginas (m(método
páginas étodo de
de substitui ção de
substituição de ppáginas
áginas na
na memória)
memória)
255
professorbelfort@gmail.com
www.cliqueapostilas.com.br
257
Análise do Working Set (W) x Quantidade de Page Fault (PF)
•Δ = W (fixo)
•N = número de referências à memória
•M = número de páginas distintas
•Política de realocação local
•Em qualquer situação:
–PF (page fault) ≤ N
–M ≤ N
•PFmin = Número mínimo de PF (melhor caso)
•PFmáx = Número máximo de PF (pior caso)
professorbelfort@gmail.com