Sistemas Operacionais - Aula 02 (Visão geral de sistemas operacionais)
Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas...
Transcript of Sistemas Operacionais #1 Pontifícia Universidade Católica PUC - Minas Poços de Caldas Sistemas...
Sistemas Operacionais #1
Pontifícia Universidade Católica PUC - Minas Poços de Caldas
Sistemas Operacionais
SISTEMA DE ENTRADA E SAÍDA
Prof. D.Sc. Eduardo Barrére
DCC026
Sistemas Operacionais #2
Uma estrutura de barramento típica
Sistemas Operacionais #3
Determina o estado do dispositivo:– pronto– ocupado– erro
Ciclo Busy-wait para aguardar por uma comunicação com o dispositivo.
Polling (espera em ciclo)
Sistemas Operacionais #4
Interrupção
Programa controlador de dispositivo inicia operação de I/O
Inicia I/O2
CPU detecta ocorrência de interrupção, transfere o controle para tratador
de interrupções
Entrada pronta, saída completa ou erro
Gera sinal de interrupção
3
CPU1
4
Tatador de interrupções processa os dados e
retorna da interrupção
5
CPU reinicia processamento de tarefa
interrompida
6
7
CPU testa ocorrência de interrupções ente instruções
Sistemas Operacionais #5
Tabela de vetor de eventos do Pentium
Sistemas Operacionais #6
Usado para transferências de dados em grande quantidade.
Necessita de um controlador de DMA
“Ignora” a CPU na transferência entre um dispositivo de I/O e a memória.
Acesso Direto a Memória
Sistemas Operacionais #7
DMA
Barramento
Controlador de disco
Disco 1
Disco n
DMA/barramento/controlador de interrupções
Barramento
CPU
cache
MemóriaÁrea
x
1. a rotina de controle recebe a informação para trasnferir os dados do disco para a área de armazenamento “x”
2. a rotina de controle informa ao controlador de disco para transferir C bytes do disco para a áreaarmazenamento “x”
3. o controlador de disco inicia a transferência.4. o controlador de disco envia cada byte ao controlador de DMA.
5. o controlador de DMA transfere os bytes para a área “x”, incrementando o endereço de memória e diminuindo C até que C == 0.6. quando C ==0, o DMA interrompe a CPU, indicando que a transferência foi concluída.
Sistemas Operacionais #8
Uma estrutura do sistema de I/O
Sistemas Operacionais #9
Interface de I/O
Chamadas de Sistemas de I/O encapsulam comportamentos em classes genéricas.
A camada do driver de dispositivo esconde as diferenças entre os controladores de I/O e o kernel
Os dispositivos variam em diversas dimensões:
– stream de caractere ou bloco
– Acesso sequencial ou randômico
– Compartilhado ou dedicado
– Velocidade de operação
– Leitura-escrita, somente leitura ou somente escrita
Sistemas Operacionais #10
Dispositivos de Rede
Unix e Windows incluem interface com sockets– Separa protocolo de rede com operações de
rede
– Inclui a funcionalidade select, que gerencia um conjunto de sockets
Outras comunicações: pipes, FIFOs, streams, filas, mailboxes.
Sistemas Operacionais #11
Oferece: tempo corrente, tempo “passado”, temporizador
Permite programar intervalos de tempo que são utilizados por temporizadores e interrupções periódicas
Relógios e Temporizadores
Sistemas Operacionais #12
I/O com e sem BloqueioBloqueada(síncrona): o processo é suspenso até que a requisção de I/O esteja completa– Fácil de usar e entender– Insuficiente para muitas necessidades
Não Bloqueada: a chamada de I/O não bloqueia o processo. Uso de streams– Implementeda via multi-threading – Cópia de dados (bufferizados), interface com o usuário, etc.– Retorna rapidamente com a quantidade de bytes lidos ou escritos.
Assíncrona: o processo continua rodando enquanto a operação de I/O é executada.– Dificuldade para usar.– O subsistema de I/O sinaliza (memória, interrupção via softaware, etc.) o processo
quando a operação de I/O estiver completa.
Sistemas Operacionais #13
Ordenação– Para uma leitura em disco (3 arquivos em posições
distintas)
Bufferização: armazena dados na memória enquanto é feita a transferência entre os dispositivos
– Para dispositivos de velocidades diferentes
– Para dispositivos com capacidades diferentes
Cache
Spool
Kernel do subsistema de I/O
Sistemas Operacionais #14
Tabela de Status dos dispositivos
Sistemas Operacionais #15
Tratamento de Erros
O SO pode tentar ler novamente um disco antes de reportar um erro.
Retorna um código de erro quando a operação não pode ser concluída
Alguns SOs permitem criar arquivos de logs para os erros de I/O
Sistemas Operacionais #16
Estrutura de Dados do Kernel
Kernel keeps state info for I/O components, including open file tables, network connections, character device state
Many, many complex data structures to track buffers, memory allocation, “dirty” blocks
Some use object-oriented methods and message passing to implement I/O
Sistemas Operacionais #17
Estrutura do Kernel do UNIX