2. CONCEPTOS BÁSICOS DE SISTEMAS OPERATIVOS PROGRAMAS Y PROCESOS DE COMPUTACIÓN Realizado por: Celso Puma
3. DEFINICIÓN Un programa software, es un artefacto construido por un desarrollador de software, utilizando algún lenguaje de programación. Típicamente el lenguaje de programación, es un lenguaje de alto nivel, y requiere un compilador o interprete para traducirlo a lenguaje de máquina. Realizado por: Celso Puma
4. Cuando un programa se ejecuta en un computador se representa como un proceso. Un proceso consiste en un programa que se ejecuta, con valores, información de su estado, un proceso es una entidad dinámica, que solo existe cuando un programa se ejecuta. Realizado por: Celso Puma
5. TRANSICIONES DE ESTADO DE LOS PROCESOS 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. El proceso necesita que ocurra algún evento que le permita poder proseguir su ejecución. Existe una transición de estados durante la vida de un proceso. Realizado por: Celso Puma
6. Solamente puede haber un proceso en ejecución a la vez, pero pueden existir varios listos y varios pueden estar bloqueados. Realizado por: Celso Puma
7. TIPO DE PROGRAMAS EN JAVA El código para crear procesos se lo realizará en Java, existen tres tipos de programas Java: 1. Aplicaciones 2. Applets 3. Servlets Independientemente del tipo de programa, cada programa se escribe como una clase Java. Realizado por: Celso Puma
8.
9. PROGRAMACIÓN CONCURRENTE Consiste en la ejecución simultánea de procesos. PROCESOS CONCURRENTES EJECUTADOS EN MULTIPLES COMPUTADORES Son procesos separados ejecutándose concurrentemente en computadores independientes interconectados a través de una red. Dichos procesos interactúan con otros procesos mediante el intercambio de datos sobre la red, pero su ejecución es completamente independiente. Realizado por: Celso Puma
10. PROCESOS CONCURRENTES EJECUTADOS EN UN UNICO COMPUTADOR La concurrencia puede ser real o virtual. Ciertos computadores que utilizan sistemas operativos multitarea, que permite la ejecución concurrente de múltiples tareas o procesos. Realizado por: Celso Puma
11. PROGRAMACION CONCURRENTE DENTRO DE UN PROCESO Además de la programación concurrente, un único programa necesita iniciar diferentes tareas que se ejecuten concurrentemente. Por ejemplo un programa, podría necesitar realizar otras tareas mientras espera indefinidamente por la entrada de un usuario en una interfaz de una ventana. La programación concurrente dentro de un proceso se lleva a cabo a través de dos tipos de herramientas, proporcionadas por el sistema operativo: 1. Procesos Padres e Hijos 2. Threads o Hilos Realizado por: Celso Puma
12. PROCESOS PADRES E HIJOS En tiempo de ejecución, un proceso puede crear procesos subordinados o procesos hijos. A través de la multitarea real o virtual, el proceso original, denominado proceso padre, continúa ejecutándose simultáneamente con el proceso hijo. Un proceso padre puede saber cuando un proceso hijo ha finalizado. Realizado por: Celso Puma
14. THREADS O HILOS En vez de procesos hijos, un proceso puede crear threads o hilos, también conocidos como procesos ligeros. 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. Realizado por: Celso Puma
16. Los hilos poseen una mínima información de estado, comportándose por lo demás de la misma forma que los procesos. Debido a que implican menos sobrecarga, es preferible utilizar hilos que utilizar procesos hijos. Realizado por: Celso Puma