Eventos e interrupciones

Documentos relacionados
Manejo de Entrada-Salida. Arquitectura de Computadoras

SISTEMAS OPERATIVOS Arquitectura de computadores

Manejo de Entrada-Salida. Arquitectura de Computadoras

SUBSISTEMA DE ENTRADA-SALIDA. Arquitectura de Computadores I 4º tema

Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía

Sist s em e a m s s O per e ativos o. s Unidad V Entrada Sali l d i a.

Gestión de Entrada-salida

Introducción a los sistemas de entrada/salida Profesores y tutorías

Tema 4: SISTEMAS DE ENTRADA/SALIDA. Un computador no puede estar formado sólo por la CPU y la memoria.

CICLOS DEL PROCESADOR

TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O

Introducción a la arquitectura de computadores

Arquitectura de computadoras

Tema 7: Sistemas de Entrada/Salida

Introducción a los Sistemas Operativos

Introducción a la Computación. Capítulo 10 Repertorio de instrucciones: Características y Funciones

MICROCONTROLADORES PIC16F84 ING. RAÚL ROJAS REÁTEGUI

Unidad I: Organización del Computador. Ing. Marglorie Colina

Tema 1: Arquitectura de ordenadores, hardware y software

Sistemas Operativos. Introducción. Tema 6

Informática Electrónica Manejadores de Dispositivos (Device Drivers)

Fundamentos de los Sistemas Operativos. Tema 1. Conceptos generales Estructura del sistema operativo ULPGC - José Miguel Santos Espino

Velocidades Típicas de transferencia en Dispositivos I/O

Arquitectura del PLC. Dpto. Electrónica, Automática e Informática Industrial)

Parte I:Teoría. Tema 3:Introducción a los Sistemas operativos. Instalación

Objetos de aprendizaje: Computadora

Estructura de Computadores. Contenido. Sistema de E/S. 7.- E/S y dispositivos periféricos

INDICE Programa Entrada Unidad de control Unidad aritmética y lógica (ALU)

6. Entrada y Salida Explicación de la interfaz entre el computador y el mundo exterior.

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Señal de petición de Interrupción

ESTRUCTURA FÍSICA DEL µp 8086

0-31 : caracteres de control : carac. Comunes : especiales (flechas, símbolos) y particulares (ñ)

FUNCIONAMIENTO DEL ORDENADOR

(1) Unidad 1. Sistemas Digitales Basados en Microprocesador SISTEMAS BASADOS EN MICROPROCESADORES. Grado en Ingeniería Informática EPS - UAM

Qué es un programa informático?

TEMA 1: Concepto de ordenador

Arquitectura de Computadores II

ESTRUCTURA BÁSICA DE UN ORDENADOR

2º CURSO INGENIERÍA TÉCNICA EN INFORMÁTICA DE GESTIÓN TEMA 5 ENTRADA/SALIDA. JOSÉ GARCÍA RODRÍGUEZ JOSÉ ANTONIO SERRA PÉREZ Tema 5.

PREGUNTAS INFORMÁTICA MONITOR UPB EXAMEN 1

Lenguaje binario. Código ASCII. Medidas de la información

Unidad 1: Conceptos generales de Sistemas Operativos.

Estructura del Computador

Introducción a la Operación de Computadoras Personales

AUTOMATIZACIÓN INDUSTRIAL

1. INTRODUCCIÓN 1.1. Qué es un sistema operativo? El sistema operativo como máquina extendida El sistema operativo como gestor de

Funcionamiento del 8086/8088

Ejercicios del tema 4. El procesador

INDICE Control de dispositivos específicos Diseño asistido por computadora Simulación Cálculos científicos

Tema 2: Lenguaje máquina. La interfaz entre el hardware y el software

PROBLEMAS TEMA 3: Unidad de Entrada/Salida

ELEMENTOS QUE COMPONEN UNA COMPUTADORA

Tema 2: Implementación del núcleo de un Sistema Operativo

PROCESADORES. Existen 3 tipos de procesadores: DE GALLETA, DE PINES Y DE CONTACTO. DE GALLETA: se utilizaban en las board en los años 80 y 90.

ARQUITECTURA BÁSICA DEL ORDENADOR: Hardware y Software. IES Miguel de Cervantes de Sevilla

UNIDAD 3 ARQUITECTURA DEL Z80. Microprocesadores Otoño 2011

1.2.- EL MICROPROCESADOR.

Computadora y Sistema Operativo

Tema: Microprocesadores

Organización del Computador I. Introducción e Historia

Programación concurrente

Entrada salida y comunicación

Unidad V: Puertos y buses de comunicación para microcontroladores

Controlador de Interrupciones (Versión programable) Manual de Usuario

Contenido TEMA 2 ENTRADA / SALIDA. Interfaz HW: buses del sistema. Interfaz HW de E/S

PROGRAMA ANALÍTICO DE ASIGNATURA

Arquitectura (Procesador familia 80 x 86 )

Threads, SMP y Microkernels. Proceso

1.1 Introducción y definición de un microcontrolador 1.2 Estructura básica de un microcontrolador 1.3 Características de la Arquitectura

Objetivos. Objetivos. Arquitectura de Computadores. R.Mitnik

Tema 15 ELECTRÓNICA DIGITAL. PROCESADORES DIGITALES (PARTE 2A) Arquitecturas Harvard y Von Neumann. Tipos de procesadores digitales

1-Componentes Físicos y Lógicos de un Ordenador.

FUNDAMENTOS DE INFORMÁTICA. Principios Básicos de Sistemas Operativos. Definición de Sistema Operativo

Comprensión de los sistemas de. control. Ing. Jorge Sofrony. Inicio. Obje%vos del Programa. Misión y Visión del programa

Tecnología de software para sistemas de tiempo real

ITT-327-T Microprocesadores

Tema 6: Periféricos y entrada-salida

Estructura de un Ordenador

Características de los Canales de E/S

4.1 Dispositivos y manejadores de dispositivos: device drivers

SOPORTE FÍSICO O HARDWARE (I)

EL ORDENADOR A. PERIFÉRICOS. B. UNIDAD CENTRAL. 1. HARDWARE Y SOFTWARE. 2. FUNCIONAMIENTO DE UN SISTEMA INFORMÁTICO 3. CONCEPTO DE SISTEMA INFORMÁTICO

HARDWARE DE UN ORDENADOR. Elementos básicos

Introducción a los Sistemas Operativos

Herramientas Informáticas I Software: Sistemas Operativos

Electrónica Digital II

F1131 Fundamentos de sistemas operativos 1/12

Matías Zabaljáuregui

Introducción. Aparición en los 50, se facilita la comunicación entre el usuario y el ordenador Cualquier persona puede utilizar un ordenador.

Definición de Sistema Operativo

Sistema Operativo. Introducción a los Sistemas Operativos. El Sistema Operatico como Interfaz Usuario/Computador. Objetivos del Sistema Operativo

Unidad 1: Conceptos generales de Sistemas Operativos.

2º Cuatrimestre MÓDULO 12: Introducción al Subsistema de Entrada/Salida. fc 2

Transcripción:

Programación Concurrente en Linux Eventos e interrupciones Alberto Lafuente, Dep. KAT/ATC de la UPV/EHU, bajo Licencia Creative Commons 1

Contenido 1. Interacción en un programa: entrada/ salida 2. Eventos en la ejecución del programa: interrupciones y excepciones 3. Tratamiento de eventos por el sistema operativo. 2

1. Interacción en un programa: entrada/salida 3

Ejecución de un programa Básicamente el programa ejecuta un flujo de instrucciones máquina La mayoría acceden a registros del procesador o a direcciones de memoria Algunas de estas instrucciones acceden a los dispositivos controlados por el sistema operativo Por ejemplo, para entrada/salida También suceden eventos asíncronos a la ejecución del programa Por ejemplo, una interrupción del reloj 4

Entrada/salida Los dispositivos de entrada/salida son muy heterogéneos: Velocidad Representación de los datos Protocolos Operaciones Unidad de transferencia (bloques, caracteres ) Tipos de errores Modo de tratar la E/S Homogeneizar el acceso a los dispositivos: los controladores de E/S como interfaz hardware unificada

Entrada/salida Interfaz hardware Procesador Memoria Reg. Control Reg. Estado Reg. Datos Controlador Reg. Control Reg. Estado Reg. Datos Controlador Dispositivo Dispositivo Dispositivo

Entrada/salida Interfaz hardware Elementos de la interfaz: Espacio de direcciones de E/S, que puede ser Memory-mapped Independiente del de memoria Operaciones de E/S mediante instrucciones máquina Memory-mapped: LOAD/STORE Espacios independientes: IN/OUT

Entrada/salida Modos de operación Encuesta 1. Espera activa sobre Registro de Estado 2. Acceso a Registro de Datos Interrupciones El dispositivo cuenta con una línea de interrupción Cuando se activa la interrupción, se ejecuta la Rutina de Servicio que gestiona la E/S: 1. Comprobación sobre Registro de Estado 2. Acceso a Registro de Datos Acceso Directo a Memoria (DMA) Los dispositivos de bloques no involucran a la CPU en el acceso a cada byte 1. Se programa la operación de DMA 2. Se ordena su inicio sobre un Registro de Control 3. El fin de la operación se anuncia mediante una interrupción 4. La Rutina de Servicio a la Interrupción de DMA comprueba sobre un Registro de Estado.

Gestión de la entrada/salida Manejadores de dispositivos (drivers) Driver: código que monopoliza el acceso al dispositivo. El resto del sistema operativo es independiente del dispositivo. Un modelo de entrada/salida: cliente-servidor Las rutinas de E/S son clientes del driver.

Gestión de la entrada/salida Interfaz del sistema operativo El sistema operativo ofrece una interfaz unificada para las operaciones de E/S: las llamadas al sistema. En Linux: open(), close(), read(), write() El programador de aplicaciones no tiene que estar pendiente de cómo se implementa la rutina de E/S o el driver del dispositivo concreto. Las funciones de biblioteca (por ejemplo de C: printf(), scanf() ) usan estas llamadas al sistema.

2. Eventos en la ejecución del programa: interrupciones y excepciones 11

Interrupciones y excepciones Excepción: Evento que, producido durante la ejecución de un programa, provoca que el procesador ejecute un código especial para tratarla. También llamadas interrupciones internas. Ejemplo: intento de dividir por cero. Interrupción: Condición asíncrona provocada por un dispositivo externo. También llamadas excepciones asíncronas. Se tratan de la misma forma que las excepciones. Ejemplos: reloj, teclado, DMA

Hardware para interrupciones En un sistema puede haber diferentes fuentes de interrupción, con diferentes prioridades: Sensores Reloj Dispositivos de E/S Al procesador del sistema le llega una única línea de interrupción. Controlador Programable de Interrupciones (PIC): Prioriza y selecciona las interrupciones.

Controladores de interrupciones (PIC) Acelerómetro + Sensor de posición Teclado P R I O R I D A D PIC Interrupción VI CPU Reloj -

Software para manejar interrupciones En la CPU, las interrupciones pueden Inhibirse (todas ellas) Enmascararse (selectivamente), excepto las No Enmascarables Tanto interrupciones como excepciones generan una dirección de entrada a una tabla que contiene las direcciones de comienzo de las Rutinas de Servicio (ISR). Atención a la terminología: a esta dirección también se le suele llamar vector de interrupción.

Manejo de interrupciones Esquema de direccionamiento de la ISR ISR i Interrupción externa ISR 1 Excepción ISR n PIC VI @ Tabla de VIs CPU Memoria

Mecanismo de ejecución de una interrupción La interrupción/excepción requiere su propio contexto de ejecución (pila). Debe guardarse el contexto del programa que se está ejecutando para recuperarlo tras la ejecución.

Ejecución de interrupciones. Ejemplo

Ejecución de interrupciones. Ejemplo 1. Se está ejecutando una tarea. Pila SP CPU

Ejecución de interrupciones. Ejemplo 1. Se está ejecutando una tarea. 2. Se produce una interrupción de prioridad baja. Pila SP CPU 20

Ejecución de interrupciones. Ejemplo 1. Se está ejecutando una tarea. 2. Se produce una interrupción de prioridad baja. 3. Se guarda el estado de procesador en la pila del programa. Estado del procesador Pila SP CPU 21

Ejecución de interrupciones. Ejemplo 1. Se está ejecutando una tarea. 2. Se produce una interrupción de prioridad baja. Estado del procesador 3. Se guarda el estado de procesador en la pila del programa. 4. Se ejecuta la rutina de servicio ISR L. Pila SP CPU 22

Ejecución de interrupciones. Ejemplo 1. Se está ejecutando una tarea. 2. Se produce una interrupción de prioridad baja. Estado del procesador 3. Se guarda el estado de procesador en la pila del programa. 4. Se ejecuta la rutina de servicio ISR L. 5. Se produce una interrupción de prioridad alta. Pila SP CPU 23

Ejecución de interrupciones. Ejemplo 1. Se está ejecutando una tarea. 2. Se produce una interrupción de prioridad baja. Estado del procesador Estado del procesador Pila SP 3. Se guarda el estado de procesador en la pila del programa. 4. Se ejecuta la rutina de servicio ISR L. 5. Se produce una interrupción de prioridad alta. 6. Se guarda el estado de procesador. CPU 24

Ejecución de interrupciones. Ejemplo 1. Se está ejecutando una tarea. 2. Se produce una interrupción de prioridad baja. Estado del procesador Estado del procesador Pila SP CPU 3. Se guarda el estado de procesador en la pila del programa. 4. Se ejecuta la rutina de servicio ISR L. 5. Se produce una interrupción de prioridad alta. 6. Se guarda el estado de procesador. 7. Se ejecuta la rutina de servicio ISR H. 25

Ejecución de interrupciones. Ejemplo 1. Se está ejecutando una tarea. 2. Se produce una interrupción de prioridad baja. Estado del procesador Estado del procesador Pila SP CPU 3. Se guarda el estado de procesador en la pila del programa. 4. Se ejecuta la rutina de servicio ISR L. 5. Se produce una interrupción de prioridad alta. 6. Se guarda el estado de procesador. 7. Se ejecuta la rutina de servicio ISR H. 8. Termina ISR H. Se vuelve a ISR L. 26

Ejecución de interrupciones. Ejemplo 1. Se está ejecutando una tarea. 2. Se produce una interrupción de prioridad baja. Estado del procesador Pila SP CPU 3. Se guarda el estado de procesador en la pila del programa. 4. Se ejecuta la rutina de servicio ISR L. 5. Se produce una interrupción de prioridad alta. 6. Se guarda el estado de procesador. 7. Se ejecuta la rutina de servicio ISR H. 8. Termina ISR H. Se vuelve a ISR L. 27

Ejecución de interrupciones. Ejemplo 1. Se está ejecutando una tarea. 2. Se produce una interrupción de prioridad baja. Estado del procesador Pila SP CPU 3. Se guarda el estado de procesador en la pila del programa. 4. Se ejecuta la rutina de servicio ISR L. 5. Se produce una interrupción de prioridad alta. 6. Se guarda el estado de procesador. 7. Se ejecuta la rutina de servicio ISR H. 8. Termina ISR H. Se vuelve a ISR L. 9. Termina ISR L. Se vuelve al punto de ejecución de la tarea. 28

Ejecución de interrupciones. Ejemplo 1. Se está ejecutando una tarea. 2. Se produce una interrupción de prioridad baja. Pila SP CPU 3. Se guarda el estado de procesador en la pila del programa. 4. Se ejecuta la rutina de servicio ISR L. 5. Se produce una interrupción de prioridad alta. 6. Se guarda el estado de procesador. 7. Se ejecuta la rutina de servicio ISR H. 8. Termina ISR H. Se vuelve a ISR L. 9. Termina ISR L. Se vuelve al punto de ejecución de la tarea. 29

3. Tratamiento de eventos por el sistema operativo 30

Tratamiento de eventos por el sistema operativo Ejemplo: el reloj Recordemos que el sistema operativo ofrece al programador una interfaz unificada de llamadas al sistema para tratar eventos de E/S (p.ej., read() en Linux). Para los eventos de tiempo un sistema operativo ofrece dos servicios: Un reloj software En Linux, gettimeofday() Temporización (programar evento de tiempo) En Linux, alarm()

Relojes Reloj de tiempo real (RTC) Siempre en funcionamiento. Requiere alimentación propia. Reloj Hardware Se carga con el RTC al arrancar el sistema. Produce las interrupciones de reloj. Suele ser programable (PIT, p. ej., Intel 8253). Puede tener otras funciones (p. ej., refresco de la DRAM). Reloj del sistema Es un reloj software implementado a partir de la rutina de interrupción del reloj hardware. Por ejemplo, si el reloj hw interrumpe con una frecuencia f, cada f interrupciones incrementa un contador de segundos.

Relojes en Linux gettimeofday() settimeofday() date adjtimex SO Reloj del sistema /sbin/hwclock Hw Reloj Hw

Relojes en Linux Ejemplo: cronómetro de alta resolución #include <sys/time.h> struct timeval t0, t1; gettimeofday(&t0, NULL); /* aquí, el código a cronometrar */ gettimeofday(&t1, NULL); printf("duracion: %d,%d segundos\n", t1.tv_sec-t0.tv_sec, t1.tv_usec-t0.tv_usec);