Tema 3: Concurrencia de procesos
|
|
- Julio Macías Cruz
- hace 8 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
Más detallesSISTEMAS 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
Más detallesSIMM: 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
Más detallesCDI 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
Más detallesPROGRAMACION 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
Más detallesun 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,
Más detallesConcurrencia. 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
Más detallesSistemas 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
Más detallesEl 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
Más detallesPrá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
Más detalles1 (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)
Más detallesPROGRAMACION 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
Más detallesPROGRAMACION 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
Más detallesEscuela 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
Más detallesConcurrencia: 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
Más detallesHacer 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
Más detallesConcurrencia 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
Más detallesTema 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
Más detallesImplementació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
Más detallesExamen 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
Más detallesGrafo 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
Más detallesEn 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
Más detallesSistemas 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.
Más detallesCentro 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.
Más detallesSistemas 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,
Más detallesIntroducció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
Más detallesSistemas 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
Más detallesFundamentos 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
Más detallesSistemas Operativos Práctica 4
Sistemas Operativos Práctica 4 Ing. Andrés Bustamante afbustamanteg@unal.edu.co Ingeniería de Sistemas Facultad de Ingeniería Universidad de la Amazonia 2009 1. Objetivo El objetivo de la práctica es que
Más detallesManual 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...
Más detallesCapitulo 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
Más detalles3.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
Más detallesModulo 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
Más detallesProcesos. 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 mariomedina@udec.cl El sistema operativo como administrador de procesos Controla la ejecución de procesos para optimizar criterios Asigna recursos a procesos Facilita sincronización
Más detallesEjemplos 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
Más detallesMODELOS 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
Más detallesConcurrencia: 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
Más detallesLEER 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
Más detallesTema 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,
Más detallesLos 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
Más detallesTema : 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
Más detallesCapí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.
Más detallesTema 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
Más detallesCapí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
Más detallesAlgorí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)
Más detallesCAPÍ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
Más detallesGENERAR 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
Más detallesNivel 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
Más detallesEstructuras 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.
Más detallesMensajes. Interbloqueo
CONCURRENCIA DE PROCESOS Preparado por: Angel Chata Tintaya (angelchata@hotmail.com) Resumen Los procesos comparten variables globales, comparten y compiten por recursos, se ejecutan simultáneamente intercalándose
Más detallesOperació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
Más detallesCapí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
Más detallesAsignatura: 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
Más detallesPrá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");
Más detalles5.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
Más detallesINTRODUCCIÓ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
Más detallesManual 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
Más detallesSistemas Operativos II TEMA 1. Contenido
TEMA 1 Contenido 1.1. Introducción 1.2. Requisitos Hardware 1.2.1. Mecanismo de Interrupciones 1.2.2. Protección de Memoria 1.2.3. Repertorio de Instrucciones Reservadas 1.2.4. Reloj de Tiempo Real 1.3.
Más detallesPROGRAMACION 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
Más detallesArreglos. // 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
Más detallesNÚ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
Más detallesTema 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
Más detallesPrograma de Nuevos Dominios Genéricos de Alto Nivel (gtld): Variantes de Nombres de Dominio Internacionalizados (IDN)
Programa de Nuevos Dominios Genéricos de Alto Nivel (gtld): Variantes de Nombres de Dominio Internacionalizados (IDN) Febrero de 2010 Introducción Las comunidades lingüísticas que planean utilizar Nombres
Más detallesARBOLES 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
Más detallesTema 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
Más detallesUnidad 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
Más detallesTema 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
Más detalles1. 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
Más detallesSistemas 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
Más detalles5. PROCESOS DE PASAJEROS SEGÚN ESCENARIOS. 5.1 MCIT DE PASAJEROS. Flujo Tierra-Aire
5. PROCESOS DE PASAJEROS SEGÚN ESCENARIOS. 5.1 MCIT DE PASAJEROS Flujo Tierra-Aire Tiempo máximo invertido por un pasajero desde que abandona el modo transporte que lo ha desplazado hasta el aeropuerto
Más detallesCAPITULO 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.
Más detallesInstrucció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
Más detallesLABORATORIO 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
Más detallesPlanificació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
Más detallesHerencia. 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
Más detallesOperació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,
Más detallesI.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
Más detallesLos 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
Más detalles1. 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
Más detallesE-mail: heidi.iordachescu@wasatch.edu. Mrs. Nichols E-mail: noralba.nichols@wasatch.edu. 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.
Más detallesEstructuras 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.
Más detallesMANUAL 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:
Más detallesTema 2. Software. Informática (1º Ingeniería Civil) jcarmur@unex.es
Tema 2. Software Informática (1º Ingeniería Civil) Curso 2011/2012 Javier Carmona Murillo jcarmur@unex.es Índice Introducción. Programas e instrucciones. Tipos y estructuras de datos. Algoritmos. Proceso
Más detallesMemoria 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
Más detallesPLANIFICACIÓ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
Más detallesLlamamos 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
Más detallesPRÁ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,
Más detalles1. 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
Más detallesHilos, 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
Más detallesServicio 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
Más detallesTEMA 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
Más detallesBenemé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
Más detallesDividir 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
Más detallesPrograma 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
Más detallesGUÍ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
Más detallesAsignatura: 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
Más detallesPrograma 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
Más detallesGestió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
Más detallesSALIDAS 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
Más detallesBenemé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
Más detalles