Tarea3 Ezamora

23

description

Universisda Israel.- Materia Aplicaciones Dsitribuidas ,SO,Procesos, TRANSICIONES DE ESTADO DE LOS PROCESOS, TIPO DE PROGRAMAS EN JAVA, PROCESOS CONCURRENTES EJECUTADOS EN MULTIPLES COMPUTADORES

Transcript of Tarea3 Ezamora

Page 1: Tarea3 Ezamora
Page 2: Tarea3 Ezamora

Un sistema operativo es parte del software de un ordenador y desempeña las siguientes funciones básicas:1. Gestión de los recursos hardware del ordenador.2. Gestión de las aplicaciones que se ejecutan en elordenador (procesos).3. Interfaz entre el usuario y el ordenador (IHM).

Page 3: Tarea3 Ezamora

Definición de Sistema OperativoDe manera esquemática, un sistema operativo se compone de:1. Núcleo (Kernel): responsable de la gestión de memoria, dedisco y de procesos.2. Servicios (API: Aplicación Program Interface): mediante

estos servicios las aplicaciones pueden realizar peticiones al sistema operativo para acceder a los recursos hardware del sistema.

3. Shell (Intérprete de comandos): es el proceso encargado detraducir los comandos que los usuarios introducen, ainstrucciones que el sistema operativo entiende.

Page 4: Tarea3 Ezamora

PROGRAMAS Y PROCESOS DE COMPUTACIÓN

Un programa, o también llamado programa informático, programa de computación o programa de ordenador, es simplemente un conjunto de instrucciones para una computadora. Las computadoras necesitan de los programas para funcionar, y un programa no hace nada a menos que sus instrucciones sean ejecutadas por el procesador.

Un programa se puede referir tanto a un programa ejecutable como a su código fuente, el cual es transformado en un ejecutable cuando es compilado.

Page 5: Tarea3 Ezamora

PROGRAMAS Y PROCESOS DE COMPUTACIÓN

Generalmente el código fuente de los programas es escrito por profesionales conocidos como programadores. El código fuente es escrito en un lenguaje de programación que sigue uno de los siguientes dos paradigmas: imperativo o declarativo. El código fuente puede ser convertido en una imagen ejecutable por un compilador. Cuando se pide que el programa sea ejecutado, el procesador ejecuta el programa instrucción por instrucción, hasta que el programa termina.

Page 6: Tarea3 Ezamora

TRANSICIONES DE ESTADO DE LOS PROCESOS

Qué es un proceso ? Un proceso es una instancia de ejecución de un programa,

caracterizado por su contador de programa, su palabra de estado, sus registros del procesador, su segmento de texto, pila y datos, etc. Un programa es un concepto estático, mientras que un proceso es un concepto dinámico. Es posible que un programa sea ejecutado por varios usuarios en un sistema multiusuario, por cada una de estas ejecuciones existirá un proceso, con su contador de programa, registros, etc. El sistema operativo necesita el concepto de proceso para poder gestionar el procesador mediante la técnica de multiprogramación o de tiempo compartido, de hecho, el proceso es la unidad panificable, o de asignación de la CPU.

Page 7: Tarea3 Ezamora

TRANSICIONES DE ESTADO DE LOS PROCESOS

Estados de un proceso y Transiciones de estado de los procesos 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.

 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. El proceso necesita que ocurra algún evento que le permita poder proseguir su ejecución.

Page 8: Tarea3 Ezamora

TRANSICIONES DE ESTADO DE LOS PROCESOS Transiciones de estado de los procesosA continuación se dan ejemplos de eventos que pueden provocar

transiciones de estado en un proceso en este modelo de tres estados 

Page 9: Tarea3 Ezamora

Tipos de programas en JavaLos programas en Java suelen estar en una de las siguientes categorías:

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.

Servlets Los servlets al contrario de los applets son programas que están pensados para trabajar en el lado del servidor y desarrollar aplicaciones Web que interactúen con los clientes. Los servlets son una alternativa de la programación CGI tradicional.

Page 10: Tarea3 Ezamora

Tipos de programas en Java Compilación y ejecución de programas Java (1 de 4)

El Kit de desarrollo de Java (JDK) contiene las herramientas y librerías necesarias para crear y ejecutar applets y aplicaciones en Java.

A continuación se listas algunas de las utilidades que se pueden encontrar en el JDK:

javac. Es el compilador de Java. Se encarga de convertir el código fuente escrito en Java a bytecode.

java. Es el intérprete de Java. Ejecuta el bytecode a partir de los archivos class.

appletviewer. Es un visor de applets. En la mayoría de las ocasiones puede utilizarse en lugar de un Navegador Web.

javadoc. Se utiliza para crear documentación en formato HTML a partir de el código fuente Java y los comentarios que contiene.

javap. Es un desensamblador de Java.

jar. Es una herramienta utilizada para trabajar con los archivos JAR.

Page 11: Tarea3 Ezamora

Tipos de programas en Java Compilación y ejecución de programas Java (2 de 4)

Obtención del JDK

El JDK se puede obtener directamente de forma gratuita del sitio Web de JavaSoft, http://www.javasoft.com/ .

Instalación y configuración del JDK (Windows 9x)

El JDK normalmente se distribuye en archivos de instalación auto-extraibles, por lo que al momento de llevar a cabo la instalación, básicamente se tiene que indicar el directorio en el cual se colocarán los archivos y directorios que se distribuyen en el JDK.

Una vez instalado el JDK se tiene que actualizar la variable de ambiente PATH y crear una nueva variable llamada CLASSPATH.

Por ejemplo, si el JDK fue instalado en C:\jdk1.1.8, hacemos lo siguiente:

set PATH=C:\jdk1.1.8\bin;%PATH% set CLASSPATH=C:\jdk1.1.8\lib\classes.zip;. Por ejemplo, si se instaló una versión de Java 2 (JDK 1.2 o posterior), hacemos lo siguiente:

set PATH=C:\jdk1.2.2\bin;%PATH% set CLASSPATH=C:\jdk1.2.2\jre\lib;. La variable de ambiente CLASSPATH le dice a la Máquina Virtual de Java y otras aplicaciones de Java en donde buscar las clases que se necesitan para ejecutar un programa, tal como el archivo classes.zip, que contiene una librería de clases que conforma el API de Java. En Java 2 por lo general, no existe el archivo classes.zip por lo que sólo se hace referencia al directorio jre\lib.

Es necesario actualizar la variable PATH para que el sistema operativo sepa en donde encontrar los programas que se ejecutan cuando se trabaja con Java ,básicamente el compilador y el intérprete de Java, javac y java, respectivamente.

Page 12: Tarea3 Ezamora

Programación Concurrente

Virtualmente todos los sistemas de tiempo-real son inherentemente concurrentes - los dispositivos operan en paralelo en el mundo real.

Programación concurrente es el nombre dado a las técnicas y notación de programación para expresar "paralelismo" potencial y resolver la sincronización y los problemas de comunicación.

En la programación concurrente solo se cuenta con un procesador. El tiempo de CPU se reparte entre varios procesos.

El paralelismo implica que existen varios procesadores en el sistema. La programación paralela implica dividir la ejecucion de un programa en distintos módulos los cuales se ejecutaran en distintos procesadores.

Page 13: Tarea3 Ezamora

Paralelismo entre CPU y Dispositivos de E/S

CPU Dispositivo de E/S

Inicia operaciónde E/S Petición de proceso de E/S

Finalización de Señal

Interrupción de fin de E/SE/S termina

Continua conmas peticiones

Page 14: Tarea3 Ezamora

Sistema de Reservación de Línea Aérea

P

P P

PP

Data Base

VDU

VDU

VDU

VDU

Page 15: Tarea3 Ezamora

Terminología Un programa concurrente es convencionalmente visto como una

colección de procesos secuenciales autónomos que se ejecutan (lógicamente) en paralelo.

Los lenguajes de programación concurrente incorporan, explícita o implícitamente, la noción de proceso; cada proceso tiene un simple hilo de control.

La implementación actual (i.e. ejecución) de una colección de procesos usualmente toma una de estas tres formas:

Multiprogramaciónejecución de múltiples procesos en un solo procesador.

Multiprocesamientoejecución de múltiples procesos en un sistema multiprocesador donde hay

acceso a memoria compartida.

Programación Distribuidaejecución de múltiples procesos en varios procesadores los cuales no

comparten memoria.

Page 16: Tarea3 Ezamora

Concepto de Proceso

Un sistema operativo ejecuta una variedad de programas: Sistema Batch: jobs Sistemas de tiempo compartido: programas de usuario

o tareasProceso - un programa en ejecución; la

ejecucución del proceso debe progresar de manera secuencial.

Un proceso incluye: program counter stack data section

Page 17: Tarea3 Ezamora

Estados de los procesos

Nuevo: El proceso es creado. Ejecución: Se ejecutan instrucciones. Espera: El proceso esta en espera por

la ocurrencia de algún evento. Listo: El proceso esta esperando a que

le asignen el procesador. Terminado: El proceso finaliza su

ejecución.Diagrama de estados de los procesos.

Page 18: Tarea3 Ezamora

Estados de los procesos

Nuevo: El proceso es creado. Ejecución: Se ejecutan instrucciones. Espera: El proceso esta en espera por

la ocurrencia de algún evento. Listo: El proceso esta esperando a que

le asignen el procesador. Terminado: El proceso finaliza su

ejecución.Diagrama de estados de los procesos.

Page 19: Tarea3 Ezamora

Process Control BlockInformación asociada con cada proceso:

Estado del proceso Program counter Registros del CPU Información de planificación del CPU MemoriaInformación para administración Información de estatus de E/S

Page 20: Tarea3 Ezamora

Cambio de Contexto

Cuando el CPU cambia a otro proceso, el sistema debe salvar el estado del proceso antiguo y cargar el estado del proceso nuevo.

El cambio de contexto es overhead; el sistema no realiza cómputo útil durante el cambio.

El tiempo de realización del cambio de contexto es dependiente del soporte de hardware.

Page 21: Tarea3 Ezamora

Creacion del Proceso Al crearse un proceso se le asigna memoria (para cargado de

código, datos y stack), recursos, información del PCB, y se carga en memoria.

Además se inicializan registros para protección del espacio de memoria reserva a este proceso.

El proceso padre puede crear procesos hijos, los cuales a su vez pueden crear otros procesos, formando así un árbol de procesos.

Compartición de recursos. Los padres e hijos comparten todos los recursos. El hijo comparte un subconjunto de los recursos del padre. El hijo y el padre no comparten recursos.

Ejecución El padre y el hijo se ejecutan concurrentemente. El padre espera hasta que el hijo termina.

Ejemplo UNIX la llamada a fork crea un proceso nuevo.

Page 22: Tarea3 Ezamora

Terminación de ProcesosEl proceso ejecuta su última instrucción y pide al

sistema que lo elimine (exit). Los datos de salida van de hijo a padre (por fork). Los recursos del proceso son desalojados por el

sistema operativo.El padre puede terminar la ejecución de un hijo(abort).

el proceso hijo se ha excedido en los recursos alojados.

la tarea asignada al proceso hijo ya no es requerida. El proceso padre termina.

El sistema operativo no permite que el hijo continue su ejecución si el proceso padre termina.

terminación en cascada.

Page 23: Tarea3 Ezamora

BIBLIOGRAFÍA

ENLACE al tema anterior: INTRODUCCIÓNENLACE al siguiente tema: PLANIFICACIÓN DE

PROCESOShttp://74.125.113.132/search?

q=cache:nWH9LryJLq8J:delta.cs.cinvestav.mx/~pmalvarez/capi5tr.ppt+PROCESOS+CONCURRENTES+EJECUTADOS+EN+MULTIPLES+COMPUTADORAS&cd=6&hl=es&ct=clnk&gl=ec