Introdução à criação de Drivers Prof.Fernando Branquinho. Isolar a lógica do domínio do problema, das diferentes tecnologias que podem ser aplicadas.



Documentos relacionados
ESTUDO DE CASO WINDOWS VISTA

CAPÍTULO 2 CARACTERÍSTICAS DE E/S E PORTA PARALELA

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Sistema Operacional Correção - Exercício de Revisão

6 - Gerência de Dispositivos

Um Driver NDIS Para Interceptação de Datagramas IP

Sistemas Operacionais Entrada / Saída. Carlos Ferraz (cagf@cin.ufpe.br) Jorge Cavalcanti Fonsêca (jcbf@cin.ufpe.br)

Resumo. Prof. Alejandro - Introdução à Sistemas Operacionais Resumo Informativo, complemente o material assistindo as Aulas 19/08/2015 1

4 Estrutura do Sistema Operacional Kernel

Prof.: Roberto Franciscatto. Capítulo 1 Introdução

Prof.: Roberto Franciscatto. Capítulo 1 Introdução

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Geral: Manual de Utilização do Software de Teste Gradual Windows

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Figura 01 Kernel de um Sistema Operacional

FundamentosemInformática

Sistemas Operacionais

Sistemas Operacionais

Tecnologia da Informação. Prof Odilon Zappe Jr

Introdução a Java. Hélder Nunes

AULA 3 Introdução ao Software

Gerência de Entrada/Saída

Noções básicas de Informática: Software

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Introdução à Computação: Sistemas de Computação

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Sistemas Operacionais. Roteiro. Hardware. Marcos Laureano

Prof. Jhonatan Fernando

Easy Lab. Manual do usuário Revisão /11/14. DMA Electronics 1

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar

NetBeans. Conhecendo um pouco da IDE

Tipos de sistemas operacionais

SISTEMAS OPERACIONAIS

FUNDAMENTOS DE HARDWARE COMO FUNCIONA UM PC? Professor Carlos Muniz

Sistemas Operacionais Gerência de Dispositivos

PROCEDIMENTO PARA INSTALAR REDE ETHERNET EM CNC s FAGOR.

Introdução. Software (Parte I)

Introdução à Informática

Virtualização Gerencia de Redes Redes de Computadores II

Gerenciamento de Entrada e Saída Hélio Crestana Guardia e Hermes Senger

LINGUAGEM DE BANCO DE DADOS

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

Disciplina de Banco de Dados Introdução

Professor: Gládston Duarte

Sistemas Operacionais Introdução. Professora: Michelle Nery

Medidor Powersave V2 USB

Sistemas Operacionais

Serial Paralela USB FireWire(IEEE1394)

PROCEDIMENTO PARA REPASSAR BACKUP s EM CNC s FAGOR 8035 / 8055 ATRAVÉS DO SOFTWARE FAGOR WINDNC. REVISÃO 2.0

Tópicos. Atualizações e segurança do sistema. Manutenção Preventiva e Corretiva de Software (utilizando o MS Windows XP)

SISTEMAS OPERACIONAIS

Prof.: Roberto Franciscatto. Capítulo 1.1 Introdução

Software de segurança em redes para monitoração de pacotes em uma conexão TCP/IP

Introdução aos Computadores

EAGLE TECNOLOGIA E DESIGN CRIAÇÃO DE SERVIDOR CLONE APCEF/RS

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES. Prof. André Dutton

Considerações no Projeto de Sistemas Cliente/Servidor

AUTOMAÇÃO RESIDENCIAL

discos impressora CPU memória AULA 04 - Estruturas de Sistemas Computacionais Operação dos sistemas de computação Controlador de disco

Gerenciador USB do Monitor de Rede Elétrica Som Maior Pro. Versão 3.6

Sistemas Distribuídos

Sistema Operacional Ex: Complexo Computador multiusuário com vários terminais Tem que administrar todos os pedidos de usuários e assegurar que eles

Manual do Utilitário de Diagnóstico LB-1000 Código: Revisão 1.0 Agosto de Copyright Bematech S. A. Todos os direitos reservados.

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Estrutura, Processos e Threads

SISTEMAS OPERACIONAIS LIVRES. Professor Carlos Muniz

UFRJ IM - DCC. Sistemas Operacionais I. Unidade I Introdução. 11/02/2014 Prof. Valeria M. Bastos

Admistração de Redes de Computadores (ARC)

Introdução. O que vimos. Infraestrutura de Software. (cont.) História dos Sistemas Operacionais. O que vimos 12/03/2012. Primeira geração:

Sistemas Operacionais

Sistemas Operacionais

Everson Scherrer Borges João Paulo de Brito Gonçalves

ESTRUTURA DE UM SISTEMA OPERACIONAL

Um retrospecto da aula passada... Um retrospecto da aula passada... Principais Aspectos de Sistemas Operacionais. Gerência de E/S

Computador = Hardware + Dados

Arquitetura de Computadores. Tipos de Instruções

1a LISTA DE EXERCÍCIOS

Leitor MaxProx-Lista-PC

CAPÍTULO 5. INTERFACES PARA PERIFÉRICOS DE ARMAZENAMENTO INTERFACES DIVERSAS: FIREWIRE, SPI e I 2 C INTERFACES COM O MUNDO ANALÓGICO

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Sistemas Operacionais 1/66

Informática Aplicada

Sistemas Operacionais. Roteiro. Sistemas de Computadores. Os sistemas de computadores são projetados com basicamente 3 componentes: Marcos Laureano

1. CAPÍTULO COMPUTADORES

UFRJ IM - DCC. Sistemas Operacionais I

O COMPUTADOR. Introdução à Computação

ADMINISTRAÇÃO DE SISTEMA OPERACIONAL DE REDE (AULA 1)

GUIA DE CONSULTA RÁPIDA PARA. Instalação do Nokia Connectivity Cable Drivers

Copyright 2013 VW Soluções

PROJETO INFORMÁTICA NA ESCOLA

Turno/Horário Noturno PROFESSOR : Salomão Dantas Soares AULA Apostila nº

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Sistemas Operacionais

Java. Marcio de Carvalho Victorino

Infra-Estrutura de Software. Introdução. (cont.)

Máquinas Virtuais: Windows 2008 Server

GUIA DE CONSULTA RÁPIDA PARA. Instalação do Nokia Connectivity Cable Drivers

Sistemas Operacionais. INTRODUÇÃO Prof. Rafael Alberto Vital Pinto FACSUL/CESUR

Transcrição:

Introdução à criação de Drivers Prof.Fernando Branquinho Construção de Drivers Objetivo da criação de um driver Isolar a lógica do domínio do problema, das diferentes tecnologias que podem ser aplicadas. Prática muito utilizada pelos Sistemas Operacionais Exemplo de criação de um sistema de Semáforo Inteligente Objetivo Controlar os semáforos de um cruzamento, dando prioridade de passagem pela rua com maior quantidade de veículos. Exemplo de diferentes soluções tecnológicas que podem ser empregadas Exemplos de diferentes interfaces com o computador 1. Paralela do PC 2. Serial do PC 3. Placa de E/S (Entrada/Saída) específica 4. Comunicação com dispositivos especiais 5. Internet

6.... Como fazer um software que atenda a todas estas possibilidades facilmente? Construção do software em camadas Interface entre a camada de negócio e o driver Esta interface deve atender as necessidades que a aplicação possui para realizar seus objetivos. Não deve ser definida em função do tipo de tecnologia aplicada, mas sim, em função somente das necessidades do sistema. Esta interface é definida pelo fabricante do software de gestão do domínio do problema. Métodos para construção da interface entre a camada de negócio e o driver: Existem vários modos de implementar esta interface. Exemplos: Código fonte para compilação Compartilhamento de área de memória Compartilhamento de arquivos em disco Interrupções de software Uso da área de transferência Bibliotecas de ligação dinâmica (DLL Windows) DDE Componentes de software (COM, CORBA) Exemplo de especificação da interface entre a camada de negócio e o driver, através de "Código fonte para compilação": Função: lampadas_semaforo Objetivo: Controlar cada uma das lâmpadas do semáforo Parâmetros de Entrada: um byte para controle das lâmpadas, onde bit 0 = Lâmpada Vermelha do semáforo da rua vertical bit 1 = Lâmpada Amarela do semáforo da rua vertical bit 2 = Lâmpada Verde do semáforo da rua vertical bit 3 = Lâmpada Vermelha do semáforo da rua horizontal bit 4 = Lâmpada Amarela do semáforo da rua horizontal bit 5 = Lâmpada Verde do semáforo da rua horizontal Parâmetros de Saída: nenhum Função: carros_na_vertical Objetivo: Informar o números de carros existentes na rua vertical Parâmetros de Entrada: nenhum Parâmetros de Saída: Número de carros na rua vertical

Função: carros_na_horizontal Objetivo: Informar o números de carros existentes na rua horizontal Parâmetros de Entrada: nenhum Parâmetros de Saída: Número de carros na rua horizontal Função: inicializa_driver Objetivo: Permitir ao driver a realização de qualquer inicialização para seu funcionamento Parâmetros de Entrada: nenhum Parâmetros de Saída: nenhum Função: finaliza_driver Objetivo: Permitir ao driver encerrar seu funcionamento Parâmetros de Entrada: nenhum Parâmetros de Saída: nenhum Exemplo de um software com a lógica de controle do semáforo

Código correspondente em "C"

Rotina: SEMAFORO.C #include "driver.h" #define VM_V 1 #define AM_V 2 #define VD_V 4 #define VM_H 8 #define AM_H 16 #define VD_H 32 #define VERTICAL 1 #define HORIZONTAL 2 void main() { int ch=0,aberto; clrscr(); inicializa_driver(); lampadas_semaforo(vd_v+vm_h); aberto=vertical; while(ch!= 27) { if (kbhit()) ch=getch(); if (carros_na_horizontal() > carros_na_vertical() && aberto==vertical) { lampadas_semaforo(am_v+vm_h); sleep(2); lampadas_semaforo(vm_v+vd_h); aberto=horizontal; if (carros_na_vertical() > carros_na_horizontal() && aberto==horizontal) { lampadas_semaforo(am_h+vm_v); sleep(2); lampadas_semaforo(vm_h+vd_v); aberto=vertical; finaliza_driver(); Exemplo de implementação do driver Escolha de uma tecnologia Utilização dos sensores de solo Utilização da interface paralela do PC Especificação da interface entre o driver e o hardware Acionamento das lâmpadas PORT 0x378

Leitura dos sensores PORT 0x379 Exemplo do software do driver Rotina: driver.h (Incluída no software SEMAFORO.C, acima.) #include "dos.h" void inicializa_driver(); void finaliza_driver(); void lampadas_semaforo(char); carros_na_horinzontal(); carros_na_vertical(); void le_sensores(); int h_carros,v_carros; void inicializa_driver() { Pino Bit Função 2 0 Lâmpada Vermelha da rua vertical 3 1 Lâmpada Amarela da rua vertical 4 2 Lâmpada Verde da rua vertical 5 3 Lâmpada Vermelha da rua horizontal 6 4 Lâmpada Amarela da rua horizontal 7 5 Lâmpada Verde da rua horizontal Pino Bit Função 13 4 1º Sensor rua Vertical (entrada do carro) 12 5 2º Sensor rua Vertical (saída do carro) 10 6 1º Sensor rua Horizontal (entrada do carro) 11 7 2º Sensor rua Horizontal (saída do carro) h_carros=0; v_carros=0; void finaliza_driver() { outp(0x378,0); void lampadas_semaforo(char byte) { outp(0x378,byte); carros_na_horizontal() { le_sensores(); return(h_carros);

carros_na_vertical() { le_sensores(); return(v_carros); void le_sensores() { static int ult_ch; int ch; ch=(inp(0x379) & 0xf0 ^ 0x70) >> 4 ; if (ch & 1 &&!(ult_ch & 1)) h_carros++; if (ch & 2 &&!(ult_ch & 2)) if (h_carros > 0) h_carros--; if (ch & 4 &&!(ult_ch & 4)) v_carros++; if (ch & 8 &&!(ult_ch & 8)) if (v_carros > 0) v_carros--; ult_ch=ch; Exercícios 1. Quais as vantagens em isolar a lógica do domínio do problema, da tecnologia aplicada? 2. Existiria alguma desvantagem nisto? 3. O que significa "construção de software em camadas"? 4. Em termos de implementação de software, quais as diferenças entre utilizar as interfaces "paralela" e "serial" do PC? 5. Qual a desvantagem em se criar drivers baseados em código fonte para compilação? 6. Na utilização de software em camadas, o que é necessário modificar quando se altera a tecnologia utilizada? 7. Crie um novo driver para o "sistema de semáforo", que permita simular o funcionamento do hardware através de um esboço do cruzamento entre duas ruas na tela do computador. Ex: Simulacao do funcionamento do Semaforo Press 1 e 2 p/ horizontal ou 3 e 4 p/ vertical. ESC p/ sair o o x ---------------- ---------------- x o o Carros = 0 ---------------- ----------------

Carros = 0 O programa deverá simular a passagem pelos sensores de solo, utilizando-se as teclas 1 e 2 para a rua horizontal, e 3 e 4 para a rua vertical. Também deve aparecer na tela, o número de carros existentes em cada uma das ruas. Os semáforos devem representar o estado passado pelo programa "SEMAFORO.C". Resumindo, o driver deve ser feito em linguagem "C", fornecido em um arquivo com o nome "DRIVER.H", para ser compilado em conjunto com o programa "SEMAFORO.C". Final do documento Fernando J.C.Branquinho http://br.geocities.com/branqs