Tema 3. Monitores Programación Concurrente
|
|
- Sergio Montes Rodríguez
- hace 8 años
- Vistas:
Transcripción
1 Tema 3. Monitores Programación Concurrente Depto. de Lenguajes y Sistemas Informáticos Universidad de Granada
2 Contenidos 1. Concepto de Monitor 1.1. Fundamento teórico de los monitores 1.2. Sintaxis de los monitores 1.3. Exclusión mutua con monitores 1.4. Instanciación de monitores 2. Sincronización en Monitores 2.1. Primitivas de sincronización en monitores 2.2. Efecto de las operaciones sincronización sobre la exclusión mutua del monitor 2.3. Equivalencia entre semáforos y monitores 2.4. Problemas paradigmáticos resueltos con monitores
3 1. Concepto de Monitor 1.1. Fundamento teórico de los monitores Inconvenientes mecanismos como los semáforos: Basados en variables globales No modular. Uso y función de las variables no explícito. Operaciones sobre variables recurso dispersas y no protegidas. No Acceso estructurado ni encapsulación Fuente de errores. Monitor (Hoare 1974) : Mecanismo de alto nivel que permite Definir objetos abstractos compartidos (una colección de datos y procedimientos asociados que se comparten por varios procesos). Garantizar acceso exclusivo a datos e implementar sincronización. Monitor = Encapsulación Definición recurso (datos). Operaciones de Manipulación (procedims.) Recurso: Se percibe como un módulo al que se accede concurrentemente. El usuario ignora detalles de implementación del recurso y de las operaciones asociadas.
4 1. Concepto de Monitor Centralización de funciones críticas. Origen: S.O. concurrente Monitor monolítico Programa que centraliza las funciones críticas (asig./planif. recursos) del sistema. Soportados por facilidades hardware: Ejecución en modo ininterrumpido (E.M.). Acceso a posiciones de memoria privilegiadas. Ejecución de instrucciones privilegiadas. Monitor: Versión descentralizada del monitor original. Cada monitor tiene: Una función específica. Datos e instrucciones propias. Ejemplo: M1 : único monitor que accede a v1 asegura E.M. ya que será ininterrumpible (la entrada al monitor de un proceso excluye la entrada de otros). Único procesamiento sobre v1 programado en M1. Diferentes monitores (o instancias de un monitor) para diferentes tareas. Mayor Eficiencia (+ Concurrencia) Mayor Robustez: Modularidad
5 1. Concepto de Monitor Estructuración en el acceso a los datos. Definición tipos para las operaciones y los datos (T.A.D.). Paradigma de Programación Modular: Módulo: Conjunto de procedimientos relacionados + datos. Principio de Ocultación de datos: Hacer local al módulo todo lo que no debe ser visible. Ejemplo: Módulo de pila. Resolver: Interfaz de usuario: procedimientos push y pop. Representación (p.e. array) sólo accedida mediante interfaz. Inicialización antes de uso. Lenguajes de Programación Dirigida a Objetos Clase.
6 1. Concepto de Monitor 1.2. Sintaxis de los monitores Estructura de un monitor de nombre name y procedimientos op1,...,opn: Monitor name; var... Declaración de variables permanentes procedure op1 (...); var... Declaración de variables locales a op1 {... Código que implementa op1 } procedure opn (...); var... Declaración de variables locales a opn {... Código que implementa opn } begin end.... Código para inicializar variables permanentes
7 1. Concepto de Monitor Protección de los datos en el monitor. Ámbito variables permanentes del monitor : Código monitor (procedimientos y cod. inicialización). Acceso variables permanentes: sólo dentro de los procedimientos. Procedimientos sólo acceden: Variables permanentes Variables locales Valores variables permanentes se mantienen entre diferentes ejecuciones de los procedimientos. Comunicación monitor-mundo exterior: A través de los parámetros de los procedimientos.
8 1. Concepto de Monitor Procedimientos del Monitor. Comunes a todos los procesos del sistema. Nueva llamada proced. Nuevos valores parámetros y variables locales. Sintaxis: nombremonitor.nombreprocedimiento(parámetros_reales); Código de inicialización Ejecución sólo 1 vez: Inicializa vars. Permanentes. Tras Ejecución: Monitor = objeto pasivo (datos + proceds.) Única forma ejecutar monitor: llamar proced.
9 1. Concepto de Monitor 1.3. Exclusión mútua con monitores Acceso al monitor en E.M. Sólo un proceso en un momento dado puede ejecutar un procedimiento Subsiguientes llamadas esperan finalización. Violación podría tener efectos caóticos sobre vars. Ventajas sobre Semáforos (soluc. no estructurada): Protección Variables: evita interferencias exteriores Estructuración acceso: Espera y señalización se programan dentro monitor. Si el monitor es correcto, lo será cada instancia utilizada por los procesos. E.M. garantizada automáticamente No errores. Invariante: Define una relación sobre los datos del monitor. Se mantiene siempre excepto cuando un procedimiento está ejecutándose. Se ha de cumplir antes de entrar y después de salir. Se ha de reestablecer el invariante en procedimientos antes de devolver el control o suspender el proceso.
10 1. Concepto de Monitor 1.4. Instanciación de monitores Permite declarar diversos monitores con estructura y comportamiento idénticos (Ej.: planificar varios recursos similares). Declaración tipo monitor: Class Monitor nombre_clase Instanciación de monitores: monitor1, monitor2: nombreclase; Práctica: se permite declarar varias instancias e incluso conjuntos parametrizados de monitores. Implementación con procedimientos reentrantes: Basta asignar nuevas instancias de las variables globales para cada instancia de un monitor.
11 2.1. Primitivas de sincronización en monitores Sincronización: Facilidad de bloqueo-activación de acuerdo a una condición. Propósitos de las instrucciones de sincronización en semáforos: Bloqueo-activación Cuenta (representación condición) En monitores: Sólo Bloqueo-activación Representación condición mediante datos protegidos del monitor
12 2.1. Primitivas de sincronización en monitores (cont.) Ejemplo de monitor: Planificador de un único recurso (sem. binario) monitor recurso; var ocupado: boolean; noocupado: condicion; procedure adquirir; {if ocupado then noocupado.wait; ocupado := true} procedure liberar; {ocupado := false; noocupado.signal;} begin ocupado := false /* valor inicial*/ end;
13 Semántica de las operaciones Wait: "estoy esperando a que algo (condición) ocurra". Bloquea proceso. Signal: "estoy señalando que algo (condición) ha ocurrido". Reactiva un proceso bloqueado en esa condición. Responsabilidad del programador que el proceso ejecute: Wait: cuando algo (condición) no se dé Signal: Cuando la condición acabe de activarse.
14 Variables de condición o señales Más de una razón para esperar: representan distintas condiciones Deben de ser diferenciadas por wait y signal. Nuevo tipo de variable: Variable de condición o señal. Sin valor almacenado (ni V, ni F). Una variable condición por cada razón de bloqueo. Operaciones Nombre_variable_condición.wait Nombre_variable_condición.signal Representación variable condición Cola (inicialmente vacía) de procs esperando en condición. Invisible a procs. Más de un proceso puede estar dentro del mismo monitor, aunque sólo uno ejecutándose (resto bloqueados en variables condición).
15 Propiedad FIFO de las colas de condición Más de un proc. esperando en condición condición.signal reactivará el proc. que lleve más tiempo esperando. Cada proc. en cola obtendrá eventualmente su turno No inanición. condición.queue Función booleana = V Hay algún proc. esperando en condición.
16 Colas de condición con prioridad Propiedad FIFO: evita inanición. Mayor control sobre estrategia de planificación: prioridad del proceso en espera como nuevo parámetro. Formato: Nombre_var_condición.wait (prioridad:integer); Signal reanuda proceso que especificó el valor más bajo de prioridad. Precaución diseño monitor: Evitar riesgos como la inanición. Justificación: Ningún efecto sobre la lógica del programa: Funcionamiento similar con/sin colas de prioridad. Sólo mejora características dep. del tiempo. Ordenación automática cola: técnica de planificación rápida y sencilla, excepto si la cola es muy larga. Almacenamiento requerido por proceso: una palabra
17 Colas de condición con prioridad (cont.) Ejemplo: Reloj con alarma. El proc. llamador se retarda n unidades de tiempo. monitor despertador; var ahora: integer; despertar: condicion; procedure despiertame (n: integer); var alarma: integer; {alarma := ahora + n; while ahora<alarma do despertar.wait (alarma); despertar.signal; /* Por si otro proceso coincide en la alarma */ } procedure tick; {ahora := ahora + 1; despertar.signal;} begin ahora := 0; end;
18 Colas de condición con prioridad (cont.) Ejemplo: Asignación recurso "siguiente trabajo el más corto". monitor asignador; var libre: boolean; turno: condicion; procedure petición (tiempo: integer); {if not libre then turno.wait (tiempo); libre:=false;} procedure liberar; {libre := true; turno.signal;} begin libre:= true; end;
19 2.2. Efecto de las operaciones de sincr. sobre la E.M. del monitor Requisito de reanudación inmediata Un Signal deberá ir seguida inmediatamente por la reanudación de un proceso en espera, sin que exista la posibilidad de que intervenga la llamada a un procedimiento de un tercer proceso. Única forma de garantizar que procesos en espera puedan adquirir un recurso que acaba de ser liberado Evita inanición. Propuesta de Hoare Un proceso suspendido debido a ejecución de signal, entrará en una cola de suspendidos en Signal. Cada proceso antes de salir del monitor y liberar la E.M., comprueba si hay procesos en esta cola, si los hay, heredarán la E.M. Los procesos suspendidos al ejecutar una operación signal tienen prioridad sobre los que intentan entrar. Propuesta de Brinch-Hansen Signal sólo como última instrucción del cuerpo. Evita cola de suspendidos en signal + Eficiencia
20 Problema de Anidación de llamadas en monitores Sistema estructurado como colección jerárquica de monitores: procs. de un monitor pueden llamar a otro Problema: Una llamada de monitor anidada se suspende en el último monitor. La E.M. en el último se abandonará pero no en el monitor desde el que se llama. Los procesos que intenten llamar a procedimientos de cualquier monitor de la cadena se bloquearán. Menor concurrencia Menor rendimiento.
21 Problema de Anidación. Propuestas de solución a) Prohibir llamadas anidadas. b) Liberar exclusión mútua en todos los monitores implicados en la cadena y bloquear proceso. Una vez señalado, el proceso necesitará readquirir el acceso exclusivo a todos los monitores. Requerirá que el invariante del monitor se establezca antes de cualquier llamada que pueda bloquear. c) Monitores = herramienta de estructuración para recursos compartidos. E.M. sólo forma de preservar integridad del recurso. Hay casos en los cuales las operaciones de un monitor pueden ejecutarse concurrentemente sin efectos adversos. Definir construcción que permita especificar que ciertas operaciones se podrán ejecutar concurrentemente y la exclusión mútua se liberará.
22 2.3. Equivalencia entre semáforos y monitores Los monitores pueden ser implementados por semáforos. Garantizar la E.M.de los cuerpos los procedimientos Para cada monitor Semáforo binario mutex (inic. a 1) para asegurar exclusión mútua entre los cuerpos de procedimientos. mutex:bin_sem=1 ENTRADA Proc. P(mutex) SALIDA Proc. Normalmente V(mutex)
23 2.3. Equivalencia entre semáforos y monitores (cont.) Propuesta de Hoare: Semáforo urgente (inic. a 0) para cola de bloqueados en Signal Contador procs. esperando en urgente (conturgente, inic. a 0). Procesos que invocan un signal ejecutan: if (existen procs. bloqueados en wait) { conturgente ++; P(urgente) } Para liberar procs. bloqueados en signal, antes de liberar la exclusión mútua, cada proceso ejecuta: if conturgente>0 V(urgente) else V(mutex);
24 2.3. Equivalencia entre semáforos y monitores (cont.) Para cada variable condición del monitor: Semáforo semcondición (inic. a 0) para cola de bloqueados en Wait Contador de nº procs. esperando condición (contcondición inic. a 0). condición.signal conturgente + +; if contcondición>0 { V(semcondición); P(urgente); } conturgente - - ; condición.wait contcondición + +; if conturgente>0 V(urgente) else V(mutex); P(semcondición); contcondición - -;
25 Equivalencia entre semáforos y monitores. Mejoras Salida del cuerpo de un procedimiento sin wait ni signal V(mutex) conturgente no ha cambiado. Salida cuando signal es la última instrucción del cuerpo: if contcondición > 0 V(semcondición) (*) else if conturgente>0 V(urgente) else V(mutex); No hay otro wait o signal en el cuerpo (*) puede omitirse. Propuesta de Brinch-Hansen signal última operación del cuerpo conturgente y urgente se omiten Esta simplificación sugiere que todas las operaciones signal deberían siempre ser la última operación de un proc. del monitor.
26 Semáforos v.s. Monitores Equivalentes en potencia expresiva. Motivación de uso Monitores: Claridad y fiabilidad. Característica que no se puede implementar en semáforos: Suposición FIFO sobre la cola.
27 2.4. Problemas paradigmáticos resueltos con monitores Productor/consumidor utilizando un buffer circular program productorconsumidor; monitor buffercircular; CONST tamaño=...; VAR b:array [0..tamaño-1] of integer; in, out, n: integer; novacio, nolleno: condicion; procedure añadir (v:integer); {if (n==tamaño) nolleno.wait; /* Espera a que no esté lleno*/ b[in] = v; in = (in + 1) % tamaño; n ++; novacio.signal;} procedure tomar(var v:integer); {if (n==0) novacio.wait; /* Espera a que no esté vacío */ v = b[out]; out = (out + 1) % tamaño; n --; nolleno.signal;} {in = out = n = 0}
28 Productor/consumidor utilizando un buffer circular (cont.) procedure productor; VAR v: integer; {while (true) {producir(v);añadir(v)} procedure consumidor; VAR v:integer; {while (true) {tomar(v);consumir(v) } { cobegin /* programa principal*/ productor; consumidor; coend; }
29 2.4.2.Problema de los lectores/escritores sin prioridades (FIFO). program lectoresescritores; monitor leerescribir; VAR lectores: integer; escribiendo: boolean; okleer, okescribir: condicion; procedure comenzarleer; {if (escribiendo or okescribir.queue) okleer.wait; lectores + +; okleer.signal} procedure finleer; {lectores - -; if (lectores==0) okescribir.signal;} procedure comenzarescribir; {if (lectores!=0 or escribiendo) okescribir.wait; escribiendo= true } procedure finescribir; {escribiendo = false; if (okleer.queue) okleer.signal else okescribir.signal } {lectores =0; escribiendo = false}
30 2.4.2.Problema de los lectores/escritores sin prioridades (FIFO).cont. procedure procesolector; { while (true) {comenzarleer; leerdatos; fin leer;} procedure procesoescritor; { while (true) { comenzarescribir; escribirdatos; finescribir } {cobegin procesolector; procesolector;... procesoescritor; procesoescritor;... coend; }
31 Implementación con semáforos del productor/consumidor Propuesta de Brinch Hansen(/*signal es la última instrucción*/ program productorconsumidor; CONST tamaño=...; VAR b: array [0..tamaño-1] of integer; in, out, n: integer; s: semaphore; /para E.M.*/ semnovacio, semnolleno: semaphore; /* binarios */ contnovacio, contnolleno: integer; procedure añadir (v:integer); { P(s); if (n==tamaño) { contnovacio+ +; V(s); P(semnovacio); contnovacio --} b[in] = v; in := (in + 1) % tamaño; n + +; if contnolleno>0 V(semnolleno) else V(s);} procedure tomar(var v:integer); { P(s); if (n==0) {contnolleno + +; V(s); P(semnolleno); contnolleno - -} v := b[out]; out := (out + 1) % tamaño; n := -- ; if contnovacio>0 V(semnovacio) else V(s); }
32 Implementación con semáforos del productor/consumidor procedure productor; var v: integer; {while (true) {producir(v); añadir(v)} procedure consumidor; var v:integer; {while (true) {tomar(v); consumir(v)} {in =out=n = 0; s = 1; contnolleno = semnolleno = 0; contnovacio = semnovacio = 0; cobegin productor; consumidor; coend;}
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 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 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 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 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 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 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 detallesTema 3: Concurrencia de procesos
Tema 3: Concurrencia de procesos Yolanda Blanco Fernández yolanda@det.uvigo.es Concurrencia, Tiempo Real y Paralelismo Concurrencia: Convivencia de un conjunto de procesos en un mismo ordenador. Sistemas
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 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 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 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 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 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 detallesReceta general para resolver problemas de sincronización con semáforos
Receta general para resolver problemas de sincronización con semáforos La primera vez que te enfrentas a la tarea de implementar una solución a un problema de sincronización entre procesos, es normal que
Más detallesMONITORES EN JAVA. Antonio Tomeu Control de la Concurrencia en Java: API Estándar
MONITORES EN JAVA Un monitor es un objeto que implementa acceso bajo e.m. a todos sus métodos, y provee sincronización En Java, son objetos de una clase cuyos métodos públicos son todos synchronized Un
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 detallesIntroducción a los Tipos Abstractos de Datos
Página 1 de 8 Introducción a los Tipos Abstractos de Datos Introducción: Concepto de abstracción Abstracción funcional y abstracción de datos Construcción de tipos abstractos de datos Especificación de
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 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 detallesIngeniería Superior de Informática. Curso 3º. Sistemas Operativos. Examen Final. TEORÍA. 31 de Enero de 2005
Ingeniería Superior de Informática. Curso º. Sistemas Operativos. Examen Final. TEORÍA. de Enero de 005 Nombre: DNI:. ( puntos). La TFA es la tabla que, en UNIX, guarda los punteros de posición de cada
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 detallesProgramación Concurrente y Paralela. P(S) ; sección crítica P(S);
2.5.2 Monitores Los semáforos, a pesar de su sencillez de uso, son el equivalente a las instrucciones goto y el manejo de apuntadores en los lenguajes de programación imperativos: son muy susceptibles
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 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 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 detallesUnidad 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
Más detallesUnidad 1: Conceptos generales de Sistemas Operativos.
Unidad 1: Conceptos generales de Sistemas Operativos. Tema 3: Estructura del sistema operativo. 3.1 Componentes del sistema. 3.2 Servicios del sistema operativo. 3.3 Llamadas al sistema. 3.4 Programas
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 detallesJava Inicial (20 horas)
Java Inicial (20 horas) 1 Temario 1. Programación Orientada a Objetos 2. Introducción y Sintaxis Java 3. Sentencias Control Flujo 4. POO en Java 5. Relaciones entre Objetos 6. Polimorfismo, abstracción
Más detallesRESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA
UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí
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 detalles4. 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
Más detallesIntroducción a la programación orientada a objetos
Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación
Más detallesProcesos. Planificación del Procesador.
Procesos. Planificación del Procesador. Sistemas Operativos. Tema 2. Concepto de Proceso. Una definición sencilla: Programa en ejecución. Entidad pasiva Programa RECURSOS CPU Memoria Ficheros Dispositivos
Más detallesTema 2: Implementación del núcleo de un Sistema Operativo
Tema 2: Implementación del núcleo de un Sistema Operativo 1. Sistema Operativo Unix 2. Sistema Operativo Windows (a partir de NT) Dpto. Lenguajes y Sistemas Informáticos. Universidad de Granada 1 1. Sistema
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 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 detalles15. Arquitectura de los multiprocesadores. 16. Multiprocesadores de memoria compartida. 17. Multicomputadores.
UNIDAD TEMÁTICA 5: MULTIPROCESADORES. 15. Arquitectura de los multiprocesadores. 16. Multiprocesadores de memoria compartida. 17. Multicomputadores. 15-1 TEMA 15: ARQUITECTURA DE LOS MULTIPROCESADORES.
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 detallesCAPÍTULO 8. Comunicación y sincronización basada en variables compartidas
CAPÍTULO 8. Comunicación y sincronización basada en variables compartidas 8 Comunicación y sincronización basada en variables compartidas...2 8.1 Exclusión mutua y condición de sincronización....2 8.2
Más detallesSEGURIDAD Y PROTECCION DE FICHEROS
SEGURIDAD Y PROTECCION DE FICHEROS INTEGRIDAD DEL SISTEMA DE ARCHIVOS ATAQUES AL SISTEMA PRINCIPIOS DE DISEÑO DE SISTEMAS SEGUROS IDENTIFICACIÓN DE USUARIOS MECANISMOS DE PROTECCIÓN Y CONTROL INTEGRIDAD
Más detallesComunicación y Sincronización con Monitores Resumen del Tema
Notas de clase de Programación Concurrente Comunicación y Sincronización con Monitores Resumen del Tema Dpto de Lenguajes y Ciencias de la Computación Universidad de Málaga María del Mar Gallardo Melgarejo
Más detallesProcesos. Bibliografía. Threads y procesos. Definiciones
Procesos Prof. Mariela Curiel Bibliografía A. Tanembaum & M. Van Steen. Sistemas Distribuidos. Principios y Paradigmas. 2da. Edición. Smith & Nair. The Architecture of Virtual Machines. IEEE Computer.
Más detallesIntroducción a los Sistemas Operativos
Introducción a los Sistemas Operativos 2º Ingeniero de Telecomunicación (Sonido e Imagen) Departamento de Ingeniería Telemática Universidad Carlos III de Madrid 2 Qué vamos a ver hoy? Qué es un sistema
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 detalles1. Equivalencia de herramientas. Implemente las primitivas de las regiones críticas condicionales con semáforos. (2pt).
1. Equivalencia de herramientas. Implemente las primitivas de las regiones críticas condicionales con semáforos. (2pt). La respuesta a esta pregunta se encuentra en el texto base de la asignatura em las
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 detallesPráctica de programación concurrente 2013-2014 ETSI Informática, UNED David Fernández-Amorós programacion.concurrente@lsi.uned.es. 1.
1. Enunciado En el bingo hay un presentador y varios jugadores. Antes de comenzar el juego, cada jugador se genera aleatoriamente una cantidad de cartones entre 1 y 10. Obviamente, todos los números de
Más detallesConcurrencia en.net David Jesús Horat Flotats
Concurrencia en.net David Jesús Horat Flotats ÍNDICE 1. Introducción n a.net 2. Sincronización n en.net 2.1 Contextos sincronizados 2.2 Método M Synchronized 2.3 Regiones de código c sincronizado 2.4 Sincronización
Más detallesTema 1. Introducción a las estructuras y tipos de datos
Tema 1. Introducción a las estructuras y tipos de datos http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia,bmartine,morales,sanchiz}@icc.uji.es Estructuras
Más detallesPROGRAMACIÓ DIDÁCTICA: Secuanciación, Temporalización y Unidades Didácticas
Departamento de Informática PROGRAMACIÓN DIDÁCTICA Curso 11-12 1 CONSEJERÍA DE EDUCACIÓN I.E.S. NERVIÓN Departamento de Informática CICLO FORMATIVO: TÉCNICO SUPERIOR EN DESARROLLO DE APLICACIONES MULTIPLATAFORMA.
Más detallesMODULO: 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
Más detallesINTRODUCCION 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
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 detallesCurso de Python Inicial
Logo IAA-CSIC Curso organizado por el Gabinete de Formación del CSIC Curso de Python Inicial Clases Contenidos 1. Paradigmas de la Programación 2. Programación Orientada a objetos 3. Clases 4. Objetos
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 detallesProyecto Septiembre. Escuela Politécnica Superior Universidad Autónoma de Madrid 1
Proyecto Septiembre A. Organización de la práctica 1) Para promediar con la parte teórica de la asignatura es necesario aprobar independientemente prácticas y teoría. 2) La práctica de Septiembre se debe
Más detallesARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES
ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Características ARBOLES - CONCEPTOS Cada elemento del árbol se relaciona con cero o más elementos a quienes llama hijos. Si el árbol no
Más detallesARQUITECTURA DE DISTRIBUCIÓN DE DATOS
4 ARQUITECTURA DE DISTRIBUCIÓN DE DATOS Contenido: Arquitectura de Distribución de Datos 4.1. Transparencia 4.1.1 Transparencia de Localización 4.1.2 Transparencia de Fragmentación 4.1.3 Transparencia
Más detallesTema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática
Tema 1 Introducción. Arquitectura básica y Sistemas Operativos Fundamentos de Informática Índice Descripción de un ordenador Concepto básico de Sistema Operativo Codificación de la información 2 1 Descripción
Más detallesTema 2. Procesos. 1. Concepto de proceso
Tema 2. Procesos 1. Concepto de proceso. 2. Principios de la Programación concurrente. 1. Concurrencia. Programación concurrente. 2. Áreas de comunicación entre procesos. 1. Exclusión mutua. 2. Sincronización.
Más detallesSistemas de archivos distribuidos. Alvaro Ospina Sanjuan alvaro.ospina@correo.upb.edu.co
Sistemas de archivos distribuidos Alvaro Ospina Sanjuan alvaro.ospina@correo.upb.edu.co >Abstracción del sistema operativo para representar y organizar los recursos de almacenamiento >Se debe hacer la
Más detallesEl soporte del sistema operativo. Hace que un computador sea más fácil de usar. Permite que los recursos del computador se aprovechen mejor.
El soporte del sistema operativo Objetivos y funciones del sistema operativo Comodidad Hace que un computador sea más fácil de usar. Eficiencia Permite que los recursos del computador se aprovechen mejor.
Más detallesContenidos. Archivos en C++ Archivos en C++ Introducción
Contenidos 1. Introducción. 2. Manipulación de ficheros. 3. Organización de archivos. 4. Tipo de almacenamiento. 5. Biblioteca de flujos. 6. Operaciones asociadas a archivos: Abrir fichero, Cerrar fichero,
Más detallesExamen final de CL 11 de Enero de 2012 Fecha de publicación de notas: 19-1-2012 Fecha de revisión: 20-1-2012
Examen final de CL 11 de Enero de 2012 Fecha de publicación de notas: 19-1-2012 Fecha de revisión: 20-1-2012 Sin apuntes. Tiemp: 3h. Nombre y Apellidos: Problema de analisis léxico, sintáctico e intérpretes
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 detallesSistemas operativos: una visión aplicada. Capítulo 11 Estudio de casos: Linux
Sistemas operativos: una visión aplicada Capítulo 11 Estudio de casos: Linux Contenido Historia de Linux Características y estructura de Linux Gestión de procesos Gestión de memoria Entrada/salida Sistema
Más detallesGeneral Parallel File System
General Parallel File System Introducción GPFS fue desarrollado por IBM, es un sistema que permite a los usuarios compartir el acceso a datos que están dispersos en múltiples nodos; permite interacción
Más detallesSolución Examen Febrero 2006
Solución Examen Febrero 2006 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
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 detallesUNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS
UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS CURSO: JAVA BASICO PROFESOR: EMERSON CASTAÑEDA SANABRIA TEMA: Programación Orientada a Objetos OBJETIVOS: Familiarizarse con la Programación
Más detallesTema 4.- Pilas y Colas
Apuntes elaborados por: Eduardo Quevedo, Raquel López y Aaron Asencio Revisado por: Javier Miranda el???? Tema 4.- Pilas y Colas Las pilas y colas son estructuras de datos que se utilizan generalmente
Más detallesTema 6. Gestión de la memoria
Tema 6. Índice Introducción Compartición de memoria Memoria virtual Soporte en los procesadores: la MMU en Linux en Windows NT/2000 1 Tema 6. Introducción Necesidad de la gestión de la memoria Requisitos
Más detallesCAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS
CAPÍTULO IV BREVE DESCRIPCIÓN DE LA INFRAESTRUCTURA DE CÓMPUTO VISUAL BASIC 6.0 PARA WINDOWS 4.1 Antecedentes históricos El lenguaje de programación BASIC (Beginner's All purpose Symbolic Instruction Code)
Más detallesManual del Protocolo XML-RPC de Mensajería Negocios
Manual del Protocolo XML-RPC de Mensajería Negocios Índice de contenidos 1 INTRODUCCIÓN... 3 2 FUNCIONALIDADES DEL API DE COMUNICACIÓN XML-RPC... 4 2.1 Envío Libre... 4 2.2 Envío a Grupo de Contactos...
Más detallesGestión de Permisos. Bizagi Suite. Copyright 2014 Bizagi
Gestión de Permisos Bizagi Suite Gestión de Permisos 1 Tabla de Contenido Gestión de Permisos... 3 Definiciones... 3 Rol... 3 Perfil... 3 Permiso... 3 Módulo... 3 Privilegio... 3 Elementos del Proceso...
Más detallesCÓMO TRABAJA TU SISTEMA OPERATIVO?
CÓMO TRABAJA TU SISTEMA OPERATIVO? AUTORÍA MARÍA CATALÁ CARBONERO TEMÁTICA SISTEMAS OPERATIVOS ETAPA CICLO MEDIO Y SUPERIOR DE INFORMÁTICA Resumen Los sistemas operativos nacen de la informática. Su función
Más detallesThreads. La plataforma JAVA soporta programas multhreading a través del lenguaje, de librerías y del sistema de ejecución. Dos.
Threads Un thread es un flujo de control secuencial dentro de un programa. A los threads también se los conoce como procesos livianos ó contextos de ejecución. Un thread es similar a un programa secuencial:
Más detallesMicrosoft Access proporciona dos métodos para crear una Base de datos.
Operaciones básicas con Base de datos Crear una Base de datos Microsoft Access proporciona dos métodos para crear una Base de datos. Se puede crear una base de datos en blanco y agregarle más tarde las
Más detallesEstructura de Datos y de la Información. Pilas y expresiones aritméticas
Estructura de Datos y de la Información Pilas y expresiones aritméticas LIDIA Laboratorio de Investigación y desarrollo en Inteligencia Artificial Departamento de Computación Universidade da Coruña, España
Más detalles8. Sentencia return y métodos
92 A. García-Beltrán y J.M. Arranz 8. Sentencia return y métodos Objetivos: a) Describir el funcionamiento de la sentencia return b) Interpretar el resultado de una sentencia return en el código fuente
Más detallesAutenticación Centralizada
Autenticación Centralizada Ing. Carlos Rojas Castro Herramientas de Gestión de Redes Introducción En el mundo actual, pero en especial las organizaciones actuales, los usuarios deben dar pruebas de quiénes
Más detallesGESTIÓN DE REDES PARTE III
PARTE III Arquitectura de Gestión OSI 3.1 Introducción La gestión de red OSI, pensada inicialmente para la gestión de las propias redes OSI, debe su implantación práctica al ser adoptada por los estándares
Más detalles2) Tenemos un sistema informático con una sola CPU que está gestionada mediante una cola multinivel con realimentación.
EJERCICIOS DE PLANIFICACIÓN: 1) Un sistema informático posee los siguientes recursos: - una CPU - tres unidades de almacenamiento UAM1, UAM2 y UAM3. En nuestro sistema tenemos dos tipos de procesos: Tipo
Más detallesTecnólogo Informático- Estructuras de Datos y Algoritmos- 2009
Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier
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 detallesPreliminares. Tipos de variables y Expresiones
Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un
Más detallesCurso de Java POO: Programación orientada a objetos
Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Introducción a la POO 2 Herencia y polimorfismo 3 Empaquetado de proyectos
Más detallesTema 1. Conceptos fundamentales de los Sistemas Operativos
Tema 1. Conceptos fundamentales de los Sistemas Operativos 1. Introducción a los Sistemas Operativos. 1. Concepto de Sistema Operativo. Niveles del software. 2. Funciones principales de un Sistema Operativo.
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 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 detallesPaso de mensajes. Lecturas: Burns & Wellings, Cap.??? Transparencias y apuntes de la asignatura. Filosofía cliente-servidor.
Paso de mensajes Lecturas: Burns & Wellings, Cap.??? Transparencias y apuntes de la asignatura Manuel Carro Universidad Politécnica de Madrid Este texto se distribuye bajo los términos de la Creative Commons
Más detallesTema 11. Soporte del Sistema Operativo 11.1. REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS. 11.1.1. MULTIPROGRAMACIÓN.
Tema 11 Soporte del Sistema Operativo 11.1. REQUERIMIENTOS DE LOS SISTEMAS OPERATIVOS. El sistema operativo es básicamente un programa que controla los recursos del computador, proporciona servicios a
Más detallesIntroducción a la Programación Orientada a Objetos (POO) Introducción a la Programación Orientada a Objetos (POO)
Diseño Orientado a Objetos. Metodología enfocada a la solución de problemas complejos. Complejidad del software. Problemas difíciles de precisar. Definición de requerimientos vago y cambio en el desarrollo
Más detallesExamen escrito de Programación 1
Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 2 de septiembre de 2015 Se debe disponer sobre la mesa en lugar visible un documento
Más detallesUna variable de clase escalar tiene un nivel de indirección igual a 1. Por ejemplo, las variables i, b y x definidas como se muestra a continuación.
Descripción de la semántica de ALFA En esta descripción sólo se mencionarán los aspectos en los que el lenguaje de programación ALFA pueda diferir de otros lenguajes de programación de alto nivel. Se sobreentienden
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 detallesObjetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.
Sesión 03: Lenguajes web del servidor Competencias a Conseguir: - Conocer el entorno de trabajo a nivel de servidores web. - Instalación del localhost (Servidor Local). - Repaso general de PHP y ejercicios
Más detallesRequerimientos principales de un sistema operativo
Descripción y control de procesos Requerimientos principales de un sistema operativo Intercalar la ejecución de varios procesos para maximizar el uso del procesador proporcionando un tiempo de respuesta
Más detalles