Universisda Israel.- Materia Aplicaciones Dsitribuidas ,SO,Procesos, TRANSICIONES DE ESTADO DE LOS PROCESOS, TIPO DE PROGRAMAS EN JAVA, PROCESOS CONCURRENTES EJECUTADOS EN MULTIPLES COMPUTADORES
2. 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 el
ordenador (procesos).
3. Interfaz entre el usuario y el ordenador (IHM).
3. Definición de Sistema Operativo
De manera esquemática, un sistema operativo se compone de:
1. Núcleo (Kernel): responsable de la gestión de memoria, de
disco 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 de
traducir los comandos que los usuarios introducen, a
instrucciones que el sistema operativo entiende.
4. 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.
5. 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.
6. 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.
7. 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.
8. TRANSICIONES DE ESTADO DE LOS PROCESOS
Transiciones de estado de los procesos
A continuación se dan ejemplos de eventos que pueden provocar transiciones de
estado en un proceso en este modelo de tres estados
9. Tipos de programas en Java
Los 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.
10. 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.
11. 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.8bin;%PATH% set CLASSPATH=C:jdk1.1.8libclasses.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.2bin;%PATH% set CLASSPATH=C:jdk1.2.2jrelib;. 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 jrelib.
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.
12. 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.
13. CPU
Inicia operación
de E/S
de
Dispositivo de E/S
Petición de proceso
E/S
Finalización de Señal
Interrupción de fin de E/S
E/S termina
Continua con
mas peticiones
Paralelismo entre CPU y Dispositivos de E/S
15. 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ón
ejecución de múltiples procesos en un solo procesador.
Multiprocesamiento
ejecución de múltiples procesos en un sistema multiprocesador donde hay acceso a
memoria compartida.
Programación Distribuida
ejecución de múltiples procesos en varios procesadores los cuales no comparten
memoria.
16. Concepto de Proceso
Un sistema operativo ejecuta una variedad de
programas:
Sistema Batch: jobs
Sistemas de tiempo compartido: programas de usuario o tareas
Proceso - un programa en ejecución; la ejecucución
del proceso debe progresar de manera secuencial.
Un proceso incluye:
program counter
stack
data section
17. 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.
18. 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.
19. Process Control Block
Información asociada con cada proceso:
Estado del proceso
Program counter
Registros del CPU
Información de planificación del CPU
Memoria
Información para administración
Información de estatus de E/S
20. 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.
21. 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.
22. Terminación de Procesos
El 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.
23. BIBLIOGRAFÍA
ENLACE al tema anterior: INTRODUCCIÓN
ENLACE al siguiente tema: PLANIFICACIÓN DE
PROCESOS
http://74.125.113.132/search?
q=cache:nWH9LryJLq8J:delta.cs.cinvestav.mx/~pmalv
arez/capi5tr.ppt+PROCESOS+CONCURRENTES+EJE
CUTADOS+EN+MULTIPLES+COMPUTADORAS&cd
=6&hl=es&ct=clnk&gl=ec