Programación Concurrente y distribuida
|
|
- Rosa María Franco Crespo
- hace 6 años
- Vistas:
Transcripción
1 Working Hypothesis Programación Concurrente y distribuida Camilo Rueda 1 1 Universidad Javeriana-Cali 1 de febrero de 2010
2 Motivación Working Hypothesis Premisa El contexto de aplicación de la Ingeniería de Software está cambiando
3 Motivación Working Hypothesis Premisa El contexto de aplicación de la Ingeniería de Software está cambiando CPU multi-núcleo
4 Motivación Working Hypothesis Premisa El contexto de aplicación de la Ingeniería de Software está cambiando CPU multi-núcleo Programas en la web
5 Motivación Working Hypothesis Premisa El contexto de aplicación de la Ingeniería de Software está cambiando CPU multi-núcleo Programas en la web Dispositivos móviles programables
6 Motivación Working Hypothesis Premisa El contexto de aplicación de la Ingeniería de Software está cambiando CPU multi-núcleo Programas en la web Dispositivos móviles programables Programas interactuan con el mundo físico
7 Motivación (cont) Working Hypothesis Conceptos, modelos, técnicas y metodologías deben adaptarse
8 Motivación (cont) Working Hypothesis En software tradicional: Conceptos, modelos, técnicas y metodologías deben adaptarse Concepto Modelo Técnica Modularidad Tipo abstracto de datos Clase
9 Motivación (cont) Working Hypothesis En el nuevo contexto: Conceptos, modelos, técnicas y metodologías deben adaptarse Concepto Modelo Técnica Proceso objeto activo Puerto+cola de mensajes Localidad Exclusión mutua Imparcialidad ( fairness )
10 Working Hypothesis Por qué nuevas metodologías? Ejemplo: Exclusión mutua P 1 l 0 : loop forever do l 1 : sección no crítica l 2 : s := 1; l 3 : y 1 := 1; l 4 : wait (y 2 = 0) (s 1); l 5 : sección crítica l 6 : y 1 := 0 od P 2 m 0 : loop forever do m 1 : sección no crítica m 2 : s := 2; m 3 : y 2 := 1; m 4 : wait (y 1 = 0) (s 2); m 5 : sección crítica m 6 : y 2 := 0 od ejecutar : s := 1; y 1, y 2 := 0, 0; [P 1 P 2 ] funciona?
11 Working Hypothesis Por qué nuevas metodologías? Ejemplo: Exclusión mutua P 1 l 0 : loop forever do l 1 : sección no crítica l 2 : s := 1; l 3 : y 1 := 1; l 4 : wait (y 2 = 0) (s 1); l 5 : sección crítica l 6 : y 1 := 0 od P 2 m 0 : loop forever do m 1 : sección no crítica m 2 : s := 2; m 3 : y 2 := 1; m 4 : wait (y 1 = 0) (s 2); m 5 : sección crítica m 6 : y 2 := 0 od funciona? Exactamente por qué? ejecutar : s := 1; y 1, y 2 := 0, 0; [P 1 P 2 ]
12 Working Hypothesis Por qué nuevas metodologías? Ejemplo: Exclusión mutua P 1 l 0 : loop forever do l 1 : sección no crítica l 2 : y 1 := 1; l 3 : s := 1; l 4 : wait (y 2 = 0) (s 1); l 5 : sección crítica l 6 : y 1 := 0 od P 2 m 0 : loop forever do m 1 : sección no crítica m 2 : y 2 := 1; m 3 : s := 2; m 4 : wait (y 1 = 0) (s 2); m 5 : sección crítica m 6 : y 2 := 0 od ejecutar : s := 1; y 1, y 2 := 0, 0; [P 1 P 2 ] funciona?
13 Working Hypothesis Por qué nuevas metodologías? Ejemplo: Exclusión mutua P 1 l 0 : loop forever do l 1 : sección no crítica l 2 : y 1 := 1; l 3 : s := 1; l 4 : wait (y 2 = 0) (s 1); l 5 : sección crítica l 6 : y 1 := 0 od P 2 m 0 : loop forever do m 1 : sección no crítica m 2 : y 2 := 1; m 3 : s := 2; m 4 : wait (y 1 = 0) (s 2); m 5 : sección crítica m 6 : y 2 := 0 od funciona? Exactamente por qué? ejecutar : s := 1; y 1, y 2 := 0, 0; [P 1 P 2 ]
14 Estrategia del curso Working Hypothesis Presentar con cada concepto de programación concurrente y distribuida, sus modelos y tecnologías
15 Estrategia del curso Working Hypothesis Para los modelos Presentar con cada concepto de programación concurrente y distribuida, sus modelos y tecnologías Formalizarlos en un lenguaje de núcleo extendible, el Kernel Oz
16 Estrategia del curso Working Hypothesis Para los modelos Presentar con cada concepto de programación concurrente y distribuida, sus modelos y tecnologías Formalizarlos en un lenguaje de núcleo extendible, el Kernel Oz Para las técnicas Programarlas en el lenguaje de núcleo, construir aplicaciones
17 El Lenguaje de núcleo Working Hypothesis Lenguaje de programación minimal: con el mínimo de construcciones necesarias para representar un concepto
18 El Lenguaje de núcleo Working Hypothesis Lenguaje de programación minimal: con el mínimo de construcciones necesarias para representar un concepto Expresivo
19 El Lenguaje de núcleo Working Hypothesis Lenguaje de programación minimal: con el mínimo de construcciones necesarias para representar un concepto Expresivo Implementable e implementado
20 El Lenguaje de núcleo Working Hypothesis Lenguaje de programación minimal: con el mínimo de construcciones necesarias para representar un concepto Expresivo Implementable e implementado Simple
21 El Lenguaje de núcleo Working Hypothesis Lenguaje de programación minimal: con el mínimo de construcciones necesarias para representar un concepto Expresivo Implementable e implementado Simple Modular (o incrementable )
22 El Lenguaje de núcleo Working Hypothesis Lenguaje de programación minimal: con el mínimo de construcciones necesarias para representar un concepto Expresivo Implementable e implementado Simple Modular (o incrementable ) Reaĺısticamente cercano a lenguajes existentes
23 El Lenguaje de núcleo Working Hypothesis Lenguaje de programación minimal: con el mínimo de construcciones necesarias para representar un concepto Expresivo Implementable e implementado Simple Modular (o incrementable ) Reaĺısticamente cercano a lenguajes existentes Semántica precisa Nombre de moda: framework
24 Working Hypothesis El KL Oz: modelo declarativo < st > ::= < st 1 > < st 2 > secuencia de comandos local < var > in < st > end variable local if < var > then < st 1 > condicional else < st 2 > end case < var > of casos < patron > then < st 1 > [ ] < patron k > then < st k > else < st > end {< var > < arg 1 >... < arg n > } llamado a procedimiento Por qué no hay declaración de procedimientos?
25 Working Hypothesis El KL Oz: modelo declarativo < st > ::= < st 1 > < st 2 > secuencia de comandos local < var > in < st > end variable local if < var > then < st 1 > condicional else < st 2 > end case < var > of casos < patron > then < st 1 > [ ] < patron k > then < st k > else < st > end {< var > < arg 1 >... < arg n > } llamado a procedimiento Por qué no hay declaración de procedimientos? son valores: < valor >::=< numero > < registro > < proced > < proced >::= proc { $ < arg 1 >... < arg n >} < st > end
26 Working Hypothesis Por qué KL en el curso Por ser dispositivo de cómputo: refuerza conceptos teóricos viendo su realización práctica es a la vez riguroso, simple y práctico. Puede cubrir varios paradigmas de programación Puede aumentarse para distintos modelos de computación: Programación concurrente Programación distribuida
27 Working Hypothesis Modelos de computación (versión PVR&SH) Declarativo ((, un poco) Abstracción procedimental y recursión Evaluación perezosa Programación de alto orden Lenguajes: ML ( caml) Estado expĺıcito (imperativo) Funciones con memoria Tipos abstractos de datos Lenguajes: C Concurrente declarativo o dirigido por datos ( ) Programación multi-hilos ( ) Flujos (streams) ( ) Sincronización de procesos ( )
28 Modelos (2) Working Hypothesis Concurrencia por paso de mensaje ( ) Asincronía ( ) Puertos ( ) Agentes ( ) Lenguajes: Earlang ( ) Orientado-objetos Herencia Clase, objeto Lenguajes: Java, Eiffel, C++, et al. Concurrencia de estado compartido ( ) Candados ( ) Monitores ( ) Transacciones ( ) Lenguajes: Java concurrente ( )
29 Modelos (3) Working Hypothesis Programación distribuida ( ) Distribucón de datos ( ) istribución de estado ( ) Patrones de programación distribuida ( ) Protocolos distribuidos ( ) Manejo de fallas ( ) aspectos de seguridad ( ) Movilidad (?)
30 Objetivos generales Working Hypothesis Saber diseñar programas concurrentes y distribuidos Poder razonar formalmente sobre un programa concurrente o distribuido Conocer cómo verificarlos Poder implementar un programa concurrente o distribuido usando el lenguaje de núcleo
31 Working Hypothesis Programa concurrente vs secuencial Secuencial: Observables: Parejas de estados iniciales y finales i.e. Valores de las variables de entrada/salida El cómo se llega al estado final no importa Hay un solo camino posible al estado final Concurrente: Estados intermedios son tan importantes como los finales (sincronización) Observables: Conjunto de variables que ocurren en un componente Conjunto de variables con las que se comunica
32 Working Hypothesis Semántica de la concurrencia traza: una secuencia particular de transiciones atómicas de estado σ 0 α 1 σ 1 α 2... α i σ i α i+1 σ i+1 σ i : Estados α i : acciones atómicas α 1 α 2... es un intercalamiento (interleaving). Corresponde a una historia del proceso Semántica de un programa: conjunto de todas sus historias posibles
33 Working Hypothesis Cómo razonar sobre prog. concurrentes? Inspeccionar cada historia?
34 Working Hypothesis Cómo razonar sobre prog. concurrentes? Inspeccionar cada historia? son demasiadas!!
35 Working Hypothesis Cómo razonar sobre prog. concurrentes? Inspeccionar cada historia? son demasiadas!! Mejor: Representar conjuntos enteros de trazas por sus propiedades un predicado representa un conjunto de estados Un programa es una relación entre predicados
36 Working Hypothesis Cómo involucrar sincronización? La comunicación permite a un proceso influir sobre otro Posibilidades: Variables compartidas Paso de mensajes (canales compartidos) Esquemas de sincronización: Exclusión mutua Sincronización condicional Comunicación síncrona
37 Ejemplo Working Hypothesis ENVIA BUFFER RECIBE Exclusión mutua entre envío y recepción Sincronización condicional: Evitar que el mismo mensaje se envíe dos veces. Protocolo de comunicación: sincronía.
38 Working Hypothesis Semántica operacional del KL Las variables son de asignación única La asociación de variables con valores se mantiene en el almacén ( store ) El store está compuesto de entidades: variables con sus valores.
39 Working Hypothesis Identificadores y variables Los identificadores son las variables del usuario en un programa Un identificador referencia una entidad del store
40 Working Hypothesis Tipos en el modelo declarativo
41 Working Hypothesis Máquina abstracta de KL Un store de asignación única σ: conjunto de variables x 1,..., x k Un Ambiente E: función de identificadores a variables del store { x 1 x 1,... x n x n, } Una Instrucción Semántica: pareja ( s, E) s: instrucción E: ambiente Un estado de ejecución: pareja (ST, σ) ST : pila de instrucciones semánticas Una computación: secuencia de estados de ejecución, a partir de un estado inicial (ST 0, σ 0 ) (ST 1, σ 1 ) (ST 2, σ 2 )...
42 Working Hypothesis Ejecución de un programa El estado de ejecución inicial es [( s, )], ). La instrucción semántica inicial es ( s, ) con un ambiente vacío, y el store inicial es vacío En cada paso de ejecución, el primer elemento de ST se saca de la pila y la ejecución prosigue según la forma del elemento El estado final (si existe) es en el que la pila semántica está vacía. Una pila semántica puede estar en uno de los estados: corriendo: ST puede hacer un paso de ejecución terminado: ST es vacío suspendido: ST no es vacío, pero no puede ejecutar un paso
43 Working Hypothesis Ejemplo: instrucción local Instrucción semántica: (local x in s end, E) La ejecución consiste de las acciones siguientes: Crear una variable x nueva en el store Agregar a la pila ( s, E + { x x})
44 Ejemplo: instrucción if Working Hypothesis Instrucción semántica: (if x then s 1 else s 2 end, E) Esta instrucción tiene una condición de activación: E( x ) debe estar determinado, i.e. ligado a número, registro o procedimiento La ejecución consiste de las acciones siguientes: Si la condición de activación se cumple, entonces si E( x ) no es un booleano, levante condición de error si E( x ) es verdadero, agregar a la pila ( s 1, E) si E( x ) es falso, agregar a la pila ( s 2, E) Si la condición de activación no se cumple, se suspende la ejecución Si otra actividad hace la condición de activación cierta, la ejecución puede continuar. Esto permite programación de flujo de datos (concurrencia declarativa)
45 Working Hypothesis Ejemplo: procedimientos Un valor procedimental es una pareja: (proc {$ y 1... y n } s end, CE) donde CE (el ambiente contextual) es el ambiente en el que se definió el procedimiento En un llamado a procedimiento ({ x x 1... x n }, E): Si E( x ) es de la forma (proc { y 1... y n } s end, CE), entonces agregue a la pila ( s, CE + { y 1 E( x 1 ),..., y n E( x n )}) Esto permite programación de alto orden como en lenguajes funcionales
46 Working Hypothesis Importancia del modelo declarativo Un programa declarativo puede particionarse en componentes que pueden escribirse, chequearse y probar su corrección independientemente de los otros Hay técnicas simples de razonamiento para construir programas
47 tarea Working Hypothesis Asegurar conocimientos básicos de Mozat: leer libro PVR, cap 2 (hasta 2.7 ) Escriba la ejecución formal del programa local Op W in proc {Op X Y F R} if X > Y then R = {F X Y }else R = {F Y X } end end {Op 7 5 fun {$ X Y } X Y end W } end
48 Working Hypothesis Primeros programas en Oz (archivo primeros.oz)
Evaluación de los aprendizajes Elabora un cuadro comparativo con las principales características del lenguaje de programación Java.
NÚCLEO: Núcleo Sector Comercio y Servicios. SUBSECTOR: Informática y comunicación. Nombre del Módulo: Programación para Ambiente WEB total: 120 horas Objetivo General: Aplicar los conocimientos teóricos
Más detallesESCUELA DE INGENIERIA Informática Y Sistemas
ESCUELA DE INGENIERIA Informática Y Sistemas ASIGNATURA SISTEMAS OPERATIVOS CODIGO ST0257 SEMESTRE 2013-2 INTENSIDAD HORARIA 64 horas semestral CARACTERÍSTICAS Suficientable CRÉDITOS 4 1. JUSTIFICACIÓN
Más detallesCompiladores y Lenguajes de Programación. Maria de Guadalupe Cota Ortiz
Compiladores y Lenguajes de Programación Maria de Guadalupe Cota Ortiz Organizaciones que rigen las normas para estandarización de Lenguajes de Programación IEEE (Instituto de Ingenieros Eléctricos y Electrónicos)
Más detallesINDICE 1. Introducción 2. Entrada / Salida: Principios y Programación 3. Procesos
INDICE Prólogo XV 1. Introducción 1 1.1. Evolución de los sistemas operativos 2 Procesamiento en serie 3 Procesamiento por lotes 4 Multiprogramación 7 1.2. Tipos de Sistemas Operativos 9 Sistemas operativos
Más detallesGrado en Ingeniería de Computadores Universidad de Alcalá 2015/2016 3º Curso 2º Cuatrimestre
Sistemas de Tiempo Real Grado en Ingeniería de Computadores Universidad de Alcalá 2015/2016 3º Curso 2º Cuatrimestre GUÍA DOCENTE Nombre de la asignatura: Código: 590008 Titulación en la que se imparte:
Más detallesANEXO XVII DE LA RESOLUCION N
Hoja 1 de 7 UNIVERSIDAD NACIONAL DE CÓRDOBA Facultad de Ciencias Exactas Físicas y Naturales República Argentina Programa de: Código: Informática Carrera: Materia común Res. Nº Plan: Puntos:3.5 Escuela:
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 detallesUNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS PROGRAMA DEL CURSO INTRODUCCION A LA PROGRAMACION Y COMPUTADORAS 1 CODIGO: 770 CREDITOS: 4 ESCUELA: Ciencias
Más detallesDesarrollador de Aplicaciones Web con Java
Desarrollador de Aplicaciones Web con Java El presente programa integral tiene como finalidad el uso de la tecnología Java para el desarrollo de aplicaciones Web empresariales. En los tres módulos se utilizan
Más detallesThreads, SMP y Microkernels. Proceso
Threads, SMP y Microkernels Proceso Propiedad de los recursos a un proceso se le asigna un espacio de dirección virtual para guardar su imagen Calendarización/ejecución sigue una ruta de ejecución la cual
Más detallesPrograma Oficial de Asignatura. Ficha Técnica. Presentación. Competencias y/o resultados del aprendizaje. Contenidos Didácticos
Ficha Técnica Titulación: Grado en Ingeniería Informática Plan BOE: BOE número 108 de 6 de mayo de 2015 Asignatura: Módulo: Programación y Estructura de Datos Curso: 1º Créditos ECTS: 6 Tipo de asignatura:
Más detalles1. Computadores y programación
1. Computadores y programación Informática y computadora (RAE) Informática (Ciencia de la computación) Conjunto de conocimientos científicos y técnicos que hacen posible el tratamiento automático de la
Más detallesPROGRAMA DE CURSO. Escuela de Ingeniería de Sistemas y Computación Universidad del Valle Santiago de Cali, Colombia. Febrero 2007
PROGRAMA DE CURSO Escuela de Ingeniería de Sistemas y Computación Universidad del Valle Santiago de Cali, Colombia Febrero 2007 Curso: ALGORITMIA Y PROGRAMACIÓN Código: 750001M Modalidad: Presencial Teórico
Más detallesPOST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015 HORAS POR SEMANA DEL LABORATORIO: DIAS QUE SE IMPARTE EL LABORATORIO:
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS NOMBRE DEL CURSO: Introducción a la Programación Y Computación 1 CODIGO: 770 CREDITOS: 4 ESCUELA: Ciencias y Sistemas AREA
Más detallesUNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO
UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO LICENCIATURA EN PRODUCCIÓN INDUSTRIAL. UNIDAD DE APRENDIZAJE: PROGRAMACIÓN Créditos institucionales de la UA: 6 Material visual: Diapositivas Unidad de competencia
Más detallesIntroducción a PL/SQL
Introducción a PL/SQL Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla noviembre 2011 Objetivos de este tema Conocer PL/SQL. PL/SQL
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 detallesGRADO EN INGENIERÍA INFORMÁTICA
Facultad de Informática Universidad Complutense de Madrid GRADO EN INGENIERÍA INFORMÁTICA El Grado en Ingeniería Informática incluye dos itinerarios. Itinerario de computación Itinerario de tecnología
Más detallesAREA A LA QUE PERTENECE: 103 Matemática Básica 2 34 créditos POST REQUISITO: CATEGORIA: Obligatorio SEMESTRE: Primer Semestre 2015
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS NOMBRE DEL CURSO: Introducción a la Programación Y Computación 1 CODIGO: 770 CREDITOS: 4 ESCUELA: Ciencias y Sistemas AREA
Más detallesCada enfoque tiene sus ventajas y desventajas Cada uno es más apropiado para ciertas cosas
ADyA Hay para todos los gustos Estructurados (C, Pascal, Basic, etc.) Funcionales (CAML) Declarativos (Prolog) Orientados a Objetos (C#, VB.NET, Smalltalk, Java) Orientados a Aspectos Híbridos (Lisp, Visual
Más detallesEstructuras de Control
Algorítmica y Lenguajes de Programación Estructuras de Control Estructuras de Control. Introducción Hasta ahora algoritmos han consistido en simples secuencias de instrucciones Existen tareas más complejas
Más detallesALGORÍTMICA. Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid.
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática Facultad de Ciencias Universidad de Valladolid. Indíce Algoritmo Elementos de un algoritmo: Variables, Constantes, Expresiones Datos: Definición y
Más detallesBases Formales de la Computación
Modal Bases Formales de la Computación Pontificia Universidad Javeriana 3 de abril de 2009 Modal LÓGICAS MODALES Contenido Modal 1 Modal 2 3 Qué es la lógica Modal? Modal Variedad de diferentes sistemas
Más detallesMANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6
MANUAL DE PRÁCTICAS DEL TALLER DE PROGRAMACIÒN PRACTICA NO.6 NOMBRE DE LA PRÁCTICA. Estructuras secuénciales 6.1 OBJETIVO GENERAL El alumno desarrollará la habilidad para diseñar algoritmos secuenciales,
Más detallesLenguaje de programación con JAVA
Pág. N. 1 Lenguaje de programación con JAVA Familia: Editorial: Autor: Tecnología de la información y computación Macro Eric Gustavo Coronel Castillo ISBN: 978-612-304-288-2 N. de páginas: 360 Edición:
Más detallesPrincipios de Programación en Java
Programa: Curso - Taller Principios de Programación en Java Fechas: 20, 21, 22, 23 y 24 de junio, 2016 de 16:00 a 19:00 hrs Lugar: Preparatoria Vespertina No 1. Centro de Cómputo Instructor del Curso:
Más detallesUNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS Y SISTEMAS PROGRAMA DEL CURSO DE INTRODUCCION A LA PROGRAMACION DE COMPUTACION 2 CODIGO: 771 CREDITOS: 5 ESCUELA: Ciencias
Más detallesDIAGRAMAS DE ACTIVIDAD SESION 9. Cap. 9 Kendall & Kendall Cap 5 Jacobson
DIAGRAMAS DE ACTIVIDAD Cap. 9 Kendall & Kendall Cap 5 Jacobson SESION 9 Ana Mercedes Cáceres mercycaceres@gmail.com Instructora: Carmen Morales Año 2006. OBJETIVOS Representar gráficamente los problemas
Más detallesDiferentes Perspectivas de un Ordenador
Arquitectura de Ordenadores Programación en ensamblador Abelardo Pardo abel@it.uc3m.es Universidad Carlos III de Madrid Departamento de Ingeniería Telemática Diferentes Perspectivas de un Ordenador INT-1
Más detallesPOSGRADO EN DESARROLLO DE APLICACIONES PARA ANDROID CON JAVA
DESCRIPCIÓN POSGRADO EN DESARROLLO DE APLICACIONES PARA ANDROID CON JAVA El desarrollo de aplicaciones de Android es la solución para cubrir las necesidades emergentes para empresas nuevas y existentes,
Más detallesDiplomado Programación orientada a objetos con C++ y UML. Las empresas necesitan contar con sistemas de información modernos, ágiles y de calidad para alcanzar sus objetivos y ser cada vez más competitivos
Más detallesTema 7. Generación de código
Departamento de Tecnologías de la Información Tema 7 Generación de código Ciencias de la Computación e Inteligencia Artificial Índice 7.1 Visión general 7.2 Código de tres direcciones 2 Índice 7.1 Visión
Más detallesUNIVERSIDAD DE GUADALAJARA
UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE LOS ALTOS DIVISIÓN DE ESTUDIOS EN FORMACIONES SOCIALES LICENCIATURA: INGENIERÍA EN COMPUTACIÓN UNIDAD DE APRENDIZAJE POR OBJETIVOS TALLER DE SISTEMAS
Más detalles2. Codificar de forma sistemática la secuencia de instrucciones en un lenguaje.
Modulo 1. Introducción a los lenguajes de programación La solución de problemas mediante en uso de un computador nos lleva a desarrollar programas o aplicaciones, la construcción de estos programas debe
Más detallesSISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009
SISTEMAS OPERATIVOS I (Sistemas) / SISTEMAS OPERATIVOS (Gestión) septiembre 2009 4. (2 p) Dos procesos A y B se ejecutan concurrentemente en un determinado sistema. El proceso A ejecuta unas tareas ( Tareas
Más detallesUnidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
Más detallesUNIVERSIDAD AUTÓNOMA DE CHIHUAHUA Clave: 08MSU0017H. Clave: 08USU4053W FACULTAD DE INGENIERÍA. Programa del curso: SISTEMAS OPERATIVOS
UNIVERSIDAD AUTÓNOMA DE CHIHUAHUA Clave: 08MSU0017H Clave: 08USU4053W FACULTAD DE INGENIERÍA Programa del curso: SISTEMAS OPERATIVOS DES: Ingeniería Programa(s) Educativo(s): Ingeniería de Software Tipo
Más detallesEvolución del software y su situación actual
Evolución del software y su situación actual El software es el conjunto de programas que permite emplear la PC, es decir, es el medio de comunicación con la computadora, el control de sus funciones y su
Más detallesProgramación Orientada a Objetos Profr. Pedro Pablo Mayorga
Actividad 3 Historia de los paradigmas de programación Unidad 1 Paradigma de programación Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No
Más detallesINTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS
INTRODUCCION A LA PROGRAMACIÓN ORIENTADA A OBJETOS Introducción La programación orientada a objetos es un enfoque de programación de los más populares y viene teniendo gran aceptación en el desarrollo
Más detallesde Gran Canaria Centro de Tecnología Médica Programación Concurrente
Universidad de Las Palmas de Gran Canaria Centro de Tecnología Médica http://www.ctm.ulpgc.es Tema 1: Introducción a la Escuela Técnica Superior de Ingenieros de Telecomunicación Conceptos Fundamentales
Más detallesUniversidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas
Universidad Centroccidental Lisandro Alvarado Decanato de Ciencias y Tecnología Departamento de Sistemas PROGRAMA INSTRUCCIONAL PROGRAMA: ANALISIS DE SISTEMAS DEPARTAMENTO: SISTEMAS ASIGNATURA: INTRODUCCIÓN
Más detallesGeneración de Código Intermedio
Generación de Código Intermedio Programación II Margarita Álvarez Generación de código intermedio Con la generación de código intermedio se inicia la tarea de síntesis. Aunque un programa fuente se puede
Más detallesALGORITMOS, ESTRUCTURAS Y PROGRAMACION
VICERRECTORADO ACADÉMICO DIRECCIÓN DE GESTIÓN, DESARROLLO E INNOVACIÓN CURRICULAR FACULTAD: INGENIERIA ESCUELAS: COMPUTACION - SISTEMA UNIDAD CURRICULAR: ALGORITMOS, ESTRUCTURAS Y PROGRAMACION FECHA DE
Más detallesEstructuras de control
Estructuras de control Introducción Los algoritmos vistos hasta el momento han consistido en simples secuencias de instrucciones; sin embargo, existen tareas más complejas que no pueden ser resueltas empleando
Más detallesResultado de Aprendizaje:
10. Matriz de Valoración o Rúbrica MATRIZ DE VALORACIÓN O RÚBRICA Siglema: PROO-02 Nombre del Módulo: Nombre del Alumno: Docente evaluador: Grupo: Fecha: Resultado de Aprendizaje: 1.1 Diseña modelos bajo
Más detallesUNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PROGRAMA DE ESTUDIO
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERÍA PROGRAMA DE ESTUDIO SISTEMAS OPERATIVOS 1554 5º 09 Asignatura Clave Semestre Créditos Ingeniería Eléctrica Ingeniería en Computación Ingeniería
Más detallesProgramación Funcional Lisp-DrScheme Primera Parte. Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional
Programación Funcional Lisp-DrScheme Primera Parte Dr. Oldemar Rodríguez Rojas Escuela de Informática Universidad de Nacional Programación Funcional! La programación funcional es un paradigma de programación
Más detallesCurso Programación Java JSE 7
Curso Programación Java JSE 7 Descripción: Nuestro curso Programación Java JSE 7 ofrece el curso de este nivel más completo, sin duda, en donde aprenderás la versión actual de Java, JSE 7, desde cero.
Más detallesUniversidad Autónoma de Baja California Facultad de Ciencias Administrativas Unidad Mexicali
SISTEMAS OPERATIVOS I Clave: 4595 HC: 3 HL: 2 HT: HPC: HCL: HE: CR: 8 Etapa de formación a la que pertenece: Básica Carácter de la Asignatura: Obligatoria PROPÓSITO GENERAL DEL CURSO Proporcionar al estudiante
Más detalles5. Sentencias selectivas o condicionales
60 A. García-Beltrán y J.M. Arranz 5. Sentencias selectivas o condicionales Objetivos: a) Describir el funcionamiento de las sentencias selectivas o condicionales (if-else y switch) b) Interpretar el resultado
Más detallesConcurrencia y paralelismo
Introducción a los Sistemas Operativos Concurrencia y paralelismo 1. Ejecución de programas. Procesos. 2. Multiprogramación Bibliografía Silberschatz and Galvin Sistemas Operativos. Conceptos fundamentales.
Más detallesAgradecimientos. Nota de los autores. 1 Problemas, algoritmos y programas 1
Prologo Agradecimientos Nota de los autores Índice general I III V VII 1 Problemas, algoritmos y programas 1 1.1 Programas y la actividad de la programación.................... 4 1.2 Lenguajes y modelos
Más detallesResolución de Problemas
Resolución de Problemas con algoritmos Colaboratorio de Computación Avanzada (CNCA) 2015 1 / 27 Contenidos 1 Introducción 2 Elementos de algoritmos Elementos Variables Estructuras de Control Condicionales
Más detallesTema: Autómata de Pila
Facultad: Ingeniería Escuela: Computación Asignatura: Compiladores 1 Tema: Autómata de Pila Contenido La presente guía aborda los autómatas de pila, y se enfoca en la aplicación que se le puede dar a estas
Más detallesINDICE Parte I. Conceptos 1. El estudio de los lenguajes de programación 2. Cuestiones de diseño de lenguajes
INDICE Parte I. Conceptos 1 1. El estudio de los lenguajes de programación 1.1. Por qué estudiar lenguajes de programación? 2 1.2. Breve historia de los lenguajes de programación 1.2.1. Desarrollo de los
Más detallesPREGUNTAS INFORMÁTICA MONITOR UPB EXAMEN 1
PREGUNTAS INFORMÁTICA MONITOR UPB EXAMEN 1 1. Cuál de los siguientes componentes no forma parte del esquema general de un ordenador? A Memoria Principal B Disco Duro C Unidad de Control D Unidad Aritmético
Más detallesProgramación concurrente
Programación concurrente Master de Computación I Conceptos y recursos para la programación concurrente: I.1 Motivación de la programación concurrente. J.M. Drake M. Aldea Motivación de la programación
Más detallesJava para no Programadores
Java para no Programadores Programa de Estudio Java para no Programadores Aprende a programar con una de las tecnologías más utilizadas en el mercado de IT. Este curso está orientado a quienes no tienen
Más detallesT5-multithreading. Indice
T5-multithreading 1.1 Indice Proceso vs. Flujos Librerías de flujos Comunicación mediante memoria compartida Condición de carrera Sección Crítica Acceso en exclusión mutua Problemas Abrazos mortales 1.2
Más detallesFundamentos de Sistemas Operativos
Fundamentos de Sistemas Operativos Sistemas Informáticos Fede Pérez Índice TEMA Fundamentos de Sistemas Operativos 1. - Introducción 2. - El Sistema Operativo como parte de un Sistema de Computación 2.1
Más detallesIngeniería del Software I
- 1 - Ingeniería del Software I 2do. Cuatrimestre 2005 INTRODUCCIÓN... 2 SEMÁNTICA... 2 NOTACIÓN... 3 ESTADO ACCIÓN... 3 Transiciones Simples... 3 Estados Acción Compuestos... 3 Estados Acción Iniciales
Más detallesUsando el Sistema Operativo
Sistemas Operativos Pontificia Universidad Javeriana Enero de 2010 Los sistemas operativos Los sistemas operativos Perspectivas del Computador Concepto general El sistema operativo es parte del software
Más detallesEs un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.
Los problemas que se plantean en la vida diaria suelen ser resueltos mediante el uso de la capacidad intelectual y la habilidad manual del ser humano. La utilización de la computadora en la resolución
Más detallesANX-PR/CL/ GUÍA DE APRENDIZAJE. ASIGNATURA Concurrencia. CURSO ACADÉMICO - SEMESTRE Segundo semestre
ANX-PR/CL/001-02 GUÍA DE APRENDIZAJE ASIGNATURA Concurrencia CURSO ACADÉMICO - SEMESTRE 2015-16 - Segundo semestre GA_10II_105000018_2S_2015-16 Datos Descriptivos Nombre de la Asignatura Titulación Centro
Más detallesPROGRAMA DE ASIGNATURA DE
Table of contents 1 INFORMACIÓN GENERAL... INTRODUCCIÓN... 3 OBJETIVOS GENERALES DE LA ASIGNATURA... 3 OBJETIVOS, TEMAS Y SUBTEMAS... 3 5 PLAN TEMÁTICO...7 6 ORIENTACIONES METODOLÓGICAS... 7 7 SISTEMA
Más detallesUNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI
UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI NOMBRE DE LA ASIGNATURA: PROGRAMACIÓN ORIENTADA A OBJETOS FECHA DE ELABORACIÓN: ENERO 2005 ÁREA DEL PLAN DE ESTUDIOS:
Más detallesJAVA 7 Los fundamentos del lenguaje Java
Presentación 1. Historia 9 1.1 Por qué Java? 9 1.2 Objetivos del diseño de Java 10 1.3 Auge de Java 11 2. Características de Java 12 2.1 El lenguaje de programación Java 12 2.1.1 Sencillo 13 2.1.2 Orientado
Más detallesDiseño arquitectónico 1ª edición (2002)
Unidades temáticas de Ingeniería del Software Diseño arquitectónico 1ª edición (2002) Facultad de Informática objetivo Los sistemas grandes se descomponen en subsistemas que suministran un conjunto relacionado
Más detallesDesarrollo de aplicaciones con JAVA, JCreator, JDeveloper NetBeans
Pág. N. 1 Desarrollo de aplicaciones con JAVA, JCreator, JDeveloper NetBeans Familia: Editorial: Autor: Tecnología de la Información y Computación Macro Manuel Torres Remon ISBN: 978-612-304-101-4 N. de
Más detallesEsta asignatura apoyará al alumno en la consecución de las siguientes competencias:
Nombre de la asignatura: Sistemas Operativos II Créditos: 3-2-5 Aportación al perfil Esta asignatura apoyará al alumno en la consecución de las siguientes competencias: Aplicar conocimientos científicos
Más detallesDESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA
DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA Nombre del Módulo: PROGRAMACIÓN EN JAVASCRIPT Código: CSTI0087 total: 51 Horas Objetivo General: Crear contenido web basado en
Más detallesPrograma de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET
Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET OBJETIVOS: Conocer de las bondades del paradigma de orientación a objetos en.net y su lenguaje
Más detallesSistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria
1.2. Jerarquía de niveles de un computador Qué es un computador? Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria Es un sistema tan complejo
Más detallesIntroducción Sistemas Operativos Avanzados
Introducción Sistemas Operativos Avanzados Utilizar una máquina al desnudo (sólo interactuando con el hardware) resulta engorroso e ineficiente debido a la gran cantidad de tareas que deben ser realizadas
Más detallesConfiguración Y Programación de Autómata MOELLER XC201 para Maqueta Industrial
Universidad de León Escuela de Ingenierías Industrial e Informática Titulación de Ingeniero Técnico Industrial (Especialidad en Electrónica, Regulación y Automatismos) Configuración Y Programación de Autómata
Más detalles23/09/2009. Introducción Hello word La familia Buendía Recursión Listas
Prolog Contenido Introducción Hello word La familia Buendía Recursión Listas Qué es Prolog? Lenguaje de programación Declarativo Programación lógica Está compuesto de: Hechos Reglas Declarativo vs Imperativo
Más detallesPROGRAMACIÓ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 detallesCompiladores: Generación de Código. Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. María Constanza Pabón
Compiladores: Generación de Código Pontificia Universidad Javeriana Cali Ingeniería de Sistemas y Computación Prof. María Constanza Pabón Generación de Código Representación Intermedia Tabla de Símbolos
Más detallesUniversidad Autónoma del Estado de México Facultad de Medicina
Universidad Autónoma del Estado de México Facultad de Medicina Licenciatura en Bioingeniería Médica Unidad de Aprendizaje: Algoritmos y programación básica Unidad 3: Estructuras de control de flujo en
Más detallesPrograma de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET 2010
Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET 2010 OBJETIVOS: Conocer de las bondades del paradigma de orientación a objetos en.net y su
Más detallesLa Máquina de Acceso Aleatorio (Random Access Machine)
La Máquina de Acceso Aleatorio (Random Access Machine) Nuestro modelo de cómputo secuencial es la máquina de acceso aleatorio (RAM, Random Access Machine) mostrada en la Figura 2.1, y que consiste de:
Más detallesESTRUCTURAS DE CONTROL
ESTRUCTURAS DE CONTROL En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de las instrucciones de un programa. Con las estructuras de control se puede: De
Más detallesINGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño
INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño Univ. Cantabria Fac. de Ciencias Patricia López Introducción al Diseño Modelamos la estructura software del sistema (incluida la arquitectura) para
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 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 detallesla solución a una ecuación cuadrática solicitando al usuario los términos de dicha ecuación.
ALGORITMOS SECUENCIALES: La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente
Más detallesModelos de Programación Paralela Prof. Gilberto Díaz
Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas Modelos de Programación Paralela Prof. Gilberto Díaz gilberto@ula.ve Departamento de Computación, Escuela de Sistemas, Facultad de Ingeniería
Más detallesFACULTAD DE INGENIERÍA
NOMBRE DEL PROFESOR: Ing. Héctor Manuel Quej Cosgaya NOMBRE DE LA PRÁCTICA: Estructuras de decisión PRÁCTICA NÚM. [ 5 ] LABORATORIO: MATERIA: UNIDAD: TIEMPO: Centro de Ingeniería Computacional Lenguaje
Más detalles1. Preparar al estudiante para desarrollar aplicaciones de software utilizando un enfoque orientado a objetos.
UNIVERSIDAD DE SAN CARLOS DE GUATEMALA FACULTAD DE INGENIERIA ESCUELA DE CIENCIAS NOMBRE DEL CURSO: Computación y Programación 2 CODIGO: 771 CREDITOS: 5 ESCUELA: Ciencias y Sistemas AREA A LA QUE PERTENECE:
Más detallesEvolución de la Programación Orientada a Objetos
Evolución de la Programación Orientada a Objetos Dr. Luis Gerardo de la Fraga Departamento de Computación Cinvestav Correo-e: fraga@cs.cinvestav.mx 7 de diciembre de 2006 Dr. Luis Gerardo de la Fraga Cinvestav
Más detalles2.2 Nombres, Ligado y Ámbito
2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el
Más detallesMaestría en Ingeniería Énfasis en Sistemas y Computación
Maestría en Ingeniería Énfasis en Sistemas y Computación Facultad de Ingeniería Pontificia Universidad Javeriana Cali Abril de 2008 Contenido 1 Objetivos 2 3 4 Objetivos (1) Formar investigadores con habilidades
Más detallesExamen. Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación. Segundo Semestre, 2003.
Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación Examen IIC 2222 Teoría de Autómatas y Lenguajes Formales Segundo Semestre, 2003 Este examen tiene
Más detallesComputación I Curso 2016 Facultad de Ingeniería Universidad de la República
Computación I Curso 2016 Facultad de Ingeniería Universidad de la República Octave Funciones Sucesión de comandos o instrucciones guardados en un archivo.m Posee características propias de las funciones
Más detallesIntroducción a PL/SQL
22/11/2016 Grupo de Ingeniería del Software y Bases de Datos Departamento de Lenguajes y Sistemas Informáticos Universidad de Sevilla Noviembre 2014 Objetivos de este tema Conocer el lenguaje procedimental
Más detallesAlgoritmos y programas. Algoritmos y Estructuras de Datos I
Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de
Más detallesTEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO. Definición y objetivos de un S.O
TEMA 3. CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO Definición y objetivos de un S.O Definición y objetivos del sistema operativo Estructura, componentes y servicios de un S.O Llamadas al sistema
Más detallesAUTOMATIZACIÓN INDUSTRIAL
Departamento de Ingenieria de Sistemas y Automática AUTOMATIZACIÓN INDUSTRIAL 1 AUTOMATIZACION INDUSTRIAL 2 AUTOMATIZACION INDUSTRIAL 3 AUTOMATAS PROGRAMABLES Surgen de la necesidad de controlar automáticamente
Más detallesProgramación con C Intermedio
Programa de Capacitación en Cómputo Semestre 2016-2 Programación con C Intermedio Instructor: P. I. Gutiérrez Chávez Cristóbal INFORMACIÓN GENERAL El lenguaje C es un lenguaje de programación estructurada
Más detalles