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

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos

538
views

Published on

Trabajo de Aplicaciones Distribuidas Tarea4_Juan_Martinez.

Trabajo de Aplicaciones Distribuidas Tarea4_Juan_Martinez.

Published in: Education, Technology

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
538
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 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.
  • 2. 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.
  • 3.
    • 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.
  • 4. 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
  • 5. 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.
  • 6. 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.
  • 7. 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
  • 8.
    • 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.
  • 9.
    • 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).
  • 10.
    • 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.
  • 11. 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
  • 12. 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.
  • 13. 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.
  • 14. 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
  • 15.
    • 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.

×