Arquitetura de Computadores - Suporte ao Sistema Operacional

Propaganda
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO
DEPARTAMENTO DE CIÊNCIAS EXATAS E NATURAIS
CURSO DE CIÊNCIA DA COMPUTAÇÃO
Arquitetura e Organização de
Computadores
Suporte ao Sistema Operacional
Prof. Sílvio Fernandes
Introdução
• Um SO é um programa que controla a
execução dos programas aplicativos e atua
como uma interface entre o usuário e o
hardware do computador
– Conveniência: um SO torna um computador mais
conveniente para uso
– Eficiência: um SO permite que os recursos do
sistema de computação sejam usados de uma
maneira eficiente
2
Introdução
Usuário
final
Programador
Programas
Aplicativos
Utilitários
Projetista
do SO
Sistema Operacional
Hardware do computador
3
Introdução
• SO normalmente oferece os serviços
– Criação de programas
– Execução de programas
– Acesso aos dispositivos de E/S
– Acesso controlado aos arquivos
– Acesso ao sistema para recursos compartilhados
– Detecção e respostas a erros
– Contabilidade
4
SO como um Gerente de Recursos
• O
SO
controla
o
processamento,
o
armazenamento e a transferência de dados
• Como mecanismo de controle, o SO é incomum
em dois aspectos
– O SO é um programa como outro qualquer, sendo
executado pelo μP
– O SO renuncia ao controle do μP para, em seguida,
obter o controle novamente
5
SO como um Gerente de Recursos
• Recursos controlados
Memória
Módulo de
E/S
SO
(núcleo)
Módulo de
E/S
...
Programas
e dados
Módulo de
E/S
Armazenamento
μP
...
μP
SO
Programas
e dados
6
Tipos de SO
• Monoprogramado
– O µP carrega para a memória principal (MP) e executa
apenas um programa de cada vez
• Multiprogramado
– Diversos programas são carregados simultaneamente
na MP, e o tempo do μP é dividido entre eles
7
Características de um SO
• Interrupções
– Fornecem ao SO a capacidade de obter o controle do µP
quando este está executando programas dos usuários
• Proteção de memória
– Programas do usuário não devem alterar a área de
memória que contém o SO
• Temporização
– Um relógio é usado para evitar que um único programa
monopolize o sistema
• Instruções privilegiadas
– Algumas instruções só podem ser executadas pelo SO
(instruções de E/S, por exemplo)
8
Latência das Instruções de E/S
• Suponha um programa que processa um arquivo de
registros e executa, em média, 100 instruções do µP
por registro
Ler um registro
Executar 100 instruções
Escrever um registro
TOTAL
UtilizaçãoP
15 µs
1 µs
15 µs
31 µs
1

 0,032  3,2 %
31
9
Efeito da Multiprogramação
Esperar
Executar
Esperar
Esperar
Executar
Esperar
Executar
Esperar
Executar
Executar Executar Executar
Esperar
Executar
Esperar
Esperar
Executar
Esperar
Executar Executar Executar
Esperar
tempo
10
Comparação Monoprogramação x
Multiprogramação
• Memória com capacidade igual a 256 K palavras de
memória (não usadas pelo SO)
Processo
P1
P2
P3
Tipo de tarefa
Computação intensiva
E/S intensiva
E/S intensiva
Duração
5 min
15 min
10 min
Memória requerida
50 K
100 K
80 K
Usa disco?
Não
Não
Sim
Usa terminal?
Não
Sim
Não
Usa impressora?
Não
Não
Sim
11
SO Monoprogramado
MONOPROGRAMAÇÃO
100
CPU
0
Memória
0
100
Disco
0
Terminal
0
100
Impressora
0
0
5
P1
10
15
P2
20
25
P3
30
12
SO Multiprogramado
100
CPU
0
100
Memória
0
100
Disco
0
MULTIPROGRAMAÇÃO
Terminal
0
100
Impressora
0
0
5
P1
10
P2
P3
15
13
Conclusões
Monoprogramação
Multiprogramação
Uso de processador
17 %
33 %
Uso de memória
30 %
67 %
Uso de disco
33 %
67 %
Uso de impressora
33 %
67 %
Tempo decorrido
30 min
15 min
Taxa de execução de tarefas
6 tarefas/h
12 tarefas/h
Tempo de resposta médio
18 min
10 min
14
Um SO Multiprogramado é Mais
Complexo que SO Monoprogramado
• Eles requerem que os programas estejam
carregados na MP para serem executados
(gerência de memória)
• Quando diversas programas estão prontos para
serem executados, o processador deve decidir
qual deles deve ser executado (escalonamento)
15
Escalonamento
• Conceito de processo
– Introduzido nos anos 60
– Termo mais genérico que tarefa (job)
– Pode ser definido de várias maneiras, incluindo
• Um programa em execução
• O “espírito animado” de um programa
• A entidade à qual um processador é alocado
16
Tipos de Escalonamento
• Escalonamento de longo prazo
• Escalonamento de médio prazo
• Escalonamento de curto prazo
• Escalonamento de E/S
17
Escalonamento de Longo Prazo
• Converte (ou não) uma tarefa em um novo processo, que
é colocado na fila do escalonador de médio prazo
SO comporta mais
um processo?
Que tarefas devem
ser transformadas
em processos?
Fila do escalonador
de longo prazo
T7
T6
T5
T4
Fila do escalonador
de médio prazo
P3
Memória
Principal
P0
tarefa
T3
Escalonador
de
Longo Prazo
P1
P2
processos
18
Escalonamento de Médio Prazo
• Acrescenta um novo processo ao conjunto de
processos a serem executados na MP
P2 e P3
movidos para
a MP!
Memória
Principal
P0
Fila do escalonador
de médio prazo
P3
P2
processos
Escalonador
de
Médio Prazo
P1
P2
P3
19
Escalonamento de Médio Prazo
• É também responsável pela troca de processos
(swapping) entre a MP e o disco
P2 removido da
MP para a fila,
e P4 movido da
fila para a MP!
P0
Fila do escalonador
de médio prazo
P2
P5
processos
Memória
Principal
Escalonador
de
Médio Prazo
P1
P4
P3
20
Escalonamento de Curto Prazo
• Também chamado de despachante (dispatcher),
decide qual dos processos residentes na MP deve ser
executado
P1 deve ser
executado pelo
processador
neste instante!
Memória
Principal
P0
Escalonador
de
Curto Prazo
P1
P2
P3
21
Estado de um Processo
Despachar
Novo
Admitir
Em
execução
Pronto
Liberar
Concluído
Fim do período
de execução
Ocorrência
de evento
Aguardar
evento
Suspenso
22
Bloco de Controle de Processos
• Quando o escalonador admite um
novo processo, ele cria um bloco de
controle para esse processo;
• O bloco de controle possui seus
campos em branco, exceto o estado
– novo;
• Depois que o SO tiver preenchido
adequadamente as informações, o
Identificador
Estado
Prioridade
Contador de programa
Limites de memória
Informações de
contexto
Informação de estado
de E/S
Informação de
contabilidade
.
.
.
estado muda para pronto.
23
Escalonamento de E/S
• Decide qual processo deve ser atendido por um dado
dispositivo de E/S.
Dispositivo
de E/S # 01
Fila para o Dispositivo de E/S # 01
P3
P2
P1
Fila para o Dispositivo de E/S # 02
P6
P5
Servindo
a P1!
P4
Escalonador
de
E/S
Dispositivo
de E/S # 02
Servindo
a P4!
24
Técnicas de Escalonamento
SO
SO
Tratador de
Serviço
Escalonador
Tratador de interrupção
A
“Em execução”
Com o
controle
B
“Pronto”
Outras partições
SO
Tratador de
Serviço
Escalonador
Tratador de
Serviço
Escalonador
Tratador de interrupção
Tratador de interrupção
A
“Em espera”
A
“Em espera”
B
“Pronto”
B
“Em execução”
Outras partições
Outras partições
25
Elementos-chave de um SO com
multiprogramação
SO
Chamada ao SO feita
Por um processo
Interrupção
do processo
Interrupção de E/S
Rotina de
tratamento
de chamadas
de sistema
Fila de
longo
prazo
Rotina de
tratamento
de interrupções
Fila de Filas
curto de E/S
prazo
Escalonador de
curto prazo
Transferência de controle
para o processo
26
Diagrama de Filas de Escalonamento
de Processos
Requisição
de
processo
Fila de
longo
prazo
Fila de
curto
prazo
µP
E/S
Fila de E/S
E/S
Fila de E/S
E/S
Fila de E/S
FIM
27
Gerência da Memória
• Monoprogramação
– MP é dividida em 2 partes: uma para o SO e outra
para o programa em execução
• Multiprogramação
– A parte do “usuário” é subdividida para acomodar
diversos processo
– A memória precisa ser alocada de modo eficiente
para encaixar o máximo de processo possíveis na
memória
28
Gerência da Memória - Swapping
• O µP é mais rápido que os dispositivos de E/S
– É possível ter TODOS os processos aguardando
operações de E/S ao mesmo tempo
• Soluções possíveis
1. Aumentar a quantidade de memória principal
•
Memória ainda é relativamente cara 
•
Quantidades maiores de memória têm resultado em
processos maiores, e não em mais processos 
2. Troca (swapping) de processos na memória
29
Gerência da Memória - Swapping
30
Gerência da Memória –
Estabelecimento de Partições
• Processos são carregados para a MP
• Lá, eles ocupam partições da MP
– Suponha (inicialmente) que um processo não possa
ocupar mais de uma partição
• Como se dá essa ocupação?
– Processos ocupam partições definidas estaticamente
(i.e., à priori)?
– Processos ocupam partições definidas dinamicamente
(i.e., assim que eles são caregados)?
31
Exemplos de Particionamento Estático
SO (8 M)
8M
8M
8M
8M
8M
SO (8 M)
2M
4M
6M
8M
8M
12 M
8M
16 M
8M
(a) Partições de mesmo tamanho
(a) Partições de tamanhos diferentes
32
Efeito de Partições Estáticas de
Tamanhos Iguais
SO (8 M)
8M
8M
Processo 1
Processo 1
Processo 2
Processo 2
8M
8M
8M
Desperdício!
8M
8M
Processo 3
Não cabe
na partição!
33
Efeito de Partições Estáticas de
Tamanhos Diferentes
SO (8 M)
2M
4M
4M
Processo 1
Processo 1
Processo 2
Processo 2
Processo 3
Processo 3
8M
8M
12 M
Desperdício!
16 M
Processo 4
Não cabe
na partição!
34
Efeito de Partições Dinâmicas
SO
128 K
SO
Processo 1
SO
320 K
896 K
SO
Processo 1
320 K
Processo 1
320 K
Processo 2
224 K
Processo 2
224 K
Processo 3
288 K
576 K
352 K
64 K
(a)
SO
Processo 1
(b)
SO
320 K
Processo 1
(c)
SO
320 K
(d)
SO
320 K
Processo 2
224 K
96 K
224 K
Processo 3
288 K
Processo 4
Processo 4
96 K
Processo 3
288 K
(f)
128 K
Processo 4
96 K
Processo 3
64 K
64 K
(e)
128 K
288 K
96 K
Processo 3
64 K
(g)
128 K
288 K
64 K
(h)
35
Sumário sobre Partições
• Partições estáticas
– Mais simples 
– Maior desperdício 
• Partições dinâmicas
– Começam bem 
– Surgimento de “buracos” na memória 
• Amenizados com o uso da compactação 
• Compactação requer tempo de processamento 
36
Paginação de Memória
• Memória é dividida à priori em partes iguais de
tamanho fixo denominadas blocos
• Cada processo também é dividido em pequenos
pedaços de tamanho fixo denominados páginas
• As páginas de um processo são alocadas em
blocos disponíveis na memória.
• Desperdício é reduzido 
– Espaço desperdiçado é apenas uma fração do último
bloco alocado ao processo
37
Alocação de Blocos Livres
Lista de Blocos Livres
13
14
15
18
20
Processo A
Página 0
Página 1
Página 2
Página 3
Lista de Blocos Livres
20
21
13
Livre
14
Livre
14
15
Livre
15
16
Em uso
17
Em uso
18
Livre
19
Em uso
20
Livre
21
Livre
Processo A
13
Página
0 de A
Página
1 de A
Página
2 de A
16
Em uso
17
Em uso
18
Página
3 de A
19
Em uso
Processo A
Tabela de páginas
20
Livre
13
21
Livre
Página 0
Página 1
Página 2
Página 3
14
15
18
3
Tradução de Endereços
Memória
Principal
Número de
página
Endereço
Lógico
Deslocamento
dentro da página
1
Página 0
de A
Página 1
de A
Página 2
de A
14
Em uso
16
Em uso
17
Página 3
de A
18
Em uso
19
15
Livre
20
18
Livre
21
Número de
bloco
Endereço
Físico
30
13
14
Deslocamento
dentro do bloco
14
30
13
15
Tabela de páginas
do Processo A
39
Memória Virtual
• Paginação sob demanda
– Cada página de um processo é trazida para a memória
apenas quando é necessária
– É possível que um processo seja maior que toda a
área da memória principal!
• Interrupção por Falta de Página
– Processo desvia para uma instrução localizada em
uma página que não está na memória, ou dados
referenciados encontram-se em uma página que não
está na memória
– SO deve carregar a página desejada
40
Tabelas de Páginas Podem Ser Muito
GRANDES!
• Suponha um processo com endereços lógicos
de 32 bits e páginas de 4 KB...
1B
...
Página
(212 posições)
0
1
2
20 bits
12 bits
No da página
Deslocamento
32 bits
4095
...
Tabela de Páginas
(220 entradas)
Entrada 0
Entrada 1
Entrada 2
Entrada (220 – 1)
41
Tabelas de Páginas Podem Ser Muito
GRANDES!
• Se cada entrada ocupar 4 B, a Tabela inteira
ocupa 4 MB na MP
• Imagine agora N processos iguais àquele
– Se cada processo possui uma Tabela de Páginas, há N
Tabelas iguais àquela ocupando espaço na MP!
• Estratégias usadas para contornar este problema
– Paginação Multinível
– Tabela de Páginas Invertida (IPT)
42
Paginação Multinível
Endereço lógico
32 bits
10 bits
12 bits
No Pág. #1
No Pág. #2
Deslocamento
...
10 bits
Entrada 0
Entrada 1
Entrada 1023
Entrada 0
...
Entrada 25
...
Entrada 0
Entrada 1
...
Entrada 0
Entrada 1
...
Carregada
permanentemente na MP
(4KB)
Entrada 1023
...
...
Entrada 1023
+
Entrada 1023
Endereço
físico
Carregada
temporariamente na MP
43
Exemplo de Paginação Multinível
No Pág. # 1
No Pág. # 2
Deslocamento
0x0
0x1
0x123
Apontador para a
Tab. Pág. de 2º nível
Bloco
0xB1284000
0xAF013
0x94A1C000
0x18F1B
0x0831A000
0x0A921
...
...
0x18F1B
No Bloco
0x123
Deslocamento
44
Efeitos da Paginação Multinível
• Menor espaço ocupado na MP 
– Apenas uma Tabela de Páginas é armazenada
permanentemente na MP
• Maior quantidade de acessos à MP 
– Para uma paginação de N níveis, são necessários
N+1 acessos à MP para um acesso simples
45
IPT (Tabela de Páginas Invertida)
• Há apenas uma Tabela de Páginas
• Indexação se dá pelo Número do Bloco
• Tipos
– IPT Linear
– IPT com Função Hash
• Tabelas de Páginas convencionais são também
chamadas de Tabelas de Páginas Diretas
46
IPT Linear
PID
No Pág.
Deslocamento
0
0x1
0x123
Índice
PID
No Pág.
0x0
...
1
0xA63
...
...
0x18F1B
0
0x1
0x18F1C
...
3
0x31AB
...
...
No Bloco
Deslocamento
0x18F1B
0x123
Endereço lógico
Endereço físico
47
IPT com Função Hash
Função
Hash
PID
No Pág.
Deslocamento
0
0x1
0x123
Índice
Índice
PID
No Pág.
Próximo
0x18F1C
1
0xA63
0x18F1B
...
0x0
...
...
...
...
0xAF013
0x18F1B
0
0x1
—
0x0
0x18F1C
...
3
0x31AB
0x0A921
...
...
...
...
Tabela de
Âncoras Hash
Endereço lógico
No Bloco
Deslocamento
0x18F1B
0x123
Endereço físico
48
Resumo dos Tipos de IPT
• IPT Linear
– Ocupa pouco espaço 
– Busca demorada 
• IPT com Função Hash
– Ocupa um pouco mais de espaço 
– Busca acelerada (com uso de apontadores) 
• Colisões tratadas com o uso de encadeamento
49
TLB (Translation Lookaside Buffer)
• Um acesso à MP requer, na verdade, dois
acessos (no mínimo)
1. Acesso à Tabela de Páginas
2. Acesso efetivo à MP para obtenção dos dados
• Para solucionar este problema, existe a TLB
• Trata-se de uma espécie de cache para
entradas de Tabelas de Páginas
• A TLB contém as entradas mais recentemente
usadas
50
Paginação e a TLB
Programa solicita
acesso a uma página
Início
µP checa a TLB
No da
página na
TLB?
Sim
Não
Acessa a Tabela de
Páginas
SO instrui µP a ler a
página do disco
Não
µP ativa HW de E/S
Rotina de manipulação
de falha de página
Página
está na
MP?
Sim
Atualiza a TLB
Página transferida
do disco para a MP
Memória
cheia?
Sim
Realiza substituição
de páginas
µP gera endereço
físico
Não
Tabela de páginas
atualizada
51
Operação da TLB e da Cache
Operação da TLB
Endereço lógico
1
2
No página
Desloc.
TLB
falha
2’
acerto
Operação da TLB
Endereço físico
2’
3
5
6
+
4
Rótulo
Cache
(resto)
acerto
palavra
falha
6’
2’
6’
6’
palavra
Tabela de páginas
MP
52
Conceitos de Segmentação
• MP não é particionada à priori
• Espaço de endereçamento lógico do processo
é dividido em segmentos de vários tamanhos
– Exemplos: segmentos de código, dados e pilha
• Quando um processo é executado, todos os
segmentos são carregados para a MP
• Segmentos são carregados em qualquer
posição livre da MP
53
Exemplo de Segmentação
Memória Principal
Segmento 1
Segmento 0
Espaço de
Endereçamento
Lógico do Processo
Segmento 1
Segmento 3
Segmento 2
Segmento 2
Segmento 3
Segmento 0
54
Segmentação – Tradução de Endereços
Endereço relativo
dentro do segmento
Número do
segmento
Endereço
Lógico
0x00000001
RBase
+
0x103AD098
0x6364D3C3
Endereço
Físico
...
RLimite
0x532A032B
0x6CD93E2
1
...
...
Tabela de
Segmentos
>
Não
Acesso
permitido
55
Segmentação – Implementando
Proteção
Número do
segmento
Endereço
Lógico
Endereço relativo
dentro do segmento
0x00000001
RBase
+
0x203AD098
0x7364D3C3
Endereço
Físico
...
RLimite
0x532A032B
0x6CD93E2
1
...
...
Tabela de
Segmentos
>
Sim
Falha de
Segmentação!
56
Combinação Segmentação-Paginação
• MP é particionada em Quadros
• Espaço de endereçamento lógico do processo
é dividido em segmentos de vários tamanhos
• Segmentos são paginados
• Páginas de um segmento são alocadas em
Quadros da MP
57
Exemplo da Combinação
Segmentação-Paginação
Memória Principal
P0
P1
Segmento 0
P0
P1
P2
P3
Segmento 1
P0
P1
P0
Segmento 2
P0
P1
P0
P1
Segmento 3
P0
P1
P2
P1
P0
P2
P3
P2
P1
58
Exemplo da Combinação
Segmentação-Paginação
RBase
...
...
...
Página 0
de A
Página 1
de A
Página 2
de A
Tabela de
Segmentos
...
Em uso
16
Em uso
17
Página 3
de A
18
Em uso
19
Livre
20
Livre
21
End.
Tab.Pág.
...
14
...
Endereço
Lógico
1
2
Memória
Principal
30
Tabela de
Páginas
Endereço
Físico
Número do
Segmento
14
30
Número de
bloco
Número da
Página
Endereço relativo
dentro da página/bloco
13
14
15
59
Referências
• STALLINGS, W. Arquitetura e organização de
computadores: projeto para o desempenho. 8.
ed. Prentice Hall, 2009.
• DELGADO, J.; RIBEIRO, C. Arquitetura de
Computadores. 2 ed. LTC, 2009.
• PATTERSON, D. A. ; HENNESSY, J.L. Organização
e projeto de computadores – a interface
hardware software. 3. ed. Editora Campus,
2005.
60
Download