Buscar

SO2_7

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 137 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 137 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 137 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

SISTEMAS OPERACIONAIS 
ABERTOS
Prof. Higor
Contato:
E-mail: higor.delsoto@docente.unip.br
Gerenciamento de memória
Os programas a serem executados
precisam ser trazidos para a memória
principal e serem executados através de
processos criados para esse fim.
Gerenciamento de memória
OBS: Dependendo do gerenciamento de
memória, um processo em execução
pode ser movimentado da memória para
o disco.
Gerenciamento de memória
Não existe uma sequencia exata para a alocação de
cada processo, e por este motivo é necessário um
gerenciamento de alocação e de endereços.
Processo A
Processo B
Processo K
Gerenciamento de memória
Associação de instruções e dados aos endereços de memória
Etapa: Compilação
Desde que seja conhecido onde o processo residirá
na memória, então o código absoluto pode ser
gerado. Se houver alguma mudança é necessário
uma nova compilação.
Gerenciamento de memória
Associação de instruções e dados aos endereços de memória
Etapa: Carregamento
Se no momento da compilação o processo não
possuir endereço determinado na memória, o
compilador irá gerar um código relocável, permitindo
que a etapa de carregamento realize a determinação
do endereço.
Gerenciamento de memória
Associação de instruções e dados aos endereços de memória
Etapa: Execução
Se um processo puder ser movido durante a sua
execução de um segmento de memória para outro,
então a determinação do endereço na memória deve
ser adiada até a execução.
Processo A Processo B
Processo B
Processo K
Gerenciamento de memória
Associação de instruções e dados aos endereços de memória
Resumo: Compilação
Carregamento
Execução
Gerenciamento de memória
Ligação dinâmica (edição de ligações)
• As ligações são adiadas até o momento da execução;
• Um pequeno trecho de código (stub), é utilizado para
encontrar a rotina na memória;
• Stub (ponta) substitui seu valor pelo endereço da rotina;
• Stub executa a rotina;
• SO precisa verificar se a rotina está no espaço de
endereços do processo.
Gerenciamento de memória
Overlays (Sobreposições)
• Mantem na memória somente as instruções necessárias
para o momento;
• Útil quando o processo é maior do que a quantidade de
memória destinada a ele.
• Não implementado pelo SO (alta complexidade).
Gerenciamento de memória
Endereço lógico vs físico
Gerenciamento de memória
Endereço lógico vs físico
Espaços de endereços lógicos estão associados a endereços
de espaços físicos.
Gerenciamento de memória
Endereço lógico vs físico
Lógico – Gerado pela CPU, também conhecido como
endereço virtual.
Físico – Utilizado para acessar a memória primária.
Gerenciamento de memória
Endereço lógico vs físico
• Endereços lógicos (ou virtuais) são atribuídos sem
critérios;
• Programas usuários não se preocupam com endereços
lógicos;
• Necessidade de conversão para o endereço físico.
Gerenciamento de memória
Endereço lógico vs físico
MMU (Memory Management Unit)
 Dispositivo em hardware que mapeia os endereços lógicos
em físicos;
 O programa usuário enxerga endereços lógicos, mas
nunca endereços físicos.
Implementação
Projeto: MMU(Memory Management Unit)
Tarefas:
• Criar uma matriz;
• Preencher aleatoriamente aproximadamente 50% da matriz
• Receber/Criar 5 processos com endereço virtual;
• Converter/associar endereço virtual a endereço físico.
OBS:
• Qualquer linguagem de programação pode ser utilizada;
• Um processo não pode ser associado a um endereço físico se
não haver endereço disponível.
Implementação
Projeto: MMU(Memory Management Unit)
Exemplo:
0 1 2 3
0 A F D
1 B
2 C E
Matriz criada e preenchida
Processos:
G – 7X00
H – 45ZA
I - 12W1
J – 23Q4
K - 78GH
0 1 2 3
0 A F G D
1 I H B J
2 K C E
0 1 2 3
0 A F G D
1 I H B J
2 K C E
Processos:
G – 7X00 - 20
H – 45ZA - 11
I - 12W1 - 01
J – 23Q4 - 31
K - 78GH - 02
Gerenciamento de memória
Alocação
Contígua
Não contígua
Gerenciamento de memória
Alocação Contínua Simples
• Parte reservada ao SO é alocada nos endereços mais
baixos geralmente.
• Processos são alocados nos espaços disponíveis.
• Sistema mais simples.
Gerenciamento de memória
Alocação Contínua Particionada (1)
• Existência de multiplas partições.
• Divisão da memória em blocos.
• Não considera Swapping.
• Partições fixas (estáticas) e variáveis (dinâmica).
• SO controla as partições e seus respectivos tamanhos.
Gerenciamento de memória
Alocação Contínua Particionada (2)
• Existência de multiplas partições.
• Divisão da memória em blocos.
• Não considera Swapping.
• Partições fixas (estáticas) e variáveis (dinâmica).
• SO controla as partições e seus respectivos tamanhos.
Gerenciamento de memória
Alocação Contínua Particionada fixa (1)
• Processos maiores que as partições não executam.
• O número de processos que podem estar em execução ao
mesmo tempo considerando swapping é maior que o
número de partições.
• O número de processos que podem estar em execução ao
mesmo tempo sem considerar swapping é igual ao número
de partições.
Gerenciamento de memória
Alocação Contínua Particionada fixa (2)
• Independente do tamanho de um processo ele sempre
ocupa um espaço.
• Solução: Partições com tamanhos diferentes.
Gerenciamento de memória
Alocação particionada dinâmica
• Objetivo de eliminar fragmentação interna.
• Alocação de acordo com a necessidade.
Gerenciamento de memória
Fragmentação externa
• Pode existir memória disponível, mas não contígua.
Gerenciamento de memória
Fragmentação
• Externa: Existe memória suficiente para atender uma
requisição, mas não é continua.
• Interna: Espaço liberado por compactação.
 A compactação requer mecanismos de relocação.
Gerenciamento de memória
Alocação
• A alocação de processos devem ser feitas em espaços
livres da memória;
• Para encontrar um local ideal para a alocação é necessário
uma busca de um espaço adequado, já que buracos de
tamanhos variados podem estar espalhados na memória.
Gerenciamento de memória
Alocação
• First Fit: Aloca o primeiro espaço grande o suficiente.
• Best Fit: Aloca o espaço com a capacidade mais próxima
da necessidade, havendo a necessidade de busca para
encontra-lo.(Após a alocação é produzido o menor espaço
livre)
• Worst Fit: Aloca o maior espaço, havendo a necessidade
de busca para encontra-lo. (Após a alocação é produzido o
maior espaço livre)
Gerenciamento de memória
Limites
• Para que algo seja alocado/salvo na memória primária o
limite de memória deve ser respeitado.
Gerenciamento de memória
Swapping
• Um processo pode ser trocado (swaped) temporariamente
para fora da memória primária e levado para a memória
secundária (região de swap).
• Swap in / Swap out – normalmente utilizando um
escalonador de prioridades.
• Tempo de troca é agravado pelo tempo de transferência.
Gerenciamento de memória
Paginação
Gerenciamento de memória
Paginação (1)
• Os processos são divididos em páginas para que possam ser
carregados na memória;
• A transferência entre memória e disco ocorre sempre em
páginas inteiras.
• Elimina a fargmentação externa e reduz a fragmentação
interna.
 Memória física dividida em blocos de tamanho fixo são
chamados de frames.
 Memória lógica dividida em blocos de tamanho fixo
denominados de página.
Gerenciamento de memória
Paginação (2)
• Para a execução de um processo de n páginas requer n
frames na memória.
• Necessidade de traduzir endereços lógicos (páginas) em
endereços físicos (frames).
Gerenciamento de memóriaPaginação (3)
• Endereços lógicos são divididos em duas componentes
 Número da página
 Deslocamento dentro de uma página
• Tamanho da página (P) pode assumir qualquer tamanho,
porém, utiliza-se um tamanho de potencia de 2.
Gerenciamento de memória
Paginação (4)
Conversão
Gerenciamento de memória
Paginação (4)
Exemplo conversão:
Caracteristicas
 Memória física: 64 kbytes (16 bits)
 Maior tamanho de processo: 32 kbytes (15 bits)
 Páginas: 8 kbytes (13 bits)
Páginação
 Número de frames: 64/8= 8 (3 bits)
 Número de páginas: 32/8= 4 (2 bits)
 Deslocamento: 8kbytes (13 bits)
Gerenciamento de memória
Paginação (5)
Exemplo conversão:
Gerenciamento de memória
Como é feito o calculo do número de bits?
Gerenciamento de memória
Como é feito o calculo do número de bits?
Representação em bits 
Representação em bits 
Representação em bits 
Representação em bits 
Representação em bits 
Representação em bits 
Representação em bits 
Gerenciamento de memória
Exercício: Encontre o número de frames, número de páginas, e
deslocamento para paginação.
Exemplo conversão:
Caracteristicas
 Memória física: 128 kbytes ( bits)
 Maior tamanho de processo: 32 kbytes ( bits)
 Páginas: 16 kbytes ( bits)
Páginação
 Número de frames:
 Número de páginas:
 Deslocamento:
Gerenciamento de memória
Paginação (6)
• n páginas são alocadas em n frames implicando na criação de
uma tabela de correspondência (tabela de páginas);
Gerenciamento de memória
Tamanho página (1)
• Grandes
 Processos compostos por menos páginas (tabelas de
páginas menores);
• Pequenas
 Processos compostos por mais páginas (tabelas de
páginas maiores);
• Definição de tamanho  MMU (1kbyte a 8kbyte).
Gerenciamento de memória
Mecanismos de paginação(1)
• Proteção
 Evitar que um processo acesse área (páginas) de outros
processos;
 Garantir o acesso de endereços válidos;
• Compartilhamento
 Permitir que dois ou mais processos dividam uma área
comum
Exemplo:
Gerenciamento de memória
Proteção de paginação(1)
• Processos acessam somente suas páginas;
• Inclusão de bits de controle na tabela de página (R, W, EXE)
• Bit de validade
 Página pertence ou não ao endereço físico.
Gerenciamento de memória
Compartilhamento de paginação(1)
• Uma cópia do código (ready-only) pode ser compartilhada
entre vários processos;
Gerenciamento de memória
Implementação da tabela de páginas via registradores
• Cada página utiliza um registrador;
• Atualização na troca de contexto;
• Custo: Aumento no número de registradores.
Gerenciamento de memória
Implementação da tabela de páginas em memória
• Armazenamento feito na memória;
 PTBR (Page-table base register)  inicio da tabela de
páginas
 PTLR (Page-table length register)  tamanho em número
de entradas.
Custo: Cada acesso necessita de 2 acessos a memória.
Gerenciamento de memória
Implementação Translation look-aside buffers (TLBs)
• Meio termo entre implementação em registradores e memória;
• Baseado em uma memória cache especial (TLB) composta
por um conjunto de registradores.
• Funcionamento: Tabela de páginas em memória, e com uma
cópia parcial em TLB.
Acesso:
Pag no TLB (hit) Similar a implementação de registradores.
Pag fora TLB (miss) Similar a solução de memória.
Gerenciamento de memória
Aspectos que envolvem o uso de TLB
• Melhora no desempenho no acesso a tabela de páginas
 Rapidez
• Desvantagens:
 Tamanho limitado
 Apenas as páginas em uso por processos
necessitam estar na TLB
• Acesso:
 Se a página está presente na TLB (hit) a tradução é
feita;
 Se a página ñ está presente na TLB (miss), consulta a
tabela em memória e atualiza a entrada na TLB.
Gerenciamento de memória
Aspectos que envolvem o uso de TLB
Gerenciamento de memória
Páginação multinível
• Tamanho tabela de páginas:
 Dimensionamento ( fixo ou variável )
• Tabelas de página, como armazenar?
 Contigua na memória  Acarreta em frag externa
 Paginar a própria tabela de páginas
Solução :
• Diretórios de tabelas de página (n níveis)
Gerenciamento de memória
Páginação multinível
Gerenciamento de memória
Páginação multinível
Estrutura típica para processadores 64bits
Gerenciamento de memória
Tabela de páginas invertida
• O tamanho em uma tabela de página é preocupante;
• Como solução a tabela invertida é proposta
 Tabela de páginas para todo o sistema (não somente por
processos)
 Uma entrada para cada frame
Implementação
Projeto: Páginação multinível
Tarefas:
• Criar 4 matrizes 3x3 (sugestão: matriz 3d – i,j,k);
• Preenche-las 100% com valores e posições aleatóreamente;
• Ligar nome, endereço lógico e endereço físico;
• Através da entrada de um endereço lógico retornar o endereço
físico de um processo.
OBS:
• Qualquer linguagem de programação pode ser utilizada;
• Um processo não pode ser associado a um endereço físico se
não haver endereço disponível.
• Um processo não pode ser associado a um endereço físico se
o endereço já estiver preenchido.
Implementação
Projeto: Páginação multinível
137 12 01
147 189 201
454 36 22
45 51 2
111 78 41
13 17 24
5 47 52
91 69 65
72 85 94
03 19 28
13 18 19
115 87 22
0 1
2 3
0 1 2
0
1
2
0 1 2
0
1
2
0 1 2
0
1
2
0 1 2
0
1
2
Entrada : 0x110 Retorno : 211
Nome Log Fis
69 0x110 211
- - -
- - -
- - -
- - -
Implementação
Projeto: Páginação multinível
137 12 01
147 189 201
454 36 22
45 51 2
111 78 41
13 17 24
5 47 52
91 69 65
72 85 94
03 19 28
13 18 19
115 87 22
0 1
2 3
0 1 2
0
1
2
0 1 2
0
1
2
0 1 2
0
1
2
0 1 2
0
1
2
Entrada : 0x110 Retorno : 211
Nome Log Fis
69 0x110 211
- - -
- - -
- - -
- - -
Memória Virtual
Memória Virtual
Problemas da gerência de memória 
(modelo estudado até o momento)
 Todo o espaço lógico mapeado no espaço físico;
 Limitação no tamanho dos programas relacionado ao 
espaço de memória;
 Desperdício de memória por manter armazenado 
código não utilizado frequentemente. 
Memória Virtual
Motivação 
 Manter na memória somente partes de programas 
realmente necessárias; 
 Aumento na multiprogramação.
Memória Virtual
O que é ?
 Manter na memória somente partes de programas 
realmente necessárias; 
 Aumento na multiprogramação.
Memória Virtual
Princípios 
 Carregar uma página na memória somente quando 
necessário; 
 Manter uma página na memória somente quando 
necessário.
 Paginação por demanda
Memória Virtual
Princípios 
Memória Virtual
Paginação por demanda
 Similar ao Swapping
Memória Virtual
Paginação por demanda – Vantagens
 Reduz as operações de E/S do processo;
 Reduz a quantidade de memória utilizada por 
processo;
 Aumenta o grau de multiprogramação.
Memória Virtual
Paginação por demanda – Necessidades
 Controle de páginas que estão na memória;
 Bit válido/não válido
(Falha na página) – Ocorre quando é necessário 
uma página na memória e ela não está presente.
Memória Virtual
Paginação por demanda – Page fault fluxo
Memória Virtual
Implementação da memória virtual – Componentes
 Politica de carga de página;
 Politica de localização de página;
 Politica de substituição de página.
Memória Virtual
Implementação da memória virtual – Carga de página
 Frame livre  Carrega página no frame;
 Não há espaço disponível  Libera espaço
transferindo página(s) para área de Swap no disco
rígido;
 Politica de substituição (página vítima).
Memória Virtual
Implementaçãoda memória virtual – Localização
 Determina na memória real a localização das páginas
de um processo.
Memória Virtual
Implementação da memória virtual – Substituição
 A medida que as páginas vão sendo carregadas a
memória pode ficar completamente ocupada, havendo
a necessidade de liberar espaço.
 O algoritmo de substituição de páginas é responsável 
pela escolha da página(s) vítima. 
Memória Virtual
Implementação da memória virtual – Bits auxiliares
 Bit sujeira (Dirty bit) – Indica quando uma página foi
alterada durante a execução do processo, se a página
não foi alterada, não é necessário salvar seu conteúdo
no disco;
 Bit referência (Reference bit) – Indica se uma página
foi acessada durante um período de tempo;
 Bit tranca (Lock bit) – Evita que uma página
seja selecionada como vítima.
Memória Virtual
Política de substituição de página
 Selecionar para substituição uma página que será
referenciada dentro do maior intervalo de tempo
(algoritmo ótimo).
 Algoritmos de substituição:
 First-come-first served(FCFS)
 Least recently used (LRU)
 Etc...
Memória Virtual
Política de substituição de página - FCFS
 Também denominado de FIFO;
 Simples implementação;
 Substitui a página que está a mais tempo na memória. 
Memória Virtual
Política de substituição de página - LRU
 Ideia – Uma página recentemente acessada por um 
processo será acessada em um futuro próximo;
 A página a ser substituída é a página acessada a mais 
tempo.
OBS: A implementação desse algoritmo exige o campo 
data, raramente suportado pelas MMU’s.
Memória Virtual
Política de substituição de página – LRU Aproximação
 Utilizar o bit referencia para saber quais as páginas 
foram acessadas.
Possibilidade de melhoria:
 Implementar vários bits referência, e a cada intervalo 
de tempo atualizar seus valores.
Implementação - Paginação por demanda
 Criar duas matrizes 2x2;
 Inserir os dados exatamente como o exemplo;
 Realizar 3 chamadas de páginas (Aleatoriamente);
 Imprimir o log a cada chamada.
Restrições:
 Uma página retirada da memória física deve ser colocada na 
virtual;
 Caso uma página já esteja na memória física, nada ocorre.
A B
C D
E F
G H
Memória virtual Memória física
Implementação - Paginação por demanda
Exemplo:
A B
C D
E F
G H
Memória virtual Memória física
Chamada 1: A 
Log: Page out (G)  Page in (A)  Save (G) 
G B
C D
E F
A H
Memória virtual Memória física
Chamada 2: F 
Log: Page available (F)
G B
C D
E F
A H
Memória virtual Memória física
Memória Virtual
Política de substituição de página – Segunda chance
 Também conhecido como algoritmo do relógio;
 Utiliza o bit referência;
 Apontador percorre a lista de páginas informando 
qual será a próxima vítima;
 Substitui a próxima página que tem o bit 
referência=0.
Memória Virtual
Política de substituição de página – Segunda chance
Memória Virtual
Alocação de páginas em memória física (frames)
Problema:
 Qual o mínimo necessário de páginas por processos? 
Memória Virtual
Alocação de páginas em memória física (frames)
Número mínimo de frames
Um processo necessita um número mínimo de páginas 
em frames para executar;
Quanto menor o número de páginas de um processo 
alocada em frames, maior as chances de page-fault;
Memória Virtual
Algoritmos de alocação 
 Alocação igualitária
 Alocação proporcional
Memória Virtual
Algoritmos de alocação – Alocação igualitária 
 m frames, n processos  Cada processo recebe m/n;
 Formação de um banco de frames livres, caso haja sobras 
na divisão;
 Variação no número de frames em função do grau de 
multiprogramação;
• Problema:
• Os processos possuem tamanhos e necessidades
diferentes, entretanto, neste algoritmo todos
recebem a mesma quantidade de frames.
Memória Virtual
Algoritmos de alocação – Alocação proporcional 
 Alocação de frames de acordo com o tamanho do 
processo.
Memória Virtual
Algoritmos de alocação – Alocação proporcional 2
 Alocação de frames de acordo com a prioridade do 
processo.
Memória Virtual
Algoritmos de alocação – Onde alocar?
Alocação local
 Quando é necessário realizar substituição, a página vítima 
pertence ao mesmo processo.
Memória Virtual
Algoritmos de alocação – Onde alocar?
Alocação global
 Quando é necessário realizar substituição, a página vítima
pode pertencer ao mesmo processo, ou a outro;
 Normalmente a página vítima pertence a um processo 
com menor prioridade.
Memória Virtual
Thrashing 
Um processo que está em thrashing passa a maior parte do 
seu tempo de execução no processo de paginação.
 O tratamento de page-fault é caro em tempo;
 Conforme o número de páginas físicas alocadas
referente a um processo diminui, a taxa de page-fault
aumenta;
Memória Virtual
Thrashing – Efeito congelamento 
Diferente em função do tipo de alocação de páginas
físicas:
 Alocação global resulta no congelamento do
sistema;
 Alocação local resulta no congelamento do
processo.
Memória Virtual
Thrashing – Consequências
 Baixa taxa de uso da CPU para a execução de 
processos de usuários;
 Adição de processos resulta em maior necessidade de 
frames;
Memória Virtual
Thrashing – Conclusão
 O SO pode entender que o sistema está necessitando
de mais processos devido ao congelamento;
 Maior necessidade de frames agrava a situação;
 Há um ponto que o grau de multiprogramação
compromete o desempenho do sistema.
Memória Virtual
Thrashing – Como solucionar?
 Suspensão de processos;
 Swapping (Não é a opção mais indicada);
 Prevenção.
Bloco questões
1) Relacione Alocação global, local, e congelamento.
1) No que o alto nível de multiprogramação pode ocasionar 
? É positivo?
Memória Virtual
Thrashing – Prevenção
 Providenciar os frames necessários para a execução 
dos processos.
 Working-set
 Frequência de falta de página
Memória Virtual
Working-set
 Um parâmetro delta define a largura da janela do 
working-set 
 O processo consiste em examinar as últimas páginas 
utilizadas no delta
Memória Virtual
Frequência de falta de páginas
 Controle da taxa de falta de páginas
 Taxa maior que o máximo aceitável
o Há processos necessitando de páginas físicas;
o Realização do Swap de alguns processos;
 Taxa menor que o valor mínimo
o Desliga o mecanismo de swapping;
o Processos tem muitas páginas físicas alocadas;
Memória Virtual
Tamanho da página
Fatores a serem levados em consideração:
• Fragmentação;
• Tamanho estruturas internas SO ( tabela de páginas );
• Overhead das operações de E/S.
Memória Virtual
Tamanho da página
Grande Pequena
• Fragmentação 
externa;
• Tabela de páginas 
menores.
• Menor fragmentação 
interna;
• Maior quantidade de 
páginas por processo;
• Tabela de páginas maiores.
Bloco questões
3) Como é possível prevenir o Thrashing?
4) Para um sistema operacional o que é mais vantajoso, 
páginas grandes ou pequenas? Aponte os pontos positivos 
e negativos de cada situação.
Gerenciamento de E/S
Uma das principais e mais complexas funções
do Sistema Operacional. A implementação é
realizada utilizando camadas, similar a
implementação do SO.
Gerenciamento de E/S
Processo
Operações de E/S
Sis. Arqui
Subsistema E/S
Drivers 
Controladores 
Dispositivos E/S 
Independente 
do dispositivo
Independente 
do dispositivo
Dependente 
do dispositivo
Gerenciamento de E/S
Devido a grande quantidade de dispositivos, a
implementaçãodo subsistema de E/S se faz
necessária.
Gerenciamento de E/S
Subsistema E/S – Características
 Responsável por isolar a complexidade dos
dispositivos.
 Flexibilidade na comunicação entre o
processo e qualquer tipo de periféricos.
 Possibilita os processos enxergarem os
periféricos de uma única maneira, mesmo
quando são diferentes.
Gerenciamento de E/S
Subsistema E/S – Acesso
 Conjunto de rotinas que possibilitam a
comunicação com qualquer dispositivo.
 Utilização de System Calls E/S.
 A comunicação é realizada através de passagem
de parâmetros pelo softwares usuários (Exemplo:
Caminho a ser salvo determinado arquivo).
Gerenciamento de E/S
Subsistema E/S – Vantagens
 Desonerar os desenvolvedores de softwares
usuários de conhecimentos de baixo nível.
 Separar o modo núcleo do modo usuário.
Gerenciamento de E/S
Subsistema E/S – Classificação de Op. E/S.
 Síncrona: O processo que realizou a operação
aguarda em espera a finalização da operação de
E/S.
 Assíncrona : O processo que realizou a operação
continua pronto para ser executado, mas o SO deve
fornecer sinalizações para informá-lo sobre o fim da
Op. E/S.
Implementação – Gerenciador E/S
1) Criar 5 processos (Id, Operação de entrada e saída
(OP), Classificação Operação(COP), Iterações
necessárias para Operação(IOP);
2) Organizar os processos utilizando FIFO.
3) Implementar uma fila de espera para processos que
contenham COP síncronas;
4) Processos devem ser finalizados quando IOP =0;
5) Cada iteração vincula o primeiro processo da fila à CPU,
se OP em execução, continua.
Implementação – Gerenciador E/S
ID OP COP IOP
1 Disco A 2
2 Rede A 3
3 Disco S 4
4 Vídeo S 2
5 Impress A 3
Criação
Implementação – Gerenciador E/S
ID OP COP IOP
1 Disco A 2
2 Rede A 3
3 Disco S 4
4 Vídeo S 2
5 Impress A 3
Disco(2)
OP E/S
Espera Prontos
5 – 4 -3 -2 -1
Implementação – Gerenciador E/S
ID OP COP IOP
1 Disco A 2
2 Rede A 3
3 Disco S 4
4 Vídeo S 2
5 Impres
s
A 3
Disco(1)
OP E/S
Espera
Rede(3)
OP E/S
Espera Prontos
1 - 5 – 4 -3 -2
Implementação – Gerenciador E/S
ID OP COP IOP
1 Disco A 2
2 Rede A 3
3 Disco S 4
4 Vídeo S 2
5 Impres
s
A 3
Disco(0)
OP E/S
Espera
Rede(2)
OP E/S
Espera Prontos
2 - 1 - 5 – 4 -3
Disco(4)
OP E/S
Implementação – Gerenciador E/S
ID OP COP IOP
1 Disco A 2
2 Rede A 3
3 Disco S 4
4 Vídeo S 2
5 Impres
s
A 3
Disco(0)
OP E/S
Espera
Rede(2)
OP E/S
Espera Prontos
2 - 1 - 5 – 4 -3
Disco(4)
OP E/S
Gerenciamento de E/S
Objetivo
Promover o maior compartilhamento possível
entre os softwares usuários de maneira segura
e eficiente.
Gerenciamento de E/S
Compartilhamento
Simultâneo Exclusivo
• Utilização simultânea 
entre usuários 
• SO responsável pela 
integridade dos dados;
• Ex: Discos.
• Utilização exclusiva do 
recurso
• Necessidade da 
implementação de 
buffers
• Ex: Impressoras
Gerenciamento de E/S
Tratamento de erros
São resolvidos nos níveis mais baixos de
hardware
Gerenciamento de E/S
Padronização
Sempre que um novo dispositivo é inserido o
driver correspondente é adicionado ao sistema.
Deve haver uma padronização para tal
instalação para que não seja necessário
alterações na camada de E/S.
Gerenciamento de E/S
Drivers
Gerenciamento de E/S
Drivers
Implementados para realizar a comunicação do
subsistema de E/S com os dispositivos, através
de controladores.
Possuem a função de receber comandos gerais
e traduzi-los em comandos específicos para
cada dispositivo.
OBS: Cada driver manipula somente um tipo de
dispositivo.
Gerenciamento de E/S
Drivers
Os drivers estão diretamente ligados ao controlador de
dispositivo, que por sua vez é especifico, reconhecendo
características detalhadas do hardware em questão.
Além da tradução, um driver é capaz de iniciar um
dispositivo além de geri-lo.
Gerenciamento de E/S
Drivers – Desenvolvimento
Normalmente implementados em Assembly, fazem parte
do núcleo do sistema operacional, entretanto, por se tratar
de códigos que executam no kernel, não deve haver erros
em sua implementação.
Um erro de programação de um driver pode comprometer
o funcionamento do sistema.
Gerenciamento de E/S
Drivers – Dependência
Todo dispositivo possui um driver associado a ele para
realizar as devidas traduções entre o subsistema E/S e o
controlador.
Fabricantes de hardware fornecem variações de drivers
para as arquiteturas vigentes, como 32 e 64 bits. No
passado qualquer instalação de driver conduzia a uma
reinicialização, sendo necessário recompilar o kernel.
Bloco questões
5) Quais as funções do gerenciamento de E/S?
6) Uma rotina de E/S pode ser classificada como síncrona
ou assíncrona, descreva as diferenças.
7) O gerenciador de E/S controla rotinas de diferentes
dispositivos que podem compartilhar os recursos de
maneira exclusiva ou compartilhada, quais as diferenças?
8) O que é, e qual as funções de um driver?
Gerenciamento de E/S
Controladores
São componentes de hardware responsáveis
para controlar diretamente o dispositivo de E/S.
A comunicação do SO e os controladores
ocorrem por intermédio dos drivers.
Gerenciamento de E/S
Controladores
Os controladores podem ser projetados
diretamente no dispositivo de E/S, ou na
própria placa mãe.
Além da gestão, os controladores são capazes
de checar erros no bloco de informações
recebidas.
Gerenciamento de E/S
Controladores
Quando não há algum tipo de retorno na
operação de E/S, o controlador envia uma
mensagem ao SO informando a finalização da
rotina.
Bloco questões
9) Qual a diferença entre um driver e um controlador?
SEGURANÇA E PROTEÇÃO
SEGURANÇA E PROTEÇÃO
Firewall
Componente de segurança que oferece um filtro de
pacotes e funções.
Incluído pela Microsoft no Windows XP a partir do SP2.
SEGURANÇA E PROTEÇÃO
Windows Defender 
Ferramenta incluída a partir do Windows Vista com o
objetivo de combate a malwares, trojans, spywares, além
de limitar modificações nocivas ao sistema.
Assinatura digital
Um conjunto de dados criptografados, associados a um
documento do qual são função, garantindo a
integridade e autenticidade do documento associado.
SEGURANÇA E PROTEÇÃO
HASHING
Usando funções de "Hashing" ou de checagem, é
garantida a integridade através de comparação do
resultado do teste local com o divulgado pelo autor.
SEGURANÇA E PROTEÇÃO
HASHING
SEGURANÇA E PROTEÇÃO
Honeypot
É uma ferramenta que tem a função de propositalmente
simular falhas de segurança de um sistema e colher
informações sobre o invasor enganando-o, conduzindo a
falsa impressão de vulnerabilidade do sistema. É uma
armadilha para invasores. O HoneyPot não oferece
nenhum tipo de proteção.
SEGURANÇA E PROTEÇÃO
Cowrie - SSH Honeypot (Demo).mp4
Honeypot
SEGURANÇA E PROTEÇÃO
Bloco questões
10) O HoneyPot não apresenta nenhum tipo de proteção,
sendo assim, qual sua verdadeira finalidade?
11) Descreva o papel do firewall em um SO.

Outros materiais