You are on page 1of 3

TEMA 1: PROCESOS

1.1 Introduccin
1.2 Creacin de procesos
1.3 Comunicacin entre procesos
--------------------------------------------------------------------------------------------------------
1.1Introduccin
Un proceso es un archivo que est en ejecucin y bajo el control del sistema operativo.
Un proceso atraviesa diversas etapas en su ciclo de vida. Los estados en los que puede
estar son:
En ejecucin: est dentro del microprocesador.
Pausado/detenido/en espera: el proceso tiene que seguir en ejecucin pero en ese
momento el S.O tom la decisin de dejar paso a otro.
Interrumpido: el proceso tiene que seguir en ejecucin pero el usuario ha decidido
interrumpir la ejecucin.
Existen otros estados pero ya son muy dependientes del sistema operativo

1.2 Creacin de procesos


La clase que representa un proceso en Java es la clase Process. Los mtodos de
ProcessBuilder.start() y Runtime. exec() crean un proceso nativo en el sistema operativo
subyacente donde se est ejecutando la JVM y devuelven una objeto Java de la clase Process
que puede ser utilizado para controlar dicho proceso.
ProcessBuilder.start(): inicia un nuevo proceso utilizando los atributos indicados en el
objeto.
Runtime.exec(String[] cmdarray, String[] envp, File dir): ejecuta el comando
especificado y argumentos en cmdarray en un proceso hijo independiente con el
entorno envp y el directorio de trabajo especificado en dir
Ambos mtodos comprueban que el comando a ejecutar es un comando o ejecutable vlido en
el sistema operativo subyacente sobre el que ejecuta la JVM. El ejecutable se ha podido obtener
mediante la compilacin de cdigo en cualquier lenguaje de programacin. Al final, crear un
nuevo proceso depende del sistema operativo en concreto que est ejecutando por debajo de la
JVM. En este sentido, pueden ocurrir mltiples problemas, como:
No encuentra el ejecutable debido a la ruta indicada.
No tener permisos de ejecucin.
No ser un ejecutable vlido en el sistema.
etc.
En la mayora de los casos, se lanza una excepcin dependiente del sistema en concreto,
pero siempre ser una subclase de IOException.
Ej 1: El ejemplo siguiente muestra como lanzar un proceso de Acrobat Reader:

Ej 2: Crear una clase Java que sea capaz de sumar todos los nmeros comprendidos entre
dos valores.
Se va a crear una clase Sumador que tenga un mtodo que acepte los dos nmeros y
que devuelva la suma de todo el intervalo. Tambin, se incluye un mtodo main que
ejecute la operacin de suma tomando los nmeros de la lnea de comandos, es decir,
se pasan como argumentos al main.

Habr que ejecutar el programa desde el terminal que hay en el NetBeans.


Una vez hecha la prueba de la clase Sumador, se quita el main, y se crear una clase que
sea capaz de lanzar varios procesos.

1.3 Comunicacin entre procesos


Ambos mtodos comprueban que el comando a ejecutar es un comando o ejecutable vlido en el sistema
operativo subyacente sobre el que ejecuta la JVM. El ejecutable se ha podido obtener mediante la compilacin
de cdigo en cualquier lenguaje de programacin. Al final, crear un nuevo proceso depende del sistema
operativo en concreto que est ejecutando por debajo de la JVM. En este sentido, pueden ocurrir mltiples
problemas, como: 4 No encuentra el ejecutable debido a la ruta indicada. 4 No tener permisos de ejecucin. 4
No ser un ejecutable vlido en el sistema. 4 etc. En la mayora de los casos, se lanza una excepcin
dependiente del sistema en concreto, pero siempre ser una subclase de IOException.

You might also like