PROGRAMACION CONCURRENTE
|
|
|
- Rodrigo Velázquez Valenzuela
- hace 10 años
- Vistas:
Transcripción
1 PROGRAMACION CONCURRENTE II.3 Sincronización basada en memoria compartida: Semáforos J.M. Drake 1
2 Procesos concurrentes y memoria compartida. Si los diferentes procesos de un programa concurrente tienen acceso a variables globales o secciones de memoria comunes, la transferencia de datos a través de ella es una vía habitual de comunicación y sincronización entre ellos. Las primitivas para programación concurrente basada en memoria compartida resuelven los problemas de sincronización entre procesos y de exclusión mutua utilizando la semántica de acceso a memoria compartida. En esta familias de primitivas, la semántica de las sentencias hace referencia a la exclusión mutua, y la implementación de la sincronización entre procesos resulta de forma indirecta. 2 2
3 Mecanismos basados en memoria compartida Semáforos: Son componentes pasivos de bajo nivel de abstracción que sirven para arbitrar el acceso a un recurso compartido. Secciones críticas: Son mecanismos de nivel medio de abstracción orientados a su implementación en el contexto de un lenguaje y que permiten la ejecución de un bloque de sentencias de forma segura. Monitores: Son módulos de alto nivel de abstracción orientados a la gestión de recursos que van a ser usados concurrentemente. 3 Los mecanismos de sintronización que se introducen en este tema son tres: * Los semáforos que fueron introducidos inicialmente por Dijkstra (1968). Son componentes de muy bajo nivel de abstracción, de fácil comprensión y con una gran capacidad funcional. Por el contrario, son unos componentes que por su bajo nivel de abstracción resultan muy peligrosos de manejar y frecuentemente son causa de muchos errores. * Las secciones críticas condicionales (Brinch Hansen, 1972) son unos mecanismos introducidos como componentes de los lenguajes de programación concurrente. Tienen un nivel de abstracción mucho mas alto que los semáforos, y en consecuencia son más fáciles y seguros de manejar. * Los monitores fueron introducidos por Hoare (1974), y son unos módulos de programación de alto nivel de abstracción que resuelven internamente, el acceso de forma segura a una variable o a un recurso compartido por múltiples procesos concurrentes. 3
4 Definición de semáforo. Un semáforo es un tipo de datos. Como cualquier tipo de datos, queda definido por: Conjunto de valores que se le pueden asignar. Conjunto de operaciones que se le pueden aplicar. Un semáforo tiene asociada una lista de procesos, en la que se incluyen los procesos suspendidos a la espera de su cambio de estado. 4 Un semáforo es un tipo abstracto de dato, y como tal, su definición requiere especificar sus dos atributos básicos: * Conjunto de valores que puede tomar. * Conjunto de operaciones que admite. Un semáforo tiene también asociada una lista de procesos, en la que se incluyen todos los procesos que se encuentra suspendidos a la espera de acceder al mismo. 4
5 Valores de un semáforo. En función del rango de valores que puede tomar, los semáforos se clasifican en: Semáforos binarios: Pueden tomar solo los valores 0 y 1. var mutex: BinSemaphore; Semáforos general: Puede tomar cualquier valor Natural (entero no negativo). var escribiendo: Semaphore; Un semáforo que ha tomado el valor 0 representa un semáforo cerrado, y si toma un valor no nulo representa un semáforo abierto. Mas adelante demostraremos que un semáforo General se puede implementar utilizando semáforos Binarios. Los sistemas suelen ofrecer como componente primitivo semáforos generales, y su uso, lo convierte de hecho en semáforo binario. 5 Un semáforo puede tomar valores enteros no negativos ( esto es, el valor 0 o un valor entero positivo). La semántica de estos valores es: 0 semáforo cerrado, y >0 semáforo abierto. En función del rango de valores positivos que admiten, los semáforos se pueden clasificar en: * Semáforos binarios: Son aquellos que solo pueden tomar los valores 0 y 1. * Semáforos generales: Son aquellos que pueden tomar cualquier valor no negativos. Frecuentemente, el que un semáforo sea binario o general, no es función de su estructura interna sino de como el programador lo maneja. 5
6 Operaciones seguras de un semáforo. Un semáforo var p: semaphore; admite dos operaciones seguras: wait(p): Si el semáforo no es nulo (abierto) decrementa en uno el valor del semáforo. Si el valor del semáforo es nulo (cerrado), el thread que lo ejecuta se suspende y se encola en la lista de procesos en espera del semáforo. signal(p); Si hay algún proceso en la lista de procesos del semáforo, activa uno de ellos para que ejecute la sentencia que sigue al wait que lo suspendió. Si no hay procesos en espera en la lista incrementa en 1 el valor del semáforo. 6 Los semáforos admiten dos operaciones: * Operación Wait (P): Si el valor del semáforo no es nulo, esta operación decrementa en uno el valor del semáforo. En el caso de que su valor sea nulo, la operación suspende el proceso que lo ejecuta y lo ubica en la lista del semáforo a la espera de que deje de ser nulo el valor. * Operación Signal (V): Incrementa el valor del semáforo, y en caso de que haya procesos en la lista de espera del semáforo, se activa uno de ellos para que concluya su operación Wait. Lo importante del semáforo es que se garantiza que la operación de chequeo del valor del semáforo, y posterior actualización según proceda, es siempre segura respecto a otros accesos concurrentes. 6
7 Operación no segura de un semáforo. Un semáforo var p: semaphore; admite una operación no segura: initial(p, Valor_inicial): Asigna al semáforo p el valor inicial que se pasa como argumento. Esta operación es no segura y por tanto debe ser ejecutada en una fase del programa en la que se tenga asegurada que se ejecuta sin posibilidad de concurrencia con otra operación sobre el mismo semáforo. 7 7
8 Operación wait. Pseudocódigo de la operación: wait(p); if p>0 then p:= p-1; else Suspende el proceso y lo encola en la lista del semáforo. Lo característico de esta operación es que está protegida contra interrupción entre el chequeo del valor del semáforo y la asignación del nuevo valor. El nombre de la operación wait es equívoco. En contra de su significado semántico natural, su ejecución a veces provoca una suspensión pero en otros caso no implica ninguna suspensión. 8 La operación wait lleva a cabo la siguiente secuencia de operaciones: if Semáforo > 0 then Semaforo:= Semaforo -1 else Suspende al proceso en la lista del semáforo; La operación wait (como la semántica de su nombre indica) es una potencial causa de retraso en la ejecución de un proceso. Sin embargo, es importante resaltar que no siempre que se ejecute una sentencia wait se produce el retraso, sino solo cuando al ejecutarla, el semáforo este cerrado, esto es tiene el valor 0. 8
9 Operación signal. Pseudocódigo de la operación: signal(p); if Hay algún proceso en la lista del semáforo then Activa uno de ellos else p:= p+1; La ejecución de la operación signal(p) nunca provoca una suspención del thread que lo ejecuta. Si hay varios procesos en la lista del semáforo, la operación signal solo activa uno de ellos. Este se elige de acuerdo con un criterio propio de la implementación (FIFO, LIFO, Prioridad, etc.). 9 9
10 Ejemplo: Exclusión mutua. program Exclusion_Mutua; var mutex: binsemaphore; process type Proceso; repeat wait(mutex); (* Código de la sección crítica *) signal(mutex); forever; var p, q, r: Proceso; initial(mutex,1); co p; q; r; co 10 Se plantea una solución del problema de exclusión mutua entre tres procesos P, Q y R, respecto de una sección crítica dada. Se va a utilizar un semáforo Seccion_Libre" para controlar el acceso a la misma. El valor del semáforo indica el número de procesos que se encuentran ejecutando la sección crítica. Cuando toma el valor 0, significa que algún proceso está en su sección crítica, mientras que cuando toma el valor 1 significa que no hay ningún proceso ejecutándola. La estructura del programa garantiza que el semáforo es binario, y nunca puede tomar un valor superior a 1. De acuerdo con la semántica expuesta, el semáforo debe ser inicializado al valor 1, ya que al comenzar, ningún proceso se encuentra en la zona crítica. Cuando uno de los procesos va a iniciar su sección crítica, ejecuta una sentencia wait. Si no hay otro proceso ejecutando la sección crítica, el proceso accede directamente a ejecutarla sin necesidad de ninguna espera. En caso contrario, se incorpora a la lista asociada al semáforo en espera de que le toque su turno de ejecución de la sección crítica. Cuando uno de los procesos concluye la ejecución de su sección crítica, ejecuta una sentencia signal y continua la ejecución de las sentencias posteriores a esta, sin esperar mayor confirmación. Con la ejecución de la sentencia signal el semáforo (o mejor el sistema operativo que lo soporta) analiza la lista de procesos en espera, y si hay al menos uno en ella, le activa y le permite concluir la sentencia wait que lo introdujo en la lista. 10
11 Sincronización basada en semáforos. Productor Consumidor unbounded var datodisponible: Semaphore:= 0; process Productor; var dato: Tipo_Dato; repeat producedato(var dato); dejadato(dato); signal(datodisponible); forever; end: process Consumidor; var dato: Tipo_Dato; repeat wait(datodisponible); tomadato(var dato); consume(dato); forever; 11 Este representa una implementación del problema de productor consumidor con buffer ilimitado. La condición de buffer ilimitado solo no introduce límite a la operación del productor. La única restricción es la del consumidor (este no puede tomar el dato si este no se ha producido). Esta restricción se formula en función de la condición de sincronización: e! (producción i consumisión i ) El problema que se plantea es que el consumidor debe esperar sin leer el buffer hasta tanto que el dato que corresponda haya sido previamente colocado. Obviamente, el consumidor es el que tiene que esperar en este caso, luego debe contener una sentencia wait. Esta versión resuelve el problema productor consumidor entre dos procesos. Sin embargo no prevé la posibilidad de que en el caso de que existan varios productores y varios consumidores, estos no pueden dejar simultáneamente el dato en el buffer o no puedan tomar simultáneamente el dato del buffer. Un problema se va a producir si las actividades Dejar_dato y Tomar_dato no son atómica. 11
12 Productor-Consumidor (múltiples productores y consumidores) datodisponible: Semaphore:=0; mutex: BinSemaphore:=1; process type Productor; var dato:tipo_dato; repeat dato:=produce_dato; wait(mutex); dejadato(dato); signal(mutex); signal(datodisponible); forever; process type Consumidor; var dato:tipo_dato; repeat wait(datodisponible); wait(mutex); dato:=tomadato; signal(mutex); consume(dato); forever; 12 El semáforo Dato_Disponible suspende a los consumidores mientras que no haya datos disponibles. El semáforo Nop garantiza que el acceso al buffer por parte de múltiples productores y consumidores se haga con exclusión mutua. 12
13 Productor consumidor con buffer limitado (1). program Productor_Consumidor; const LONG_BUFFER = 5; type Tipo_Dat=...; var datodisponible:semaphore; hueco:semaphore; mutex: BinSemaphore; buffer: record datos:array[0..long_buffer-1]of Tipo_Dato; nextin, nextout: Natural:=0; procedure dejadato(d:tipo_dat); buffer.dato[buffer.nextin]:=d; buffer.nextin:=(buffer.nextin+1) mod LONG_BUFFER; procedure tomadato(d:tipo_dat); d:=buffer.dato[buffer.nextout]; buffer.nextout:= (buffer.nextout+1) mod LONG_BUFFER; 13 En este caso, existen condiciones de sincronismo tanto para el consumidor como para el productor: * El consumidor no puede consumir el dato i_esimo, antes de que haya sido producido: e! (producción i consumisión i ) * El productor no puede producir un nuevo dato, si el buffer está lleno: e! (consumisión i producción {i + Long\_buffer} ) 13
14 Productor consumidor con buffer limitado (2). process productor; var dato:tipo_dat; repeat dato:=producedato; wait(hueco); wait(mutex); dejadato(dato); signal(mutex); signal(datodisponible); forever; process consumidor; var dato: Tipo_Dat; repeat wait(datodiponible); wait(mutex); tomadato(dato); signal(mutex); signal(hueco); Consume(dato); forever; initial(mutex,1); initial(hueco, LONG_BUFFER); initial(datodisponible,0); co productor; consumidor; co end
15 Semáforos generales y semáforos binarios type SemGral = record mutex, espera: BinSemaphore; cuenta: Natural; procedure initialgral(var s:semgral, v:natural); initial(s.mutex,1); v.cuenta:= v; if (v=0) then initial(s.espera,0) else initial(s.espera,1); procedure waitgral(var s:semgral); procedure signalgral(var s:sem_gral); wait(s.espera); wait(s.mutex) wait(s.mutex); s.cuenta:= s.cuenta +1; s.cuenta:= s.cuenta - 1; if (s.cuenta=1) then signal(s.espera); if (s.cuenta>0) then signal(s.espera); signal(s.mutex); signal(s.mutex); 15 Un semáforo General puede implementarse utilizando semáforos binarios. Para ello, vamos a demostrar como utilizando una estructura de datos compuesta de una variable entera y dos semáforos binarios, se puede obtener una estructura equivalente a un semáforo general, y así mismo, como se pueden construir operaciones wait y signal seguras sobre esta estructura utilizando sentencias estándar, y las operaciones wait y signal sobre los semáforo binario. MutEx es un semáforo binario que garantiza la exclusión mutua en las operaciones que se ejecutan sobre el semáforo general. Su valor de inicial debe ser 1. La variable entera "Cuenta" contiene el valor del semáforo general. Espera" es también un semáforo binario que se utiliza para encolar los procesos que traten de realizar la operación wait cuando "Cuenta" sea 0. Su valor inicialde delay debe ser 0, si el valor inicial de Cuenta es 0, y debe ser 1 si el valor inicial de Cuenta es superior a 0. 15
16 Cena de filósofos chinos (1) program Cena_filósofos_chinos; const N = 5; var palillo: array [1..N] of BinSemaphore; sillaslibres: Semaphore; process type TipoFilosofo(nombre: Integer);... var filosofo: array [1..N] of TipoFilosofo; i: Integer; for i:=1 to N do initial(palillo[i],1); initial(sillaslibres,n-1); co for i:=1 to N do filosofo[i](i); co end. 16 Se propone una solución libre de bloqueos, basada en permitir que solo N-1 de los N filósofos se puedan sentar simultáneamente para comer. 16
17 Cena de filósofos chinos (2) process type TipoFilosofo(nombre: Natural); derecho=nombre; izquierdo=nombre mod (N+1); repeat sleep(random(5)); -- Está pensando wait(sillaslibres); wait(palillo[derecho]); wait(palillo[izquierdo]); sleep(random(5)); -- Está comiendo signal(palillo[derecho]); signal(palillo[izquierdo]); signal(pillaslibres); forever 17 17
18 Implementación de los semáforos. La clave para implementar semáforos es disponer de un mecanismo(lock y unlock) que permita garantizar las secciones críticas de las primitivas wait y signal. Wait Signal lock if s>0 then s:= s-1; else Suspende el proceso; unlock; lock if Hay procesos suspendidos then Desbloquea uno de los procesos; else s:= s+1; unlock; Alternativas para implementarlos mecanismos lock y unlock: Inhibición de la interrupciones de planificación. Utilizar las instrucciones especiales (TAS) de que están dotadas la CPU. 18 El mecanismo clave, para poder realizar semáforos, es disponer de algún mecanismo que garantice que las secciones críticas de las primitivas wait y signal, se hacen en exclusión mutua con otros procesos que ejecuten estas primitivas sobre el mismo semáforo.para ello introducimos dos primitivas "lock" y "unlock" que realizan esta función. Tres alternativas para implementar las operaciones básicas lock y unlock son: *Un método software basado en un protocolo tal como los indicados en el capítulo II. Estos métodos presentan el problema de utilizar una espera activa, y en consecuencia son muy poco eficiente. * Inhibir las interrupciones que en el sistema operativo atiende los eventos de reloj y que inducen los cambios de contexto por tiempo. * Utilizar instrucciones especiales de las que están dotadas el hardware de la CPU, tales como TAS (Test and set), que permiten en una operación indescomponible, que verificar el estado y establecer el nuevo valor de acuerdo con él. Ejemplo: LOOP: TAS lockbyte ; Si es 0, lo pone a 1. BNZ LOOP ; Vuelve a intentarlo si era 0 Sección crítica CLR lockbyte ; unlock 18
19 Critica de los semáforos. Ventajas de los semáforos: Resuelven todos los problemas que presenta la concurrencia. Estructuras pasivas muy simples. Fáciles de comprender. Tienen implementación muy eficientes. Peligros de los semáforos: Son de muy bajo nivel y un simple olvido o cambio de orden conducen a bloqueos. Requieren que la gestión de un semáforo se distribuya por todo el código. La depuración de los errores en su gestión es muy dificil. Los semáforos son los componentes básicos que ofrecen todas las plataformas hardware y software como base para construir los mecanismos de sincronización. Las restantes primitivas se basan en su uso implícito. 19 Los semáforos son estructuras muy simples y fáciles de comprender, que pueden implementarse de forma muy eficiente, y que permiten resolver todos los problemas que se presentan en programación concurrente. Sin embargo, siempre han sido muy criticados, y los programadores consideran que introducen un peligro de fallo potencial muy alto. Estos se debe a que los semáforos son unas estructuras de muy bajo nivel de abstracción, y en consecuencia dejan demasiados aspectos a decidir por parte del programador. - Peligros que introducen los semáforos son: * Un procedimiento wait y signal pueden olvidarse accidentalmente y ello conduce a una mal función catastrófica en el programa. En general un olvido de una sentencia wait conduce a un error de seguridad, como que no se respete una región de exclusión mutua, así mismo, un olvido de una sentencia signal, conduce a un bloqueo. * Pueden incluirse todas las sentencias wait y signal necesarias, pero en puntos no correctos del programa o en orden no adecuado. * La solución de los mecanismos de exclusión mutua o de sincronización mediante semáforos, dan lugar a un código con operaciones wait y signal relativas a un mismo semáforo, muy dispersas por el código del programa, lo que constituye una grave dificultad para comprender el programa y para mantenerlo. 19
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
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
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
Programación concurrente
Programación concurrente Master de Computación I Conceptos y recursos para la programación concurrente: I.6 Sincronización basada en memoria compartida. J.M. Drake M. Aldea Procesos concurrentes y memoria
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
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
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
4. Programación Paralela
4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios
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
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
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
UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3
UNIDADES FUNCIONALES DEL ORDENADOR TEMA 3 INTRODUCCIÓN El elemento hardware de un sistema básico de proceso de datos se puede estructurar en tres partes claramente diferenciadas en cuanto a sus funciones:
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
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
Tema 3: Concurrencia de procesos
Tema 3: Concurrencia de procesos Yolanda Blanco Fernández [email protected] Concurrencia, Tiempo Real y Paralelismo Concurrencia: Convivencia de un conjunto de procesos en un mismo ordenador. Sistemas
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
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
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,
INTRODUCCION A LA PROGRAMACION DE PLC
INTRODUCCION A LA PROGRAMACION DE PLC Esta guía se utilizará para estudiar la estructura general de programación de um PLC Instrucciones y Programas Una instrucción u orden de trabajo consta de dos partes
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)
Gestión de Oportunidades
Gestión de Oportunidades Bizagi Suite Gestión de Oportunidades 1 Tabla de Contenido CRM Gestión de Oportunidades de Negocio... 4 Elementos del Proceso... 5 Registrar Oportunidad... 5 Habilitar Alarma y
Gestión de la Configuración
Gestión de la ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 1 ESTUDIO DE VIABILIDAD DEL SISTEMA... 2 ACTIVIDAD EVS-GC 1: DEFINICIÓN DE LOS REQUISITOS DE GESTIÓN DE CONFIGURACIÓN... 2 Tarea EVS-GC 1.1: Definició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
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
Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.
El primer paso en el diseño de una base de datos es la producción del esquema conceptual. Normalmente, se construyen varios esquemas conceptuales, cada uno para representar las distintas visiones que los
Unidad 1: Conceptos generales de Sistemas Operativos.
Unidad 1: Conceptos generales de Sistemas Operativos. Tema 2: Estructura de los sistemas de computación. 2.1 Funcionamiento de los sistemas de computación. 2.2 Ejecución de instrucciones e interrupciones
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
Manual del Usuario. Sistema de Help Desk
Manual del Usuario Sistema de Help Desk Objetivo del Manual El siguiente manual tiene como objetivo proveer la información necesaria para la correcta utilización del sistema Help Desk. Describe los procedimientos
Gestión de Configuración del Software
Gestión de Configuración del Software Facultad de Informática, ciencias de la Comunicación y Técnicas Especiales Herramientas y Procesos de Software Gestión de Configuración de SW Cuando se construye software
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.
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
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
Mesa de Ayuda Interna
Mesa de Ayuda Interna Bizagi Suite Mesa de Ayuda Interna 1 Tabla de Contenido Mesa de Ayuda Interna... 3 Elementos del proceso... 5 Apertura del Caso... 5 Inicio... 5 Abrir Caso... 5 Habilitar Cierre del
3. GESTIÓN DE CONFIGURACIÓN DE SOFTWARE
3. GESTIÓN DE CONFIGURACIÓN DE SOFTWARE Software Configuration Management (SCM) es una disciplina de la Ingeniería de Software que se preocupa de [Ber92] [Ber84] [Bou98] [Mik97]: Identificar y documentar
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.
SOLUCION EXAMEN junio 2006
SOLUCION EXAMEN junio 2006 1. Explique razonadamente si las siguientes afirmaciones son verdaderas o falsas: I) (1 p) En UNIX únicamente se distinguen dos tipos de procesos: los procesos de usuario y los
Introducción a las redes de computadores
Introducción a las redes de computadores Contenido Descripción general 1 Beneficios de las redes 2 Papel de los equipos en una red 3 Tipos de redes 5 Sistemas operativos de red 7 Introducción a las redes
1.1.- Objetivos de los sistemas de bases de datos 1.2.- Administración de los datos y administración de bases de datos 1.3.- Niveles de Arquitectura
1. Conceptos Generales 2. Modelo Entidad / Relación 3. Modelo Relacional 4. Integridad de datos relacional 5. Diseño de bases de datos relacionales 6. Lenguaje de consulta estructurado (SQL) 1.1.- Objetivos
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
1. Descripción y objetivos
Pruebas 1 1. Descripción y objetivos Las pruebas son prácticas a realizar en diversos momentos de la vida del sistema de información para verificar: El correcto funcionamiento de los componentes del sistema.
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.
GUIA PROGRAMACIÓN ORIENTADA A OBJETOS
GUIA PROGRAMACIÓN ORIENTADA A OBJETOS 1. Por qué la P.O.O? R= A medida que se van desarrollando los lenguajes, se va desarrollando también la posibilidad de resolver problemas más complejos. En la evolución
Incidencias: Todas las incidencias que ocurrirán durante el apadrinamiento de un niño se deben registrar para poder buscar soluciones.
Apadrinamiento ONG Estudio preliminar: Se desea diseñar una aplicación para la gestión de los apadrinamientos de una asociación ONG. Para ello el sistema proporcionara una interfaz al usuario para poder
2 EL DOCUMENTO DE ESPECIFICACIONES
Ingeniería Informática Tecnología de la Programación TEMA 1 Documentación de programas. 1 LA DOCUMENTACIÓN DE PROGRAMAS En la ejecución de un proyecto informático o un programa software se deben de seguir
La ventana de Microsoft Excel
Actividad N 1 Conceptos básicos de Planilla de Cálculo La ventana del Microsoft Excel y sus partes. Movimiento del cursor. Tipos de datos. Metodología de trabajo con planillas. La ventana de Microsoft
Programa de soporte técnico ampliado MSA Start
1 1. TÉRMINOS Y CONDICIONES GENERALES En este documento se incluye una lista de casos de soporte técnico, en relación con los que Kaspersky Lab proporcionará asistencia al propietario de este Certificado
ESTRATEGIA DE DINAMARCA: INFORME SOBRE EL FUTURO DEL ENTORNO LABORAL
ESTRATEGIA DE DINAMARCA: INFORME SOBRE EL FUTURO DEL ENTORNO LABORAL NUEVAS PRIORIDADES PARA EL ENTORNO LABORAL ESTRATEGIA DE DINAMARCA: INFORME SOBRE EL FUTURO DEL ENTORNO LABORAL Página 1 ÍNDICE INTRODUCCIÓN
Funcionalidades Software SAT GotelGest.Net (Software de Servicio de Asistencia Técnica)
Funcionalidades Software SAT GotelGest.Net (Software de Servicio de Asistencia Técnica) Servinet Sistemas y Comunicación S.L. www.softwaregestionsat.com Última Revisión: Octubre 2014 FUNCIONALIDADES SAT
LA LOGÍSTICA COMO FUENTE DE VENTAJAS COMPETITIVAS
LA LOGÍSTICA COMO FUENTE DE VENTAJAS COMPETITIVAS Los clientes compran un servicio basandose en el valor que reciben en comparacion con el coste en el que incurren. Por, lo tanto, el objetivo a largo plazo
ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS
5 ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS Contenido: 5.1 Conceptos Generales Administración de Bases de Datos Distribuidas 5.1.1 Administración la Estructura de la Base de Datos 5.1.2 Administración
GENERACIÓN DE CÓDIGO
GENERACIÓN DE CÓDIGO INTRODUCCION La generación de código es la fase más compleja de un compilador, puesto que no sólo depende de las características del lenguaje fuente sino también de contar con información
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 de Gestión de Calidad. Control documental
4 Sistemas de Gestión de Calidad. Control documental ÍNDICE: 4.1 Requisitos Generales 4.2 Requisitos de la documentación 4.2.1 Generalidades 4.2.2 Manual de la Calidad 4.2.3 Control de los documentos 4.2.4
MODULO: MERCADEO. Acuerdo de Nivel de Servicio (ANS) Service Level Agreement (SLA) MODELO DE MUESTRA SIN VALOR COMERCIAL
MODULO: MERCADEO Acuerdo de Nivel de Servicio (ANS) Service Level Agreement (SLA) 1 Servicio de Soporte. El presente apartado constituye las condiciones de soporte y mantenimiento por parte de enncloud
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
Arquitectura de sistema de alta disponibilidad
Mysql Introducción MySQL Cluster esta diseñado para tener una arquitectura distribuida de nodos sin punto único de fallo. MySQL Cluster consiste en 3 tipos de nodos: 1. Nodos de almacenamiento, son los
Nota 2. Luis Sierra. Marzo del 2010
Nota 2 Luis Sierra Marzo del 2010 Cada mecanismo de definición de conjuntos que hemos comentado sugiere mecanismos para definir funciones y probar propiedades. Recordemos brevemente qué son las funciones
CUESTIONARIO DE AUTOEVALUACIÓN
CUESTIONARIO DE AUTOEVALUACIÓN El presente Cuestionario permite conocer en qué estado de madurez se encuentra el Sistema de Gestión Ambiental (en adelante, SGA) de su organización, de acuerdo a los requisitos
ADMIRAL MARKETS AS. Normas de Ejecución Óptima. medida en que ha actuado de acuerdo con las correspondientes instrucciones del cliente.
ADMIRAL MARKETS AS Normas de Ejecución Óptima 1. Disposiciones Generales 1.1. Estas Normas de Ejecución Óptima (de aquí en adelante Normas ) estipularán los términos, condiciones y principios sobre los
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
Capítulo 8 - Reglas adicionales para ISO9001: 2008
Capítulo 8 - Reglas adicionales para ISO9001: 2008 TABLA DE CONTENIDOS Artículo 8.1 Tipos de auditorías... 2 Artículo 8.2 Clasificación de no conformidades... 3 Artículo 8.3 Sanciones y condiciones para
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
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
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,
Capítulo 6. Desarrollo del Software
Capítulo 6. Desarrollo del Software Introducción El objetivo principal de la presente tesis como su título lo describe, es la animación de las tramas de comunicación principales de WCDMA. Para lograr dicho
Asignación de Procesadores
INTEGRANTES: Asignación de Procesadores Un sistema distribuido consta de varios procesadores. Estos se pueden organizar como colección de estaciones de trabajo personales, una pila pública de procesadores
GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES
GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES Tema: Cartas de Servicios Primera versión: 2008 Datos de contacto: Evaluación y Calidad. Gobierno de Navarra. [email protected]
Prácticas ITIL para un mejor flujo de trabajo en el helpdesk
Prácticas ITIL para un mejor flujo de trabajo en el helpdesk Se diferencia tres partes de gestión para mejorar la resolución de las incidencias de soporte técnico según el marco ITIL: 1. Gestión de Incidencias
Copyright 2011 - bizagi. Gestión de Cambios Documento de Construcción Bizagi Process Modeler
Copyright 2011 - bizagi Gestión de Cambios Bizagi Process Modeler Tabla de Contenido Gestión de Cambios... 4 Descripción... 4 Principales factores en la Construcción del Proceso... 5 Modelo de Datos...
PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso
PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer
Unidad VI: Supervisión y Revisión del proyecto
Unidad VI: Supervisión y Revisión del proyecto 61. Administración de recursos La administración de recursos es el intento por determinar cuánto, dinero, esfuerzo, recursos y tiempo que tomará construir
Guía para el estudiante de Prácticas Profesionales del Máster universitario de Aplicaciones Multimedia
Guía para el estudiante de Prácticas Profesionales del Máster universitario de Aplicaciones Multimedia Estudios de Informática, Multimedia y Telecomunicación 1 Guía de las Prácticas Profesionales del Máster
De acuerdo con la diferente naturaleza de las operaciones, esta política diferenciará fundamentalmente entre dos tipos de operaciones:
Política de ejecución de Órdenes de Altura COMENTARIOS PREVIOS Y ALCANCE DE ESTA POLÍTICA Esta política será de aplicación a las órdenes recibidas de clientes que no tengan la categoría de contraparte
REGISTRO DE PEDIDOS DE CLIENTES MÓDULO DE TOMA DE PEDIDOS E INTEGRACIÓN CON ERP
REGISTRO DE PEDIDOS DE CLIENTES MÓDULO DE TOMA DE PEDIDOS E INTEGRACIÓN CON ERP Visual Sale posee módulos especializados para el método de ventas transaccional, donde el pedido de parte de un nuevo cliente
Análisis de aplicación: Virtual Machine Manager
Análisis de aplicación: Virtual Machine Manager Este documento ha sido elaborado por el Centro de Apoyo Tecnológico a Emprendedores bilib, www.bilib.es Copyright 2011, Junta de Comunidades de Castilla
PROBLEMAS CON SU CLAVE? Cliente Nuevo Puedo solicitar acceso a la Banca en Línea (Contrato Uso de Canales de Autoatención) a través del Portal?
Persona Jurídica o Empresa PROBLEMAS CON SU CLAVE? Cliente Nuevo Puedo solicitar acceso a la Banca en Línea (Contrato Uso de Canales de Autoatención) a través del Portal? Puede obtener toda la información
Ingeniería de Software. Pruebas
Ingeniería de Software Pruebas Niveles de prueba Pruebas unitarias Niveles Pruebas de integración Pruebas de sistema Pruebas de aceptación Alpha Beta Niveles de pruebas Pruebas unitarias Se enfocan en
SEMANA 12 SEGURIDAD EN UNA RED
SEMANA 12 SEGURIDAD EN UNA RED SEGURIDAD EN UNA RED La seguridad, protección de los equipos conectados en red y de los datos que almacenan y comparten, es un hecho muy importante en la interconexión de
Introducción a la plataforma Moodle Aníbal de la Torre 2006. Plataforma Moodle. Accediendo a los contenidos
Plataforma Moodle Accediendo a los contenidos Formatos ----------------------------------------------------------------------- 2 Glosarios -----------------------------------------------------------------------
Elementos requeridos para crearlos (ejemplo: el compilador)
Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción
Estructuras de Sistemas Operativos
Estructuras de Sistemas Operativos Definicion de Sistema Operativos Un sistema operativo es un programa que actua como inter entre el usuario y el hardware de un computador y su proposito es proporcionar
PROCESO DE VENTA CONSULTIVA MÓDULO DE GESTIÓN DE OPORTUNIDADES DE NEGOCIO
PROCESO DE VENTA CONSULTIVA MÓDULO DE GESTIÓN DE OPORTUNIDADES DE NEGOCIO Este módulo permite al ejecutivo comercial definir, calificar y documentar cada una de las oportunidades de negocio en las cuales
Sistemas Operativos. Curso 2014 Planificación
Sistemas Operativos Curso 2014 Planificación Agenda Introducción. Despachador. Clases de procesos. Esquemas de planificación. Criterios de planificación. Algoritmos de planificación. FCFS. SJF. Prioridad.
Jornada informativa Nueva ISO 9001:2008
Jornada informativa Nueva www.agedum.com www.promalagaqualifica.es 1.1 Generalidades 1.2 Aplicación Nuevo en Modificado en No aparece en a) necesita demostrar su capacidad para proporcionar regularmente
App para realizar consultas al Sistema de Información Estadística de Castilla y León
App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez [email protected] Dirección General de Presupuestos y Estadística Consejería de Hacienda
Sistemas Operativos. Curso 2015 Planificación
Sistemas Operativos Curso 2015 Planificación Agenda Introducción. Despachador. Clases de procesos. Esquemas de planificación. Criterios de planificación. Algoritmos de planificación. FCFS. SJF. Prioridad.
2.2 Política y objetivos de prevención de riesgos laborales de una organización
Gestión de la prevención en la obra 2. La gestión de la prevención de riesgos laborales en las empresas constructoras. Aspectos generales 2.1 Generalidades El objetivo de este libro es definir la gestión
Contenidos. INFORME ENCUESTA TELEFÓNICA. Curso 2009 10
ENCUESTA DE OPINIÓN DEL ALUMNADO SOBRE LA ACTUACIÓN DOCENTE DEL PROFESORADO UNIVERSIDAD DE SEVILLA Curso 2009-2010 ENCUESTA TELEFÓNICA Contenidos Introducción.... 4 El Cuestionario... 5 El muestreo...
18. Camino de datos y unidad de control
Oliverio J. Santana Jaria Sistemas Digitales Ingeniería Técnica en Informática de Sistemas Curso 2006 2007 18. Camino de datos y unidad de control Un La versatilidad una característica deseable los Los
RAZONAMIENTOS LÓGICOS EN LOS PROBLEMAS DE MATEMÁTICAS
RAZONAMIENTOS LÓGICOS EN LOS PROBLEMAS DE MATEMÁTICAS AUTORÍA SERGIO BALLESTER SAMPEDRO TEMÁTICA MATEMÁTICAS ETAPA ESO, BACHILLERATO Resumen En este artículo comienzo definiendo proposición y los distintos
Antes de empezar con la resolución de este caso vamos a analizar las funciones financieras que vamos a utilizar.
SOLUCIÓN CASO PRÉSTAMOS I Antes de empezar con la resolución de este caso vamos a analizar las funciones financieras que vamos a utilizar. Excel incorpora varias funciones que permiten efectuar cálculos
Operación Microsoft Access 97
Trabajar con Controles Características de los controles Un control es un objeto gráfico, como por ejemplo un cuadro de texto, un botón de comando o un rectángulo que se coloca en un formulario o informe
PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO...
Tabla de Contenido PROPÓSITO... 2 DETERMINANTES PARA UNA BUENA EXPERIENCIA DE USO... 2 1. LA PRESENCIA DE INFORMACIÓN Y AYUDA ÚTIL PARA COMPLETAR LOS TRÁMITES EN LÍNEA.... 2 2. LA DISPONIBILIDAD DE DIVERSOS
Estimado usuario. Tabla de Contenidos
Estimado usuario. El motivo del presente correo electrónico es mantenerle informado de las mejoras y cambios realizados en el software Orathor (Athor/Olimpo) en su versión 5.7.041 la cual ha sido recientemente
CONTROL DE ASISTENCIA DE PERSONAL
CONTROL DE ASISTENCIA DE PERSONAL PARA UNA EMPRESA INITE, S.C. no es responsable del contenido, de la veracidad de los datos, opiniones y acontecimientos vertidos en el presente proyecto. La finalidad
TABLA DE DECISION. Consideremos la siguiente tabla, expresada en forma genérica, como ejemplo y establezcamos la manera en que debe leerse.
TABLA DE DECISION La tabla de decisión es una herramienta que sintetiza procesos en los cuales se dan un conjunto de condiciones y un conjunto de acciones a tomar según el valor que toman las condiciones.
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
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
PLAN DE MEJORAS. Herramienta de trabajo. Agencia Nacional de Evaluación de la Calidad y Acreditación
PLAN DE MEJORAS Herramienta de trabajo Agencia Nacional de Evaluación de la Calidad y Acreditación Índice 1 Introducción...3 2 Pasos a seguir para la elaboración del plan de mejoras...5 2.1 Identificar
