1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani [email protected]...
Transcript of 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani [email protected]...
![Page 2: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/2.jpg)
2
Princípios básicos de hardware Periférico é um dispositivo conectado a um computador
de forma a possibilitar sua interação com o mundo externo
Os periféricos são conectados ao computador através de um componente denominado interface
As interfaces são interconectadas aos barramentos internos do computador
As interfaces possuem registradores internos, através dos quais são acionadas
Interfaces possuem um microprocessador (controlador ou controladora) dedicado a realização e controle das operações de entrada e saída
![Page 3: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/3.jpg)
3
Arquitetura de Entrada e Saída
Dispositivo de E/S possui uma parte mecânica e outra eletrônica
![Page 4: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/4.jpg)
4
Dispositivos de Entrada e Saída
Classificados como:• Orientados a caractere
• Unidade de transferência é o caractere
• E.g. Teclado, interface serial (mouse)
• Orientados a bloco
• Unidade de transferência de dados é um bloco de caracteres (tamanho fixo)
• E.g. disco
Nem todos dispositivos se enquadram:• E.g. relógio
![Page 5: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/5.jpg)
5
Dispositivos de Entrada e Saida
Apresentam características próprias• Taxa de transferência de dados
• Complexidade de controle
• Unidade de transferência
• Representação de dados
• Tratamento de erros
![Page 6: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/6.jpg)
6
Tipos de conexão e transferência de dados
Dois tipos de intefaces• Interface Serial
• Apenas uma linha p/ transferência (bit)
• Interface Paralela• Mais de uma linha (8 linhas - byte)
![Page 7: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/7.jpg)
7
Como controladores e SO interagem?
Controladora é programada via registradores da interface (registradores de configuração)
Registradores podem ser vistos de duas maneiras (definido pela arquitetura)• E/S mapeada em espaço de E/S
• E/S mapeada em espaço de memória
![Page 8: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/8.jpg)
8
Espaço de endereçamento
• Conjunto de endereços de memória que o processador consegue acessar diretamente
• A forma de acessar os registradores (das interfaces) dos periféricos é definida no projeto do processador:• Espaço único
• Dois espaços, um deles dedicado à E/S
• No caso de haver 2 espaços, existem instruções específicas para acessar um ou outro espaço de endereçamento
![Page 9: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/9.jpg)
9
Mapeamento em espaço de E/S
Processador possui duas áreas distintas de endereçamento
O espaço de E/S é acessado com instruções especiais, diferentes das outras que acessam memória principal
![Page 10: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/10.jpg)
10
Mapeamento em espaço de memória
Um único espaço de endereçamento Parte da memória fica reservada para
E/S Os periféricos são acionados através
das instruções normais de acesso à memória
![Page 11: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/11.jpg)
11
Técnicas para realizar E/S
E/S programada E/S orientada à interrupções Acesso direto à memória
![Page 12: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/12.jpg)
12
E/S programada
Toda interação entre o processador e o controlador é de responsabilidade do programador
Ciclo de funcionamento• Envia comando ao controlador
• Espera término do comando Processador espera o término da
operação
![Page 13: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/13.jpg)
13
Desvantagem
Desperdício de tempo de CPU para verificar estado da operação de E/S• CPU é muito mais rápida
Solução é inserir operações entre sucessivas consultas sobre o estado da operação• Polling
Qual freqüência do polling?
![Page 14: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/14.jpg)
14
E/S orientada à interrupção
Processador inicia a operação de E/S CPU é interrompida quando termina a
operação de E/S Enquanto interrupção não ocorre, a CPU
pode executar outras tarefas (portanto, evita desperdício de tempo de CPU)
![Page 15: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/15.jpg)
15
Desvantagem
CPU é intermediária• Toda palavra lida do (ou escrita no) periférico
passa pela CPU
![Page 16: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/16.jpg)
16
DMA – Acesso direto à memória
Transfere diretamente um bloco de dados entre o dispositivo E/S e a memória
Interrupção só quando acaba a transferência de todo o bloco
Processador só se envolve com E/S no início e no fim da transferência
![Page 17: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/17.jpg)
17
Objetivos da gerência de E/S
Eficiência Uniformidade é desejável:
• Todos dispositivos enxergados da forma mais uniforme possível
Esconder os detalhes (estes são tratados pelas camadas de mais baixo nível)
Fornecer abstrações genéricas: read, write, open e close
![Page 18: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/18.jpg)
18
Princípios básicos de sw de E/S
Subsistema de E/S é complexo dada a diversidade de periféricos
Padronizar ao máximo para reduzir número de rotinas• Novos dispositivos não alteram a visão do
usuário em relação ao SO
Organizado em camadas
![Page 19: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/19.jpg)
19
Estrutura do subsistema E/S
driverteclado
driverSCSI
driverEIDE
driverfloppy
driverrede
Hardware
E/S independente do dispositivo
E/S nível de usuário
Interface padrão para drivers de dispositivos (API)
Softw
are
Sis
tem
a op
erac
iona
l
![Page 20: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/20.jpg)
20
Visão Geral do software de E/S Tratador de interrupção
• É acionado ao final da operação de transferência
• Aciona driver Driver de dispositivo
• Recebe requisições
• Configura (aciona) o controlador E/S independente de dispositivo
• Nomes e proteção
• bufferização E/S a nível de usuário
• Chamadas de E/S
![Page 21: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/21.jpg)
21
Driver de Dispositivo
Conjunto de estruturas de dados e funções que controlam um ou mais dispositivos com interface bem definida
Fornecido pelo fabricante do periférico Vantagens:
• Isola código especifico do dispositivo
• Facilita adicionar novos drivers
• O kernel fica isolado de modificações dos drivers
• O sistema tem uma visão uniforme dos dispositivos
![Page 22: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/22.jpg)
22
E/S Independente de dispositivo Escalonamento
• Determina melhor ordem para atendimento à requisições de E/S• Divide de forma justa o acesso a periféricos
Manipulação de buffers• Área de armazenamento temporária
Cache• Permitir o acesso rápido aos dados
Spooling• Controlar acesso a dispositivos que atendem apenas uma requisição
por vez Direitos de acesso
• Controlar acesso à dispositivos de acordo com as suas permissões Tratamento de erros
• Informar à camada superior que houve erro
![Page 23: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/23.jpg)
23
E/S a nível de usuário
Implementação, em nível de linguagem de programação, de rotinas que permitem programas fazer acesso à dispositivos
Estas rotinas estão em bibliotecas da linguagem
Interagem com as funções da API do SO (chamada de sistema)
![Page 24: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/24.jpg)
24
Dispositivos Periféricos Típicos
Existem vários tipos de dispositivos Vamos discutir alguns, mais típicos
![Page 25: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/25.jpg)
25
Disco Dispostos em alturas diferentes com auxílio de
um eixo central (spindle). A tecnologia atual permite superpor até 8
discos. As duas superfícies de cada disco são
recobertas por uma película magnética na qual os dados são gravados.
O eixo gira a uma rotação constante (e.g. 5400 rpm)
Os cabeçotes de leitura/gravação (um para cada superfície de disco) realizam movimentos de vai-e-vem (seek)
![Page 26: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/26.jpg)
26
Disco
![Page 27: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/27.jpg)
27
Disco
A definição de trilhas (tracks) e setores (sectors) é chamada formatação
Acesso antigamente feito por número do cilindro, trilha e setor.
Hoje, o controlador do disco tem um endereço linear LBA (linear block address)
![Page 28: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/28.jpg)
28
Disco
Partes do disco podem ser separadas em unidades lógicas• partições
![Page 29: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/29.jpg)
29
Disco
Tempo de acesso
Onde • taccess é o tempo de acesso total
• tseek é o tempo de movimentação do cabeçote
• tlatency é o tempo de atraso rotacional
• ttransfer é o tempo para transferir os dados
tttt transferlatencyseekaccess
![Page 30: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/30.jpg)
30
Disco
Entrelaçamento• Evita latência rotacional em setores
adjacentes
• Numerar setores de forma não contígua
01
2
3
4
5
68 7
9
10
11
12
13
1415 0
1
23
4
5
6
8
7
9
10 11
12
13
14
15
Fator de entrelaçamento = 0
Disco 1 Disco 2
Fator de entrelaçamento = 2
![Page 31: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/31.jpg)
31
Disco
Escalonamento• Que fazer quando várias requisições
chegam?• Chegam mais rápido que seu atendimento
• O controlador pode escolher diferentes estratégias para melhorar performace• FCFS (First Come First Served)
• SSTF (Shortest Seek Time First)
• SCAN (Variação do SSTF)
• C-SCAN (SCAN unidirecional)
![Page 32: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/32.jpg)
32
Vídeo
Nos PCs antigos eram mapeados em memória• Podia-se escrever no vídeo através de uma posição
de memória específica Hoje, são bem mais sofisticados
• Possuem capacidade de processamento
• Recebem diretivas mais complexas (e.g.: desenha um retângulo com preenchimento da cor tal)
Alguns sistemas permitem mais de um monitor por CPU! Pode-se visualizar duas telas (distintas) ao mesmo tempo
![Page 33: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/33.jpg)
33
Teclado
Pode ser visto como uma matriz de i linhas e j colunas, que entram em contato quando uma tecla é pressionada
Cada elemento i,j da matriz corresponde a um caractere (tecla).
![Page 34: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/34.jpg)
34
Teclado Quando uma tecla é pressionada, o teclado gera um scan code
(código de varredura) e gera uma interrupção. O tratador de interrupção obtém o scan code e armazena o
código ASCII correspondente numa região especial da memória (buffer de teclado)
Os caracteres digitados são lidos do buffer de teclado através de chamadas do SO
Para o usuário final, são disponibilizadas rotinas de biblioteca, como por exemplo, getc() na linguagem C
Os usuários querem visualizar os caracteres digitados na tela: ecoamento.
No caso de várias janelas abertas, os caracteres digitados devem ser direcionados à janela correta. O direcionamento é feito através do conceito de “janela ativa”.
![Page 35: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/35.jpg)
35
Rede Uma rede é um conjunto de computadores
interconectados de forma a compartilhar recursos comuns: discos, impressoras, arquivos, etc.
A interconexão envolve o emprego de um hardware especial: a interface de rede
A tecnologia usada na interface, determina como fisicamente os dados serão transmitidos, a velocidade de transmissão, a capacidade de transmitir e receber ao mesmo tempo (full duplex), etc.
![Page 36: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/36.jpg)
36
Hardware da placa de rede A placa de rede transforma os sinais digitais
em sinais analógicos, usados na transmissão. Possui um processador dedicado (o contro-
lador de rede) e uma capacidade de memória (buffers), onde os dados a serem transmitidos ou recebidos são armazenados.
Trabalha orientada a eventos: • Final da transmissão (este evento é interpretado como
disponibilidade para nova transmissão)• Recepção de uma mensagem (significa que uma
mensagem deve ser lida).
![Page 37: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/37.jpg)
37
Software de rede
Independentemente da tecnologia e dos aspectos físicos do hardware, o software de gerenciamento de rede deve tratar de problemas similares.
Como esse software é complexo e envolve muitas abstrações, ele é organizado em camadas (e.g., modelo OSI/ISO).
![Page 38: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/38.jpg)
38
Software envolvido na transmissão de uma msg
• Um processo A quer enviar uma mensagem para um processo B, executado em uma máquina remota
• Primeiro problema: a quantidade de bytes da msg pode ser maior que a quantidade máxima fisicamente permitida. Solução: dividir a mensagem em pacotes menores (fragmentação)
• Para cada pacote transmitido, a placa de rede gera uma interrupção para sinalizar que ela está pronta para enviar outro pacote.
• No outro extremo, a máquina do processo B, deve receber os pacotes e remontar a msg. Para cada pacote recebido é gerada uma interrupção (e o pacote transferido para um buffer maior)
(continua)
![Page 39: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/39.jpg)
39
Software envolvido na transmissão de uma msg
• Como o driver de rede identifica que estes dados são para o processo B e não para outro processo? Como ele não mistura os pacotes recebidos? Solução: criar canais lógicos entre os processos (estabelecidos antes de começar o envio/recepção de dados)
• Outro problema: pacotes podem ser perdidos (por erros no meio físico ou por falta de espaço no buffer do destinatário). Solução: o destinatário deve contar os pacotes e sinalizar as perdas ao remetente
• Outro problema: o pacote i+1 chega antes do pacote i. Isto ocorre quando, devido a um erro, o pacote i é retransmitido, enquanto o i+1 é recebido corretamente, ou quando o pacote i+1 utiliza um caminho mais curto que o pacote i (roteamento). Solução: o software deve ser capaz de ordenar os pacotes recebidos e descartar os pacotes repetidos
![Page 40: 1 Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br stoscani.](https://reader036.fdocument.pub/reader036/viewer/2022062512/552fc102497959413d8be6d3/html5/thumbnails/40.jpg)
40
Protocolo de comunicação
• Todos os problemas e procedimentos vistos nos dois slides anteriores (e muitos outros) são gerenciados pelo que se denomina protocolo de rede.
• Um exemplo bem conhecido de protocolo é a familia TCP/IP, pois toda a Internet está baseada nessa família.
• Os protocolos são implementados em camadas: no nível mais baixo estão as placas de redes, no mais alto está a aplicação do usuário.