Apliacaciones Distribuidas. Sistemas Operativos

Preview:

Citation preview

Luis Alberto Ruiz

La computación distribuida supone la ejecución de programas en múltiples computadores

� Un programa 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 � Cuando un programa se ejecuta en un computador se representa como un proceso.

� Un proceso consiste en un programa que se ejecuta, con valores, información de su estado, y asignación de los recursos necesarios para que el sistema operativo pueda gestionar la ejecución de dicho proceso. En otras palabras un proceso es una entidad dinámica, que solo existe cuando un programa se ejecuta.

� Durante su vida, un proceso puede pasar por una serie de estados discretos, algunos de ellos son:

� En ejecución: El proceso ocupa la CPU actualmente, es decir, se está ejecutando. decir, se está ejecutando.

� Listo o preparado: El proceso dispone de todos los recursos para su ejecución, sólo le falta la CPU.

� Bloqueado: Al proceso le falta algún recurso para poder seguir ejecutándose, además de la CPU. Por recurso se pueden entender un dispositivo, un dato, etc.

Nuevo –> Listo Al crearse un proceso pasa inmediatamente al estado listo.

Listo –> Ejecutando En el estado de listo, el proceso solo espera para que se le asigne un procesador para ejecutar (tener en cuenta que puede existir más de un procesador en el sistema). Al liberarse un procesador el planificador (scheduler) selecciona el próximo proceso, según algún criterio definido, a ejecutar.

Ejecutando –> Listo Ante una interrupción que se generé, el proceso puede perder el recurso procesador y pasar al estado de listo. El planificador será el encargado de seleccionar el próximo proceso a ejecutar.

Ejecutando –> Bloqueado A medida que el proceso ejecuta instrucciones realiza pedidos en Ejecutando –> Bloqueado A medida que el proceso ejecuta instrucciones realiza pedidos en distintos componentes (ej.: genera un pedido de E/S). Teniendo en cuenta que el pedido puede demorar y, además, si está en un sistema multiprogramado, el proceso es puesto en una cola de espera hasta que se complete su pedido. De esta forma, se logra utilizar en forma más eficiente el procesador.

Bloqueado –> Listo Una vez que ocurre el evento que el proceso estaba esperando en la cola de espera, el proceso es puesto nuevamente en la cola de procesos listos.

Ejecutando > Terminado

Cuando el proceso ejecuta sus última instrucción pasa al estado terminado. El sistema libera las estructuras que representan al proceso.

� 1. Aplicaciones

Cada programa se escribe como una clase Java.

• 2. Applets

No tiene un método main, y se ejecuta mediante el uso de un navegador o de una herramienta que permite visualizar applets (appletviewer

• Servlets

Parecido al applets , en el hecho que no tiene un método main. Y se ejecuta en el contexto de un servidor web.

� 1. Procesos Concurrentes ejecutados en múltiples computadores

� 2. Procesos Concurrentes ejecutados en un solo computador computador

� 3. Programación concurrente dentro de un proceso

� La programación concurrente, que implica a múltiples máquinas requiere de determinado soporte de programación; es decir el software utilizado para los programas participantes debe contener la lógica necesaria para permitir la interacción entre los necesaria para permitir la interacción entre los procesos.

� Cuando se accede a una página web utilizando un navegador. Un proceso de una máquina local interactúa con un proceso de una maquina remota (servidor web).

� La programación concurrente dentro de un proceso se lleva a cabo a través de dos tipos de herramientas, proporcionadas por el sistema operativo:

� 1. Procesos Padres e Hijos

Los hilos poseen una mínima información de estado, comportándose por lo demás de la misma forma que los procesos. Debido a que implican menos sobrecarga, es preferible utilizar hilos que utilizar procesos hijos. La creación y coordinación de hilos requiere La creación y coordinación de hilos requiere el soporte de la programación. El software correspondiente al programa debe escribirse con la lógica necesaria para la creación de hilos y la coordinación, o sincronización de la ejecución de la familia de hilos creados por el hilo padre.

Recommended