Escolar Documentos
Profissional Documentos
Cultura Documentos
Hardware de E/S
Porta
Ponto de conexo disponvel no host para dispositivos de E/S
Barramento
Conjunto de fios e protocolo de transferncia que permite que vrios dispositivos sejam conctados ao host simultaneamente.
Controlador
Controla a operao das portas, barramentos e dispositivos. Interage com o host por meio de registradores Controle, estado atual, dados
Dep. Cincia da Computao
Controladores de Dispositivos
Componentes de dispositivos de E/S mecnico eletrnico O componente eletrnico o controlador do dispositivo pode ser capaz de tratar mltiplos dispositivos Tarefas do controlador converter fluxo serial de bits em bloco de bytes executar toda correo de erro necessria tornar o bloco disponvel para ser copiado para a memria principal
Dep. Cincia da Computao
Controladores de Dispositivos
Tratadores de Interrupes
As interrupes devem ser escondidas o mximo possvel
uma forma de fazer isso bloqueando o driver que iniciou uma operao de E/S at que uma interrupo notifique que a E/S foi completada
Tratando Interrupes
1. Salvar registradores que ainda no foram salvos pelo controlador de interrupo 2. Estabelecer contexto para rotina de tratamento de interrupo 3. Estabelecer uma pilha para a rotina de tratamento de interrupo 4. Sinalizar o controlador de interrupo, reabilitar as interrupes 5. Copiar os registradores de onde eles foram salvos 6. Executar rotina de tratamento de interrupo 7. Escolher o prximo processo a executar 8. Estabelecer o contexto da MMU para o prximo processo 9. Carregar os registradores do prximo processo 10.Executar o prximo processo
Software de E/S
Independncia de dispositivo
Programas podem acessar qualquer dispositivo de E/S sem especificar previamente qual (disquete, disco rgido ou CD-ROM)
Nomeao uniforme
Nome de um arquivo ou dispositivo pode ser uma cadeia de caracteres ou um nmero inteiro que independente do dispositivo
Tratamento de erro
Trata o mais prximo possvel do hardware
Software de E/S
Transferncias Sncronas vs. Assncronas
transferncias bloqueantes vs. orientadas a interrupo utilizao de buffer para armazenamento temporrio dados provenientes de um dispositivo muitas vezes no podem ser armazenados diretamente em seu destino final
Drivers de Dispositivos
Drivers Linux
Drivers Linux
Acessveis por meio dos arquivos especiais disponveis em /dev
Ncleo redireciona as operaes sobre os arquivos especiais para os servios correspondentes de driver de dispositivo, de acordo com os major and minor numbers Major: Identifica um driver dentro do Ncleo Minor: Identifica um dispositivo dentro de um driver
Drivers Linux
Drivers so normalmente implementados por meio de mdulos de ncleo
Programa insmod insere mdulos Inicializao do mdulo: int init_module(void)
Ponto de entrada do mdulo Chamada no momento da carga do mdulo Realiza o registro do mdulo
Drivers Linux
Registro de mdulo:
Definir tipo de dispositivo Especificar major number Mapear chamadas de sistema para funes do driver
struct file_operations { struct module *owner; loff_t (*llseek) (struct file *, loff_t, int); ssize_t (*read) (struct file *, char *, size_t, ... ssize_t (*write) (struct file *, const char *, ... int (*readdir) (struct file *, void *, filldir_t); unsigned int (*poll) (struct file *, struct ... int (*ioctl) (struct inode *, struct file *, ... int (*mmap) (struct file *, struct vm_area_struct *); int (*open) (struct inode *, struct file *); int (*flush) (struct file *); : : };