Está en la página 1de 30

INTRODUCCIÓN A LA

PROGRAMACIÓN
DISTRIBUIDA
ING. MSC. EUCLIDES PANDURO PADILLA 1
Definición
➢La confusión en el campo de la computación distribuida es la falta de
vocabulario universal.
➢En su origen la computación se denominó computación monolítica (CPU).
➢Monolítico: Se describen en tres procesos principales:
➢Un programa principal que invoca el procedimiento de servicio solicitado.
➢Un conjunto de procedimientos de servicio que llevan a cabo las llamadas del
sistema.
➢Un conjunto de procedimientos de utilería que ayudan a los procedimientos del
servicio.

ING. MSC. EUCLIDES PANDURO PADILLA 2


Definición
➢Sistema Distribuido: Conjunto de
computadoras independientes,
interconectadas a través de la red, las
mismas que pueden colaborar en el
desarrollo de una tarea.
➢Computadoras ligeramente acopladas:
Interconectadas. Es cuando no
compartes memoria, ni espacio de
ejecución.

ING. MSC. EUCLIDES PANDURO PADILLA 3


Definición
➢Sistema Distribuido:
➢Computadoras fuertemente
acopladas: Pueden compartir datos
a través de un espacio de memoria
común.

ING. MSC. EUCLIDES PANDURO PADILLA 4


Definición
➢Computación distribuida: Es computación que se lleva a cabo en un
sistema distribuido, tales como servicios en red o aplicaciones basadas en la
Web.

➢Servicio de red: Es un servicio proporcionado por un tipo de programa


denominado servidor en una red, ejemplo: WWW, email, Ftp.
➢Protocolo de Configuración Dinámica de Host (DHCP).
➢Protocolo Simple de Administración de Red (SNMP)
➢Domain Name System (DNS)

ING. MSC. EUCLIDES PANDURO PADILLA 5


Definición
➢Computación distribuida:
➢Aplicación de red: Es una aplicación para usuarios finales, que se ejecuta
en computadoras conectados a través de una red, ejemplo: comerciales
(Carrito de compras y subastas en red.) o no comerciales (salones chat o
juegos en red)

ING. MSC. EUCLIDES PANDURO PADILLA 6


Historia
➢Al comienzo se utilizaban computadoras aisladas.
➢En los años 60 se conectaban rudimentariamente a través de cables para compartir
ficheros. No existían aplicaciones en red.
➢El primer RFC (Request Form Comments) de Internet, RFC 1, es una propuesta que
especifica como las maquinas pueden intercambiar información con otras a través del
envío de mensajes.
➢EL 1971 hubo una propuesta para los mecanismos de trasferencia de ficheros
automatizados, entre dos maquinas RFC 114 y RFC 141
➢La primera aplicación en red fue el correo electrónico, denominado email. El primer
mensaje fue enviado y registrado en 1972 en una red ARPANET de cuatro nodos.
➢La web fue concebida originalmente a finales de los 80 por científicos den centro de
investigación suizo CERN en Ginebra como aplicación que permite el acceso a
hipertexto sobre la red. Correo electrónico, motores de búsqueda, y comercio
electrónico.

ING. MSC. EUCLIDES PANDURO PADILLA 7


Diferentes formas de computación
➢Computación monolíticas: Es un único computador.
➢Dicho computador no esta conectado a ninguna red.
➢Un único usuario utiliza el computador a la vez. Ejemplo de programas
como los de procesamiento de texto, hojas de calculo.
➢Computación distribuidas: Múltiples computadores conectados a la red.
➢Cada uno con sus propios recursos.
➢Los usuarios pueden utilizar los recursos del computador local.
➢Al estar conectado a una red, también puede utilizar los recursos del
computador remoto.

ING. MSC. EUCLIDES PANDURO PADILLA 8


Diferentes formas de computación

ING. MSC. EUCLIDES PANDURO PADILLA 9


Diferentes formas de computación

ING. MSC. EUCLIDES PANDURO PADILLA 10


Diferentes formas de computación
➢Computación paralela: Utiliza mas de
un procesador simultáneamente para
ejecutar un único programa.
➢Se pueden resolver problemas que de
otra manera sería imposible resolver
con un único computador.
➢Se utiliza en la computación científica,
áreas como la biología, aeronáutica,
predicción atmosférica.

ING. MSC. EUCLIDES PANDURO PADILLA 11


Virtudes y limitaciones de la computación
distribuida
Razones de popularidad
➢Las computadoras y el acceso a la red son económicas.
➢Compartición de recursos.
➢Escalabilidad. (Aumento).
➢Tolerancia a fallos.
Desventajas
➢Múltiples puntos de fallo.
➢Dependen de la red.
➢Aspectos de seguridad.
➢Mayor puntos de ataques
ING. MSC. EUCLIDES PANDURO PADILLA 12
Programas y procesos de computación
➢Un programa de software es un artefacto construido por un desarrollador de software
utilizando algún lenguaje de programación.
➢Cuando un programa se ejecuta en un computador se representa como un proceso.
➢Un proceso, es una entidad dinámica que solo existe cuando un programa se ejecuta
con sus valores actuales, información de estado y recursos utilizados por el SO.
➢Un proceso, pasa por varias transiciones durante su vida.
➢Estado listo, cuando inicia su ejecución, el SO lo sitúa en una cola, junto a otros
programas.
➢Estado de ejecución, es cuando los recursos del SO ¿?, se encuentran disponibles y un
proceso se lanza para ejecutarse.
➢Estado bloqueado, continua ejecutándose hasta esperar un evento, momento que el
proceso entra en este estado.

ING. MSC. EUCLIDES PANDURO PADILLA 13


Programas y procesos de computación

ING. MSC. EUCLIDES PANDURO PADILLA 14


Programas y procesos de computación

ING. MSC. EUCLIDES PANDURO PADILLA 15


Programas y procesos de computación

ING. MSC. EUCLIDES PANDURO PADILLA 16


Programas y procesos de computación
➢Java:
➢Aplicaciones:
import java.util.Scanner;
public class TestPrograma1 {
public static void main (String [ ] args) {
System.out.println ("Empezamos el programa");
System.out.println ("Por favor introduzca una cadena por teclado:");
String entradaTeclado = "";
Scanner entradaEscaner = new Scanner (System.in);
entradaTeclado = entradaEscaner.nextLine ();
System.out.println ("Entrada recibida por teclado es: \"" + entradaTeclado
+"\"");
}
}

ING. MSC. EUCLIDES PANDURO PADILLA 17


Programas y procesos de computación
➢Java,:
➢Aplicaciones:

ING. MSC. EUCLIDES PANDURO PADILLA 18


Programas y procesos de computación
➢Servlets:
import java.io.* ; import java.text.* ; import java.util.* ; import javax.servlet.* ; import javax.servlet.http.* ;
public class MiServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter salida;
String titulo = "Salida de MiServlet"?;
response.setContentType("text/html" ) ;
salida = response.getWriter() ;
salida.println (" <HTML><HEAD><TITLE>" ) ;
salida.println(titulo) ;
salida.println("</T ITLE></HEAD><BODY>" ) ; salida.println("< H l > " + titulo + "< /H l >");
salida.println("<P>Hola M undo"); salida.println ("</BODY></HTML>"); salida.close ( ) ;
}
}

ING. MSC. EUCLIDES PANDURO PADILLA 19


Programas y procesos de computación
➢Servlets:

ING. MSC. EUCLIDES PANDURO PADILLA 20


Programación concurrente
➢La computación distribuida supone el uso de la programación concurrente, que consiste
en la ejecución simultánea de procesos
Existen 3 clases de programación concurrente.
➢Procesos concurrentes ejecutados en múltiples computadoras: Los procesos
interactúan con otros procesos mediante el intercambio de datos sobre la red. Ejemplo
la WEB.
➢Procesos concurrentes ejecutados en un único computador: Los computadores
modernos utilizan sistemas operativos multitareas o procesos. La verdadera
concurrencia multitarea sólo es posible si el computador tiene múltiples CPU, donde
se utiliza el tiempo compartido.

ING. MSC. EUCLIDES PANDURO PADILLA 21


Programación concurrente

ING. MSC. EUCLIDES PANDURO PADILLA 22


Programación concurrente

ING. MSC. EUCLIDES PANDURO PADILLA 23


Programación concurrente
Existen 3 clases de programación concurrente.
➢Programación concurrente dentro de un proceso: Además de la concurrencia entre
varios procesos, existen casos donde un único programa necesita iniciar diferentes
tareas que se ejecuten concurrentemente.

ING. MSC. EUCLIDES PANDURO PADILLA 24


Programación concurrente

ING. MSC. EUCLIDES PANDURO PADILLA 25


Procesos padres e hijos
➢En tiempo de ejecución, un proceso
puede crear procesos subordinados.
➢A través de la multitarea, el proceso
original se le denomina padre, el
mismo que continua ejecutándose
simultáneamente con el proceso
hijo.
➢Cada proceso mantiene sus propios
valores de estados.
➢Un proceso padre sabe cuando un
proceso hijo ha terminado.

ING. MSC. EUCLIDES PANDURO PADILLA 26


Threads o hilos
➢En lugar de procesos hijos, un proceso pude crear threads (procesos ligeros).
➢Menos sobrecarga, poseen información mínima de estado.
➢La ejecución concurrente de hilos puede ocasionar una condición de carrera,
debido a que una serie de mandatos se ejecutan de una forma arbitraria e
intercalada.
➢La condición de carrera se puede evitar si se utiliza exclusión mutua dentro del
segmento de código, donde se asegura que los mandatos de dicho segmento
solo puedan ejecutarse por parte de un único hilo en determinado momento,
dicho segmento se el conoce como región critica (thread safe, conocimiento
avanzado de programación)

ING. MSC. EUCLIDES PANDURO PADILLA 27


Threads o hilos

ING. MSC. EUCLIDES PANDURO PADILLA 28


Hilos java
➢Cuando la JVM se inicia, hay normalmente un hilo, típicamente invocado por
el método main.
➢Se pueden crear otros hilos adicionales a partir de un hilo activo, y cada hilo
se ejecutará independientemente y en paralelo.
➢Java proporciona una clase thread y una interfaz runnable.
➢Java cuenta con dos formas para crear un hijo.
➢1. Declarar una clase como subclase de la clase thread. Esta debe
sobrescribir en método run.
➢2. Declarar una clase que implemente la interfaz runnable. Esta clase
implementa el método run de dicha interfaz.

ING. MSC. EUCLIDES PANDURO PADILLA 29


INTRODUCCIÓN A LA
PROGRAMACIÓN
DISTRIBUIDA
ING. MSC. EUCLIDES PANDURO PADILLA 30

También podría gustarte