Un programa es una entidad pasiva, una lista de instrucciones; un proceso es una entidad activa, que empleando al programa define la actuación que tendrá el sistema ESTADOS DE LOS PROCESOS
Un proceso puede estar en cualquiera de los siguientes estados: Nuevo, Listo, En
ejecución, Bloqueado y Terminado.
Nuevo: Se solicitó al sistema operativo la creación de un proceso, y sus recursos y
estructuras están siendo creadas. Listo Está listo para iniciar o continuar su ejecución pero el sistema no le ha asignado un procesador. En ejecución. El proceso está siendo ejecutado en este momento. Sus instrucciones están siendo procesadas en algún procesador. Bloqueado. En espera de algún evento para poder continuar su ejecución (aun si hubiera un procesador disponible, no podría avanzar). Terminado. El proceso terminó de ejecutarse; sus estructuras están a la espera de ser limpiadas por el sistema operativo (ya sea porque terminó o por algún fallo, como un error de protección, aritmético, etc.). MODELO DE DOS ESTADOS
El modelo de estados más simple es el de dos estados.
En este modelo, un proceso puede estar ejecutándose o no. Cuando se crea un nuevo proceso, se pone en estado de No ejecución. En algún momento el proceso que se está ejecutando pasará al estado No ejecución y otro proceso se elegirá de la lista de procesos listos para ejecutar para ponerlo en estado Ejecución. MODELO DE CINCO ESTADOS MULTIPROGRAMACIÓN
Se denomina multiprogramación a la técnica que permite que dos o más procesos
ocupen la misma unidad de memoria principal y que sean ejecutados al "mismo tiempo" en la unidad central de proceso o CPU. CARACTERÍSTICAS DE UN SISTEMA OPERATIVO DE MULTIPROGRAMACIÓN Mejora productividad del sistema y utilización de recursos. Generalmente soportan múltiples usuarios (multiusuarios). Requieren validación de usuario para seguridad y protección. Proporcionan contabilidad del uso de los recursos por parte de los usuarios. Sistemas multiprocesadores son sistemas multitareas por definición ya que soportan la ejecución simultánea de múltiples tareas sobre diferentes procesadores. En general, los sistemas de multiprogramación se caracterizan por tener múltiples programas activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos periféricos. VENTAJAS
Varios procesos en ejecución
Permite el servicio interactivo simultáneo a varios usuarios de manera eficiente Aprovecha los tiempos que los procesos pasan esperando a que se completen sus operaciones de E/S y por ende aumenta la eficiencia en el uso del CPU. DIAGRAMA USO DEL PROCESADOR POR TRES PROCESOS
Los procesos alternan periodos en los que progresan en su actividad, cuando
están asignados al procesador, con periodos de inactividad, en los que no progresan en absoluto TIPOS DE SISTEMAS OPERATIVOS DE MULTIPROGRAMACIÓN
Sistemas de tiempo compartido
Sistemas de tiempo real Sistemas operativos combinados SISTEMAS DE TIEMPO COMPARTIDO
El tiempo compartido es bastante popular en sistemas multi-programación y
multiusuarios Estos sistemas de multi-acceso dedican la mayor parte del tiempo de ejecución de un programa único de una gran aplicación Son elementos dedicados que poseen un buen tiempo de respuesta del terminal y tratan con frecuencia de proporcionar un reparto equitativo del los recursos comunes para dar la ilusión a cada usuario de poseer la máquina para el mismo SISTEMAS DE TIEMPO REAL
Se usan en entornos donde se deben aceptar y procesar en tiempo breve y sin
tiempos muertos un gran número de sucesos, en su mayoría externos al sistema de computadora. Se asigna a cada proceso un cierto nivel de prioridad que corresponde a la importancia relativa de los sucesos que sirve. El procesador está normalmente asignado al proceso con más alta prioridad entre los que están listos para ejecutarse. Esta forma de planificación se llama planificación basada en la prioridad preferente. SISTEMAS OPERATIVOS COMBINADOS
Los sistemas combinados se caracterizan por poseer bloques o lotes que se
ejecutan con una menor prioridad que el resto de las aplicaciones. Así se logra el uso completo del procesador al eliminar los tiempos muertos o de espera.