Tema 3: Concurrencia de procesos
|
|
|
- Julio Macías Cruz
- hace 10 años
- Vistas:
Transcripción
1 Tema 3: Concurrencia de procesos Yolanda Blanco Fernández
2 Concurrencia, Tiempo Real y Paralelismo Concurrencia: Convivencia de un conjunto de procesos en un mismo ordenador. Sistemas de tiempo real: Limitados por restricciones temporales críticas. Para vencerlas, los sistemas de tiempo real suelen ser concurrentes. Paralelismo: Posibilidad de ejecutar varias sentencias simultáneamente en un mismo ordenador precisan varios procesadores concurrencia. Vamos a trabajar con monoprocesadores.
3 Grafos de Precedencia Representación gráfica de un algoritmo en el que se establece el orden de ejecución de un conjunto de instrucciones y/o datos. I 1 I 1 I 2 I 2 I 4 I 5 I 3 I 3 I 7 I 6 Algoritmo secuencial Algoritmo concurrente Los procesos concurrentes de un algoritmo pueden ser independientes o compartir datos. Nuestro objetivo: estudiar ambos tipos de relaciones entre procesos concurrentes, mediante soluciones independientes del procesador y su algoritmo de planificación.
4 Construcciones FORK y JOIN (Longway) Fork <etiqueta> Divide el flujo en 2 procesos: el que viene después de Fork, y el que viene después de la etiqueta. Join <contador >: Espera hasta que acaben los contador procesos que debe unir antes de seguir la ejecución. Ejemplo 1: I 1 I 0 I 3 I 2 contador = 2; I 0 ; F ORK L 1 I 1 ; GOT O L 2 ; L 1 : I 2 ; L 2 : JOIN contador; I 3 ;
5 Construcciones FORK y JOIN (II) Ejemplo 2: I 1 I 0 I 2 I 3 I 4 contador = 3; I 0 ; F ORK L 1 ; I 1 ; GOT O L 2 ; L 1 : F ORK L 3 ; I 2 ; GOT O L 2 ; L 3 : I 3 ; L 2 : JOIN contador; I 4 ; Problemas: El uso de GOT O perjudica la legibilidad del programa. No empleado en lenguajes de alto nivel. Difícil depuración etiquetas. Alternativa: Sentencias COBEGIN y COEND.
6 Construcciones COBEGIN y COEND (Dijkstra) También denominadas PARBEGIN y PAREND. COEND cierra tantas ramas como haya abierto COBEGIN. Ejemplo: I 1 I 2 I 0 I N+1 I N I 0 ; COBEGIN I 1, I 2,..., I N ; COEN D; I N+1 ; Ejercicio #1: Implementar el siguiente grafo con: (i) sentencias FORK y JOIN y (ii) sentencias COBEGIN y COEND. S 1 S 2 S 3 S 4 S 5 S 6 S 7
7 Construcciones COBEGIN y COEND (II) Fácil incorporación en lenguajes de alto nivel. Depuración más sencilla que FORK y JOIN. Equivalencia entre FORK-JOIN y COBEGIN-COEND? Ejercicio #2: Escribir el siguiente grafo con sentencias FORK-JOIN y COBEGIN-COEND. S 1 S 2 S 3 S 4 S 5 S 6 S 7 NO son equivalentes. En UNIX: fork(), execl(), wait() y waitpid(pid).
8 Procesos Concurrentes que comparten Datos Al compartir datos entre procesos se pueden producir problemas de indeterminismo (resultados diferentes según escenario de prueba). Ejemplo: S 1 y S 2 no son independientes, sino que comparten la variable x. S 1 S 0 S 3 S 2 S 0 : x = 100; S 1 : x := x + 10; S 2 : if x > 100 then write(x); else write (x 50); S 3 : nop; Escenario #1: S 1 y S 2 Se escribe x = 110. Escenario #2: S 2 y S 1 Se escribe x = 50. Escenario #3: S 2 pierde el control (p. ej. fin de quantum) antes de escribir y sigue S 1 Se escribe x = 60. Se han propuesto múltiples soluciones para tratar situaciones indeterministas con procesos concurrentes compartiendo datos.
9 Solución de Bernstein Cada proceso P i está asociado a dos conjuntos: R(P i ): conjunto de variables accedidas durante la ejecución de P i. W (P i ): conjunto de variables modificadas durante la ejecución de P i. Bernstein concluyó que para que dos procesos P i y P j, concurrentes, puedan ejecutarse de forma determinista tienen que satisfacerse las siguientes condiciones: R(P i ) W (P j ) = W (P i ) R(P j ) = W (P i ) W (P j ) = Condiciones suficientes pero no necesarias sólo se pueden compartir variables de lectura. Objetivo: Buscar soluciones al indeterminismo sin que se cumplan las condiciones de Bernstein compartir variables de escritura.
10 Sección Crítica Ejemplo de motivación: contar el número de coches que pasan por los dos carriles de una autopista. El problema surge cuando los procesos-contadores intentan acceder a una variable compartida. Sección crítica: zona de código de un proceso en la cual se lee y/o modifican las variables compartidas por los procesos concurrentes. Solución: exclusión mutua cuando un proceso esté en su sección crítica, ningún otro puede estar en la suya. Para ello, adoptaremos las restricciones de Djkstra: La solución debe ser independiente del HW o del número de procesos. No se puede realizar ninguna suposición sobre la velocidad relativa de los procesos. Cuando un proceso está fuera de su sección crítica no puede impedir a otros procesos entrar en sus respectivas secciones críticas. La selección del proceso que debe entrar en la sección crítica no puede posponerse indefinidamente. Puede producirse interbloqueo: procesos bloqueados que sólo podrían ser desbloqueados por otros que también están en bloqueo.
11 Posibles Soluciones al Contador de Coches 1. Asociar una variable booleana libre al acceso al recurso común (la sección crítica). El proceso accede si libre=true. No sirve porque si se pierde el control en libre=false, los dos procesos accederán a la vez al recurso indeterminismo!! 2. Un proceso pasa cuando libre=true y el otro cuando libre=false. Sólo funciona si la velocidad de ambos procesos está acompasada: si pasan dos coches por el carril izquierdo, sólo se podrá contar el segundo cuando pase un coche por el carril derecho (y ponga libre=true). Solución inválida por violar la tercera restricción de Djkstra: un proceso impide que otro acceda a la sección crítica cuando no la está usando. 3. Si el segundo proceso quiere acceder a la sección crítica, le dejamos; en caso contrario, accede el primer proceso. Se garantiza exclusión mutua. Es posible que los dos procesos se den el turno el uno al otro y ninguno acceda al recurso común se viola 4 a restricción Djkstra. 4. La solución válida es el algoritmo de Dekker.
12 Algoritmo de Dekker
13 Conclusiones Las soluciones son mucho más complejas de lo que parecen a simple vista. Incluso en el algoritmo de Dekker la sincronización se consigue siempre mediante espera activa (esperar por una condición comprobándola continuamente) despilfarro de recursos. La programación concurrente tiene que ser sistemática Demasiados escenarios de prueba para ingenieros SW. Es necesario recurrir a herramientas de programación más potentes herramientas de sincronización: Herramientas de bajo nivel. Herramientas de nivel intermedio: semáforos. Herramientas de alto nivel: regiones críticas y monitores.
14 Herramientas de Sincronización Funciones primitivas, implementadas de forma SW o HW, que ayudan a controlar la interacción entre procesos concurrentes: Sincronización: Los procesos intercambian señales que controlan su avance. Comunicación: Los procesos intercambian información. Características deseables: Desde el punto de vista conceptual: Simplicidad. Generalidad. Verificabilidad. Desde el punto de vista de implementación: Eficiencia. Tipos de herramientas de sincronización: Nivel HW: acceso a recursos HW compartidos asegurando uso en exclusión mutua (por ejemplo, memoria y buses). Nivel SW: LOCK/UNLOCK, TEST-AND-SET, SWAP.
15 Primitivas LOCK/UNLOCK, TEST-AND-SET y SWAP Deben ejecutarse de forma indivisible. LOCK bloquea el acceso a la variable común y UNLOCK lo desbloquea. TEST-AND-SET devuelve el valor de la variable común y la pone a TRUE (para bloquearla). SWAP (var a, b: BOOLEAN) intercambia el valor de a por b y de b por a. Conclusiones: Consiguen soluciones más sencillas que la propuesta por Dekker. Solución generalizable a N procesos. Principal inconveniente: No se elimina la espera activa. Las herramientas de sincronización de bajo nivel no se usan en aplicaciones concurrentes. Son la base para las herramientas de alto nivel.
16 Los Semáforos Objetivo: solución al problema de la exclusión mutua evitando la espera activa (Dijkstra, 1965). Un semáforo sem consta de tres partes: Una variable entera interna (s) con un valor máximo N (no accesible para los procesos). Una cola de procesos (no accesible para los procesos). Dos funciones básicas de acceso: wait(sem): si s < 0, el proceso se suspende en la cola asociada al semáforo. signal(sem): si hay algún proceso suspendido en la cola asociada al semáforo, se despierta al más prioritario; en caso contrario, se incrementa en una unidad el valor de s (sin superar el valor máximo N).
17 Implementación de WAIT y SIGNAL WAIT(s): SIGNAL(s): s := s 1 if s < 0 then begin estado-proceso = espera; poner-proceso-en-cola_espera_semáforo; end; s := s + 1 if s 0 then begin poner-proceso-en-cola_preparados; estado-proceso = activo; end; Si s 0 se bloquean todos los procesos; si s 1 no exclusión mutua. El valor inicial y máximo de la variable s determinan la funcionalidad del semáforo.
18 Semáforos de Exclusión Mutua Semáforos binarios: la variable interna s sólo puede tomar los valores 0 y 1. Solución al problema de la exclusión mutua: Un semáforo binario con s = 1. Antes de acceder a la sección crítica el proceso ejecuta wait(sem). Al finalizar la sección crítica el proceso ejecuta signal(sem).
19 Semáforos de Paso Permiten implementar grafos de precedencia. Para cada punto de sincronización entre dos procesos: semáforo binario con s = 0. El proceso que debe esperar ejecuta wait(sem). Al alcanzar un punto de sincronización el otro proceso ejecuta signal(sem).
20 Semáforos Enteros y de Condición N procesos accediendo a la sección crítica: Semáforo con s = N, siendo N el valor máximo permitido. Antes de acceder a la sección crítica el proceso ejecuta wait(sem). Al finalizar la sección crítica el proceso ejecuta signal(sem). Sincronización entre procesos en función de una variable entera: Semáforo cuya variable s está inicializada a N ó 0 (siendo N el valor máximo). El proceso que debe esperar ejecuta wait(sem). Al alcanzar un punto de sincronización el otro proceso ejecuta signal(sem). Ejemplo clásico: problema del productor-consumidor (con búfer limitado e ilimitado).
21 Problema del Producto-Consumidor Sección crítica del productor (P) y del consumidor (C): acceso al búfer. Condiciones: P produce si búfer no lleno y C consume si búfer no vacío. Solución con búfer ilimitado (prob [búfer lleno] 0) El consumidor sólo accederá al búfer cuando haya algún dato que consumir. Solución con búfer limitado El productor sólo volcará dato en búfer si hay sitio y consumidor sólo accederá si hay algún dato que consumir.
22 Solución del Producto-Consumidor con Búfer Ilimitado PROGRAM P-C; VAR buffer: ARRAY [N] of datos; s: SEMAFORO //en exclusión mutua vacio: SEMAFORO //de condición BEGIN s=1; vacio=0; COBEGIN P; C; COEND END PROCEDURE P; BEGIN REPEAT Producir_Dato; WAIT(s); Dejar_Dato_en_Buffer; SIGNAL(s); SIGNAL(vacio); FOREVER; END; PROCEDURE C; BEGIN REPEAT WAIT(vacio); WAIT(s); Extraer_Dato_del_Buffer; SIGNAL(s); Consumir_Dato; FOREVER; END;
23 Solución del Producto-Consumidor con Búfer Limitado (tamaño N) PROGRAM P-C; VAR buffer: ARRAY [N] of datos; s: SEMAFORO //en exclusión mutua vacio, lleno: SEMAFORO //de condición BEGIN s=1; // exclusión mutua vacio=0; //de condición lleno=n; //de condición COBEGIN P; C; COEND END PROCEDURE P; BEGIN REPEAT Producir_Dato; WAIT(lleno); WAIT(s); Dejar_Dato_en_Buffer; SIGNAL(s); SIGNAL(vacio); FOREVER; END; PROCEDURE C; BEGIN REPEAT WAIT(vacio); WAIT(s); Extraer_Dato_del_Buffer; SIGNAL(s); SIGNAL(lleno); Consumir_Dato;
24 Problema de la Cena de los Filósofos Arroz Los filósofos cogen 2 palillos, se echan arroz del plato, comen y dejan los palillos. Suponemos que el arroz no se acaba nunca y que cada filósofo sólo puede coger los palillos de los compañeros que tiene a ambos lados. Recurso compartido: los palillos.
25 Solución válida? al Problema de los Filósofos PROGRAM CENA-FILOSOFOS; VAR palillos: ARRAY [0:4] of SEMAFORO; BEGIN for i=0:4 palillos[i]=1; // exclusión mutua COBEGIN for i=0:4 FILOSOFO[i]; COEND END PROCEDURE FILOSOFO[i]; BEGIN REPEAT Pensar; WAIT(palillos[i]); WAIT(palillos[i+1 mod 5]); Servirse_y_comer; SIGNAL(palillos[i]); SIGNAL(palillos[i+1 mod 5]); FOREVER; END; Un bloque de varios WAIT no es indivisible; un solo WAIT sí lo es. Solución inválida: 5 filósofos pueden bloquear un solo palillo y nadie come! Solución correcta: comedor virtual con 4 comensales (1 filósofo siempre come). Semáforos utilizados: en exclusión mutua (palillos, incializados a 1) y de condición (comedor, inicializado a 4).
26 Conclusiones Ventajas: Mecanismo seguro de acceso a recurso compartido mediante encapsulamiento de las operaciones sobre la variable que controla el semáforo. Consiguen sincronización de procesos concurrentes evitando la espera activa. El programa principal debe inicializar el semáforo (según su uso). Inconvenientes: La inicialización es crítica, así como confundir un wait con un signal u omitir alguno de ellos. Resultan programas muy grandes y complejos, difíciles de depurar. Soluciones alternativas: regiones críticas y monitores.
27 Yolanda Blanco Fernández Lab. B-203
PROGRAMACIÓN CONCURRENTE. Tema 5 Monitores
PROGRAMACIÓN CONCURRENTE Tema 5 Monitores 1 Indice Definición de los monitores Sincronización condicional usando monitores Algunos problemas con monitores 2 Problemas de las regiones críticas condicionales
SISTEMAS OPERATIVOS AVANZADOS
SISTEMAS OPERATIVOS AVANZADOS TEMA 3 CLAVE: MIS 204 PROFESOR: M.C. ALEJA DRO GUTIÉRREZ DÍAZ 3. PROCESOS CONCURRENTES 3.1 Conceptos de programación concurrente 3.2 El problema de la sección crítica 3.3
SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008
SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008 1.- INTRODUCCIÓN A LOS PROCESOS 1.1.- Concepto 1.2.- Composición y estructura 1.3.- Estados y transiciones 2.- COMUNICACIÓN ENTRE PROCESOS
CDI Exclusión mutua a nivel alto. conceptos
conceptos El concepto de usar estructuras de datos a nivel alto libera al programador de los detalles de su implementación. El programador puede asumir que las operaciones están implementadas correctamente
PROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTE II.3 Sincronización basada en memoria compartida: Semáforos J.M. Drake 1 Procesos concurrentes y memoria compartida. Si los diferentes procesos de un programa concurrente tienen
un programa concurrente
Introducción un programa concurrente asumimos que tengamos un programa concurrente que quiere realizar acciones con recursos: si los recursos de los diferentes procesos son diferentes no hay problema,
Concurrencia. Primitivas IPC con bloqueo
Concurrencia Primitivas IPC con bloqueo Primitivas de IPC con bloqueo La solución de Peterson es correcta, pero tiene el defecto de requerir espera ocupada: Cuando un proceso quiere entrar en su región
Sistemas Operativos. Características de la Multiprogramación. Interacción entre Procesos. Características de la Multiprogramación
Universidad Simón Bolívar Departamento de Electrónica y Circuitos EC3731 Arquitectura del Computador II Prof. Osberth De Castro Prof. Juan C. Regidor Sistemas Operativos Concurrencia y Sincronización de
El problema de los Filósofos
El problema de los Filósofos Problemas de Programación Concurrente Solución con Semáforos Para evitar una situación de interbloqueo se limita el número de filósofos en disposición de comer a 4. PROGRAM
Práctica 2: El problema de la sección crítica
Práctica 2: El problema de la sección crítica Programación de Sistemas Concurrentes y Distribuidos Grado de Ingeniería Informática Dpto. de Informática e Ingeniería de Sistemas, Escuela de Ingeniería y
1 (2 5 puntos) Responda con brevedad y precisión a las siguientes preguntas:
Universidad de Las Palmas de Gran Canaria Escuela Universitaria de Informática Facultad de Informática Sistemas Operativos Examen parcial, 11 de mayo de 2002 SOLUCIONES Calificación 1 2 3 4 5 1 (2 5 puntos)
PROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTE II.4 Sincronización basada en memoria compartida: Regiones críticas J.M. Drake 1 Regiones críticas Son bloques de código que al ser declarados como regiones críticas respecto de
PROGRAMACION CONCURRENTE. I.2 Recursos para la concurrencia.
PROGRAMACION CONCURRENTE I.2 Recursos para la concurrencia. J.M. Drake 1 Procesos Concurrentes Concepto de proceso. Estructura de los procesos. Estados de un proceso. Gestión de los procesos. 2 2 Plataforma
Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática
Escuela Politécnica Superior de Ingeniería Departamento de Ingeniería Informática Fundamentos de la informática 2. Algoritmos, diagramas de flujo y pseudocódigo Contenido Algoritmos Diagramas de flujo
Concurrencia: deberes. Concurrencia: Exclusión Mutua y Sincronización. Concurrencia. Dificultades con la Concurrencia
Concurrencia: deberes Concurrencia: Exclusión Mutua y Sincronización Capítulo 5 Comunicación entre procesos Compartir recursos Sincronización de múltiples procesos Asignación del tiempo de procesador Concurrencia
Hacer campos de solo lectura en ventanas.
Hacer campos de solo lectura en ventanas. Resumen Modulo Funciones universales, Sistema B1 Validaciones. Nivel Avanzado. Requerimientos 2.9.0.0 o superior. Escenario. El cliente desea que los campos de
Concurrencia entre Procesos.
Concurrencia entre Procesos. Sistemas Operativos Tema 3. 1 Procesamiento concurrente. Procesamiento concurrente: base de los sistemas operativos modernos (multiprogramados): Un conjunto de procesos que
Tema 3. Monitores Programación Concurrente
Tema 3. Monitores Programación Concurrente Depto. de Lenguajes y Sistemas Informáticos Universidad de Granada Contenidos 1. Concepto de Monitor 1.1. Fundamento teórico de los monitores 1.2. Sintaxis de
Implementación de monitores POSIX
Implementación de monitores POSIX Ampliación de Sistemas Operativos (prácticas) E.U. Informática en Segovia Universidad de Valladolid Programación concurrente: Problemática Presencia de condiciones de
Examen Febrero de 2012
Examen Febrero de 2012 Lea detenidamente las siguientes instrucciones. No cumplir los requerimientos puede implicar la pérdida del examen. Formato Indique su nombre completo y número de cédula en cada
Grafo acíclico orientado cuyos nodos corresponden a sentencias individuales.
GRAFOS DE PRECEDENCIA Grafo acíclico orientado cuyos nodos corresponden a sentencias individuales. Un arco de un nodo Si al nodo Sj significa que la sentencia Sj puede ejecutarse sólo cuando ha acabado
En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.
Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa
Sistemas Operativos Temas 4, 5 y 6. Jorge García Duque Despacho: B-202 Tutorías: Lunes 16:00-18:00 y Martes 16:00-20:00
Sistemas Operativos Temas 4, 5 y 6 Jorge García Duque Despacho: B-202 Tutorías: Lunes 16:00-18:00 y Martes 16:00-20:00 Índice Tema 4: Herramientas de Sincronización de Alto Nivel. Regiones Críticas. Monitores.
Centro de Capacitación en Informática
Fórmulas y Funciones Las fórmulas constituyen el núcleo de cualquier hoja de cálculo, y por tanto de Excel. Mediante fórmulas, se llevan a cabo todos los cálculos que se necesitan en una hoja de cálculo.
Sistemas Operativos II Febrero 2009 Nombre:
Sistemas Operativos II Febrero 2009 Nombre: ITIS Castellano Ejercicio 1 [1,5 puntos] El siguiente cronograma representa la ejecución de tres procesos en un sistema operativo durante 28 ticks. Inicialmente,
Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual
Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los
Sistemas Operativos. Curso 2016 Procesos
Sistemas Operativos Curso 2016 Procesos Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor
Fundamentos de la Programación
Fundamentos de la Programación El Software Las operaciones que debe realizar el hardware son especificadas con una lista de instrucciones, llamadas programas o software. Dos grandes grupos de software
Sistemas Operativos Práctica 4
Sistemas Operativos Práctica 4 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
Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL
Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL Índice 1 Introducción... 5 1.1 Perfil de la aplicación... 5 1.2 Requisitos técnicos... 5 2 Manual de usuario... 7 2.1 Instalación del certificado...
Capitulo V Administración de memoria
Capitulo V Administración de memoria Introducción. Una de las tareas más importantes y complejas de un sistema operativo es la gestión de memoria. La gestión de memoria implica tratar la memoria principal
3.2 Operaciones aritmético-lógicas en Pascal
3.2 Operaciones aritmético-lógicas en Pascal Operadores Los operadores sirven para combinar los términos de las expresiones. En Pascal, se manejan tres grupos de operadores : 1. ARITMÉTICOS 2. RELACIONALES
Modulo 1 El lenguaje Java
Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto
Procesos. Procesos. Concurrencia de procesos. Qué es un proceso? Estados de un proceso. Modelo de 2 estados. (C) 2008 Mario Medina 1
Procesos Procesos Mario Medina [email protected] El sistema operativo como administrador de procesos Controla la ejecución de procesos para optimizar criterios Asigna recursos a procesos Facilita sincronización
Ejemplos de conversión de reales a enteros
Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print
MODELOS DE RECUPERACION
RECUPERACIÓN Y ORGANIZACIÓN DE LA INFORMACIÓN INGENIERÍA INFORMÁTICA RECUPERACIÓN Y ACCESO A LA INFORMACIÓN MODELOS DE RECUPERACION AUTOR: Rubén García Broncano NIA 100065530 grupo 81 1 INDICE 1- INTRODUCCIÓN
Concurrencia: Exclusión mutua y Sincronización
Concurrencia: Exclusión mutua y Sincronización Prof. Carlos Figueira Basado en materiales de Yudith Cardinale (USB) Williams Stallings, Eugene Styer Concurrencia Múltiples aplicaciones Aplicaciones estructuradas
LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)
APRENDERAPROGRAMAR.COM LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F) Sección: Cursos Categoría: Curso básico de programación en lenguaje C desde
Tema 1: Introducción a los S.O. Ejercicios de Planificiación de Procesos
Tema 1: Introducción a los S.O. Ejercicios de Planificiación de Procesos 1.- Notas y criterios para los problemas de planificación NOTA GENERAL: Normalmente los enunciados no son rigurosamente completos,
Los números racionales
Los números racionales Los números racionales Los números fraccionarios o fracciones permiten representar aquellas situaciones en las que se obtiene o se debe una parte de un objeto. Todas las fracciones
Tema : ELECTRÓNICA DIGITAL
(La Herradura Granada) Departamento de TECNOLOGÍA Tema : ELECTRÓNICA DIGITAL.- Introducción. 2.- Representación de operadores lógicos. 3.- Álgebra de Boole. 3..- Operadores básicos. 3.2.- Función lógica
Capítulo IV. INTERBLOQUEO E INANICIÓN
Capítulo IV. INTERBLOQUEO E INANICIÓN Interbloqueo: [MAEKAMA] Se define como el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o bien se comunican unos con otros.
Tema 8 Procesos. * Definición informal: un proceso es un programa en ejecución
Tema 8 Procesos 8.1 Aspectos básicos de los procesos 8.1.1 Concepto de proceso * Definición informal: un proceso es un programa en ejecución Un programa ejecutable es un conjunto de instrucciones y datos
Capítulo 4 Gestión de memoria
Sistemas operativos: una visión aplicada Capítulo 4 Gestión de memoria Contenido Objetivos del sistema de gestión de memoria Modelo de memoria de un proceso Esquemas de memoria basados en asignación contigua
Algorítmica y Lenguajes de Programación. Ordenación (i)
Algorítmica y Lenguajes de Programación Ordenación (i) Ordenación. Introducción A lo largo del curso hemos visto distintas formas de almacenar datos: Vectores. Matrices. Ficheros Listas (pilas y colas)
CAPÍTULO 1. CONCEPTOS FUNDAMENTALES
CAPÍTULO 1. CONCEPTOS FUNDAMENTALES 1.1 Introducción La idea de programación concurrente siempre estuvo asociada al mundo de los Sistemas Operativos (SSOO). No en vano, los primeros programas concurrentes
GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B)
APRENDERAPROGRAMAR.COM GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B) Sección: Cursos Categoría: Tutorial básico del programador web: HTML desde cero Fecha
Nivel Básico I Prof. Mariano Correa
Nivel Básico I El presente material forma parte de los contenidos digitales del Inst. John Kennedy. Se prohíbe su uso o distribución sin consentimiento de su autor o de la institución misma. Índice: Introducción
Estructuras de Datos y Algoritmos. Árboles de Expresión
Estructuras de Datos y Algoritmos Árboles de Expresión Año 2014 Introducción Los avances tecnológicos producen día a día una gran cantidad de información que debe ser almacenada y procesada en forma eficiente.
Mensajes. Interbloqueo
CONCURRENCIA DE PROCESOS Preparado por: Angel Chata Tintaya ([email protected]) Resumen Los procesos comparten variables globales, comparten y compiten por recursos, se ejecutan simultáneamente intercalándose
Operación de Microsoft Excel. Guía del Usuario Página 79. Centro de Capacitación en Informática
Manejo básico de base de datos Unas de las capacidades de Excel es la de trabajar con listas o tablas de información: nombres, direcciones, teléfonos, etc. Excel puede trabajar con tablas de información
Capítulo 4 Procesos con estructuras de repetición
Estructura de contador Capítulo 4 Procesos con estructuras de repetición Esta es una operación que incrementa en una unidad el valor almacenado en la variable c, cada vez que el flujo del diagrama pasa
Asignatura: Administración de Bases de Datos. Pedro P. Alarcón Cavero
Ingeniería Técnica en Informática Escuela Universitaria de Informática Universidad Politécnica de Madrid Asignatura: Administración de Bases de Datos Tema 5: Proceso de Transacciones Pedro P. Alarcón Cavero
Práctico de Procesos, Hilos y Deadlock
Sistemas Operativos Práctico de Procesos, Hilos y Deadlock Universidad Nacional de Córdoba FaMAF Ejercicio 1.. Indique cuantas letras a imprime este programa, describiendo su funcionamiento. printf("a\n");
5.1. Organizar los roles
Marco de intervención con personas en grave situación de exclusión social 5 Organización de la acción 5.1. Organizar los roles Parece que el modelo que vamos perfilando hace emerger un rol central de acompañamiento
INTRODUCCIÓN AL TIPO COMPUESTO CADENA CONTENIDOS
CONTENIDOS 1. Introducción a las cadenas 2. Definición 3. Declaración de cadenas 4. Inicialización de cadenas 5. Escritura y Lectura de datos tipo cadena 6. Funciones de manipulación de cadenas 7. Arrays
Manual de usuario Sucursal Virtual
INDICE 1. Introducción 2. Requerimientos 3. Página Inicial 4. Registro 4.1 Registro con tarjeta de débito 4.2 Registro con clave de acceso 5. Acceso a 6. Pestaña Consultas 6.1 Saldo de cuentas 6.1.1 Saldo
PROGRAMACION CONCURRENTE Y DISTRIBUIDA. II.5 Sincronización basada en memoria compartida: Monitores
PROGRAMACION CONCURRENTE Y DISTRIBUIDA II.5 Sincronización basada en memoria compartida: Monitores J.M. Drake 1 Monitor Son módulos que encierran los recursos o variables compartidas como componentes internos
Arreglos. // Incluir E/S y Librerías Standard #include <stdlib.h> #include <stdio.h>
Arreglos Introducción. En los temas anteriores se han estudiado los diferentes tipos de datos simples de C++, usados para representar valores simples como enteros, reales o caracteres. Sin embargo, en
NÚMEROS NATURALES Y NÚMEROS ENTEROS
NÚMEROS NATURALES Y NÚMEROS ENTEROS Los números naturales surgen como respuesta a la necesidad de nuestros antepasados de contar los elementos de un conjunto (por ejemplo los animales de un rebaño) y de
Tema 4. Gestión de entrada/salida
Tema 4. Gestión de entrada/salida 1. Principios de la gestión de E/S. 1.Problemática de los dispositivos de E/S. 2.Objetivos generales del software de E/S. 3.Principios hardware de E/S. 1. E/S controlada
ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES
ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Introducción al tema a. Formar grupos de 4 personas b. Tomar una hoja en blanco y una lapicera o lápiz c. En la hoja en blanco diseña un
Tema 6. Reutilización de código. Programación 2015-2016. Programación - Tema 6: Reutilización de código
Tema 6 Reutilización de código Programación 2015-2016 Programación - Tema 6: Reutilización de código 1 Tema 6. Reutilización de código Modularidad. Implementación de métodos. Uso de métodos. Programación
Unidad II: Administración de Procesos y del procesador
Unidad II: Administración de Procesos y del procesador 2.1 Concepto de proceso Un proceso no es más que un programa en ejecución, e incluye los valores actuales del contador de programa, los registros
Tema 5. Diseño detallado.
Ingeniería del Software II 2011 Tema 5. Diseño detallado. Diseño del Software. Los requisitos y el análisis orientado a objetos se centran en aprender a hacer lo correcto: Entender los objetos de nuestro
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
Sistemas Operativos. Clase 14: protección y seguridad.
Sistemas Operativos Clase 14: protección y seguridad. Seguridad y protección se emplean indistintamente, pero son dos conceptos diferentes. La seguridad es un concepto más general que engloba aspectos
CAPITULO V PLANIFICACIÓN Y GESTIÓN DEL PROYECTO
CAPITULO V PLANIFICACIÓN Y GESTIÓN DEL PROYECTO La adquisición de un acuerdo de outsourcing fuerte y activo es una tarea particularmente compleja, con ramas de actividad muy dispares y potencialmente difíciles.
Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A)
aprenderaprogramar.com Instrucción IrA (GoTo). Saltos no naturales en el flujo normal de un programa. Pseudocódigo y diagramas de flujo. (CU00182A) Sección: Cursos Categoría: Curso Bases de la programación
LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL
OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos
Planificación de Procesos. Módulo 5. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco
Planificación de Procesos Módulo 5 Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco Planificación de Procesos Conceptos Básicos Criterios de Planificación
Herencia. 3.- Herencia. Declaración de una clase derivada en Delphi. Jerarquía de clases
Herencia 3.- Herencia La herencia nos permite definir datos y métodos que son generales (comunes a distintas clases) por separado de las que son particulares a cada clase. Esto se logra definiendo lo que
Operación 8 Claves para la ISO 9001-2015
Operación 8Claves para la ISO 9001-2015 BLOQUE 8: Operación A grandes rasgos, se puede decir que este bloque se corresponde con el capítulo 7 de la antigua norma ISO 9001:2008 de Realización del Producto,
I.3. Interacción entre Procesos Concurrentes.
PROGRAMACION CONCURRENTE I.3. Interacción entre Procesos Concurrentes. J.M. Drake 1 Interacción entre Procesos Concurrentes Modelos de interacción entre procesos. Problemas de sincronización y exclusión
Los polinomios. Un polinomio es una expresión algebraica con una única letra, llamada variable. Ejemplo: 9x 6 3x 4 + x 6 polinomio de variable x
Los polinomios Los polinomios Un polinomio es una expresión algebraica con una única letra, llamada variable. Ejemplo: 9x 6 3x 4 + x 6 polinomio de variable x Elementos de un polinomio Los términos: cada
1. Observaciones para la cumplimentación de los ficheros XML del Certific@... 3
OBSERVACIONES A DIVERSOS TRÁMITES QUE TIENEN CAUSA EN PROCEDIMIENTOS O ERE DE SUSPENSIÓN/REDUCCIÓN DE JORNADA: LA CUMPLIMENTACIÓN DE LOS FICHEROS XML DEL Certific@2 EL PAGO Y CONSUMO DE PRESTACIÓN EN SUPUESTOS
E-mail: [email protected]. Mrs. Nichols E-mail: [email protected]. Teléfono de la escuela: 435-654-2201
Nos llena de alegría el poder ser las maestras de su hijo este año. Mucha gente piensa que somos parcializadas, pero realmente creemos que el primer grado es el MEJOR! Nos encanta enseñar en este grado.
Estructuras de Control - Diagrama de Flujo
RESOLUCIÓN DE PROBLEMAS Y ALGORITMOS Ingeniería en Computación Ingeniería en Informática UNIVERSIDAD NACIONAL DE SAN LUIS DEPARTAMENTO DE INFORMÁTICA AÑO 2015 Índice 1. Programación estructurada 2 1.1.
MANUAL DE USUARIO PARA WEB DE SINIESTROS DE LIBERTY
Manual de Usuario WEB siniestros para mediadores MANUAL DE USUARIO PARA WEB DE SINIESTROS DE LIBERTY Manual_Guia_Web_Siniestros v1.1 Mayo 2007 1 de 1 Manual de Usuario WEB siniestros para mediadores INDICE:
Tema 2. Software. Informática (1º Ingeniería Civil) [email protected]
Tema 2. Software Informática (1º Ingeniería Civil) Curso 2011/2012 Javier Carmona Murillo [email protected] Índice Introducción. Programas e instrucciones. Tipos y estructuras de datos. Algoritmos. Proceso
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
PLANIFICACIÓN SINTACTICA: MODELO DE GARRRETT
PLANIFICACIÓN SINTACTICA: MODELO DE GARRRETT Conceptualización Nivel de mensaje Nivel funcional Formulación Nivel posicional Nivel de sonido Articulación Instrucciones articulatorias CARACTERÍSTICAS PRINCIPALES
Llamamos potencia a todo producto de factores iguales. Por ejemplo: 3 4 = 3 3 3 3
1. NÚMEROS NATURALES POTENCIAS DE UN NÚMERO NATURAL Llamamos potencia a todo producto de factores iguales. Por ejemplo: 3 4 = 3 3 3 3 El factor que se repite es la base, y el número de veces que se repite
PRÁCTICA N 2 SISTEMAS DE NUMERACIÓN
PRÁCTICA N 2 SISTEMAS DE NUMERACIÓN Ejercicio 1. Diseñar una planilla EXCEL que tome como dato de entrada un número entero y devuelva la representación en base 2. Testearla con los números 23, 245, 673,
1. Ingresa a la siguiente dirección en la fecha y horario que se te asignó. http://www.psicologia.unam.mx.
INSCRIPCIÓN 2016-1 Conoce el Sistema de Inscripciones, consulta la Guía para el alumno FACULTAD DE PSICOLOGÍA División de Estudios Profesionales I N S C R I P C I Ó N Guía para el alumno P R O C E D I
Hilos, comunicación y competencia entre procesos. Dr. Alonso Ramírez Manzanares 2-Sep-2010
Hilos, comunicación y competencia entre procesos Dr. Alonso Ramírez Manzanares 2-Sep-2010 Implementación de procesos Se mantiene una tabla de procesos con una entrada por cada proceso: Con lo cual tenemos
Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación
Vicerrectorado de Tecnologías de la Información y la Comunicación Conexión mediante Escritorio Remoto de Windows Última Actualización 22 de enero de 2015 Histórico de cambios Fecha Descripción Autor 16/09/13
TEMA 3 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 3. PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS
1 1 BASES DE DATOS DISTRIBUIDAS TEMA 3 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 3. PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS 3.1 Metodología del procesamiento de consultas distribuidas 3.2 Estrategias de
Benemérita Universidad Autónoma del Estado de Puebla
Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 5 Profr: María del Carmen Cerón Garnica Alumno: Roberto
Dividir automáticamente las palabras en todo un documento
Guiones Si una palabra es demasiado larga para caber al final de una línea, Word lleva la palabra a la línea siguiente sin dividirla con un guión. Sin embargo, puede utilizar la característica de división
Programa Presupuestos de Sevillana de Informática.
Programa Presupuestos de Sevillana de Informática. Introducción. En sus inicios, el programa Presupuestos estaba pensado únicamente para escribir e imprimir presupuestos, facilitando el trabajo con un
GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS.
GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS. 1 Direcciones o Ubicaciones, Carpetas y Archivos Botones de navegación. El botón Atrás permite volver a carpetas que hemos examinado anteriormente. El botón Arriba
Asignatura: Programación Avanzada de Autómatas. Documento: Ejercicios de diseño de sistemas secuenciales.
Asignatura: Programación Avanzada de Autómatas. Documento: Ejercicios de diseño de sistemas secuenciales. Ejercicio 2: Ciclo Automático de Transportador Power&Fee. Figura 1: Imagen de transportador Power
Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones
Fracciones. Las fracciones y los números Racionales Las fracciones se utilizan cotidianamente en contextos relacionados con la medida, el reparto o como forma de relacionar dos cantidades. Tenemos entonces
Gestión de la evaluación en el Aprendizaje Basado en Proyectos
Gestión de la evaluación en el Aprendizaje Basado en Proyectos Megeces, febrero 2015 Autor: Javier Prieto @javitecnotic Vamos a estructurar la presentación siguiendo el mapa conceptual que se muestra a
SALIDAS ANALÓGICAS. Adquisición de datos y acondicionamiento de la señal Tema 6
SALIDAS ANALÓGICAS A. Arquitectura de la salida analógica B. Uso del DAQmx Write VI C. VI, AO Multipuntos (Buffered) D. Generación del Buffer Finito E. Generación del Buffer Continuo Página 1 de 8 A. ARQUITECTURA
Benemérita Universidad Autónoma del Estado de Puebla
Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 4 Profr: María del Carmen Cerón Garnica Alumno: Roberto
