Programación Concurrente
|
|
|
- Luz Romero Blázquez
- hace 8 años
- Vistas:
Transcripción
1 Master en Computación Programación Concurrente Bloque II: Programación concurrente en POSIX Tema 1. Introducción al estándar POSIX Tema 2. Sistema Operativo MaRTE OS Tema 3. Gestión de Threads Tema 4. Gestión del Tiempo Tema 5. Planificación de Threads Tema 6. Sincronización Tema 8. Temporizadores y Relojes de Tiempo de Ejecución Programación Concurrente oct Conceptos Básicos 7.2. Señales Existentes 7.3. Generación, Entrega y Aceptación 7.4. Señales en Procesos Multi-Thread 7.5. Funciones para Configurar Señales 7.6. Funciones para Envío y Aceptación de Señales 7.7. Ejemplo del Uso de Señales Programación Concurrente oct Conceptos Básicos Se trata de un mecanismo de intercambio de mensajes 7.1 Conceptos Básicos Señal POSIX: mecanismo por el que un proceso o thread puede ser notificado de, o afectado por, un evento producido en el sistema excepciones detectadas por hardware expiración de una alarma o temporizador finalización de una operación de I/O asíncrona llegada de un mensaje a una cola de mensajes mensaje enviado desde otro proceso o thread actividad del terminal, etc. Número de señal: Entero positivo que identifica una señal. Existen también constantes predefinidas para dar nombre a las señales Programación Concurrente oct-13 3
2 7.2 Señales Existentes 7.2 Señales Existentes Algunas señales no fiables Nombre de Señal Descripción SIGABRT Terminación anormal, p.e. con abort() SIGALRM Timeout, p.e. con alarm() SIGFPE Operación aritmética errónea, p.e. división por cero u overflow SIGILL Instrucción hardware inválida SIGINT Señal de atención interactiva (ctrl-c) SIGKILL Señal de terminación (no puede ser cazada ni ignorada) SIGQUIT Señal de terminación interactiva (terminales) SIGSEGV Referencia a memoria inválida SIGTERM Señal de terminación SIGUSR1 Reservada para la aplicación SIGUSR2 Reservada para la aplicación SIGBUS Acceso a una porción indefinida de un objeto de memoria (opcional) Todas las señales anteriores son no fiables, pues se pueden perder si ya hay una señal del mismo número pendiente Programación Concurrente oct-13 4 Señales de Tiempo Real 7.2 Señales Existentes Si se soporta la opción de señales de tiempo real, existen señales con números comprendidos entre SIGRTMIN y SIGRTMAX, que son señales de tiempo real, o fiables Las señales de tiempo real: no se pierden (se encolan) se aceptan en orden de prioridad (a menor número de señal mayor prioridad) tienen un campo adicional de información hay como mínimo 8 Programación Concurrente oct-13 5 Cada thread tiene su propia máscara de señales que define las señales bloqueadas para ese thread en un proceso monothread sólo existe la máscara de señales del thread principal Una señal se genera: cuando el evento que causa la señal ocurre Una señal no bloqueada se entrega: cuando la señal causa al proceso la acción asociada: ignorar, terminar el proceso o ejecutar un manejador Una señal bloqueada se acepta: cuando se selecciona y devuelve por una función sigwait() Programación Concurrente oct-13 6
3 Diagrama de funcionamiento Recomendado para señales no manejadas Ignorar Acción por defecto No bloqueada Se entrega Ejecutar un manejador Se genera la señal Se desbloquea NO recomendado Fin Bloqueada Pendiente Si es de tiempo real, se encola sigwait() Se acepta Recomendado para señales manejadas Programación Concurrente oct-13 7 Señales Pendientes Señal pendiente: estado entre su generación y su entrega o aceptación observable cuando la señal está bloqueada (enmascarada) si ocurre un nuevo evento de una señal pendiente: - si es una señal no fiable, el evento puede perderse - si es una señal de tiempo real, y la opción SA_SIGINFO ha sido especificada (ver sigaction()), la señal se encola Programación Concurrente oct-13 8 Acciones Asociadas a una Señal Hay tres tipos de acciones que se pueden asociar a una señal: SIG_DFL: acción por defecto (generalmente, terminar el proceso) SIG_IGN: ignorar la señal puntero a función: capturar (o cazar ) la señal, ejecutando un manejador de señal - al entregarse la señal, se ejecuta el manejador indicado - una vez finalizado el manejador, se continúa el proceso en el lugar interrumpido - Los manejadores sólo pueden llamar a funciones seguras Programación Concurrente oct-13 9
4 7.4 Señales en Procesos Multi-Thread 7.4 Señales en Procesos Multi-Thread Cada thread tiene su propia máscara de señales define las señales bloqueadas para ese thread la máscara se hereda del thread padre, y se puede modificar Una señal se puede generar para un proceso o un thread si el evento es a causa de un thread, se envía a ese thread - p.e. una excepción hardware si el evento es asíncrono al proceso, se envía al proceso - p.e. expiración de un temporizador las señales generadas en asociación a un pid se envían al proceso; en asociación a un tid, se envían al thread Programación Concurrente oct Señales en Procesos Multi-Thread 7.4 Señales en Procesos Multi-Thread (cont.) Una señal generada para un thread si no está bloqueada: se entrega si está bloqueada y la acción no es ignorar : se queda pendiente hasta que se acepta con sigwait() o se desbloquea si está bloqueada y la acción es ignorar : no especificado Una señal generada para un proceso: si la acción no es ignorar, se envía a un único thread que esté esperando en un sigwait(), o a un thread que no tenga la señal bloqueada si no se entrega, la señal queda pendiente hasta que un thread llame a sigwait(), un thread desbloquee la señal, o la acción asociada se ponga a ignorar Programación Concurrente oct Señales en Procesos Multi-Thread Uso Recomendado de Señales en Procesos Multithread El thread principal enmascara todas las señales que se vayan a usar (salvo las destinadas a finalizar el proceso) los demás threads heredan esta máscara y no la modifican No se usan "manejadores de señal"; en su lugar, se crean threads que aceptan señales con sigwait(). Ventajas: se puede especificar la prioridad a la que se ejecuta la función manejadora la función manejadora se ejecuta en un contexto conocido y sin restricciones (el del thread) - por el contrario, el contexto en que se ejecutan los manejadores de señal no está definido por el estándar y desde ellos sólo se puede invocar funciones "seguras" Programación Concurrente oct-13 12
5 Manipular conjuntos de señales: #include <signal.h> int sigemptyset (sigset_t *set); int sigfillset (sigset_t *set); int sigaddset (sigset_t *set, int signo); int sigdelset (sigset_t *set, int signo); int sigismember (const sigset_t *set, int signo); Estas funciones no afectan de forma directa al comportamiento del sistema Programación Concurrente oct Cambio de la acción asociada a una señal Examinar y cambiar la acción asociada a una señal: int sigaction (int sig, const struct sigaction *act, struct sigaction *oact); si act es NULL, la acción actual no se cambia si oact no es NULL, la acción actual se devuelve en *oact Programación Concurrente oct Estructura sigaction struct sigaction { void (*) (int signo) sa_handler; // SIG_DFL, SIG_IGN, o puntero a función // manejadora de señal sigset_t sa_mask; // señales a ser bloqueadas mientras se ejecuta // el manejador (además de la señal manejada) int sa_flags; // si vale SA_SIGINFO la señal se encola y lleva // información asociada; el manejador es // sa_sigaction void (*)(int signo,siginfo_t *info, void *context) sa_sigaction; // puntero a función manejadora de señal // (SA_SIGINFO). context no está especificado por // el estándar ; Programación Concurrente oct-13 15
6 Configurar una señal de tiempo real La función sigaction() nos permite configurar una señal para que tenga comportamiento de tiempo real: no se pierde (se encola) se acepta en orden de prioridad (a menor número de señal mayor prioridad) tiene un campo adicional de información señales comprendidas entre SIGRTMIN y SIGRTMAX // configura la señal SIGRTMIN para que tenga // comportamiento de tiempo real y no instala // manejador (se utilizará sigwait) struct sigaction sigact; sigact.sa_handler=sig_dfl; sigact.sa_flags=sa_siginfo; CHKE( sigaction(sigrtmin, &sigact, NULL) ); Programación Concurrente oct Información Asociada a una Señal de TR Las señales de tiempo real pueden llevar información asociada - representada mediante una estructura siginfo_t typedef struct { int si_signo; // número de señal int si_code; // causa de la señal: // SI_USER: enviada por kill() // SI_QUEUE: enviada por sigqueue() // SI_TIMER: expiración de un temporizador // SI_ASYNCIO: fin de operación de I/O asíncrona // SI_MESGQ: llegada de mensaje a cola vacía union sigval si_value; // valor asociado a la señal siginfo_t; union sigval { int sival_int void *sival_ptr ; Programación Concurrente oct Cambio de la máscara de señal Examinar y cambiar señales bloqueadas: int pthread_sigmask (int how, const sigset_t *set, sigset_t *oset); how indica la forma de operar: - SIG_BLOCK: señales bloqueadas = anteriores + nuevas - SIG_UNBLOCK: señales bloqueadas = anteriores - nuevas - SIG_SETMASK: señales bloqueadas = nuevas set: señales nuevas; si vale NULL, no se cambian oset: si no es NULL, devuelve señales bloqueadas anteriores existe una función relacionada (sigprocmask()) que sólo debe ser utilizada en procesos mono-thread Programación Concurrente oct-13 18
7 7.6 Funciones para Envío y Aceptación de Señales 7.6 Funciones para Envío y Aceptación de Señales Enviar una señal a un proceso: #include <sys/types.h> #include <signal.h> int kill (pid_t pid, int sig); int sigqueue (pid_t pid, int signo, const union sigval value); Enviar una señal a un thread: int pthread_kill(pthread_t thread, int sig); Examinar señales pendientes: int sigpending (sigset_t *set); - Señales pendientes para el proceso + señales pendientes para el thread Programación Concurrente oct Envío y Aceptación de Señales 7.6 Funciones para Envío y Aceptación de Señales (cont.) Esperar a que se ejecute un manejador de señal: int pause (void); int sigsuspend (const sigset_t *sigmask); - las señales bloqueadas se cambian a sigmask, y vuelven al valor original cuando sigsuspend() retorna Aceptar una señal bloqueada: int sigwait (const sigset_t *set, int *sig); int sigwaitinfo (const sigset_t *set, siginfo_t *info); int sigtimedwait (const sigset_t *set, siginfo_t *info, const struct timespec *timeout); Programación Concurrente oct Ejemplo del Uso de Señales Thread que acepta la señal SIGINT 7.7 Ejemplo del Uso de Señales // El thread acepta la señal SIGINT. Cuando la recibe escribe un // mensaje en pantalla. A la cuarta señal recibida cambia la // máscara para que la siguiente señal termine el proceso. #include <signal.h> #include <pthread.h> #include <stdio.h> #include <unistd.h> #include <misc/error_checks.h> // declaración del cuerpo de la función manejadora void * sigwaiter (void * arg); Programación Concurrente oct-13 21
8 7.7 Ejemplo del Uso de Señales Ejemplo del Uso de Señales (cont.) // Thread principal int main () { sigset_t set; pthread_t th; // Coloca la máscara para él y para el hijo sigemptyset(&set); sigaddset(&set,sigint); CHK( pthread_sigmask(sig_block, &set, NULL) ); // crea la tarea manejadora de señales CHK( pthread_create(&th,null,sigwaiter,null) ); // permite ejecutar a la tarea manejadora while (1) { printf ("Main thread executing \n"); sleep(1); Programación Concurrente oct Ejemplo del Uso de Señales Ejemplo del Uso de Señales (cont.) void * sigwaiter (void * arg) { sigset_t set; int counter = 0; int signo; // La mascara de señales se hereda del padre (SIGINT enmascarada) // crea conjunto de señales a esperar sigemptyset(&set); sigaddset(&set, SIGINT); while (1) { CHKE( sigwait(&set, &signo) ); if (signo == SIGINT) { // Maneja la señal de terminación counter ++; if (counter < 4) { printf ("SIGINT %d recibida \n", counter); else { printf ("Señal final cazada, la próxima mata el proceso\n"); // desbloquea la señal CHK( pthread_sigmask(sig_unblock, &set, NULL) ); // while Programación Concurrente oct #include <signal.h> #include <pthread.h> #include <stdio.h> #include <unistd.h> #include "misc/error_checks.h" // información a enviar con la señal typedef struct { char * msj; int num; user_info_t; Programación Concurrente oct-13 24
9 Ejemplo de Señales con Información (cont.) // thread que acepta la señal void * sigwaiter (void * arg) { sigset_t set; siginfo_t sig_info; // La mascara de señales se hereda del padre // Debe tener SIGRTMIN enmascarada // prepara el set de señales a esperar sigemptyset(&set); sigaddset(&set,sigrtmin); while (1) { // espera la señal CHKE( sigwaitinfo(&set, &sig_info) ); printf ("Signal %d accepted with info: (%d,%s)\n", sig_info.si_signo, ((user_info_t *)(sig_info.si_value.sival_ptr))->num, ((user_info_t *)(sig_info.si_value.sival_ptr))->msj); Programación Concurrente oct Ejemplo de Señales con Información (cont.) // thread principal que envía la señal int main () { sigset_t set; pthread_t th; user_info_t user_info; user_info.msj = "Message"; union sigval user_sigval; user_sigval.sival_ptr = &user_info; int i; // configura la señal SIGRTMIN para que tenga comportamiento // de tiempo real y no instala manejador (se utilizará // sigwaitinfo para aceptarla) struct sigaction sigact; sigact.sa_handler=sig_dfl; sigact.sa_flags=sa_siginfo; CHKE( sigaction(sigrtmin, &sigact, NULL) ); // pone la mascara para él y para su hijo sigemptyset(&set); sigaddset(&set,sigrtmin); CHK( pthread_sigmask(sig_block, &set, NULL) ); Programación Concurrente oct Ejemplo de Señales con Información (cont.) // crea el thread sigwaiter CHK( pthread_create(&th,null,sigwaiter,null) ); // envía tres veces la señal for(i=0; i<3; i++) { user_info.num = i; printf ("Main thread send signal %d with info: (%d,%s)\n", SIGRTMIN, user_info.num, user_info.msj); // envía la señal sigqueue(0, SIGRTMIN, user_sigval); sleep(5); return 0; Programación Concurrente oct-13 27
Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid
Manejo de Señales Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Señales Concepto Evento que interrumpe la ejecución normal de un proceso La acción por defecto suele
Tema 4 : señales. Sistemas Operativos: Programación de Sistemas. Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez.
Tema 4 : señales Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Señales Las señales son un mecanismo para comunicar eventos
Sincronización de procesos en C
Sincronización de procesos en C 2 En esta unidad aprenderás a: 1 2 3 4 5 Comprender los mecanismos de comunicación basados en señales. Conocer los tipos de señales. Definir gestores de señales en un programa
Gestión del tiempo en POSIX
dit UPM Gestión del tiempo en POSIX Juan Antonio de la Puente DIT/UPM Relojes en C / POSIX Hay dos tipos de relojes Reloj calendario (ANSI C) Proporciona valores de tiempo con resolución de 1s Relojes
Boletín 5- Señales. Departamento de Lenguajes y Sistemas Informáticos
Boletín 5- Señales Departamento de Lenguajes y Sistemas Informáticos Indice 1. Introducción 2. Envío de señales desde la shell: kill 3. Llamadas al Sistema kill: envío de señal a un proceso raise: autoenvío
Procesos e Hilos en C
Procesos e Hilos en C 6 de febrero de 2012 En esta sesión vamos a escribir programas en lenguaje C que utilicen hilos y procesos para comparar el rendimiento del sistema ante la gestión de unos y otros.
Sistemas Operativos Práctica 3
Sistemas Operativos Práctica 3 Ing. Andrés Bustamante [email protected] Ingeniería de Sistemas Facultad de Ingeniería Universidad de la Amazonia 2009 1. Objetivo El objetivo de la práctica es que
PRÁCTICAS DE SS.OO. Universidad de Murcia. I.I./I.T.I. Sistemas/I.T.I. Gestión
Universidad de Murcia Facultad de Informática Departamento de Ingeniería y Tecnología de Computadores Área de Arquitectura y Tecnología de Computadores PRÁCTICAS DE SS.OO. I.I./I.T.I. Sistemas/I.T.I. Gestión
Sistemas Operativos. Procesos
Sistemas Operativos Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor de proceso
Práctica 2: Realización de una Alarma Temporizada Diseño de Sistemas Operativos U.L.P.G.C.
Práctica 2: Realización de una Alarma Temporizada David Jesús Horat Flotats Índice I. Explicación del Programa desarrollado... 2 Programa Principal... 2 Variables Tarea que realiza Parámetros Movimiento
Funciones Definición de función
Funciones Definición de función Una función es un bloque de código que realiza una tarea específica. Una función es una porción de programa, identificable mediante un nombre, que realiza determinadas tareas
Control por Computador
Control por Computador Ignacio Alvarez García Octubre - 2011 Indice Introducción control de procesos por computador Las matemáticas del control Programación del lazo de control Programación en lenguaje
EDITRAN/TR. Windows/Unix. Manual de referencia
EDITRAN/TR Windows/Unix Manual de referencia INDRA 30 de octubre de 2014 ÍNDICE 1. INTRODUCCIÓN.... 1-1 2. INTERFAZ DE PROGRAMACIÓN.... 2-1 2.1. DESCRIPCION... 2-1 2.2. FUNCIONES DE ENVIO Y RECEPCION...
Programación Concurrente
Master en Computación Programación Concurrente Bloque II: Programación concurrente en POSIX Tema 1. Introducción al estándar POSIX Tema 2. Sistema Operativo MaRTE OS Tema 3. Gestión de Threads Tema 4.
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS
UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE CIENCIAS PRACTICA DE PROCESOS HERRAMIENTAS Caso 1: 1.- Necesitamos un cd o Dvd para grabar alguna de las versiones de livecd de Linux. 2.- Liga de una
Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle
Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Asertos en C++ Mecanismo de excepciones: Declaración de excepciones Lanzar excepciones
!! Identificar las señales que llegan a la consola.
Objetivos TEMA 9 Gestión de Errores y Excepciones!! Describir el mecanismo de gestión de señales en Windows API y la gestión de excepciones.!! Identificar las señales que llegan a la consola. Estudio de
Sistemas Operativos Practica 1: procesos y concurrencia.
Sistemas Operativos Practica 1: procesos y concurrencia. Objetivos: Introducir al alumno a los conceptos de programa, concurrencia, paralelismo y proceso o tarea. Manejo del concepto de concurrencia haciendo
TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS
TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS Una vez que ya sabes crear tus propios programas, vamos a analizar los fundamentos del lenguaje de programación C. Este capítulo incluye además los siguientes temas:
Elementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
Procesos Concep Conce to de Proceso Multitarea Información del proceso (BCP) Creación de procesos T rminación de procesos
Tema 4: Gestión de procesos Capítulo 4: Gestión de procesos Procesos Procesos ligeros (threads) Políticas y algoritmos de planificación Señales y excepciones Temporizadores Servidores y demonios Servicios
Arquitecturas cliente/servidor
Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor 1 Creación de Sockets Cliente/Servidor Sockets en TCP Concepto de Hilos Definición de DAEMON Sockets en UDP 2 THREADS 3 Qué es un thread?
LENGUAJE. Tema 1 - Introducción
LENGUAJE Tema 1 - Introducción HISTORIA DEL LENGUAJE C El lenguaje de programación C fue creado por Dennis Ritchie cuando trabajaba en Bell Laboratories de AT&T junto con Ken Thompson en el diseño del
Programación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C
Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales
- Bajo que condiciones el algoritmo de planifiación de procesos FIFO (FCFS) resultaría en el tiempo de respuesta promedio más pequeño?
Sistemas Operativos. Grado Ingeniería Informática. TGR-2.1 Procesos. Noviembre 2014 Problemas para hacer en clase FIFO cpu C A 1. Dos procesos A y B tienen una ráfaga de CPU de 50 ms y un proceso C tiene
Fundamentos de programación
Fundamentos de programación Estructuras de Control Estructuras de control Estructuras de control Estructura secuencial Estructura alternativa Sentencias if, if else Sentencias if else anidadas El operador
SISTEMAS OPERATIVOS 2 INGENIERIA TECNICA INFORMATICA SISTEMAS CORRECCION PRACTICA 3: SEÑALES Y CREDENCIALES CURSO
SISTEMAS OPERATIVOS 2 INGENIERIA TECNICA INFORMATICA SISTEMAS CORRECCION PRACTICA 3: SEÑALES Y CREDENCIALES CURSO 2009-20010 *Rellenar los NOMBRES y los LOGINS de los DOS miembros del grupo Nombre1: Nombre2:
Llamadas al Sistema. Laboratorio de Arquitectura de Ordenadores
Llamadas al Sistema Laboratorio de Arquitectura de Ordenadores Índice Introducción Procesos Señales Sistema de ficheros Bibliografía 2 Introducción Llamadas al Sistema: Un API compuesto por una serie de
Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria
Sistemas operativos UPCO ICAI Departamento de Electrónica y Automática 1 Hasta ahora hemos visto Relación programa-sistema operativo Gestión de memoria Reserva para la ejecución Pilas, heap, memoria de
Programación Concurrente
Master en Computación Programación Concurrente Bloque II: Programación concurrente en POSIX Tema 2. Sistema Operativo MaRTE OS Tema 3. Gestión de Threads Tema 4. Gestión del Tiempo Tema 5. Planificación
Funciones y paso de parámetros
Unidad Didáctica 24 Funciones y paso de parámetros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.0 Índice Consideraciones sobre funciones Estructura de una función
Tema 3. Concurrencia entre procesos
Tema 3. SO Índice Procesamiento concurrente El problema de la sección crítica Semáforos Mutex y variables de condición Señales Paso de mensajes Monitores Mecanismos de concurrencia en sistemas Unix Mecanismos
Test : Conteste exclusivamente en una HOJA DE LECTURA ÓPTICA, no olvidando marcar que su tipo de examen es A.
SISTEMAS INFORMÁTICOS I Junio 2003 INGENIERÍA EN INFORMÁTICA - Código Carrera 55 - Código Asignatura 077 Tipo de Examen: A NO SE PERMITE EL USO DE NINGÚN MATERIAL Tiempo: 2 horas Apellidos: Nombre: DNI:
T5-multithreading. Indice
T5-multithreading 1.1 Indice Proceso vs. Flujos Librerías de flujos Comunicación mediante memoria compartida Condición de carrera Sección Crítica Acceso en exclusión mutua Problemas Abrazos mortales 1.2
Procesos Definición y Estados
Procesos Definición y Estados Profesorado de Informática CeRP del Suroeste, Uruguay Contenidos Qué es un proceso Estructuras de datos para gestionar procesos API para trabajar con procesos Hilos (threads).
Tema 6: Memoria dinámica
: Programación 2 Curso 2013-2014 Índice 1 2 3 El tamaño es fijo y se conoce al implementar el programa Declaración de variables int i=0; char c; float vf[3]={1.0, 2.0, 3.0}; i c vf[0] vf[1] vf[2] 0 1.0
Programación. Test Autoevaluación Tema 3
Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.
TEMA 8: Gestión dinámica de memoria
TEMA 8: Gestión dinámica de memoria 8.1.-Tipo de datos puntero Hasta ahora, los tipos de datos que hemos visto (a excepción de strings y ficheros) eran estructuras de datos estáticas, es decir, estructuras
Estructuras de Datos Declaraciones Tipos de Datos
Departamento de Informática Universidad Técnica Federico Santa María Estructuras de Datos Declaraciones Tipos de Datos Temas: 2-3-4 IWI-131, paralelo 01 Profesor: Teddy Alfaro O. Lenguaje de Programación
Se guardan en archivos con extencion c y los cabezales con extension h
Se guardan en archivos con extencion c y los cabezales con extension h Tipos de Variables: Tipo Tamaño(bytes) Limite inferior Limite superior char 1 -- -- unsigned char 1 0 255 short int 2-32768 +32767
Lenguaje de programación C. Introducción
Lenguaje de programación C Introducción 1 Elementos del lenguaje C Colección de funciones Estas funciones contienen declaraciones, sentencias, expresiones y otros elementos que en conjunto indican a la
Lenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006
Lenguaje C Elementos de un Programa Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006 Objetivos Conocer los elementos que conforman un programa en C 1. Elementos léxicos de un Programa Cuando el programa
Centro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta Excepciones... 5 Excepciones de uso frecuente... 8 Excepciones no comprobadas... 13 Excepciones comprobadas... 14 La clase Runtime Exception...
Message Passing Interface (MPI)
Message Passing Interface (MPI) INTRODUCCIÓN MPI (Message Passing Interface) como es un interfaz estandarizada para la realización de aplicaciones paralelas basadas en pasaje de mensajes. El modelo de
Tema 5 Tabla de Símbolos
Traductores, Compiladores e Intérpretes 1 Tema 5 También se la llama tabla de nombres o tabla de identificadores y tiene dos funciones principales: - Efectuar chequeos semánticos. - Generación de código.
UNIDAD 1. Algoritmo se define como un conjunto de instrucciones que la computadora debe seguir para resolver un problema.
UNIDAD 1 1.1 Definición de Algoritmo La palabra algoritmo se deriva de la traducción al latín del nombre Muhammad Musa Al-khawarizmi, un matemático y astrónomo árabe que en el siglo IX escribió un tratado
LEX. Las definiciones y subrutinas son opcionales. El segundo %% es opcional pero el primer %% indica el comienzo de las reglas.
LEX Estructura de un programa en LEX { definiciones { reglas { subrutinas del usuario Las definiciones y subrutinas son opcionales. El segundo es opcional pero el primer indica el comienzo de las reglas.
1. Sistema Operativo Unix
1. Sistema Operativo Unix 1.1 Introducción al S.O. Unix y su entorno 1.2 Subsistema de Archivos 1.3 Subsistema de Procesos 1.4 Políticas de Gestión de Memoria Dpto. Lenguajes y Sistemas Informáticos. Universidad
Capítulo 3: Procesos. n Concepto de Proceso. n Despacho (calendarización) de Procesos. n Operaciones en Procesos. n Procesos en cooperación
3.- Procesos Capítulo 3: Procesos Concepto de Proceso Despacho (calendarización) de Procesos Operaciones en Procesos Procesos en cooperación Compunicación Interprocesos Communicación en sistemas Cliente-Servidor
Funciones Tipos de funciones y Recursividad
Funciones Tipos de funciones y Recursividad SESION 4 Definición Una función es una subrutina o subprograma que forman un programa que realiza tareas bien definidas. Todo programa en C consta de una o más
SISTEMAS OPERATIVOS Arquitectura de computadores
SISTEMAS OPERATIVOS Arquitectura de computadores Erwin Meza Vega [email protected] Esta presentación tiene por objetivo mostrar los conceptos generales de la arquitectura de los computadores, necesarios
Estructuración del programa en partes más pequeñas y sencillas
Introducción Estructuración del programa en partes más pequeñas y sencillas Modularización Propósito único Identificable Reusable Mayor claridad: programación, depuración, etc. Construcción de librerías
Fiabilidad y Tolerancia a Fallos
Fiabilidad y Tolerancia a Fallos Los sistemas empotrados es usual que presenten requerimientos de fiabilidad y seguridad Cada vez mas se utilizan sistemas de control de tiempo real en sistemas críticos
Programación Estructurada
Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 2 Nombre: El lenguaje de programación C Contextualización Una constante en todos los lenguajes de programación (viejos y nuevos) es la implementación
FACULTAD DE INGENIERÍA
NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Estructuras de decisión PRÁCTICA NÚM. [ 5 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje
Tema 2. El lenguaje JAVA
Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias
Sistemas Operativos: Programación de Sistemas. Curso Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J.
Tema 5 : Comunicación entre Procesos mediante Tuberías Sistemas Operativos: Programación de Sistemas Oscar Déniz Suárez Alexis Quesada Arencibia Francisco J. Santana Pérez Curso 2006-07 Introducción Algunas
Palabras reservadas de C++ y C. Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones.
Palabras reservadas de C++ y C Una palabra reservada no puede declararse como un identificador, esto haría un conflicto entre conectores y funciones. A continuación se muestra el link del listado de palabras
Examen Principios de Programación Febrero 2012
Por favor siga las siguientes indicaciones: Escriba con lápiz. Escriba su nombre y número de documento en todas las hojas que entregue. Numere las hojas e indique el total de hojas en la primera de ellas.
Introducción a Sistemas Operativos: Concurrencia
Introducción a Sistemas Operativos: Concurrencia Clips xxx Fr ancisco J Ballesteros 1. Semáforos Quizá la abstracción más conocida para sincronizar procesos en programación concurrente controlar el acceso
Estructuras de Repetición (Hacer-Mientras)
Estructuras de Repetición (Hacer-Mientras) Material Original: Prof. Flor Narciso Modificaciones: Prof. Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería
Programación en Lenguaje C
Lenguaje de programación C Programación en Lenguaje C Introducción El Lenguaje de programación C fue implantado por primera vez en los años 70 por Dennis Ritchie para una computadora DEC PDP-11 corriendo
Sistemas Operativos I Manual de prácticas
Sistemas Operativos I Manual de prácticas Grupo de Sistemas Operativos (DSIC/DISCA) Práctica 3: Procesos POSIX ANTES DE EMPEZAR...... 2 PRÁCTICA 3: PROCESOS POSIX... 2 CREACIÓN DE PROCESOS MEDIANTE FORK...
En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.
El primer objetivo de un programa informático es el manejo de datos. Un dato es toda aquella información que se puede tratar en un programa informático. En este artículo vamos a conocer los tipos de datos
Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS. Departamento de Ciencias de la Computación e IA. Subprogramas en C
Tema ADQUISICIÓN Y TRATAMIENTO DE DATOS Departamento de Ciencias de la Computación e IA Subprogramas en C Objetivo Una vez que tengamos un programa que resuelva un problema concreto, ser capaces de usarlo
Hilos. Módulo 4. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco. Hilos
Hilos Módulo 4 Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Hilos Revisión Modelos Multihilados Librerías de Hilos Aspectos sobre Hilos Ejemplos
LENGUAJE. Tema 2 Elementos de un programa
LENGUAJE Tema 2 Elementos de un programa ELEMENTOS DE UN PROGRAMA Comentarios. Identificadores. Constantes. Variables. Operadores. Sentencias o instrucciones. COMENTARIOS Los comentarios en C pueden ocupar
Instituto Politécnico Nacional
Instituto Politécnico Nacional Secretaria Académica Dirección de Estudios Profesionales Escuela Superior de Ingeniería Mecánica y Eléctrica Unidad Culhuacan Ingeniería en Comunicaciones y Electrónica Academia
Estructuras de Repetición (Repita para)
Estructuras de Repetición (Repita para) Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación Digital I 1 REPITA PARA Fijar
1.1 Tipos de Datos Primitivos. 1.2 Tipos de datos estructurados. 1.3 Definición de estructura de datos
1.1 Tipos de Datos Primitivos 1.2 Tipos de datos estructurados 1.2.1 Arreglos unidimensionales, bidimensionales y cadenas de caracteres 1.2.2 Registros o Estructuras (unión y estructura) 1.3 Definición
Tema 3 SUBRUTINAS. Estructura de Computadores OCW_2015 Nekane Azkona Estefanía
Tema 3 SUBRUTINAS ÍNDICE Definición e instrucciones básicas Soporte para el tratamiento de subrutinas (ejecución de la subrutina y gestión del bloque de activación) Interrupciones vs llamadas a procedimiento
APUNTES PROII 2º PARCIAL.
APUNTES PROII 2º PARCIAL. MEMORIA DINÁMICA. Hay que distinguir entre: Estática: memoria que se reserva en tiempo de compilación. Dinámica: memoria que se reserva en tiempo de ejecución. 5 pasos: 1. Declaración
Sistema Operativo. Repaso de Estructura de Computadores. Componentes Hardware. Elementos Básicos
Sistema Operativo Repaso de Estructura de Computadores Capítulo 1 Explota los recursos hardware de uno o más procesadores Proporciona un conjunto de servicios a los usuarios del sistema Gestiona la memoria
Prueba de Laboratorio Modelo B01 Semáforos y Memoria Compartida
Prueba de Laboratorio APELLIDOS: NOMBRE: GRUPO DE LABORATORIO: Indicaciones: No se permiten libros, apuntes ni teléfonos móviles. Cuando tenga una solución al ejercicio muéstrela al profesor (compilación
Laboratorio de Arquitectura de Redes. Entrada y salida estándar
Laboratorio de Arquitectura de Redes Entrada y salida estándar Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato: scanf() El buffer de teclado Entrada
EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO
EQUIVALENCIAS EN C DE CONSTRUCCIONES SECUENICIALES EN PSEUDOCÓDIGO TIPOS DE DATOS BÁSICOS: Tipo Tipo Tamaño aproximado en bits Rango mínimo Carácter char 8 0 a 55 Entero int 16-3767 a 3767 Real float 3
TEMA 4. ESTRUCTURAS DE CONTROL
M.P. Sesmero, P. de Toledo, F.J. Ordoñez, J. Gómez-Romero, J.A. Iglesias, J.L. Mira Programación TEMA 4. ESTRUCTURAS DE CONTROL Grado en Ingeniería en Tecnologías Industriales Programación CONTENIDOS 4.1.
Cadena de caracteres. 1. Fundamentos de cadenas y caracteres
1. Fundamentos de cadenas y caracteres Cadena de caracteres Los caracteres son bloques de construcción fundamentales para los programas fuente. Un programa puede contener constantes de carácter. Una constante
Prácticas de Sistemas Operativos
Prácticas de Sistemas Operativos Toñi Reina, David Ruiz, Juan Antonio Álvarez, Antonio Tallón, Javier Gutiérrez, Pablo Neira, Paco Silveira, Sergio Segura y José Ángel Bernal Boletín 4: Procesos Curso
Programación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores
Programación Orientada a Objetos Resumen de Temas Unidad 3: Constructores y destructores 3.1 Conceptos de métodos constructor y destructor Java inicializa siempre con valores por defecto las variables
Tema 13: Apuntadores en C
Tema 13: Apuntadores en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Introducción
Generador de analizadores léxicos FLEX
Generador de analizadores léxicos FLEX Procesadores de Lenguajes 4 o Informática PL curso 2008-2009 (CCIA) CCIA Octubre 2008 PL 0809 (CCIA) Introducción a FLEX Octubre-2008 1 / 12 Uso de FLEX FLEX: traduce
Práctica 2. Implementación de un driver básico para la transmisión de datos a través de la UART.
Práctica 2. Implementación de un driver básico para la transmisión de datos a través de la UART. 1. Objetivo El objetivo de la siguiente práctica es el de implementar el software de control (driver) de
LABORATORIO 3 ESTRUCTURAS REPETITIVAS WHILE / DO WHILE
LABORATORIO 3 ESTRUCTURAS REPETITIVAS WHILE / DO WHILE 1 OBJETIVOS Al finalizar esta actividad, serás capaz de: Entender el funcionamiento de las estructuras iterativas en general; la(s) condición(es)
RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA
UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí
Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información Curso de Redes I CI-4815 Trimestre Septiembre Diciembre 2013
Universidad Simón Bolívar Departamento de Computación y Tecnología de la Información Curso de Redes I CI-4815 Trimestre Septiembre Diciembre 2013 Proyecto I Autores: Lairon Acosta. Carnet: 09-10927 Jueves
FACULTAD DE ECONOMIA Y ADMINISTRACION DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION CÁTEDRA PROGRAMACION GENERAL. Trabajo Práctico Nº 4
Trabajo Práctico Nº 4 Ejercicios Teóricos 1. Indique si las siguientes afirmaciones son verdaderas o falsas a. La programación orientada a objetos hace uso de clases y envío de mensajes entre objetos..
Estructuras de Decisión Simples y Dobles
Estructuras de Decisión Simples y Dobles Andrés Arcia Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Programación Digital I 1 Estructuras
$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos
PROGRAMACIÓN DE SHELL SCRIPTS EN LINUX El shell es un intérprete de órdenes, pero el shell no es solamente eso; los intérpretes de órdenes de Linux son auténticos lenguajes de programación. Como tales,
Operadores de comparación
Operadores de comparación Los operadores de comparación en C son: Igual (==) Distinto (!=) Mayor (>) y Mayor o igual (>=) Menor (
Memoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente:
(3 ptos) Memoria Compartida y Semáforos R/W 1. Objetivo En esta práctica se pretende crear una librería que dé la funcionalidad de un semáforo para resolver problemas con múltiples lectores y escritores
Conceptos de Planificación
Conceptos de Planificación Conceptos de Planificación Planificación Planificación de Procesos de Procesos Algoritmos Algoritmos Estructura Estructura Propiedades Propiedades Tipos Tipos Evaluación Evaluación
1. Sobrecarga de operadores. 2. Métodos operadores unarios Operador de incremento (prefijo)
. Sobrecarga de operadores. unarios Operador de incremento (prefijo). Devolución de objetos en los métodos. Retorno por referencia Sobrecarga de operadores Los operadores aceptan uno o varios operandos
El lenguaje C. #define MAX LINEA 1000 /* maximo tamanio de linea de entrada */
Principios de Programación El lenguaje C 1. Variables locales y globales 1.1. Variables locales Las funciones permiten al programador modularizar un programa. Todas las variables declaradas en las definiciones
