Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani.

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Software Básico Entrada/Saída Capítulo 2 Mitsuo Takaki
Gerência de Entrada e Saída (Aula 24)
Capitulo 6: Entrada e Saída
Transmissão de pacotes
Arquitetura de Computadores
A Interface entre Processadores e Periféricos
Redes de computadores I
Sistemas operacionais
Barramentos Introdução.
Entrada e Saída Introdução.
Técnicas para operações E/S
4. Input / Output.
Sistemas Operacionais
Arquitetura de Sistemas Operacionais
Arquitetura de Sistemas Operacionais
Sistemas Operacionais
Problemas com Entrada e Saída
Sistemas de Entrada/Saída
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC SISTEMAS OPERACIONAIS I Turmas.
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação SSC541 - SISTEMAS OPERACIONAIS I Aula.
Maria Aparecida Castro Livi
Rganização de Computadores A Interface entre o Processador e os Periféricos Capítulo 8 – Patterson & Hennessy (seções 8.4 e 8.5) Organização de Computadores.
Device Drivers no Windows e Linux Visão Geral e Boas Práticas
Capítulo 6 Sistemas de Arquivos 6.1 Arquivos 6.2 Diretórios
Estudo de Caso 1: UNIX e LINUX
Sistemas Operacionais
Professor: Carlos Roberto da Silva Filho, M. Eng.
Esquema básico do hardware
Componentes do Computador e noções de Arquitetura de Computadores
Sistemas Operacionais SISTEMA DE ENTRADA E SAÍDA
Sistemas Operacionais
Arquitetura de Computadores
HARDWARE do CLP Os controladores lógicos programáveis são equipamentos com uma aplicação muito vasta dentro dos diversos processos de automação. Desta.
Capítulo 5 - Entrada/Saída
Sistemas Operacionais I
Sistemas Operacionais
Introdução à Programação
Software de Rede Willamys Araújo.
Sistemas Operacionais
Modelo de referência OSI
SISTEMAS OPERACIONAIS
Sistemas Operacionais
Sistemas Operacionais
Sistemas Operacionais
Arquitetura de computadores
Sistemas Operacionais
Capítulo 13: Sistemas de E/S
Sistemas Operacionais I
Arquitetura de computadores
Projeto de Banco de Dados
Entrada e Saída (E/S ou I/O)
Sistemas Operacionais
© 2004 by Pearson Education Computadores: Ferramentas para a Era da Informação Tema 0 PARTE A.
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Sistemas Operacionais Entrada e Saída – Aula II Prof. Galvez.
Sistema de Entrada e Saída
Sistemas Operacionais
Zeque - Grad. CC1 Sistemas Operacionais Curso de Ciência da Computação da UFPE Prof. José Queiroz - ZEQUE.
Entrada e Saída (E/S).
Módulos de um sistema operativo
Sistemas Operacionais
Subsistema de Entrada e Saída do Kernel
ORGANIZAÇÃO DA UNIDADE
Sistemas de Arquivos Sistemas Operacionais Profa. Priscila Facciolli
Arquitetura de computadores
Disciplina: Sistema Operacional Professor: Luciano Ricardi Scorsin.
Sistemas Operacionais IV – Gerenciamento de E/S
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Transcrição da apresentação:

Entrada e Saída Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani

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

Arquitetura de Entrada e Saída Dispositivo de E/S possui uma parte mecânica e outra eletrônica

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

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

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)

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

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

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

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

Técnicas para realizar E/S E/S programada E/S orientada à interrupções Acesso direto à memória

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

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?

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)

Desvantagem CPU é intermediária Toda palavra lida do (ou escrita no) periférico passa pela CPU

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

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

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

Estrutura do subsistema E/S

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

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

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

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)

Dispositivos Periféricos Típicos Existem vários tipos de dispositivos Vamos discutir alguns, mais típicos

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)

Disco

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)

Disco Partes do disco podem ser separadas em unidades lógicas partições

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

Disco Entrelaçamento Evita latência rotacional em setores adjacentes Numerar setores de forma não contígua

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)

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

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).

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”.

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.

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).

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).

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)

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

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.