Está en la página 1de 8

UNIVERSIDAD PUBLICA DE EL ALTO M. Sc.

ZARA YUJRA CAMA


CARRERA INGENIERIA DE SISTEMAS SISTEMAS OPERATIVOS (SIS - 421B)

Tema Nro. 2

PROCESOS Y SUBPROCESOS
1. PROCESOS

Una computadora realiza varias tareas al mismo tiempo. Mientras se ejecuta un programa de
usuario, una computadora puede realizar diferentes tareas como ser: leer un disco y enviar
texto a una pantalla o impresora. La CPU trabaja en decenas y centenas de milisegundos, a
lo largo de un segundo puede interactuar con varios programas, lo que da al usuario la
ilusión de paralelismo.

Para ello, los diseñadores de sistemas operativos han desarrollado un modelo conceptual
(procesos secuenciales) que facilita y tratar con el paralelismo. Para explicar con más detalle
nos enfocaremos en este capítulo.

1.1 El modelo de procesos

El Sistema Operativo se organiza en varios procesos secuenciales o simplemente procesos.


Un proceso no es más que un programa en ejecución, e incluye los valores que tienen el
contador de programa, los registros y las variables.

En la figura A mostramos el mecanismo de la CPU cuando realiza una rápida conmutación


la cual se denomina multiprogramación en este caso con cuatro programas en la memoria.

Un contador de programa Proceso


Cuatro contadores de programa
A D
B C
B
C
A
A B C D
D
Tiempo
(a) (b) (c)

a) Multiprogramación de cuatro programas, b) Modelo conceptual de cuatro procesos


secuenciales independientes, c) Solo un programa está activo a la vez.

La idea clave aquí es que un proceso es una actividad de algún tipo: tiene un programa
entradas, salidas y un estado. 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.

1
UNIVERSIDAD PUBLICA DE EL ALTO M. Sc. ZARA YUJRA CAMA
CARRERA INGENIERIA DE SISTEMAS SISTEMAS OPERATIVOS (SIS - 421B)

1.2 Creación de procesos

Para la creación de procesos. Hay cuatro sucesos principales que ayudan a crear los
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 sistema operativo, por lo regular se crean varios procesos.

Desde el punto de vista técnico, en todos estos casos un proceso se crea haciendo que un
proceso existe y ejecute una llamada al sistema para crear procesos. Dicho proceso
existente podría ser uno de usuario que ya este ejecutando, uno de sistema invocado con el
teclado o el ratón, o un administrador de lotes. Lo que hace es ejecutar una llamada al
sistema para crear el proceso; esta llamada le ordena al sistema operativo crear un proceso
e indica, de manera directa o indirecta, cual programa debe ejecutarse en el.

La creación de procesos tiene especial utilidad cuando el trabajo a realizar puede formularse
con facilidad a partir de varios procesos relacionados, pero independientes, que interactúan
entre sí.

1.3 Terminación de procesos

Todos los procesos llegan a terminar, por lo regular debido a una de las siguientes
condiciones:

1.-Terminacion normal (voluntaria)

2.-Terminación por error (voluntaria)

3.- Error fatal (involuntaria)

4.- Terminado por otro proceso (involuntario)

La mayoría de los procesos termina porque ya realizo su trabajo. Una vez que un compilador
ha compilado el programa que se le alimento, ejecuta una llamada para indicar al sistema
operativo que ya termino.

El primer motivo para terminar un proceso es cuando un procesador de texto, navegador de


internet y programas similares siempre tienen un icono en el menú en el que el usuario
puede hacer clic para indicar al proceso que borre los archivos temporales que tenga abierto
y luego terminen.

El segundo motivo para terminar es cuando un proceso descubra un error fatal.

2
UNIVERSIDAD PUBLICA DE EL ALTO M. Sc. ZARA YUJRA CAMA
CARRERA INGENIERIA DE SISTEMAS SISTEMAS OPERATIVOS (SIS - 421B)

El tercer motivo para terminar un error causado por el proceso es a menudo debido a un
defecto en el programa.

La cuarta razón por la que un proceso podría terminar es que otro proceso ejecute una
llamada para pedir al sistema operativo que termine el proceso en cuestión.

1.4 Jerarquía de procesos

Cuando un proceso crea a otro, el proceso padre y el proceso hijo mantienen cierta
asociación. El proceso hijo puede, a su vez, crear más procesos y formar así una jerarquía
de procesos.

Pero tenemos que especificar que un proceso solo tiene un solo padre.

1.5 Estados de procesos

Todos los procesos tienen un estado en especial tres que son los siguientes:

1.-En Ejecución (en realidad, usando la CPU en ese instante)

2.-Listo (puede ejecutarse; detenido en forma temporal para permitir que se ejecute otro
proceso).

3.-Bloqueado (no puede ejecutarse mientras no ocurra cierto suceso externo).

Desde el punto de vista lógico, los primeros dos estados son similares. En ambos casos, el
proceso está dispuesto a ejecutarse, solo que en el segundo por el momento no hay CPU
disponibles para él. El tercer estado es diferente de los primeros dos en cuanto a que el
proceso no puede ejecutarse, aun que la CPU no tenga nada más que hacer.

1 En Ejecución 2

3 Listo
Bloqueado

Figura B. Un proceso puede estar en estado bloqueado, listo o en ejecución. Se


Muestran las transiciones entre esos estados.

Descripción de las transiciones:

La transición 1 se presenta cuando un proceso descubre que no puede continuar.

La transición 2 y 3 son consecuencias de las acciones del calendarizador y despachador de


procesos que forma parte del sistema operativo, y de las cuales el proceso ni siquiera se
entera. La transición 2 ocurre cuando el calendarizador decide que el proceso que se está
ejecutando ya lo hizo durante suficiente tiempo, y es momento de conceder a otro proceso el

3
UNIVERSIDAD PUBLICA DE EL ALTO M. Sc. ZARA YUJRA CAMA
CARRERA INGENIERIA DE SISTEMAS SISTEMAS OPERATIVOS (SIS - 421B)

tiempo de CPU. La transición 3 ocurre cuando los demás procesos han recibido su porción
equitativa y toca al primero recibir la CPU para ejecutarse otra vez.

La transición 4 se presenta cuando ocurre el suceso externo que un proceso estaba


esperando (como la llegada de sus entradas). Si ningún otros proceso esta ejecutándose en
ese instante, se activa la transición 3 y el proceso comenzara a ejecutarse. De lo contrario,
tendrá que esperar un momento en el estado listo hasta que la CPU esté disponible y le
toque su turno.

Un calendarizador se enfoca a decidir cuando un proceso debe ejecutarse y durante cuánto


tiempo.

1.6 Implementación de procesos

Para implementar el modelo de procesos en un sistema operativo se crea una tabla de


procesos (un arreglo de estructuras), con una entrada por procesos.

Esta entrada contiene información acerca del estado de proceso, su contador de programa,
apuntador de pila, asignación de memoria, estado de sus archivos abiertos, información
contable y de calendarización, todos estas tareas se debe guardar cuando un proceso pasa
del estado en ejecución al listo o bloqueado, para que se le pueda volver a poner en marcha
posteriormente, como si nunca se hubiera detenido.
Administración de procesos Administración de memoria Administración de archivos
Registros Apuntador a segmento de texto Directorio raíz
Contador de programas Apuntador a segmento de datos Directorio de trabajo
Apuntador de pila Apuntador a segmento de pila Descriptores de archivos
Estados de procesos ID de usuarios
Prioridad ID de grupo.
Parámetros de calendarización
ID de procesos
Procesos padre
Grupo de procesos
Señales
Hora de inicio del proceso
Tiempo de CPU consumido
Tiempo de CPU de los hijos
Hora de la siguiente alarma.

Figura C. Se muestra algunos campos de una entrada típica de la tabla de procesos.

Cuando esta rutina termina, llama a un procedimiento en C que realizara el resto del trabajo
para este tipo específico de interrupción. (Damos por hecho que el sistema operativo está
escrito en C. como es el caso en la mayoría de los sistemas operativos reales.) Una vez que
dicho procedimiento ha terminado su labor, con los cuales es probable que ahora un proceso
esté listo, se llama al calendarizador para ver quien se ejecutara a continuación. Después, el
control regresa al código en lenguaje ensamblador para que cargue los registros y el mapa
de memoria del proceso actual y lo ponga en marcha.

2. SUBPROCESOS

4
UNIVERSIDAD PUBLICA DE EL ALTO M. Sc. ZARA YUJRA CAMA
CARRERA INGENIERIA DE SISTEMAS SISTEMAS OPERATIVOS (SIS - 421B)

Los sistemas operativos dentro de su proceso tienen un espacio de direcciones y un solo


subproceso de control.

2.1 El modelo de subprocesos

Los subprocesos aportan al modelo de procesos la posibilidad de que haya varias


ejecuciones en el mismo entorno de un proceso, en gran medida independientes una de
otras. Tener múltiple subprocesos ejecutándose en paralelo en un proceso, se dice que es
análogo porque tiene múltiples procesos ejecutándose en paralelo, en una solo
computadora.

En el primer paso, los subprocesos comparten un espacio de direcciones, archivos y otros


recursos.

En el segundo, los procesos comparten una memoria física, disco, impresora y otros
recursos.

Un subproceso tiene todos los accesos a todas las direcciones de memoria y comparten las
mismas variables globales del proceso.

Por lo tanto un proceso siempre pertenece a un solo usuario, y es de suponer que el usuario
creo múltiples subprocesos con el fin de cooperar en forma activa y estrecha.

2.2 Uso de subproceso

El motivo principal para tener un subproceso es que en diversas aplicaciones se estén


realizando varias actividades al mismo tiempo, por lo que algunas de ellas podrían
bloquearse de vez en cuando.

El segundo argumento a favor de los subprocesos es que, al no estar enlazados con


recursos, son más fáciles de crear y destruir.

Tercer motivo los subprocesos se enfocan en el desempeño cuando todos usan


intensivamente la CPU, pero si se realiza una cantidad considerable tanto de cómputo como
de E/S, los subprocesos permiten trabajar estas actividades y así acelerar la aplicación.

Y por último, son útiles en sistemas con múltiples CPUs, en los que es posible un verdadero
paralelismo.

2.3 Implementación De Subprocesos En Espacio De Usuario

5
UNIVERSIDAD PUBLICA DE EL ALTO M. Sc. ZARA YUJRA CAMA
CARRERA INGENIERIA DE SISTEMAS SISTEMAS OPERATIVOS (SIS - 421B)

Podemos especificar que existen dos formas principales de implementar subprocesos:

a) En espacio de usuario y b) En el Kernel

El primer método consiste en colocar por completo el sistema de subprocesos en espacio de


usuario. Cuando los subprocesos se administran en espacio de usuario, cada proceso
necesita su propia tabla de subprocesos privada para dar seguimiento a sus subprocesos.

El kernel realiza la misma forma, guarda información acerca de los procesos en la tabla de
procesos.

2.4 Implementación de subprocesos en el kernel

Un subproceso quiere crear o destruir otros subproceso y para realizar esta acción, emite
una llamada al kernel, que se encarga de crearlo o destruirlo actualizando su tabla de
subprocesos.

La tabla de subprocesos del kernel contiene los registros, el estado y demás información de
cada subproceso.

Los subprocesos de kernel no necesitan nuevas llamadas al sistema. Además, si un


subproceso de un proceso causa un fallo de página, el kernel puede verificar con facilidad si
el proceso tiene algún otro subproceso ejecutable, en caso que tenga ejecutara uno de ellos.

Su principal desventaja es el costo elevado de una llamada al sistema; si las operaciones de


subprocesos (creación, terminación, etc.)son usuales, se requerirá muchos procedimientos
extras.

2.5 Implementaciones hibridas

Se enfoca en la combinación de los subprocesos en el nivel de usuario y en el nivel Kernel.

Mencionaremos dos tipos que son los siguientes:

 Usar subprocesos en el nivel kernel.


 Multiplexar subprocesos en el nivel de usuario en uno de los subprocesos de
kernel.

6
UNIVERSIDAD PUBLICA DE EL ALTO M. Sc. ZARA YUJRA CAMA
CARRERA INGENIERIA DE SISTEMAS SISTEMAS OPERATIVOS (SIS - 421B)

2.6 Actividad del calendarizador

La actividad de calendarizador es emitir la funcionalidad de los subprocesos de kernel, pero


con el desempeño y la mayor flexibilidad que suelen tener los sistemas de subprocesos
implementados en el espacio de usuario.

2.7 Subprocesos emergentes

Los subprocesos emergentes se enfocan en tener un proceso o subproceso que se bloquea


después de emitir una llamada, en espera de un mensaje, cuando llega un mensaje, este se
acepta y procesa.

3. COMUNICACIÓN ENTRE PROCESOS

Para que exista una buena comunicación entre procesos enfocaremos tres aspectos
fundamentales:

a) El primero es la transferencia de información, el cual se enfoca en la buena comunicación


entre procesos, también utilizan un buen mecanismo bien estructurado y que no permita
interrupciones.
b) El segundo se enfoca en asegurarse de que dos o más procesos no se estorben al
realizar actividades cruciales.
c) El tercero tiene que ver con el ordenamiento correcto cuando existen dependencias entre
procesos.

Mencionaremos varios tipos de problemas en el contexto de los procesos, pero debemos


tener presente que los mismos problemas y soluciones se aplican a los subprocesos.

 Condiciones de competencias
 Regiones críticas
 Exclusión mutua con espera activa
 Activar y desactivar
 Semáforos
 Mutexes
 Monitores
 Transferencia de mensajes
 Barreras

7
UNIVERSIDAD PUBLICA DE EL ALTO M. Sc. ZARA YUJRA CAMA
CARRERA INGENIERIA DE SISTEMAS SISTEMAS OPERATIVOS (SIS - 421B)

4. PROBLEMAS CLÁSICOS DE COMUNICACIÓN ENTRE PROCESOS

En los sistemas operativos abundan problemas interesantes que se han estudiado y


analizado en forma amplia utilizando diversos métodos de sincronización.

Entre ellos tenemos tres de los problemas más conocidos.

 El problema de la cena de los filósofos.


 El problema de los lectores y escritores.
 El problema del barbero dormilón.

5. CALENDARIZACION

5.1 Introducción a la calendarización

El calendarizador se preocupa de aprovechar con eficiencia la CPU ya que la comunicación


de procesos es costosa.

El trabajo del calendarizador se enfoca en la utilización de modo kernel, luego debe


guardarse el estado del proceso actual, lo cual incluye almacenar sus registros en la tabla de
procesos para que puedan volver a cargar más adelante. En muchos sistemas, también
debe guardarse el mapa de memoria (por ejemplo, bits de referencias a la memoria en la
tabla de páginas). Luego debe seleccionarse un nuevo proceso mediante la ejecución del
algoritmo de calendarización. Después, se deberá cargar MMU con el mapa de memoria del
nuevo proceso y por último, debe ponerse en marcha el nuevo proceso. Cuando se realiza
todas estas tareas, la comunicación de procesos casi siempre anula la validez de todo el
cache de memoria, que debe cargarse dos veces en forma dinámica desde la memoria
principal (al entrar en el kernel y al salir de él).

Es importante observar que no podemos, realizar en una ejecución demasiadas


conmutaciones de procesos por segundo, porque consume una cantidad apreciable del
tiempo del CPU.

5.2 Existen varios tipos de calendarización entre ellos tenemos los siguientes:

 Calendarización en sistemas por lotes


 Calendarización en sistemas interactivos
 Calendarización en sistemas en tiempo real

También podría gustarte