Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos
Upcoming SlideShare
Loading in...5
×
 

Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos

on

  • 744 views

Trabajo de Aplicaciones Distribuidas Tarea4_Juan_Martinez.

Trabajo de Aplicaciones Distribuidas Tarea4_Juan_Martinez.

Statistics

Views

Total Views
744
Views on SlideShare
667
Embed Views
77

Actions

Likes
0
Downloads
2
Comments
0

2 Embeds 77

http://www.info10ci.blogspot.com 43
http://info10ci.blogspot.com 34

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos Presentation Transcript

    • CONCEPTOS BASICOS DE SISTEMAS OPERATIVOS La computación distribuida supone la ejecución de programas en múltiples computadores. A continuación se describen algunos de los conceptos implicados en la ejecución de programas.
    • PROGRAMAS Y PROCESOS DE COMPUTACION
      • Un programa software, es un artefacto construido por un desarrollador de software, utilizando algún lenguaje de programación. Típicamente el lenguaje de programación, es un lenguaje de alto nivel, y requiere un compilador o interprete para traducirlo a lenguaje de máquina.
      • Cuando un programa se ejecuta en un computador se representa como un proceso.
      • El primer concepto que analizaremos en esta sección corresponde a Proceso , que es la base para entender muchos otros conceptos que se manejan en el sistema operativo.
      • PROCESO
      • Un proceso es una abstracción de un programa en ejecución, compuesto por el código ejecutable, una sección de datos que contiene las variables globales, una sección de stack o pila que contiene datos temporales, tales como parámetros de subrutinas, direcciones de retornos y variables temporales; y el estado de los registros del procesador. El programa corresponde a una entidad pasiva, en cambio el proceso corresponde a una entidad activa.
    • TRANSICIONES DE ESTADO DE LOS PROCESOS
      • Existe una transición de estados durante la vida de un proceso:
      • Respecto de los estados del proceso deben efectuarse las siguientes consideraciones:
      • Cada proceso es una entidad independiente pero frecuentemente debe interactuar con otros procesos
      • Los procesos pueden bloquearse en su ejecución porque:
        • Desde el punto de vista lógico no puede continuar porque espera datos que aún no están disponibles.
        • El Sistema Operativo asignó la cpu a otro proceso.
        • Durante su vida, un proceso puede pasar por una serie de estados discretos, algunos de ellos son
    • Los estados que puede tener un proceso son: En ejecución: utiliza la cpu en el instante dado. Listo: ejecutable, se detiene en forma temporal para que se ejecute otro proceso. Bloqueado: no se puede ejecutar debido a la ocurrencia de algún evento externo.
    • El proceso repite el ciclo listo - ejecución - bloqueado, tantas veces como sea necesario, hasta que la ejecución del proceso se complete, momento en el cual el proceso queda terminado.
    • TIPO DE PROGRAMAS EN JAVA
      • El código para crear procesos se lo realizara en Java, por lo cual es necesario conocer que existen tres tipos de programas Java:
      • Aplicaciones
      • Applets
      • Servlets
      • Applets
      • Los applets son pequeños programas que se incorporan en una página Web y que por lo tanto, necesitan de un Navegador Web compatible con Java para poder ejecutarse. A menudo los applets se descargan junto con una página HTML desde un Servidor Web y se ejecutan en la máquina cliente.
      • Aplicaciones
      • Las aplicaciones son programas standalone de propósito general que normalmente se ejecutan desde la línea de comandos del sistema operativo. Con Java se puede realizar cualquier programa que normalmente se crearía con algún otro lenguaje de programación.
      • Una clase java (aplicación) tiene un método principal (main), y se ejecuta como un proceso independiente (stand-alone).
      • Los Servlets son módulos que extienden los servidores orientados a petición-respuesta, como los servidores Web compatibles con Java.
      • Los Servlets son para los servidores lo que los applets son para los navegadores. Sin embargo, al contrario que los applets, los servlets no tienen interface gráfico de usuario.
    • PROGRAMACION CONCURRENTE
      • La computación distribuida, supone el uso de programación concurrente, que consiste en la ejecución simultánea de procesos. Los siguientes párrafos muestras tres clases de computación concurrente:
      • Procesos Concurrentes ejecutados en múltiples computadores
      • Procesos Concurrentes ejecutados en un solo computador
      • Programación concurrente dentro de un proceso
    • PROCESOS CONCURRENTES EJECUTADOS EN MÚLTIPLES COMPUTADORES
      • Son procesos separados ejecutándose concurrentemente en computadores independientes interconectados a través de una red.
      • Los procesos interactúan con otros procesos mediante el intercambio de datos sobre la red, pero su ejecución es completamente independiente.
      • 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, 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 procesos.
    • PROCESOS CONCURRENTES EJECUTADOS EN UN UNICO COMPUTADOR
      • Ciertos computadores que utilizan sistemas operativos multitarea, que permite la ejecución concurrente de múltiples tareas o procesos.
      • La concurrencia puede ser real o virtual.
      • La verdadera concurrencia multitarea solo es posible si el computador tiene múltiples CPU, de forma que cada CPU pueda ejecutar un proceso
      • En un computador con un solo CPU, por lo que se utiliza tiempo compartido, lo cual permite que los procesos puedan ejecutarse por turnos, creando una ilusión que se ejecutan en paralelo.
      • Los procesos concurrentes que se ejecutan en un solo computador, es una funcionalidad del sistema operativo, no se necesita una programación especial, para llevar a cabo este tipo de programación, es decir no es necesario una lógica de software especial en un programa para iniciar el multitarea.
    • PROGRAMACION CONCURRENTE DENTRO DE UN PROCESO
      • Además de la programación concurrente entre diferentes procesos, muchas veces un único programa necesita iniciar diferentes tareas que se ejecuten concurrentemente.
      • Por ejemplo un programa, podría necesitar realizar otras tareas mientras espera indefinidamente por la entrada de un usuario en una interfaz de una ventana.
      • También se podrá necesitar que se ejecute varias tareas en paralelo por motivo de rendimiento. 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
      • 2. Threads o Hilos
      • PROCESOS PADRES E HIJOS
      • En tiempo de ejecución, un proceso puede crear procesos subordinados o procesos hijos. A través de la multitarea real o virtual, el proceso original, denominado proceso padre, continúa ejecutándose simultáneamente con el proceso hijo.
      • Un proceso hijo es un proceso completo que consiste en un programa en ejecución, con valores propios información de estado, que hereda del proceso padre.
      • Un proceso padre puede saber cuando un proceso hijo ha finalizado.
      • THREADS O HILOS
      • En vez de procesos hijos, un proceso puede crear threads o hilos, también conocidos como procesos ligeros.
      • 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 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.