SSC0640 Sistemas Operacionais I

Documentos relacionados
18/10/2010. SO pode atuar de duas maneiras diferentes:

Sistemas Operacionais

Entrada e Saída e Dispositivos

Sistemas de Entrada e Saída

Capítulo 13: Sistemas de E/S. Operating System Concepts with Java 7th Edition, Nov 15, 2006

Sistemas Operacionais. Sistema de entrada e Saída

Entrada/Saída. Capítulo 5. Sistemas Operacionais João Bosco Junior -

Sistemas Operacionais Aula 15: Sistemas de I/O. Ezequiel R. Zorzal

UFRJ IM - DCC. Sistemas Operacionais I. Unidade IV Gerência de Recursos Entrada e Saída. 02/12/2014 Prof. Valeria M. Bastos

Infra-Estrutura de Software

Sistemas de Entrada e Saída

Aula 03 - Concorrência. por Sediane Carmem Lunardi Hernandes

Introdução ao Gerenciamento de Entrada e Saída (E/S)

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

SSC0611 Arquitetura de Computadores

PCS-2529 Introdução aos Processadores. Prof. Dr. Paulo Sérgio Cugnasca

Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 19. Sistema de Entrada/Saída

Fundamentos de Sistemas Operacionais

Gerência de Entrada e Saída

Sistemas de Entrada e Saída

Periféricos possuem características diferentes. Periféricos são mais lentos que UCP e Memória Necessita-se de módulos de Entrada/Saída


Organização de Computadores

Cap. 12 Gerência de Dispositivos 1

Organização e Arquitetura de Computadores I

Entrada e saída Introdução hardware de E/S

Notas da Aula 14 - Fundamentos de Sistemas Operacionais

Capítulo 5 Entrada/Saída

Sistemas Operacionais. Entrada/Saída

Estrutura de Sistemas Operacionais. Capítulo 1: Introdução

Dispositivos de Entrada e Saída

Problemas com Entrada e Saída

Sistemas Opera r cionais Sistemas de E/S 1

Dispositivos de Entrada e Saída

Dispositivos de Entrada e Saída

Gerência de Dispositivos. Adão de Melo Neto

Organização de Computadores 1

Sistemas Operacionais

SSC0640 Sistemas Operacionais I

Gerência de Dispositivos. Adão de Melo Neto

Sistema de entrada e saída (E/S)- Módulos de E/S; tipos de operações de E/S

Capítulo 13: Sistemas de E/S. Operating System Concepts 8 th Edition

Barramento. Prof. Leonardo Barreto Campos 1

SSC0640 Sistemas Operacionais I

Organização e Arquitetura de Computadores I

Capítulo 5 Entrada/Saída

Infra-Estrutura de Software. Entrada / Saída

Arquitetura de Computadores Unidade 2 Organização Funcional dos Sistemas de Computação tópico 2.3 Subsistemas de E/S

Introdução aos Sistemas Operacionais

Sistemas Operacionais Aula 15: Sistemas de I/O. Ezequiel R. Zorzal

Sistemas Operacionais. Interrupção e Exceção

Subsistemas de E/S Device Driver Controlador de E/S Dispositivos de E/S Discos Magnéticos Desempenho, redundância, proteção de dados

Revisão Ultimas matérias

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

Arquitetura de Sistemas Operacionais Francis Berenger Machado / Luiz Paulo Maia (Material Adaptado)

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Processo. Gerência de Processos. Um programa em execução. Centro de Informática/UFPE :: Infraestrutura de Software

Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação.

Introdução. Pedro Cruz. EEL770 Sistemas Operacionais

Sistemas Operacionais. BSI / UAB 2013 Hélio Crestana Guardia

4.3 - DMA & Chipset. CEFET-RS Curso de Eletrônica. Profs. Roberta Nobre & Sandro Silva. e

Arquitetura de Computadores. Revisão Volnys Bernal. Agenda. Revisão: Arquitetura de Computadores. Sobre esta apresentação

Sistemas Operacionais

Introdução aos Sistemas Operacionais

Parte I Multiprocessamento

Entrada e Saída. Tópicos de E/S

Sistemas Operativos I/O. Rui Maranhão

Entrada. Saída. Entrada e Saída. Sistemas Operacionais

Entrada e Saída (E/S)

Aula 09. Módulos de Entrada e Saída

Processos O conceito de processos é fundamental para a implementação de um sistema multiprogramável. De uma maneira geral, um processo pode ser entend

O Sistema de Computação

SSC510 Arquitetura de Computadores 1ª AULA

Capítulo 13: Sistemas de E/S. Operating System Concepts 8th Edition

Exercícios de Sistemas Operacionais 3 B (1) Gerência de Dispositivos de Entrada e Saída

Arquitetura de Computadores

INTRODUÇÃO À TECNOLOGIA DA INFORMAÇÃO ENTRADA E SAÍDA PROFESSOR CARLOS MUNIZ

Módulo 3 - Estrutura e configuração de Sistemas Operativos monoposto

Sistemas Operacionais Abertos. Prof. MSc. André Yoshimi Kusumoto

ENSINO À DISTÂNCIA UNIDADE IV

LABORATÓRIO DE SISTEMAS OPERACIONAIS. PROFª. M.Sc. JULIANA HOFFMANN QUINONEZ BENACCHIO

CEFET-RS Curso de Eletrônica

SO: Introdução e Estrutura. Sistemas Operacionais Flavio Figueiredo (

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Organização e Arquitetura de Computadores INTRODUÇÃO

SOP - TADS Fundamentos de Sistemas Operacionais

AGT0001 Algoritmos Aula 01 O Computador

SSC0640 Sistemas Operacionais I

Arquitetura e organização de computadores

Sistemas Operacionais

Gerenciamento de Entrada e Saída. Ciclo 6 AT1. Prof. Hermes Senger

Hardware, Processador e Memória

Interrupções e DMA. Mecanismos de I/O

SSC0640 Sistemas Operacionais I

Informática I. Aula /09/2006 1

Sistemas Operacionais - UCSAL Professor : Marco Antônio C. Câmara Primeira Lista de Exercícios

SOP - TADS Threads. Revisão Ultima aula. Programa em execução Cada processo têm sua própria CPU

Infra-Estrutura de Software

Transcrição:

SSC0640 Sistemas Operacionais I 20ª Aula Gerenciamento de Dispositivos de E/S Profa. Sarita Mazzini Bruschi sarita@icmc.usp.br Slides adaptados de Marcos José Santana / Regina H. C. Santana / Luciana A. F. Martimiano baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum 1

Gerenciamento de dispositivos de Entrada e Saída SO pode atuar de duas maneiras diferentes: Como máquina estendida (top-down) tornar uma tarefa de baixo nível mais fácil de ser realizada pelo usuário; Como gerenciador de recursos (bottom-up) gerenciar os dispositivos que compõem o computador; 2

Gerenciamento de dispositivos de Entrada e Saída Funções específicas: Enviar sinais para os dispositivos; Atender interrupções; Gerenciar comandos aceitos e funcionalidades (serviços prestados); Tratar possíveis erros; Prover interface entre os dispositivos e o sistema; Princípios: Hardware; Software; 3

Gerenciamento de dispositivos de Entrada e Saída Visão de camadas do Tanenbaum Software de E/S do Usuário Serviços Software de E/S Drivers Manipuladores de Interrupção Hardware 4 4

HARDWARE Modo Kernel SOFTWARE Modo Usuário Gerenciamento de dispositivos de Entrada e Saída Visão de camadas Processo Operações de E/ S Sistema de Arquivos Independente do dispositivo (a) Subsistema de E/ S Device Drivers Dependente do dispositivo (b) Controladores Dispositivos de E/ S 5

Princípios de Hardware Podem ser divididos em duas categorias: Dispositivos baseados em bloco: informação é armazenada em blocos de tamanho fixo, cada um com um endereço próprio; Tamanho varia entre 512 bytes e 32.768 bytes; Permitem leitura e escrita independentemente de outros dispositivos; Permitem operações de busca; Ex.: discos rígidos; 6

Princípios de Hardware Dispositivos baseados em caracter: aceita uma seqüência de caracteres, sem se importar com a estrutura de blocos; informação não é endereçável e não possuem operações de busca; Ex.: impressoras, interfaces de rede (placas de rede); placas de som; 7

Princípios de Hardware Classificação não é perfeita, pois alguns dispositivos não se encaixam em nenhuma das duas categorias: Clocks: provocam interrupções em intervalos definidos; Classificação auxilia na obtenção de independência ao dispositivo; Parte dependente está a cargo dos drivers software que controla o acionamento dos dispositivos; 8

Princípios de Hardware Os dispositivos de E/S podem apresentar uma grande variedade de velocidade 9

Princípios de Hardware Dispositivos de E/S possuem basicamente dois componentes: Mecânico o dispositivo propriamente dito; Eletrônico controladores ou adaptadores (placas); O dispositivo (periférico) e a controladora se comunicam por meio de uma interface: Serial ou paralela; Barramentos: IDE, ISA, SCSI, AGP, USB, PCI, etc. 10

Princípios de Hardware Cada controladora possui um conjunto de registradores de controle, que são utilizados na comunicação com a CPU; Além dos registradores, alguns dispositivos possuem um buffer de dados: Ex.: placa de vídeo; algumas impressoras; O SO, utilizando os drivers, gerencia os dispositivos de E/S escrevendo/lendo nos/dos registradores/buffers,; Comunicação em baixo nível instruções em Assembler; Enviar comandos para os dispositivos; Saber o estado dos dispositivos; 11

Princípios de Hardware Como a CPU se comunica com esses registradores de controle? Porta: cada registrador de controle possui um número de porta (ou porto) de E/S de 8 ou 16 bits; Instrução em Assembler para acessar os registradores; Espaço de endereçamento diferente para a memória e para os dispositivos de E/S; Mainframes IBM utilizavam esse método; SOs atuais fazem uso dessa estratégia para a maioria dos dispositivos; 12

Princípios de Hardware Comunicação com os registradores de controle: Memory-mapped (mapeada na memória): mapear os registradores de controle em espaços de memória: Cada registrador possui um único endereço de memória; Em geral, os endereços estão no topo da memória protegidos em endereços não utilizados por processos; Uso de linguagem de alto nível, já que registradores são apenas variáveis na memória; SOs utilizam essa estratégia para os dispositivos de vídeo; 13

Princípios de Hardware Comunicação com os registradores de controle: Estratégia híbrida: Registradores Porta; Buffers Mapeado na memória; Exemplo: Pentium - endereços de 640k a 1M para os buffers e as portas de E/S de 0 a 64k para registradores; 14

Princípios de Hardware Como funciona a comunicação da CPU com os dispositivos? Quando a CPU deseja ler uma palavra, ela coloca o endereço que ela está desejando no barramento de endereço e manda um comando READ no barramento de controle; Essa comunicação pode ser controlada pela própria CPU ou pela DMA; 15

Maneiras de realizar E/S E/S programada; Mais usada em sistemas embarcados/embutidos; E/S orientada à interrupção; E/S com uso da DMA; 16

Maneiras de realizar E/S E/S programada: passos para impressão de uma cadeia de caracteres (laço até que toda a cadeia tenha sido impressa); 17

Maneiras de realizar E/S E/S programada: Desvantagem: CPU é ocupada o tempo todo até que a E/S seja feita; CPU continuamente verifica se o dispositivo está pronto para aceitar outro caracter espera ocupada; 18

Maneiras de realizar E/S E/S orientada à interrupção: No caso da impressão, a impressora não armazena os caracteres; Quando a impressora está pronta para receber outros caracteres, gera uma interrupção; Processo é bloqueado; 19

Maneiras de realizar E/S E/S com uso da DMA: DMA executa E/S programada controladora de DMA faz todo o trabalho ao invés da CPU; Redução do número de interrupções; Desvantagem: DMA é mais lenta que a CPU; 20

Maneiras de realizar E/S DMA (Direct Access Memory) acesso direto à memória: Presente principalmente em dispositivos baseados em bloco discos; Controladora integrada à controladora dos discos; Pode estar na placa-mãe e servir vários dispositivos controladora de DMA independente do dispositivo; DMA tem acesso ao barramento do sistema independemente da CPU; 21

Princípios de Hardware DMA contém vários registradores que podem ser lidos e escritos pela CPU: Registrador de endereço de memória; Registrador contador de bytes; Registrador (es) de controle; Porta de E/S em uso; Tipo da transferência (leitura ou escrita); Unidade de transferência (byte ou palavra); Número de bytes a ser transferido; 22

Princípios de Hardware Sem DMA: Leitura de um bloco de dados em um disco: Controladora do dispositivo lê bloco (bit a bit) a partir do endereço fornecido pela CPU; Dados são armazenados no buffer da controladora do dispositivo; Controladora do dispositivo checa consistência dos dados; Controladora do dispositivo gera interrupção; SO lê (em um loop) os dados do buffer da controladora do dispositivo e armazena no endereço de memória fornecido pela CPU; 23

Princípios de Hardware Com DMA: Leitura de um bloco de dados em um disco: CPU controla 1. Além do endereço a ser lido, a CPU fornece à controladora de DMA duas outras informações: endereço na RAM para onde transferir os dados e o número de bytes a ser transferido; 2. Controladora de DMA envia dados para a controladora do dispositivo; Controladora do dispositivo lê o bloco de dados e o armazena em seu buffer, verificando consistência; 3. Controladora do dispositivo copia os dados para RAM no endereço especificado na DMA (modo direto); 24

Princípios de Hardware 4. Após confirmação de leitura, a controladora de DMA incrementa o endereço de memória na DMA e decrementa o contador da DMA com o número de bytes transferidos; Repete os passos de 2 a 4 até o contador da DMA chegar em 0. Assim que o contador chegar em zero (0), a controladora de DMA gera uma interrupção avisando a CPU; Quando o SO inicia o atendimento à interrupção, o bloco de dados já está na RAM; 25

Princípios de Hardware 26

Princípios de Hardware A DMA pode tratar múltiplas transferências simultaneamente: Possuir vários conjuntos de registradores; Decidir quais requisições devem ser atendidas escalonamento (Round- Robin ou prioridades, por exemplo); 27

Princípios de Hardware Por que a controladora de DMA precisa de um buffer interno? Por que não escreve diretamente na RAM? Permite realizar consistência dos dados antes de iniciar alguma transferência; Dados (bits) são transferidos do disco a uma taxa constante, independentemente da controladora estar pronta ou não; Acesso à memória depende de acesso ao barramento, que pode estar ocupado com outra tarefa; Com o buffer, o barramento é usado apenas quando a DMA opera; 28

Princípios de Hardware Interrupções de E/S (interrupt-driven I/O): Sinais de interrupção são enviados (através dos barramentos) pelos dispositivos ao processador; Após uma interrupção, o controlador de interrupções decide o que fazer; Envia para CPU (interrupções não mascaráveis); Ignora no momento dispositivos geram sinais de interrupção até serem atendidos; 29

Princípios de Hardware Controlador de Interrupções: Está presente na placa-mãe; Possui vários manipuladores de interrupção; Diferentes tipos de interrupções IRQs (Interrupt ReQuest); Manipuladores de interrupção: Gerenciam interrupções realizadas pelos dispositivos de E/S; Bloqueam driver até dispositivo terminar a tarefa; 30

Tratando Interrupções Sinal (linha) de interrupção é amostrado dentro de cada ciclo de instrução do processador; Se sinal ativo salva contexto e atende a interrupção; Ciclo de instrução com interrupção: CPU Busca; Decodificação e Execução Verifica se existe interrupção Se não busca próxima instrução, Se existe interrupção pendente: Suspende a execução do programa; Salva contexto; Atualiza PC (Program Counter) apontar para ISR (rotina de atendimento de interrupção); Executa interrupção; Recarrega contexto e continua processo interrompido; 31

Tratando Interrupções CPU 1 Driver inicia E/S CPU em execução verifica interrupções entre instruções 2 Controladora de E/S Inicia E/S 7 CPU recebe interrupção, transfere o controle para a rotina de tratamento de interrupção 5 4 3 Entrada pronta, saída completa ou erro Gera sinal de interrupção A rotina de tratamento de interrupção processa dados, retorna interrupção 6 CPU retorna o processamento da tarefa interrompida 32

Princípios de Hardware Como uma interrupção ocorre: 33

Tabela de Interrupções (exemplo) IRQ Uso padrão Outras utilizações 00 Timer do sistema Nenhum 01 Teclado Nenhum 02 IRQs 8 a 15 Modem, placa de vídeo, porta serial (3, 4), IRQ 9 03 Porta serial 2 Modem, placa de som, placa de rede 04 Porta serial 1 Modem, placa de som, placa de rede 05 Placa de som (codec) LPT2, COM 3 e 4, Modem, placa de rede, HDC 06 FDC Placa aceleradora de fita 07 Porta paralela 1 COM 3 e 4, Modem, placa de som, placa de rede 08 Relógio de tempo real Nenhum 09 Placa de som (midi) Placa de rede, SCSI, PCI 10 Nenhum Placa de rede, placa de som, SCSI, PCI, IDE 2 11 Placa de vídeo VGA Placa de rede, placa de som, SCSI, PCI, IDE 3 12 Mouse P/S2 Placa de rede, placa de som, SCSI, PCI, IDE 3, VGA 13 FPU (Float Point Unit) Nenhum 14 IDE primária Adaptador SCSI 15 IDE secundária Placa de Rede, adaptador SCSI 34

HARDWARE Modo Kernel SOFTWARE Modo Usuário Gerenciamento de dispositivos de Entrada e Saída Processo Operações de E/ S Sistema de Arquivos Independente do dispositivo (a) Subsistema de E/ S Device Drivers Dependente do dispositivo (b) Controladores Dispositivos de E/ S 35

Princípios de Software Organizar o software como uma série de camadas facilita a independência dos dispositivos: Camadas mais baixas apresentam detalhes de hardware: Drivers e manipuladores de interrupção; Camadas mais altas apresentam interface para o usuário: Aplicações de Usuário; Chamadas de Sistemas; Software Independente de E/S ou Subsistema de Kernel de E/S; 36

Princípios de Software - Camadas Drivers: São gerenciados pelo kernel do SO; Contêm todo o código dependente do dispositivo; Controlam o funcionamento dos dispositivos por meio de seqüência de comandos escritos/lidos nos/dos registradores da controladora; Dispositivos diferentes possuem drivers diferentes; Classes de dispositivos podem ter o mesmo driver; São dinamicamente carregados; Drivers defeituosos podem causar problemas no kernel do SO; 37

Princípios de Software - Camadas Comunicação feita por barramento; 38

Princípios de Software - Camadas Software Independente de E/S: Realiza as funções comuns a qualquer dispositivo; Prove uma interface uniforme para os drivers dos dispositivos Número de procedimentos que o restante do SO pode utilizar para fazer o driver trabalhar para ele; Faz o escalonamento de E/S; Atribui um nome lógico a partir do qual o dispositivo é identificado; Ex.: UNIX (/dev) Prove buffering: ajuste entre a velocidade e a quantidade de dados transferidos; Faz cache de dados: armazenar na memória um conjunto de dados frequentemente acessados; 39

Princípios de Software - Camadas Interface do SO com os drivers (a) Sem padrão de interface (b) Com padrão de interface (uniforme) 40

Princípios de Software - Camadas Buffering (a) Sem buffering (b) Buffer no espaço do usuário (c) Buffer no núcleo (d) Buffer duplicado no núcleo 41 41

Princípios de Software - Camadas Software Independente de E/S: Faz relatório de erros e proteção dos dispositivos contra acessos indevidos : Programação: Ex.: tentar efetuar leitura de um dispositivo de saída (impressora, vídeo); E/S: Ex.: tentar imprimir em uma impressora desligada ou sem papel; Memória: escrita em endereços inválidos; Gerencia a alocação, uso e liberação dos dispositivos dedicados, que possuem acessos concorrentes; Define um tamanho do bloco independente do dispositivo 42

Princípios de Software Software Independente de E/S: Transferência de dados: Síncrona (bloqueante): requer bloqueio até que os dados estejam prontos para transferência; Assíncrona (não-bloqueante): transferências acionadas por interrupções; mais comuns; Tipos de dispositivos: Compartilháveis: podem ser utilizados por vários usuários ao mesmo tempo; Exemplo: disco rígido; Dedicados: podem ser utilizados por apenas um usuário de cada vez; Exemplo: impressora, unidade de fita; 43

Princípios de Software - Camadas Software de E/S no nível Usuário: Bibliotecas de E/S são utilizadas pelos programas dos usuários Chamadas ao sistema (system calls); 44

Ciclo de E/S Pedido de E/S Chamada de sistema Processo de usuário E/S concluída, dados de entrada disponíveis ou saída concluída Pedido pode ser atendimento imediatamente? Não Sim Subsistema de E/S do Kernel Transferir dados (se necessário) para o processo, retornar código de conclusão ou falha Enviar pedido para driver, bloquear processo se necessário Subsistema de E/S do Kernel Processar pedido, enviar comandos para controladora, configurar controladora para bloquear até interrupção Driver Determinar que operação de E/S foi concluída, indicar mudança de estado para o subsistema de E/S Comandos da controladora Monitorar o dispositivo, interromper quando E/S estiver concluída Rotina de Tratamento de Interrupção Receber interrupção, armazenar dados no buffer se for entrada, sinalizar para desbloquear driver de dispositivo Interrupção Controladora E/S concluída, gerar interrupção TEMPO 45

- Ciclo de E/S Sequência da Figura anterior Um processo emite uma chamada de sistema bloqueante (por exemplo: read) para um arquivo que já esteve aberto (open); O código da chamada de sistema verifica os parâmetros. Se os parâmetros estiverem corretos e o arquivo já estiver no buffer (cache), os dados retornam ao processo e a E/S é concluída; Se os parâmetros estiverem corretos, mas o arquivo não estiver no buffer, a E/S precisa ser realizada; E/S é escalonada; Subsistema envia pedido para o driver; 46

- Ciclo de E/S Seqüência da Figura anterior Driver aloca espaço de buffer, escalona E/S e envia comando para a controladora do dispositivo escrevendo nos seus registradores de controle; Driver pode usar a DMA; A controladora do dispositivo opera o hardware, ou seja, o dispositivo propriamente dito; Após a conclusão da E/S, uma interrupção é gerada; A rotina de tratamento de interrupções apropriada recebe a interrupção via vetor de interrupção, armazena os dados, sinaliza o driver e retorna da interrupção; 47

- Ciclo de E/S Seqüência da Figura anterior Driver recebe o sinal, determina qual pedido de E/S foi concluído, determina o status e sinaliza que o pedido está concluído; Kernel transfere dados ou códigos de retorno para o espaço de endereçamento do processo que requisitou a E/S e move o processo da fila de bloqueados para a fila de prontos; Quando o escalonador escalona o processo para a CPU, ele retoma a execução na conclusão da chamada ao sistema. 48