sistemas operacionais #1 pontifícia universidade católica puc - minas poços de caldas sistemas...

17
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

Upload: internet

Post on 17-Apr-2015

103 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

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

Page 2: 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

Sistemas Operacionais #2

Uma estrutura de barramento típica

Page 3: 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

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)

Page 4: 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

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

Page 5: 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

Sistemas Operacionais #5

Tabela de vetor de eventos do Pentium

Page 6: 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

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

Page 7: 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

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.

Page 8: 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

Sistemas Operacionais #8

Uma estrutura do sistema de I/O

Page 9: 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

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

Page 10: 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

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.

Page 11: 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

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

Page 12: 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

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.

Page 13: 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

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

Page 14: 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

Sistemas Operacionais #14

Tabela de Status dos dispositivos

Page 15: 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

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

Page 16: 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

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

Page 17: 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

Sistemas Operacionais #17

Estrutura do Kernel do UNIX