Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos

15
CONCEPTOS BASICOS DE CONCEPTOS BASICOS DE SISTEMAS OPERATIVOS SISTEMAS OPERATIVOS La computación distribuida La computación distribuida supone la ejecución de supone la ejecución de programas en múltiples programas en múltiples computadores. A continuación computadores. A continuación se describen algunos de los se describen algunos de los conceptos implicados en la conceptos implicados en la ejecución de programas. ejecución de programas.

description

Trabajo de Aplicaciones Distribuidas Tarea4_Juan_Martinez.

Transcript of Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos

Page 1: Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos

CONCEPTOS CONCEPTOS BASICOS DE BASICOS DE SISTEMAS SISTEMAS

OPERATIVOSOPERATIVOS

La computación distribuida La computación distribuida supone la ejecución de programas supone la ejecución de programas

en múltiples computadores. A en múltiples computadores. A continuación se describen continuación se describen algunos de los conceptos algunos de los conceptos

implicados en la ejecución de implicados en la ejecución de programas.programas.

Page 2: Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos

PROGRAMAS Y PROCESOS PROGRAMAS Y PROCESOS DE COMPUTACIONDE COMPUTACION

• Un programa software, es un artefacto Un programa software, es un artefacto construido por un desarrollador de construido por un desarrollador de software, utilizando algún lenguaje de software, utilizando algún lenguaje de programación. Típicamente el lenguaje programación. Típicamente el lenguaje de programación, es un lenguaje de alto de programación, es un lenguaje de alto nivel, y requiere un compilador o nivel, y requiere un compilador o interprete para traducirlo a lenguaje de interprete para traducirlo a lenguaje de máquina.máquina.

• Cuando un programa se ejecuta en un Cuando un programa se ejecuta en un computador se representa como un computador se representa como un proceso.proceso.

Page 3: Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos

El primer concepto que analizaremos en esta El primer concepto que analizaremos en esta sección corresponde a sección corresponde a ProcesoProceso, que es la base , que es la base para entender muchos otros conceptos que se para entender muchos otros conceptos que se manejan en el sistema operativo. manejan en el sistema operativo.

PROCESOPROCESO• Un Un proceso proceso es una abstracción de un es una abstracción de un

programa en ejecución, compuesto por el programa en ejecución, compuesto por el código ejecutable, una sección de datos que código ejecutable, una sección de datos que contiene las variables globales, una sección de contiene las variables globales, una sección de stack o pila que contiene datos temporales, stack o pila que contiene datos temporales, tales como parámetros de subrutinas, tales como parámetros de subrutinas, direcciones de retornos y variables temporales; direcciones de retornos y variables temporales; y el estado de los registros del procesador. El y el estado de los registros del procesador. El programa corresponde a una entidad pasiva, en programa corresponde a una entidad pasiva, en cambio el proceso corresponde a una entidad cambio el proceso corresponde a una entidad activa.activa.

Page 4: Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos

TRANSICIONES DE ESTADO DE LOS TRANSICIONES DE ESTADO DE LOS PROCESOSPROCESOS

Existe una transición de estados durante la vida de un Existe una transición de estados durante la vida de un proceso:proceso:

• Respecto de los Respecto de los estados del procesoestados del proceso deben deben efectuarse las siguientes consideraciones: efectuarse las siguientes consideraciones:

• Cada proceso es una entidad independiente pero Cada proceso es una entidad independiente pero frecuentemente debe interactuar con otros procesos frecuentemente debe interactuar con otros procesos

• Los procesos pueden bloquearse en su ejecución Los procesos pueden bloquearse en su ejecución porque: porque: – Desde el punto de vista lógico no puede continuar Desde el punto de vista lógico no puede continuar

porque espera datos que aún no están disponibles. porque espera datos que aún no están disponibles. – El Sistema Operativo asignó la cpu a otro proceso.El Sistema Operativo asignó la cpu a otro proceso.Durante su vida, un proceso puede pasar por una Durante su vida, un proceso puede pasar por una

serie de estados discretos, algunos de ellos sonserie de estados discretos, algunos de ellos son

Page 5: Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos

Los estados que puede Los estados que puede tener un proceso son: tener un proceso son: En ejecución:En ejecución: utiliza utiliza la cpu en el instante la cpu en el instante dado. dado. Listo:Listo: ejecutable, se ejecutable, se detiene en forma detiene en forma temporal para que se temporal para que se ejecute otro proceso. ejecute otro proceso. Bloqueado:Bloqueado: no se no se puede ejecutarpuede ejecutar debido debido a la ocurrencia de a la ocurrencia de algún evento externo.algún evento externo.

Page 6: Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos

El proceso repite el ciclo listo - El proceso repite el ciclo listo - ejecución - bloqueado, tantas veces ejecución - bloqueado, tantas veces

como sea necesario, hasta que la como sea necesario, hasta que la ejecución del proceso se complete, ejecución del proceso se complete,

momento en el cual el proceso momento en el cual el proceso queda terminado.queda terminado.

Page 7: Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos

TIPO DE PROGRAMAS EN TIPO DE PROGRAMAS EN JAVAJAVA

• El código para crear procesos se lo El código para crear procesos se lo realizara en Java, por lo cual es realizara en Java, por lo cual es necesario conocer que existen tres necesario conocer que existen tres tipos de programas Java:tipos de programas Java:

AplicacionesAplicaciones

AppletsApplets

ServletsServlets

Page 8: Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos

• AppletsApplets Los applets son pequeños programas que se Los applets son pequeños programas que se

incorporan en una página Web y que por lo tanto, incorporan en una página Web y que por lo tanto, necesitan de un Navegador Web compatible con necesitan de un Navegador Web compatible con Java para poder ejecutarse. A menudo los applets Java para poder ejecutarse. A menudo los applets se descargan junto con una página HTML desde se descargan junto con una página HTML desde un Servidor Web y se ejecutan en la máquina un Servidor Web y se ejecutan en la máquina cliente. cliente.

Page 9: Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos

• AplicacionesAplicaciones

Las aplicaciones son programas Las aplicaciones son programas standalonestandalone de propósito general que de propósito general que normalmente se ejecutan desde la línea normalmente se ejecutan desde la línea de comandos del sistema operativo. Con de comandos del sistema operativo. Con Java se puede realizar cualquier Java se puede realizar cualquier programa que normalmente se crearía programa que normalmente se crearía con algún otro lenguaje de con algún otro lenguaje de programación. programación.

Una clase java (aplicación) tiene un Una clase java (aplicación) tiene un método principal (main), y se ejecuta método principal (main), y se ejecuta como un proceso independiente (stand-como un proceso independiente (stand-alone).alone).

Page 10: Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos

• Los Servlets son módulos que extienden los Los Servlets son módulos que extienden los servidores orientados a petición-respuesta, servidores orientados a petición-respuesta, como los servidores Web compatibles con como los servidores Web compatibles con Java. Java.

• Los Servlets son para los servidores lo que Los Servlets son para los servidores lo que los applets son para los navegadores. Sin los applets son para los navegadores. Sin embargo, al contrario que los applets, los embargo, al contrario que los applets, los servlets no tienen interface gráfico de servlets no tienen interface gráfico de usuario. usuario.

Page 11: Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos

PROGRAMACION PROGRAMACION CONCURRENTECONCURRENTE

La computación distribuida, supone el uso de La computación distribuida, supone el uso de programación concurrente, que consiste en la programación concurrente, que consiste en la ejecución simultánea de procesos. Los ejecución simultánea de procesos. Los siguientes párrafos muestras tres clases de siguientes párrafos muestras tres clases de computación concurrente:computación concurrente:

• Procesos Concurrentes ejecutados en Procesos Concurrentes ejecutados en múltiples computadoresmúltiples computadores

• Procesos Concurrentes ejecutados en un Procesos Concurrentes ejecutados en un solo computador solo computador

• Programación concurrente dentro de un Programación concurrente dentro de un procesoproceso

Page 12: Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos

PROCESOS CONCURRENTES PROCESOS CONCURRENTES EJECUTADOS EN MÚLTIPLES EJECUTADOS EN MÚLTIPLES

COMPUTADORESCOMPUTADORES• Son procesos separados ejecutándose Son procesos separados ejecutándose concurrentemente en computadores concurrentemente en computadores independientes interconectados a través de una independientes interconectados a través de una red.red.

• Los procesos interactúan con otros procesos Los procesos interactúan con otros procesos mediante el intercambio de datos sobre la red, mediante el intercambio de datos sobre la red, pero su ejecución es completamente pero su ejecución es completamente independiente.independiente.

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

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

Page 13: Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos

PROCESOS CONCURRENTES PROCESOS CONCURRENTES EJECUTADOS EN UN UNICO EJECUTADOS EN UN UNICO

COMPUTADORCOMPUTADOR• Ciertos computadores que utilizan sistemas Ciertos computadores que utilizan sistemas

operativos multitarea, que permite la ejecución operativos multitarea, que permite la ejecución concurrente de múltiples tareas o procesos.concurrente de múltiples tareas o procesos.

• La concurrencia puede ser real o virtual.La concurrencia puede ser real o virtual.• La verdadera concurrencia multitarea solo es La verdadera concurrencia multitarea solo es

posible si el computador tiene múltiples CPU, de posible si el computador tiene múltiples CPU, de forma que cada CPU pueda ejecutar un procesoforma que cada CPU pueda ejecutar un proceso

• En un computador con un solo CPU, por lo que se En un computador con un solo CPU, por lo que se utiliza tiempo compartido, lo cual permite que los utiliza tiempo compartido, lo cual permite que los procesos puedan ejecutarse por turnos, creando una procesos puedan ejecutarse por turnos, creando una ilusión que se ejecutan en paralelo.ilusión que se ejecutan en paralelo.

• Los procesos concurrentes que se ejecutan en un Los procesos concurrentes que se ejecutan en un solo computador, es una funcionalidad del sistema solo computador, es una funcionalidad del sistema operativo, no se necesita una programación operativo, no se necesita una programación especial, para llevar a cabo este tipo de especial, para llevar a cabo este tipo de programación, es decir no es necesario una lógica programación, es decir no es necesario una lógica de software especial en un programa para iniciar el de software especial en un programa para iniciar el multitarea.multitarea.

Page 14: Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos

PROGRAMACION PROGRAMACION CONCURRENTE DENTRO DE CONCURRENTE DENTRO DE

UN PROCESOUN PROCESO• Además de la programación concurrente entre Además de la programación concurrente entre

diferentes procesos, muchas veces un único programa diferentes procesos, muchas veces un único programa necesita iniciar diferentes tareas que se ejecuten necesita iniciar diferentes tareas que se ejecuten concurrentemente.concurrentemente.

• Por ejemplo un programa, podría necesitar realizar Por ejemplo un programa, podría necesitar realizar otras tareas mientras espera indefinidamente por la otras tareas mientras espera indefinidamente por la entrada de un usuario en una interfaz de una ventana.entrada de un usuario en una interfaz de una ventana.

• También se podrá necesitar que se ejecute varias También se podrá necesitar que se ejecute varias tareas en paralelo por motivo de rendimiento. La tareas en paralelo por motivo de rendimiento. La programación concurrente dentro de un proceso se programación concurrente dentro de un proceso se lleva a cabo a través de dos tipos de herramientas, lleva a cabo a través de dos tipos de herramientas, proporcionadas por el sistema operativo:proporcionadas por el sistema operativo:

1. Procesos Padres e Hijos1. Procesos Padres e Hijos2. Threads o Hilos2. Threads o Hilos

Page 15: Tarea4 Juan Martinez Conceptos Basicos De Sistemas Operativos

PROCESOS PADRES E HIJOSPROCESOS PADRES E HIJOS• En tiempo de ejecución, un proceso puede crear procesos En tiempo de ejecución, un proceso puede crear procesos

subordinados o subordinados o procesos hijos. procesos hijos. A través de la multitarea real o A través de la multitarea real o virtual, el proceso original, denominado virtual, el proceso original, denominado proceso padre, proceso padre, continúa ejecutándose simultáneamente con el proceso hijo.continúa ejecutándose simultáneamente con el proceso hijo.

• Un proceso hijo es un proceso completo que consiste en un Un proceso hijo es un proceso completo que consiste en un programa en ejecución, con valores propios información de programa en ejecución, con valores propios información de estado, que hereda del proceso padre.estado, que hereda del proceso padre.

• Un proceso padre puede saber cuando un proceso hijo ha Un proceso padre puede saber cuando un proceso hijo ha finalizado.finalizado.

THREADS O HILOSTHREADS O HILOS• En vez de procesos hijos, un proceso puede crear En vez de procesos hijos, un proceso puede crear threads o threads o

hilos, hilos, también conocidos como también conocidos como procesos ligeros.procesos ligeros.• Los hilos poseen una mínima información de estado, Los hilos poseen una mínima información de estado,

comportándose por lo demás de la misma forma que los comportándose por lo demás de la misma forma que los procesos.procesos.

• Debido a que implican menos sobrecarga, es preferible utilizar Debido a que implican menos sobrecarga, es preferible utilizar hilos que utilizar procesos hijos.hilos que utilizar procesos hijos.

• La creación y coordinación de hilos requiere el soporte de la La creación y coordinación de hilos requiere el soporte de la programación. El software correspondiente al programa debe programación. El software correspondiente al programa debe escribirse con la lógica necesaria para la creación de hilos y la 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 coordinación, o sincronización de la ejecución de la familia de hilos creados por el hilo padre.hilos creados por el hilo padre.