Todas las computadoras modernas pueden hacer varias cosas al mismo tiempo. En un sistema de multiprogramación, la CPU también cambia de un programa a otro, ejecutando cada uno durante decenas o centenas de milisegundos. Procesos y subprocesos
Para las personas es difícil dar seguimiento a varias actividades en paralelo Los diseñadores de s.o. han desarrollado un modelo conceptual (procesos secuenciales) que facilita tratar con el paralelismo. Este modelo, sus usos y algunas de sus consecuencias se exploraran en esta sección Procesos y subprocesos
Todo el software ejecutable de la computadora, a veces incluye el s.o., se organiza en varios procesos secuenciales, o simplemente procesos Un proceso es un programa en ejecución, e incluye los valores que tienen el contador de programa, los registros y las variables.
El modelo de procesos
En lo conceptual, cada proceso tiene su propia CPU virtual.
En la realidad, la verdadera CPU cambia en forma continua de un proceso a otro. El modelo de procesos
La rápida conmutación se denominamultiprogramación. Figure 1: Multiprogramación de cuatro programas
Varios procesos pueden compartir un solo procesador, y se usa algún algoritmo de calendarización para determinar cuándo hay que dejar de trabajar en un proceso y atender otro.
Hay cuatro sucesos principales que causan la creación de procesos: Creación de procesos 1. Inicialización del sistema 2. Ejecución de una llamada al sistema para crear procesos por parte de un proceso en ejecución. 3. Solicitud de un usuario para crear un proceso 4. Inicio de un trabajo por lotes
Cuando se arranca un s.o., por lo regular se crean varios procesos. Algunos son de primer plano; es decir, procesos que interactúan con usuarios y trabajan para ellos. Otros son procesos de segundo plano que no están asociados con un usuario en particular, sino que tienen una función específica Los procesos de segundo plano se llaman demonios (daemons) Por ejemplo: podría diseñarse un proceso de segundo plano que acepte el correo electrónico entrante, este proceso quedaría inactivo casi todo el día pero entraría en acción repentinamente si llega algún mensaje
Es común que un proceso en ejecución emita llamadas al sistema para crear uno o más procesos que le ayuden a su labor. La creación de procesos tiene gran utilidad cuando el trabajo a realizarse puede formularse con facilidad a partir de varios procesos relacionados. En un multiprocesador el trabajo también se realizará más rápido si permite que cada proceso se ejecute en una CPU distinta. Procesos
1. Terminación normal (voluntaria). 2. Terminación por error (voluntaria). 3. Error fatal (involuntaria). 4. Terminado por otro proceso (involuntaria). 5. La mayoría de los procesos termina porque ya realizó su trabajo. Terminación de procesos
Es común que un proceso tenga que interactuar con otros procesos (aún cuandoo tiene su propio contador de programas y estado interno).
Los tres estados en que puede estar un proceso son los siguientes: En ejecución (en realidad, usando la CPU en ese instante). Listo (puede ejecutarse, detenido de forma temporal para permitir que se ejecute otro proceso). Bloqueado (no puede ejecutarse mientras no ocurra cierto suceso externo). Estados de procesos
Estados de procesos
Página siguiente |