PARADIGMA y LENGUAJES DE PROGRAMACIÓN

Tamaño: px
Comenzar la demostración a partir de la página:

Download "PARADIGMA y LENGUAJES DE PROGRAMACIÓN"

Transcripción

1 CATEDRA CARRERA: PARADIGMA y LENGUAJES DE PROGRAMACIÓN LICENCIATURA EN SISTEMAS DE INFORMACION FACULTAD DE CIENCIAS EXACTAS QUIMICAS Y NATURALES UNIVERSIDAD NACIONAL DE MISIONES Año do Cuatrimestre

2 PARADIGMA y LENGUAJES DE PROGRAMACIÓN UNIDAD I: Programación Concurrente Algoritmos concurrentes, distribuidos y paralelos. Motivación y aspectos de la programación distribuida UNIDAD II: Metodología de programación paralela. Descomposición, asignación de procesadores. Modelos de sistemas paralelos. Modelos de programación paralela. Evaluación de rendimiento. UNIDAD III: Programación paralela. Computación orientada a redes. Variantes de sistemas cliente/servidor. La interfaz MPI. Programación en hebras con OpenMP. Introducción a la programación de hardware gráfico paralelo: CUDA

3 PARADIGMA y LENGUAJES DE PROGRAMACIÓN UNIDAD IV: Programación Funcional El paradigma funcional. Tipos de datos. Intervalos. Operadores Listas. Árboles. Evaluación perezosa. Estrategia y técnicas de la evaluación perezosa. Introducción al lenguaje Haskell UNIDAD V: Programación Lógica. El paradigma Lógico. Sintaxis y semántica. Lógica de primer Orden. Grafos, evaluación de expresiones. Unificación. Clausula Horn resolución SLD. Introducción al lenguaje Prolog.

4 UNIDAD I: Programación Concurrente La concurrencia es el acaecimiento de varios sucesos al mismo tiempo. Desde el punto de vista de la programación concurrente, se dice que dos sucesos son concurrentes si uno sucede entre el comienzo y el fin de otro.

5 UNIDAD I: Programación Concurrente La forma de ejecutar un programa concurrente puede variar en función del hardware disponible: Multiprogramación Sistemas con un único procesador. Los procesos deben compartir el tiempo de cómputo.

6 UNIDAD I: Programación Concurrente Multiproceso Sistemas donde hay varios procesadores. Es posible asignar diferentes procesadores a diferentes procesos.

7 Programación Concurrente IMPORTANTE: Notar que aunque se disponga de varios procesadores, es posible que el número de procesos de los programas que deben ejecutarse en ellos sobrepase el número de procesadores disponibles. En tal caso, podría necesitarse multiprogramación incluso aunque existiera multiproceso.

8 Programación Concurrente

9 En las ciencias de la computación, un algoritmo paralelo, es el que puede ser ejecutado por partes en el mismo instante de tiempo por varias unidades de procesamiento, para finalmente unir todas las partes y obtener el resultado.

10 Ejercicio: Realiza el producto escalar de dos vectores de forma paralela. El producto escalar de dos vectores se define la sumatoria del producto entre los elementos del vector

11 Solución:

12 Ejercicio: Crear un algoritmo que calcule todos los números primos entre 1 y 100

13 Ejercicio: Crear un algoritmo que calcule todos los números primos entre 1 y 100 Se podría dividir los números originales en subconjuntos y calcular los primos para cada uno de los subconjuntos de los números originales; al final, uniríamos todos los resultados y tendríamos la solución final del algoritmo.

14 Algunos algoritmos son fácilmente divisibles en partes, por el contrario, a veces los problemas no son tan fácilmente paralelizables (Metodologías)

15 Instrucciones atómicas e intercalación Los procesos se definen de forma similar a un procedimiento. Un proceso puede recibir parámetros, tanto por valor como por referencia. Estos últimos pueden ser compartidos por diferentes procesos (si la misma referencia es pasada a todos ellos). Por ejemplo, el siguiente fragmento de código en PascalFC define un proceso que escribe por pantalla el valor de una variable:

16 Instrucciones atómicas e intercalación Una vez definido un proceso es posible declarar una o varias variables de tipo proceso en la sección de declaración de variables del programa principal. En el ejemplo anterior, se podría considerar declarar dos variables de tipo proceso print, p1 y p2 de la siguiente manera:

17 Instrucciones atómicas e intercalación En ejecución, se crearán dos procesos que ejecutarán la misma secuencia de instrucciones. Éste no tiene porqué ser siempre el caso, y como se verá más adelante un programa puede contener procesos que ejecutan acciones diferentes. P.P. P1 P2

18 Instrucciones atómicas e intercalación Es importante notar que el orden en el que aparecen los procesos dentro de este bloque no es importante: los procesos se iniciarán en orden aleatorio. La ejecución del bloque no termina hasta que todos los procesos hayan terminado. A continuación se presenta el programa completo: P.P. P2 P1

19 Instrucciones atómicas e intercalación

20 Instrucciones atómicas e intercalación Cuando se desarrollan programas concurrentes es especialmente importante conocer la secuencia de instrucciones que se ejecutan. En el ejemplo anterior, el hecho de que los procesos p1 y p2 se ejecuten concurrentemente quiere decir que sus instrucciones pueden ejecutarse en cualquier orden. En principio, dado que cada uno de ellos ejecuta solamente una instrucción, podría pensarse que el programa sólo puede producir dos salidas diferentes:

21 Instrucciones atómicas e intercalación Sin embargo, este programa puede producir en total cuatro salidas diferentes: Como se puede observar, en las dos últimas ejecuciones se intercalan las salidas de los procesos. Esto se debe a que la instrucción write, cuando recibe dos (o más) argumentos, se ejecuta realmente como dos (o más) instrucciones de escritura.

22 Instrucciones atómicas e intercalación En cambio, la instrucción write con un sólo argumento se ejecuta como una instrucción atómica.

23

24 Instrucciones atómicas e intercalación Las instrucciones atómicas son aquellas que son ejecutadas completamente antes de que se ejecute cualquier otra instrucción de cualquier otro proceso del programa. Por tanto, podemos estar seguros de que la cadena Soy el proceso se escribirá completamente en pantalla antes de que cualquier otra instrucción puede ejecutarse.

25 Instrucciones atómicas e intercalación La única manera de saber qué resultados puede producir un programa paralelo es estudiar todas las posibles intercalaciones, es decir, todas las posibles secuencias de instrucciones atómicas de los procesos que se pueden dar. En el programa anterior, el número de intercalaciones es relativamente pequeño, pero en programas más grandes esta opción puede no ser viable. Programación Paralela

26 Instrucciones atómicas e intercalación A la hora de construir algoritmos paralelos es especialmente importante, conocer qué instrucciones del lenguaje son realmente instrucciones atómicas y cuáles no.

27 Con algoritmos paralelos es más rápido tratar grandes tareas de computación que mediante técnicas secuenciales.

28 Esta es la forma en que se trabaja en el desarrollo de los procesadores modernos, ya que es más difícil incrementar la capacidad de procesamiento con un único procesador que aumentar su capacidad de cómputo mediante la inclusión de unidades en paralelo, logrando así la ejecución de varios flujos de instrucciones dentro del procesador. VS.

29 Pero hay que ser cauto con la excesiva paralelización ya que cada algoritmo paralelo tiene una parte secuencial y debido a esto, los algoritmos paralelos puedes llegar a un punto de saturación (Ley de Amdahl). Por todo esto, a partir de cierto nivel de paralelismo, añadir más unidades de procesamiento puede sólo incrementar el costo (planificación, comunicación).

30 El coste o complejidad de los algoritmos secuenciales se estima en términos del espacio (memoria) y tiempo (ciclos de procesador) que requiera. Los algoritmos paralelos también necesitan optimizar la comunicación entre diferentes unidades de procesamiento. Esto se consigue mediante la aplicación de dos paradigmas de programación y diseño de procesadores distintos: Memoria compartida. Paso de mensajes.

31

32 La técnica memoria compartida necesita del uso de semáforos o cerrojos en los datos para impedir que se modifique simultáneamente por dos procesadores, por lo que se produce un costo extra en ciclos de CPU. También obliga a serializar alguna parte del algoritmo. La técnica paso de mensajes usa canales y mensajes pero esta comunicación añade un costo, memoria adicional para las colas y los mensajes, así como la latencia en el mensaje.

33 Algoritmos distribuidos Una subclase de los algoritmos paralelos, son los algoritmos distribuidos. Estos están diseñados para trabajar en entornos tipo clusters y de computación distribuida, donde se usan otras técnicas, fuera del alcance de los algoritmos paralelos clásicos.

34 Algoritmos distribuidos Por lo general son procesadores geográficamente situados en diferentes lugares o un conjunto de maquinas independientes conectadas por una red. Estas entidades concurrentes tienen las siguientes características: - No comparten memoria - Sincronización en torno a comunicación - Son sistemas altamente escalables

35 Algoritmos distribuidos Conexión de ordenadores mediante red de interconexión. Multicomputadores. Cada ordenador con su memoria local y su propio espacio de direcciones. Como ejemplos de implementación de programas distribuidos podemos citar a los modelos de paso de mensajes con primitivas de comunicación send/receive:

36 Algoritmos distribuidos Conexión de ordenadores de uso convencional (monoprocesador o multiprocesador) mediante una red de interconexión de alta velocidad donde el conjunto se ve como un único ordenador.

37 Algoritmos distribuidos Otra propuesta de programación distribuida es Modelo RMI (Remote method invocation), que permite al programador invocar procedimientos remotos.

38 GUIA TP UNIDAD I Ejercicio 1 a) Que diferencia existe entre la multiprogramación y el multiproceso? b) Describa que es una instrucciones atómica y que es la intercalación? c) Considera a:=a+1 una instrucción atómica? Justifique la respuesta. d) Que podría pasar si dos procesos ejecutaran en paralelo la instrucción a:=a+1. Ejercicio 2 Investigar como instalar lenguaje PascalFC en su sistema operativo. Lectura recomendada por la cátedra: página del Ing. John Coppens

39 GUIA TP UNIDAD I Ejercicio 3 a) Implemente el ejercicio de la diapositiva 10 en PascalFC b) Al ejecutarlo varias veces que sucede con la salida del mismo? Ejercicio 4 Investigar: a) Que son los Semáforos en la programación paralela? b) Para que sirven? c) Cuales son sus instrucciones y para que se utiliza cada una? Ejercicio 5 Investigue e implemente una solución en PascalFC con semáforos al problema de la salida detectada en el ejercicio 3.

40 REFERENCIAS Libro Francisco Gortázar Bellas y otros. Lenguajes de Programación y Procesadores. Capitulo 3.5 Aula Virtual Daniel Guerrero Martínez. Universidad de Granada España. Disponible en: Página del Ing. John Coppens. Disponible en:

Programación Concurrente y Paralela. Unidad 1 Introducción

Programación Concurrente y Paralela. Unidad 1 Introducción Programación Concurrente y Paralela Unidad 1 Introducción Contenido 1.1 Concepto de Concurrencia 1.2 Exclusión Mutua y Sincronización 1.3 Corrección en Sistemas Concurrentes 1.4 Consideraciones sobre el

Más detalles

Evolución del software y su situación actual

Evolució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 detalles

Concurrencia. Concurrencia

Concurrencia. Concurrencia Concurrencia Procesos y hebras Concurrencia Programación concurrente Por qué usar hebras y procesos? Ejecución de procesos Ejecución de hebras Hebras vs. Procesos Creación y ejecución de hebras La prioridad

Más detalles

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías:

Con estas consideraciones, Flynn clasifica los sistemas en cuatro categorías: Taxonomía de las arquitecturas 1 Introducción Introducción En este trabajo se explican en detalle las dos clasificaciones de computadores más conocidas en la actualidad. La primera clasificación, es la

Más detalles

Arquitectura de Computadoras. Clase 9 Procesamiento paralelo

Arquitectura de Computadoras. Clase 9 Procesamiento paralelo Arquitectura de Computadoras Clase 9 Procesamiento paralelo Introducción al procesamiento paralelo Sea cual sea el nivel de prestaciones, la demanda de máquinas de mayor rendimiento seguirá existiendo.

Más detalles

Hilos Secciones Stallings:

Hilos Secciones Stallings: Capítulo 4 Hilos Secciones Stallings: 4.1 4.3 Contenido Procesos e hilos. Hilos a nivel de núcleo y a nivel de usuario. Multiprocesador simétrico (SMP). Micronúcleos. 1 Proceso Unidad de propiedad de los

Más detalles

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS

TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS TEMA 9. SISTEMAS OPERATIVOS DISTRIBUIDOS Introducción Hardware Software Aspectos de diseño 1 Introducción Aparecen en los 80 Desarrollo de Microprocesadores LAN Sistemas Distribuidos: Gran nº de procesadores

Más detalles

Introducción a los Sistemas Operativos

Introducción a los Sistemas Operativos Introducción a los Sistemas Operativos Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria [email protected] 1 Índice General Conceptos sobre ordenadores Concepto

Más detalles

Lusitania. Pensando en Paralelo. César Gómez Martín

Lusitania. Pensando en Paralelo. César Gómez Martín Lusitania Pensando en Paralelo César Gómez Martín [email protected] www.cenits.es Esquema Introducción a la programación paralela Por qué paralelizar? Tipos de computadoras paralelas Paradigmas de

Más detalles

Tema 12: El sistema operativo y los procesos

Tema 12: El sistema operativo y los procesos Tema 12: El sistema operativo y los procesos Solicitado: Tarea 06 Arquitecturas de una computadora y el funcionamiento del software M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected]

Más detalles

Sistemas Operativos- Evolución Histórica

Sistemas Operativos- Evolución Histórica Esquema Primeros Computadores Accesos por operador Secuencia automática de trabajos Mejora del rendimiento Multiprogramación Proceso distribuído Multiproceso Primeros Computadores Lenguaje Máquina Monoprogramación

Más detalles

Tipos de Diseño. Ing. Elizabeth Guerrero V.

Tipos de Diseño. Ing. Elizabeth Guerrero V. Tipos de Diseño Ing. Elizabeth Guerrero V. Tipos de Diseño Tipos de diseño de Procesos: Centralizado, Distribuido y Cooperativo Procesos Centralizados Un sistema centralizado está formado por un computador

Más detalles

Sistema electrónico digital (binario) que procesa datos siguiendo unas instrucciones almacenadas en su memoria

Sistema 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 detalles

Diseño de algoritmos paralelos

Diseño de algoritmos paralelos Diseño de algoritmos paralelos Curso 2011-2012 Esquema del capítulo Visión general de algunos algoritmos serie. Algoritmo paralelo vs. Formulación paralela Elementos de un Algoritmo paralelo Métodos de

Más detalles

Tema: Herencia en C#.

Tema: Herencia en C#. Programación II. Guía No. 8 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Herencia en C#. Objetivos Crear clases a través de la herencia de clases existentes. Describir

Más detalles

de Gran Canaria Centro de Tecnología Médica Programación Concurrente

de 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 detalles

UNIDAD II Metodología de programación paralela. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM

UNIDAD II Metodología de programación paralela. Lic. Jesús Germán Andrés PAUTSCH - FCEQyN - UNaM UNIDAD II Metodología de programación paralela UNIDAD II: Metodología de programación paralela Metodología de programación paralela Algunos conceptos que nos ayudarán a entender mejor el tema. Modelos

Más detalles

Sistemas Operativos. Un sistema operativo es un conjunto de programas de computadora diseñados especialmente para cubrir los siguientes objetivos:

Sistemas Operativos. Un sistema operativo es un conjunto de programas de computadora diseñados especialmente para cubrir los siguientes objetivos: Qué es un Sistema Operativo? Sistemas Operativos Un sistema operativo es un conjunto de programas de computadora diseñados especialmente para cubrir los siguientes objetivos: 1. Servir como interfaz entre

Más detalles

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL

TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL 1 TECNICO SUPERIOR EN INFORMÁTICA EMPRESARIAL MÓDULO INTRUCCIONAL TECNOLOGÍA DE LA COMPUTADORA FACILITADOR: PARTICIPANTE: DAVID, CHIRIQUÍ 2015 2 Qué es un programa? Un programa informático es un conjunto

Más detalles

Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e instrucciones para que la computadora los ejecute.

Es 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 detalles

Las optimizaciones pueden realizarse de diferentes formas. Las optimizaciones se realizan en base al alcance ofrecido por el compilador.

Las optimizaciones pueden realizarse de diferentes formas. Las optimizaciones se realizan en base al alcance ofrecido por el compilador. Unidad III: Optimización Las optimizaciones pueden realizarse de diferentes formas. Las optimizaciones se realizan en base al alcance ofrecido por el compilador. La optimización va a depender del lenguaje

Más detalles

Unidad VII Optimización. M.C. Juan Carlos Olivares Rojas

Unidad VII Optimización. M.C. Juan Carlos Olivares Rojas Unidad VII Optimización M.C. Juan Carlos Olivares Rojas Agenda 7.1 Tipos de optimización. 7.1.1 Locales. 7.1.2 Bucles. 7.1.3 Globales. 7.1.4 De mirilla. 7.2 Costos. 7.2.1 Costo de ejecución. 7.2.2 Criterios

Más detalles

Modelos de computadores paralelos

Modelos de computadores paralelos Modelos de computadores paralelos Domingo Giménez Departamento de Informática y Sistemas Universidad de Murcia, Spain dis.um.es/~domingo Universidad de Murcia 1 Contenido Programación paralela Modelos

Más detalles

Concurrencia y paralelismo

Concurrencia 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 detalles

1. Introducción 2. S.O. de Red. NFS 3. S.O. Distribuidos 4. Características de Diseño. Tema5: Sistemas Operativos Distribuidos

1. Introducción 2. S.O. de Red. NFS 3. S.O. Distribuidos 4. Características de Diseño. Tema5: Sistemas Operativos Distribuidos Tema 5: Sistemas Operativos Distribuidos 1. Introducción 2. S.O. de Red. NFS 3. S.O. Distribuidos 4. Características de Diseño 1 1. Introducción Sistema Informático Distribuido: Colección de S.I. autónomos

Más detalles

INDICE 1. Introducción 2. Entrada / Salida: Principios y Programación 3. Procesos

INDICE 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 detalles

Universidad Autónoma del Estado de México Facultad de Medicina

Universidad 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 detalles

TEMA 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 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 detalles

Introducción a los sistemas operativos. Ing Esp Pedro Alberto Arias Quintero

Introducción a los sistemas operativos. Ing Esp Pedro Alberto Arias Quintero Introducción a los sistemas operativos Ing Esp Pedro Alberto Arias Quintero Unidad 1: Conceptos generales de Sistemas Operativos. Tema 1: Introducción: 1.1 Introducción: Qué es un sistema operativo?. 1.2

Más detalles

La Máquina de Acceso Aleatorio (Random Access Machine)

La 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 detalles

Introducción a la programación: Contenido. Introducción

Introducción a la programación: Contenido. Introducción Introducción a la programación: Contenido Introducción a la programación:... 1 Introducción... 1 1. Procesamiento automatizado de información... 1 2. Concepto de algoritmo.... 2 3. Lenguajes de programación....

Más detalles

Herramientas Informáticas I Software: Sistemas Operativos

Herramientas Informáticas I Software: Sistemas Operativos Herramientas Informáticas I Software: Sistemas Operativos Facultad de Ciencias Económicas y Jurídicas Universidad Nacional de La Pampa Sistemas Operativos. Es el software base que permite trabajar como

Más detalles

Sistemas Operativos. Introducción. Tema 6

Sistemas Operativos. Introducción. Tema 6 Sistemas Operativos Introducción Qué es un sistema operativo? Ubicación de un sistema operativo en un computador Descripción de un sistema operativo: Funcional Estructural Realización Funciones de los

Más detalles

Unidad 4 - Procesamiento paralelo. Arquitectura de computadoras. D o c e n t e : E r n e s t o L e a l. E q u i p o : J e s s i c a F i e r r o

Unidad 4 - Procesamiento paralelo. Arquitectura de computadoras. D o c e n t e : E r n e s t o L e a l. E q u i p o : J e s s i c a F i e r r o Unidad 4 - Procesamiento paralelo. D o c e n t e : E r n e s t o L e a l E q u i p o : J e s s i c a F i e r r o L u i s N a v e j a s Arquitectura de computadoras Introducción Cuestionario Conclusiones

Más detalles

Tecnología de software para sistemas de tiempo real

Tecnología de software para sistemas de tiempo real 1 dit UPM Tecnología de software para sistemas de tiempo real Juan Antonio de la Puente DIT/UPM Motivación Las herramientas y la tecnología de software que se usan para construir otros tipos de sistemas

Más detalles

IFCD0111 Programación en Lenguajes Estructurados de Aplicaciones de Gestión

IFCD0111 Programación en Lenguajes Estructurados de Aplicaciones de Gestión IFCD0111 Programación en Lenguajes Estructurados de Aplicaciones de Gestión 1. MÓDULO 1. MF0223_3 SISTEMAS OPERATIVOS Y APLICACIONES INFORMÁTICAS UNIDAD FORMATIVA 1. UF1465 COMPUTADORES PARA BASES DE DATOS

Más detalles

Sistemas Operativos. Dr. Wenceslao Palma M.

Sistemas Operativos. Dr. Wenceslao Palma M. Sistemas Operativos Dr. Wenceslao Palma M. www.inf.ucv.cl/~wpalma/so Introducción a los Sistemas Computacionales Un vistazo de alto nivel caracteriza a un sistema computacional

Más detalles

Programación Distribuida y Tiempo Real

Programación Distribuida y Tiempo Real Programación Distribuida y Tiempo Real Año 2016 Carrera: Licenciatura en Informática Plan 2015 Año: 3 Duración: Semestral Profesor: Fernando G. Tinetti FUNDAMENTACION: Se presenta el contexto y los conceptos

Más detalles

Programación de Ordenadores

Programación de Ordenadores Programación de Ordenadores Ingeniería Química David Pelta Depto de Ciencias de la Computación e I.A. Universidad de Granada Índice Resolución de Problemas con Ordenadores Algoritmo Metodología de la programación

Más detalles

Capítulo 2. Sistemas Operativos. Elementos, estructura y funciones generales.

Capítulo 2. Sistemas Operativos. Elementos, estructura y funciones generales. Capítulo 2. Sistemas Operativos. Elementos, estructura y funciones generales. 1. Concepto de Sistema Operativo. 2. Evolución histórica. 3. Tipos de Sistemas Operativos. 4. Estructura de un Sistema Operativo.

Más detalles

Unidad I: Organización del Computador. Ing. Marglorie Colina

Unidad I: Organización del Computador. Ing. Marglorie Colina Unidad I: Organización del Computador Ing. Marglorie Colina Arquitectura del Computador Atributos de un sistema que son visibles a un programador (Conjunto de Instrucciones, Cantidad de bits para representar

Más detalles

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo

Métodos para escribir algoritmos: Diagramas de Flujo y pseudocódigo TEMA 2: CONCEPTOS BÁSICOS DE ALGORÍTMICA 1. Definición de Algoritmo 1.1. Propiedades de los Algoritmos 2. Qué es un Programa? 2.1. Cómo se construye un Programa 3. Definición y uso de herramientas para

Más detalles

Programación concurrente

Programació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 detalles

ARQUITECTURA DE VON NEUMANN Y HARVARD

ARQUITECTURA DE VON NEUMANN Y HARVARD ARQUITECTURA DE VON NEUMANN Y HARVARD ARQUITECTURA VON NEUMANN En esta arquitectura se observa que las computadoras utilizan el mismo dispositivo de almacenamiento para datos e instrucciones conectados

Más detalles

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;)

Fundamentos PHP. El término puntuación nos referimos a la sintaxis usada en PHP para la terminación de una línea de código (;) Tags Fundamentos PHP La Sintaxis de PHP se deriva de muchos lenguajes de programación principalmente de C pero Perl también ha tenido mucha influencia en esta sintaxis Con las últimas incorporaciones agregadas,

Más detalles

TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS.

TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. 1 TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS. 1- Cuáles son las principales funciones de un sistema operativo? Los Sistemas Operativos tienen como objetivos o funciones principales lo siguiente; Comodidad;

Más detalles

Planificación con prioridades

Planificación con prioridades dit UPM Planificación con prioridades Juan Antonio de la Puente DIT/UPM Copyright 2007, Juan Antonio de la Puente Planificación El objetivo de los métodos de planificación (scheduling) es repartir el tiempo

Más detalles

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

UNIDAD 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 detalles

PREGUNTAS INFORMÁTICA MONITOR UPB EXAMEN 1

PREGUNTAS 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 detalles

Programación MODULAR: Subalgoritmos - funciones y procedimientos

Programación MODULAR: Subalgoritmos - funciones y procedimientos Programación MODULAR: Subalgoritmos - funciones y procedimientos Uno de los métodos fundamentales para resolver un problema es dividirlo en problemas más pequeños, llamados subproblemas. Estos problemas

Más detalles

MINUTA: Taller en UAEMEX, Toluca. Construcción de Tecnología HPC

MINUTA: Taller en UAEMEX, Toluca. Construcción de Tecnología HPC MINUTA: Taller en UAEMEX, Toluca Construcción de Tecnología HPC de MESA: Taller DE construcción de Tacnología HPC Sesión: # 1 a la 5 INFORMACIÓN GENERAL FECHA: 213 al 17 de julio 2015 Construcción de Tecnología

Más detalles

CAPITULO ALGORITMOS Y PROGRAMAS CONTENIDO

CAPITULO ALGORITMOS Y PROGRAMAS CONTENIDO CAPITULO 1 ALGORITMOS Y PROGRAMAS CONTENIDO 1.1. Los sistemas de procesamiento de la información. 1.2. Concepto de algoritmo. 1.3. Los lenguajes de programación. 1.4. Datos, tipos de datos y operaciones

Más detalles

Cómputo paralelo con openmp y C

Cómputo paralelo con openmp y C Cómputo paralelo con openmp y C Sergio Ivvan Valdez Peña Guanajuato, México. 13 de Marzo de 2012 Sergio Ivvan Valdez Peña Cómputo Guanajuato, paralelo conméxico. openmp y () C 13 de Marzo de 2012 1 / 27

Más detalles

Memoria. Organización de memorias estáticas.

Memoria. Organización de memorias estáticas. Memoria 1 Memoria Organización de memorias estáticas. 2 Memoria En memoria físicas con bus de datos sea bidireccional. 3 Memoria Decodificación en dos niveles. 4 Necesidad de cantidades ilimitadas de memoria

Más detalles

Procesamiento Paralelo

Procesamiento Paralelo Procesamiento Paralelo Arquitecturas de Computadoras Paralelas Javier Iparraguirre Universidad Tecnológica Nacional, Facultad Regional Bahía Blanca 11 de Abril 461, Bahía Blanca, Argentina [email protected]

Más detalles

Arquitecturas cliente/servidor

Arquitecturas cliente/servidor Arquitecturas cliente/servidor Creación de Sockets Cliente Servidor 1 Creación de Sockets Cliente/Servidor Sockets en TCP Concepto de Hilos Definición de DAEMON Sockets en UDP 2 THREADS 3 Qué es un thread?

Más detalles

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Algoritmos 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 detalles

1. Secuencia y temporalización de los contenidos.

1. Secuencia y temporalización de los contenidos. 1. Secuencia y temporalización de los contenidos. Secuencia de los contenidos Bloque 1. La sociedad de la información y el ordenador Las tecnologías de la información y la comunicación. Campos de aplicación.

Más detalles

EVOLUCIÓN DE LOS PROCESADORES

EVOLUCIÓN DE LOS PROCESADORES EVOLUCIÓN DE LOS PROCESADORES Lecturas recomendadas: * Tanembaum, A. Organización de computadoras. Cap. 1 * Stallings, W. Organización y arquitectura de computadores. Cap. 2 Arquitectura de una computadora

Más detalles

Sistemas Distribuidos. Soporte de Sistemas Operativos

Sistemas Distribuidos. Soporte de Sistemas Operativos Soporte de Sistemas Operativos Soporte de Sistemas Operativos Soporte de Sistemas Operativos Soporte de Sistemas Operativos Tareas principales de un SO: Administrar recursos Proveer abstracciones de los

Más detalles

ESTRUCTURAS CICLICAS

ESTRUCTURAS CICLICAS ESTRUCTURA DE CONTENIDOS 1.ESTRUCTURAS CICLICAS 1.1. La Estructura Cíclica PARA. 1.2. La Estructura Cíclica MIENTRAS. 1.3. La Estructura Cíclica REPITA. 2. Armando el rompecabezas con estructuras de programación

Más detalles

Tema 1: Programación Multiproceso. Curso

Tema 1: Programación Multiproceso. Curso Tema 1: Programación Multiproceso. Curso 2012-2013 1 Patricia Hurtado Sayas Índice de contenidos: 1. Elementos funcionales de un SI. Repaso. 2. Concepto de Proceso o Tarea. 1. PCB, Bloque de Control de

Más detalles

Sesión 7. Cálculo Paralelo en Elmer

Sesión 7. Cálculo Paralelo en Elmer Sesión 7. Cálculo Paralelo en Elmer M. Meis y F. Varas Departamento de Matemática Aplicada II Universidad de Vigo Introducción a Elmer, sofware libre de simulación numérica multifísica A Coruña, 27 de

Más detalles

Clasificación n de los Sistemas Operativos. Clasificación de los SO Estructuras de los SO Modos de procesamiento

Clasificación n de los Sistemas Operativos. Clasificación de los SO Estructuras de los SO Modos de procesamiento Clasificación n de los Sistemas Operativos Contenidos Clasificación de los SO Estructuras de los SO Modos de procesamiento Se pueden clasificar en Sistemas monolíticos Sistemas por capas Sistemas cliente/servidor

Más detalles

Capítulo 3. Procesos concurrentes 3.1. Conceptos de programación concurrente La computación concurrente es la simultaneidad en la ejecución de

Capítulo 3. Procesos concurrentes 3.1. Conceptos de programación concurrente La computación concurrente es la simultaneidad en la ejecución de Capítulo 3. Procesos concurrentes 3.1. Conceptos de programación concurrente La computación concurrente es la simultaneidad en la ejecución de múltiples tareas interactivas. Estas tareas pueden ser un

Más detalles

Hoja de respuestas. Examen tipo A

Hoja de respuestas. Examen tipo A Hoja de respuestas. Examen tipo A Cuestiones 1. La memoria virtual nos permite: Emular la RAM mediante la utilización de los dispositivos de almacenamiento Tener una memoria de capacidad infinita en nuestro

Más detalles

Convivencia Introducción

Convivencia Introducción Convivencia Introducción Dra. Carolina Mañoso Dpto. Informática y Automática.UNED Definición (1/3) El sistema operativo como máquina virtual o extendida: Un sistema operativo es una serie de componentes

Más detalles

TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN I

TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN I TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN I MATERIALES: Como referencia para el seguimiento de la asignatura se utilizará el texto de la editorial ANAYA. Título: Tecnologías de la Información y la

Más detalles

Programación en Lenguajes Estructurados de Aplicaciones de Gestión. Certificados de profesionalidad

Programación en Lenguajes Estructurados de Aplicaciones de Gestión. Certificados de profesionalidad Programación en Lenguajes Estructurados de Aplicaciones de Gestión Certificados de profesionalidad Ficha Técnica Categoría Informática y Programación Referencia 33002-1404 Precio 170.36 Euros Sinopsis

Más detalles

Paradigma de paso de mensajes

Paradigma de paso de mensajes Paradigma de paso de mensajes Curso 2011-2012 Índice Visión lógica del paradigma de paso de mensajes. Operaciones básicas en paso de mensajes. Operaciones bloqueantes. Operaciones no bloqueantes. MPI:

Más detalles

TEMA 1: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS

TEMA 1: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS TEMA 1: INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS 1. Definición, funciones y objetivos de un SO. 1.1. Sistema Informático 1.2. Definiciones de Sistema Operativo 1.3. Objetivos y/o funciones de un SO 1.4.

Más detalles

Facultad de Ingeniería Industrial y de Sistemas v1.1 Pre Maestría LENGUAJES DE PROGRAMACION

Facultad de Ingeniería Industrial y de Sistemas v1.1 Pre Maestría LENGUAJES DE PROGRAMACION LENGUAJES DE PROGRAMACION Preparado por: Angel Chata Tintaya ([email protected]) I. LENGUAJES DE PROGRAMACION 1. El hombre se comunica en su sociedad mediante el lenguaje natural; hablado, escrito,

Más detalles

I.S.F.T. Nº 38 Programación I página 1

I.S.F.T. Nº 38 Programación I página 1 Programación I página 1 Una persona piensa y se comporta obedeciendo a un secuencial lógico. Un computador realiza tareas y maneja datos en memoria obedeciendo a una secuencia de pasos lógicos para lo

Más detalles

Guía práctica de estudio 05: Diagramas de flujo

Guía práctica de estudio 05: Diagramas de flujo Guía práctica de estudio 05: Diagramas de flujo Elaborado por: M.C. Edgar E. García Cano Ing. Jorge A. Solano Gálvez Revisado por: Ing. Laura Sandoval Montaño Guía práctica de estudio 05: Diagramas de

Más detalles

RECORDAR TIPOS DE DATOS

RECORDAR TIPOS DE DATOS RECORDAR TIPOS DE DATOS VARIABLES: OBJETO CUYO valor cambia: A510 nombres NOTAS Int A=0; float B=1; CONSTANTES: OBJETO cuyo valor no cambia PI= 3.14159 LAS COMAS NO SE PERMITEN Int PI=3.1415 EXPRESIONES:

Más detalles

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA SÍLABO

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL FACULTAD DE INGENIERÍA ELECTRÓNICA E INFORMÁTICA SÍLABO SÍLABO ASIGNATURA: SISTEMAS OPERATIVOS CODIGO: 8E0003 I. DATOS GENERALES: 1.1 Departamento Académico : Ingeniería Electrónica e Informática 1.2 Escuela Profesional : Ingeniería Informática 1.3 Ciclo de

Más detalles

Fundamentos de Sistemas Operativos Licenciatura en Administración de Tecnologías de Información y Comunicaciones

Fundamentos de Sistemas Operativos Licenciatura en Administración de Tecnologías de Información y Comunicaciones Fundamentos de Sistemas Operativos Licenciatura en Administración de Tecnologías de Información y Comunicaciones Rafael Vázquez Pérez Unidad 2 Administración de la Memoria Asignación de memoria paginada

Más detalles

Pontificia Universidad Católica del Ecuador

Pontificia Universidad Católica del Ecuador 1. DATOS INFORMATIVOS: FACULTAD DE INGENIERÍA ESCUELA DE SISTEMAS MATERIA O MÓDULO: Sistemas Operativos CÓDIGO: IS603.a CARRERA: INGENIERÍA DE SISTEMAS NIVEL: TERCERO No. CRÉDITOS: 4 CRÉDITOS TEORÍA: 4

Más detalles

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria

Sistemas operativos. Hasta ahora hemos visto. Relación programa-sistema operativo Gestión de memoria Sistemas operativos UPCO ICAI Departamento de Electrónica y Automática 1 Hasta ahora hemos visto Relación programa-sistema operativo Gestión de memoria Reserva para la ejecución Pilas, heap, memoria de

Más detalles

1.1. Modelos de arquitecturas de cómputo: clásicas, segmentadas, de multiprocesamiento.

1.1. Modelos de arquitecturas de cómputo: clásicas, segmentadas, de multiprocesamiento. 1.1. Modelos de arquitecturas de cómputo: clásicas, segmentadas, de multiprocesamiento. Arquitecturas Clásicas. Estas arquitecturas se desarrollaron en las primeras computadoras electromecánicas y de tubos

Más detalles

Técnicas de Programación

Técnicas de Programación Técnicas de Programación 2.1.- Introducción: unos conceptos previos y primeros conceptos de la API Introducción La resolución de un problema con medios informáticos implica generalmente la siguiente secuencia

Más detalles

Introducción a la programación

Introducción a la programación Introducción a la programación Conceptos Básicos El objetivo fundamental de éste curso es enseñar a resolver problemas mediante una computadora. El programador de computadoras es antes que nada una persona

Más detalles

Funcionamiento de la computadora

Funcionamiento de la computadora Funcionamiento de la computadora La computadora es una maquina destinada a procesar datos. Este procesamiento involucra dos flujos de información: el de datos y el de instrucciones. Se parte del flujo

Más detalles

Planificaciones Algoritmos y Programación I. Docente responsable: AZCURRA DIEGO ANDRES. 1 de 5

Planificaciones Algoritmos y Programación I. Docente responsable: AZCURRA DIEGO ANDRES. 1 de 5 Planificaciones 7540 - Algoritmos y Programación I Docente responsable: AZCURRA DIEGO ANDRES 1 de 5 OBJETIVOS Objetivos estratégicos: -Desarrollar el concepto algorítmico. -Aplicar técnicas de programación

Más detalles

Tema 1: Principios de Java

Tema 1: Principios de Java Tema 1: Principios de Java 0 Definición de java Java (del idioma indonesio: JAWA) Isla más poblada del archipiélago indonesio. Una variedad del grano de café producido en la isla de Java. Lenguaje de programación

Más detalles

Tema: Clases y Objetos en C#. Parte II.

Tema: Clases y Objetos en C#. Parte II. Programación II. Guía No. 5 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Clases y Objetos en C#. Parte II. Objetivos Implementar clases, objetos, propiedades, métodos y

Más detalles