Introdução aos Sistemas Operacionais. Subsistema de Entrada e Saída

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

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

Gerência de Entrada e Saída

Cap. 12 Gerência de Dispositivos 1

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

Introdução aos Sistemas Operacionais

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

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

Sistemas Operacionais. Sistema de entrada e Saída

Infra-Estrutura de Software

Fundamentos de Sistemas Operacionais

Entrada e Saída e Dispositivos

Notas da Aula 14 - Fundamentos de Sistemas Operacionais

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

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

Sistemas Operacionais. Entrada/Saída

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

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

Introdução aos Sistemas Operacionais

Introdução. Pedro Cruz. EEL770 Sistemas Operacionais

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

SSC0611 Arquitetura de Computadores

Sistemas Operacionais

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

Organização e Arquitetura de Computadores I

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

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

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

O Sistema de Computação

E/S de Dados, Controladores e Drivers de Dispositivos. Na Aula Anterior... Nesta Aula. Gerência de Entrada e Saída. Gerência de Entrada e Saída

Arquitetura de Computadores

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

Sistemas Operativos I/O. Rui Maranhão

Introdução a Tecnologia da Informação

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

Revisão Ultimas matérias

Parte I Multiprocessamento

CURSO TÉCNICO DE INFORMÁTICA. Fundamentos de Hardware e Software

Sistemas Operacionais

Capítulo 5 Entrada/Saída

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

Infra-Estrutura de Software

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

Organização de Computadores 1

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

SSC0640 Sistemas Operacionais I

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

Organização e Arquitetura de Computadores I

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

Infra-Estrutura de Software. Entrada / Saída

DSC/CEEI/UFCG. Introdução à Computação

Organização de Computadores

Introdução aos Sistemas Operacionais. Subsistema de Arquivos

Hardware, Processador e Memória

Programação. Module Introduction. Cap. 1 Fundamentos de Computadores

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

Sistemas de Entrada e Saída

Sistemas Operacionais. Prof. MSc. André Yoshimi Kusumoto

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

Introdução Estrutura Conectores Jumpers Outros componentes ROM BIOS CHIPSET. Cap. 2 - Placas mãe

ENSINO À DISTÂNCIA UNIDADE IV

Introdução e Conceitos Básicos

Desenvolvimento para Sistemas Embarcados (CEA 513) Sistema de Arquivos Raiz & Componentes do Kernel

Programação de Computadores I - PRG1 Engenharia Elétrica

Disciplina: Sistemas Operacionais

4 Sistema Computacional:

Entrada e Saída (E/S)

Sistemas Operacionais Processos. Carlos Ferraz Jorge Cavalcanti Fonsêca

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

Informática básica SOFTWARE.

Programação Estruturada

Sistemas operacionais

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

Sistemas Operacionais II Unix: Memória e E/S. Geraldo Braz Junior

Estruturas de Sistemas Operacionais

Administração de Sistemas Operacionais. Prof.: Marlon Marcon

Estrutura e Funcionamento dos Computadores (Conceitos Básicos)

Programação de Periféricos

Sistemas Operacionais e Introdução à Programação. Módulo 1 Sistemas Operacionais

Sistemas de Entrada e Saída

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

Introdução à Programação de Computadores Fabricação Mecânica

2ª Lista de Exercícios de Arquitetura de Computadores

INTRODUÇÃO A SISTEMAS OPERACIONAIS

Sistemas Opera r cionais Sistemas de E/S 1

ALP Algoritmos e Programação. . Um modelo de Computador

Introdução a Tecnologia da Informação

-Periféricos -Dispositivos de Entrada/Saída - Unidade de medida. Gustavo Catarino da Costa Wilson Coelho Neto Paulo Wesley Fogaça

Sistemas de Entrada e Saída

Informática básica. Professor: Francisco Ary

Sistemas Operacionais. Laboratório 1 (Ambiente de Aprendizado)

PROVA 03/07 Segunda-feira (semana que vem)

Arquitetura de Computadores. Infraestrutura de TI: Hardware

Fundamentos da Informática Aula 03 - Sistemas operacionais: Software em segundo plano Exercícios Professor: Danilo Giacobo

Tópicos da aula. Histórico e Evolução dos Computadores. Noções Básicas de Arquitetura de Computadores

Sistemas Operacionais. Introdução a Sistemas Operacionais

Informática básica. Professor: Francisco Ary

Transcrição:

Introdução aos Sistemas Operacionais Subsistema de Entrada e Saída Eleri Cardozo FEEC/Unicamp Entrada e Saída O subsistema de entrada e saída é responsável pela interface entre o sistema operacional e os periféricos conectados ao computador (disco, vídeo, teclado, mouse, microfone, altofalante, câmera, rede, etc. etc.). Este subsistema é responsável por tornar mais simples ao sistema operacional e aos processos a interação com os periféricos (por exemplo, escondendo as interrupções geradas pelos periféricos). Vamos examinar 3 componentes fundamentais deste subsistema: Módulos; Acionadores de dispositivos (device drivers); Acesso direto à memória (DMA).

Entrada e Saída Chamadas de Sistema (E/S) Provê uma interface homogênea para operações de E/S Subsistema de Entrada e Saída Núcleo dados interrupções Periférico Módulos Módulos provêem extensões ao núcleo do sistema operacional. Estas extensõs (os módulos) podem ser anexadas ao núcleo sob demanda, por exemplo, quando um periférico é conectado. Módulos são componentes fundamentais para o subsistema de entrada e saída pois permitem incorporar ao núcleo as funcionalidades necessárias para a operação dos periféricos conectados ao computador (e apenas destes). O núcleo oferece uma interface para o desenvolvimento de módulos. Portanto, qualquer programador que conheça esta interface pode desenvolver um módulo para operar um periférico.

Módulos Módulos são usados tipicamente na implementação de: Acionadores de dispositivos. Exemplo: e100e (Ethernet), nvidia (vídeo), psmouse (mouse), soundcore (som). Sistema de arquivos (filesystem drivers). Exemplo: fat, vfat, nfs. Pilhas de protocolos de rede (network drivers). Exemplo: ipx, isdn. Inclusão de novas chamadas de sistema. Exemplo: Video for Linux (v4l). Linux provê uma interface (conjunto de chamadas de sistema) para a programação de módulos e um conjunto de comandos para o gerenciamento de módulos. Módulos no Linux

Módulos no Linux O Linux emprega um conjunto de arquivos de configuração para o gerenciamento de módulos que especificam: Os módulos que devem ser instalados na inicialização do sistema (/etc/modules). Os módulos que não devem ser carregados no sistema (blacklist) (/etc/modprobe.d/blacklist.conf). Os parâmetros de inicialização dos módulos e suas dependências de outros módulos, quando necessários (/etc/modprobe.d/<nome do módulo>.conf). Módulos no Linux /* hello.c * "Hello world" - um modulo elementar * Compile com gcc -c hello.c -Wall */ /* Declara o codigo como modulo (parte do nucleo) */ #define KERNEL /* uma parte do nucleo */ #define MODULE /* mas nao uma parte permanente */ /* inclusoes padrao para modulos */ #include <linux/modversions.h> #include <linux/module.h> /* Inicializacao do LKM (loadable kernel module) */ int init_module() { printk("o modulo hello world foi instalado\n"); return 0; } /* Cleanup */ void cleanup_module() { printk("o modulo hello world foi desinstalado\n"); }

Desenvolvimento de Módulos O desenvolvedor de módulos deve utilizar apenas as bibliotecas empregadas na programação do núcleo. Por exemplo, libc não pode ser empregada em módulos (razão pela qual o exemplo anterior não utilizou a função printf). Durante o teste do módulo uma falha pode comprometer todo o núcleo (lembre-se que módulos são parte do núcleo). O desenvolvedor pode utilizar User-mode Linux (UML) para desenvolver e testar módulos. UML é uma máquina virtual que executa o sistema Linux no espaço do usuário. Acionadores de Dispositivos 0 1 N-1 Blocos e Inodes (visão abstrata do dispositivo) Acionador de Dispositivo (Device Driver) Dispositivo físico de armazenamento

Acionadores de Dispositivos Núcleo Acionador de Dispositivo dados int. controle Barramento (PCI, ISA, etc.) Buffer Registradores Controlador de Dispositivo Interface de comunicação (SATA, USB, etc.) Dispositivo Dispositivos de E/S Os acionadores de dispositivos operam de duas formas em função do dispositivo físico que controlam Orientados a bloco: a transferência de dados se dá em blocos de bytes. Acionadores de disco, CD-ROM, memória USB são exemplos deste tipo. Orientados a caractere: a transferência de dados se dá byte a byte. Acionadores de terminais, porta serial e porta paralela são exemplos deste tipo. Via de regra, os acionadores de dispositivos orientados a bloco utilizam um cache de blocos ou páginas em memória (cache de buffers ou páginas no Unix/Linux). Portanto, são mais complexos que os orientados a caractere.

Acionadores de Dispositivos no Linux No Linux, acionadores de dispositivos são acessados a partir do espaço do usuário da mesma forma que arquivos. Para tal, cada acionador de dispositivo é representado por um arquivo especial no diretório /dev. Para relacionar um arquivo no diretório /dev com um acionador de dispositivo são empregados dois identificadores: número maior e número menor. O comando mknod cria um arquivo especial que será associado a um acionador de dispsitivo, por exemplo mknod /dev/mydriver c 60 0 cria um acionador de de dispositivo de nome mydriver do tipo caractere (c) cujos números maior e menor são 60 e 0, respectivamente. Acionadores de Dispositivos no Linux

Acionadores de Dispositivos no Linux open close read write mmap ioctl Chamadas de Sistema (E/S) Implementadas pelo acionador de dispositivo Acionador de Dispositivo Dispositivo de E/S Exemplo: Video for Linux (v4l) Inicia/encerra operação do dispositivo Mapeia buffer de imagem do acionador de dispositivo na memória do processo open close mmap ioctl Chamadas de Sistema (E/S) Configura dispositivo (formato e tamanho da imagem) Controla o dispositivo (captura de imagem) /dev/video0 Acionador de Dispositivo (videodev) WebCam Acionador de Dispositivo (uvcvideo) USB

Acesso Direto à Memória Acesso direto à memória (DMA: Direct Memory Access) é um componente fundamental do subsistema de entrada e saída e presente em praticamente todos os dispositivos de entrada e saída orientados a bloco como discos, CD-ROM, etc. Estes dispositivos possuem um componente de hardware denominado controlador de DMA. Este controlador tem por objetivo liberar a CPU de copiar dados de/para a memória em operações de entrada e saída. DMA é usado tipicamente em: Transferência de páginas entre memória e área de swap. Transferência de blocos entre memória (cache de bufffers ou de páginas) e disco. Transferência de pacotes de rede entre memória e NIC. Acesso Direto à Memória CPU Memória CPU Memória CPU Memória Controlador de DMA Controlador de DMA Controlador de DMA (a) Programação do controlador de DMA (b) Transferência de dados para a memória (c) Notificação via interrupção barramento

Acesso Direto à Memória Memória Barramento CPU-Memória CPU Chamadas de Sistema (E/S) Acionador de Dispositivo dados int. controle Barramento Controlador de DMA Controlador de Dispositivo Interface de comunicação (SATA, USB, etc.) Dispositivo