Sistemas Operativos
-
Upload
orlandito33 -
Category
Education
-
view
1.115 -
download
0
description
Transcript of Sistemas Operativos
SISTEMAS OPERATIVOS
PROGRAMAS Y PROCESOS DE COMPUTACION
Un programa software es un artefacto construido por un desarrollador de software, utilizando algún lenguaje de programación.
Cuando un programa se ejecuta en un computador se representa como “proceso”
Un proceso es un programa que se ejecuta, con valores, información de su estado y asignación de los recursos necesarios para que el S.O. pueda gestionar la ejecución de esos procesos.
TRANSICIONES DE LOS ESTADOS DE LOS PROCESOS
Un proceso puede pasar por una serie de estados discretos entre los que tenemos:
-En Ejecución.- Ocupa la CPU actualmente, se esta ejecutando.
-Listo o preparado.- El proceso dispone de todos los recursos para su ejecución, solo le falta la CPU.
-Bloqueado.- Le falta algún recurso para seguir ejecutándose.
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.
TRANSICIONES DE LOS ESTADOS DE LOS PROCESOS
TRANSICIÓN DE ESTADOS.
Transición ProcesoNuevo-Listo Al crearse
Listo ejecutando El proceso solo espera para que se le asigne un procesador para ejecutar.
Ejecutando-Listo Ante una interrupción que se genere puede perder el recurso procesador y pasar al estado listo.
Ejecutado- Bloqueado A medida que ejecuta instrucciones realiza pedidos en distintos componentes.
Bloqueado-Listo Una vez que ocurre el evento en la cola de espera es puesto nuevamente en la cola de procesos listos.
Ejecutado-terminado Cuando ejecuta sus últimas instrucciones pasa al estado terminado
TIPO DE PROGRAMAS EN JAVA
El código para crear procesos se lo realizará en Java, por lo cual es necesario conocer que existen tres tipos de programas Java:
Aplicaciones .- Tiene un método principal (main), se ejecuta como un proceso independiente (stand-alone)
Applets.- No tiene un método main, se
ejecuta mediante el uso de un navegador o una herramienta (appletviewer).
Servlets.- Parecido al applets en el hecho que no tiene un método main se ejecuta en el contexto de un servidos web.
PROGRAMACIÓN CONCURRENTE. Consiste en la ejecución simultanea de procesos;
existen tres clases de programación concurrente:
1.PROCESOS CONCURRENTES EJECUTADOS EN MULTIPLES COMPUTADORES
Procesos separados ejecutándose concurrentemente en computadores independientes interconectados a través de la red
Interactúan con otros procesos mediante el intercambio de datos sobre la red , pero su ejecución es completamente independiente.
La programación concurrente, requiere que el software utilizado para los programas participantes contenga la lógica necesaria para permitir la interacción entre los procesos.
PROGRAMACIÓN CONCURRENTE.
2. PROCESOS CONCURRENTES EJECUTADOS EN UN ÚNICO COMPUTADOR
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.
- No se necesita una programación especial
- No es necesario una lógica de software especial en un programa para iniciar multitarea
3. PROGRAMACION CONCURRENTE DENTRO DE UN PROCESO
Muchas veces un único programa necesita iniciar diferentes tareas que se ejecuten concurrentemente.
La programación concurrente dentro de un proceso se lleva acabo a través de dos tipos de herramientas proporcionadas por el sistema operativos:
- Procesos Padres e Hijos
- Threads o Hilos
PROGRAMACIÓN CONCURRENTE.
PROCESOS PADRES E HIJOS
Un proceso puede crear procesos subordinados o procesos hijos, a través de la multitarea real o virtual, el proceso original llamado proceso padre, continúa ejecutándose simultáneamente con el proceso hijo.
Proceso Hijo consiste en un programa en ejecución con valores propios información de estado que hereda del proceso padre.
Proceso padre puede saber cuando un proceso hijo ha finalizado.
PROCESOS PADRES E HIJOS
THREADS O HILOS
En vez de procesos hijos un proceso puede crear threads o hilos también conocidos como procesos ligeros, Poseen una mínima información de estado.
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.
THREADS O HILOS