conceptos basicos de sistemas operativos
TRANSCRIPT
CONCEPTOS BÀSICOS DE SISTEMAS OPERATIVOS
ProgramasProgramas y Procesos de y Procesos de ComputciònComputciòn
Un programa es un artefacto construido por un desarrollador de software, utilizando algún lenguaje de programación.
Programa:Programa:
ProgramasProgramas y Procesos de y Procesos de ComputciònComputciòn
Es una entidad dinámica, que solo existe cuando un programa se ejecuta.
Procesos:Procesos:
Transiciones de Estado de los Transiciones de Estado de los ProcesosProcesos
Durante su vida, un proceso puede pasar por una serie de estados discretos, algunos de ellos son:
* En Ejecución - * Listo o Preparado - * Bloqueado* En Ejecución - * Listo o Preparado - * Bloqueado
Transiciones de Estado de los Transiciones de Estado de los ProcesosProcesos
El proceso ocupa la CPU actualmente, es decir, se está ejecutando.
En EjecuciónEn Ejecución::
El proceso dispone de todos los recursos para su ejecución, sólo le falta la CPU.
Listo o PreparadoListo o Preparado::
Transiciones de Estado de los Transiciones de Estado de los ProcesosProcesos
Al proceso le falta algún recurso para poder seguir ejecutándose, además de la CPU.
Solamente puede haber un proceso en ejecución a la vez, pero pueden existir varios listos y varios pueden estar bloqueados.
Bloqueado:Bloqueado:
Transiciones de Estado de los Transiciones de Estado de los ProcesosProcesos
En la siguiente presentación describiremos la transición de estados del gráfico.
Transiciones de Estado de los Transiciones de Estado de los ProcesosProcesos
Nuevo ListoNuevo Listo Al crearse un proceso pasa inmediatamente al estado listo.
Listo EjecutandoListo EjecutandoEn el estado listo el proceso solo espera que se asigne un procesador para ejecutar. Al liberarse el proceso el planificador (Schedule) selecciona el próximo proceso.
Ejecutando ListoEjecutando ListoAnte una interrupción que se genere, el proceso puede perder el recurso procesador y pasar al estado listo. El schedule selecciona el próximo proceso a ejecutar.
Ejecutando BloqueadoEjecutando BloqueadoA medida que el proceso ejecuta instrucciones realiza pedidos en distintos componentes. El proceso es puesto en la cola de espera hasta que se complete su pedido.
Bloqueado ListoBloqueado ListoCuando ocurre el evento del proceso que estaba esperando en la cola de espera. El proceso es puesto nuevamente en la cola de proceso listos.
Ejecutando TerminadoEjecutando TerminadoCuando el proceso ejecuta su ultima instrucción pasa al estado terminado. El sistema libera las estructuras que representa el proceso.
Tipo de Programas en JavaTipo de Programas en Java
• El código para crear procesos se lo realiza en Java.
• Existen tres tipos de programas:
1. Aplicaciones.- Tiene main y se ejecuta (stone-alone).
2. Applets.- No tiene main y se ejecuta mediante un navegador (appletviewer).
3. Servlets.- No tiene main y se ejecuta en el contexto de un servidor web.
Programación ConcurrenteProgramación Concurrente
Consiste en la ejecución simultanea de procesos, existen tres clases de computación concurrente:
1. Procesos Concurrentes Ejecutados en Múltiples Computadoras.
2. Procesos Concurrentes Ejecutados en un solo Computador.
3. Programación Concurrente dentro de un Proceso
Procesos Concurrentes Ejecutados en Procesos Concurrentes Ejecutados en Múltiples ComputadorasMúltiples Computadoras
• Son procesos separados ejecutándose concurrentemente en computadores independientes interconectados a través de una red.
• Cuando se accede a una página web utilizando un navegador. Un proceso de una máquina local interactúa con un proceso de una maquina remota (servidor web).
Procesos Concurrentes Ejecutados en un Procesos Concurrentes Ejecutados en un solo Computadorsolo Computador
• Ciertos computadores que utilizan sistemas operativos multitarea, que permite la ejecución concurrente de múltiples tareas o procesos.
• La verdadera concurrencia multitarea solo es posible si el computador tiene múltiples CPU, de forma que cada CPU pueda ejecutar un proceso
Programación Concurrente dentro de un Programación Concurrente dentro de un ProcesoProceso
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 1. Procesos Padres e Hijos
2. Threads o Hilos2. Threads o Hilos
Programación Concurrente dentro Programación Concurrente dentro de un Procesode un Proceso
En tiempo de ejecución, un proceso puede crear 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.
Procesos Procesos Padres e hijos:Padres e hijos:
Programación Concurrente dentro Programación Concurrente dentro de un Procesode un Proceso
En vez de procesos hijos, un proceso puede crear threads o hilos, también conocidos como procesos ligeros.
• 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.
Procesos Procesos Threads o Hilos:Threads o Hilos: