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 |