Está en la página 1de 22

Tema 4

Sistemas Operativos

Tema 4. Procesos e hilos


Índice
Esquema

Ideas clave

4.1. ¿Cómo estudiar este tema?

4.2. Concepto de proceso

4.3. Concepto de hilo

4.4. Estados de los procesos

4.5. Control de procesos

A fondo

Procesos e hilos en C de Unix/Linux

Procesos vs. Hilos

Gestión de los recursos de un sistema operativo

Critical Section Problem

Process management

Procesos e hilos

Estados de los procesos e hilos

Test
Esquema

Sistemas Operativos 3
Tema 4. Esquema
© Universidad Internacional de La Rioja (UNIR)
Ideas clave

4.1. ¿Cómo estudiar este tema?

Para estudiar este tema lee las «Ideas clave» y el siguiente documento:

Stallings, W. (2005). Sistemas operativos. Aspectos internos y principio de diseño

(pp. 108-120, 135-143) . Madrid: Pearson Educación. Disponible en el aula virtual en

virtud del artículo 32.4 de la Ley de Propiedad Intelectual.

En este tema se analizarán los siguientes puntos fundamentales para poder

entender:

▸ Definición de un proceso.

▸ Relación entre procesos e hilos.

▸ Estados de los procesos.

▸ Control de procesos.

Sistemas Operativos 4
Tema 4. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave

4.2. Concepto de proceso

Tal y como señala William Stallings (2005, p. 109), el término de proceso incluye

varias definiciones, entre ellas:

▸ Un programa en ejecución.

▸ Una instancia de un programa ejecutado en un computador.

▸ La entidad que se puede asignar y ejecutar en un procesador.

▸ Unidad de actividad que se caracteriza por la ejecución de una secuencia de

instrucciones.

La ejecución de un proceso requiere de: código de programa y un conjunto de

datos. Mientras el proceso está en ejecución, se distinguen una serie de elementos,

a saber:

▸ Identificador. Se trata de un identificador único asociado a cada proceso.

▸ Estado. Indica en qué estado se encuentra el proceso.

▸ Prioridad.

▸ Contador de programa.

▸ Punteros a memoria.

▸ Datos de contexto. Aquellos que se encuentran en los registros de la máquina.

▸ Información de estado de E/S. Peticiones de E/S pendientes, dispositivos, etc.

Información de auditoría.

Para ampliar más esta información, remitirse a la página 110 del libro Sistemas

Sistemas Operativos 5
Tema 4. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave

operativos. Aspectos internos y principios de diseño.

Esta información se suele almacenar en el bloque de control de procesos.

Tabla 1. Características de los procesos.

Sistemas Operativos 6
Tema 4. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave

4.3. Concepto de hilo

Un proceso tiene la propiedad y la capacidad de ejecución. En los sistemas

operativos se diferencia entre ambas características, llamándose hilo a un proceso

sin propiedad de recursos.

Hasta hace algunos años, los sistemas operativos eran monohilos, es decir cada

proceso solo podía tener un hilo de ejecución. Sin embargo, en la actualidad

hablamos de sistemas capaces de ejecutar múltiples procesos multihilos. En este

contexto de sistemas multihilos, cada hilo cuenta con:

▸ Un estado de ejecución.

▸ Un contexto que se almacena cuando no está en ejecución. Cada hilo tendrá un

contador de programa diferente dentro de cada proceso.

▸ Una pila de ejecución.

▸ Espacio de almacenamiento de variables locales.

▸ Acceso a la memoria y recursos de su proceso, compartido por todos los hilos

del proceso.

Figura 1. Introducción de hilos.

Sistemas Operativos 7
Tema 4. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave

Sistemas Operativos 8
Tema 4. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave

4.4. Estados de los procesos

El comportamiento de un proceso se puede identificar mostrando la secuencia de

ejecución, denominado traza. En los sistemas actuales, capaces de mantener en

ejecución varios procesos, existe un programa llamado activador (dispatcher) que

permite cambiar el proceso en ejecución.

Durante la ejecución de un proceso, este puede pasar por diferentes estados que

dependerán del sistema operativo que se utilice.

Así podemos distinguir:

▸ Modelo de proceso de dos estados. Es importante mencionar que es función del

sistema operativo controlar la ejecución de los procesos. En este modelo se

distinguen los estados de «en ejecución» y «en no ejecución». Al crearse el

proceso de crea su bloque de control, insertándose como proceso «en no

ejecución». Cuando corresponda, el activador intercambiará el proceso en

ejecución a «en no ejecución» y seleccionará uno del estado «en no ejecución»


para pasar al procesador y cambiar su estado a «en ejecución».

▸ Modelo de proceso de cinco estados. La introducción de un modelo con más

estados se debe a que no siempre todos los procesos están listos para ejecutar.

Una para separar mejor los procesos es dividiendo el estado de «En No

Ejecución» a «listo» y «bloqueado».

De esta forma se crean cinco estados:

• En Ejecución. El proceso se encuentra actualmente en ejecución.

• Listo. Un proceso que está preparado para ejecutarse y esperando su

turno.

Sistemas Operativos 9
Tema 4. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave

• Bloqueado. Un proceso en este estado no puede ejecutarse hasta que

cumpla una tarea de E/S o haya un determinado evento.

• Nuevo. Este estado indica que un proceso se acaba de crear y no está

aún en la cola para ser ejecutado.

• Saliente. Indica que un proceso ha sido liberado del grupo de procesos

ejecutables debida a su finalización a una excepción.

Una vez identificados los estados, es importante resaltar qué eventos hacen

conmutar entre estados a los procesos:

• Null – Nuevo. Se crea el proceso para ejecutar el programa.

• Nuevo-listo. Un proceso se mueve de «nuevo» a «listo» cuando el

número de procesos en este último sábado no supera un umbral. En los

sistemas operativos actuales se utiliza un número de procesos o el límite

de la memoria virtual. Este límite asegura el rendimiento del sistema.

• Listo. En Ejecución. Esta es una tarea del planificador, que se verá en

próximos temas

• En ejecución – listo. Normalmente se da cuando un proceso ha agotado

el máximo tiempo de ejecución. Sin embargo, existen otras causas que no

están incluidas en todos los sistemas operativos. Por ejemplo, cuando un

proceso de mayor prioridad pasa a estar «listo», el procesador puede

expulsar el proceso actual y pasar a ejecutar el de mayor prioridad.

• En ejecución – bloqueado. En general, un proceso pasa al estado de


«bloqueado» si solicita algo por lo que debe esperar. Esta solicitud se

realiza (normalmente) mediante una llamada al sistema.

• Bloqueado – listo. Cuando ocurre un evento que libera la espera del

Sistemas Operativos 10
Tema 4. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave

proceso, este pasa al estado «listo».

• Bloqueado – saliente y listo – saliente. Si un proceso padre finaliza,

todos los hijos también lo hacen.

Sistemas Operativos 11
Tema 4. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave

4.5. Control de procesos

Muchos procesadores ofrecen dos modos de ejecución de instrucciones. El modo

menos privilegios se denominan modo usuario. El modo con más privilegios se

denomina modo sistema, modo control o modo núcleo.

La existencia de diferentes modos de ejecución se justifica por la necesidad de

proteger al sistema operativo.

En las páginas 137-143 del libro Sistemas operativos. Aspectos internos y principios

de diseño se describen las tareas básicas de un sistema operativo en cuanto al

control de procesos se refiere.

A continuación, vemos un resumen de estas tareas:

▸ Creación de procesos. Cuando el sistema operativo decide crear un proceso

lo hará de la siguiente manera.

• Asignación de un identificador único al proceso.

• Reserva espacio para el proceso. Para ello, el sistema operativo debe

conocer cuánta memoria se requiere para el espacio de direcciones

privado y para la pila de usuario.

• Inicialización del bloque de control de proceso. Entre otra información,

se guarda la relativa al proceso padre.

• Establecer los enlaces apropiados.

• Creación y expansión de otras estructuras de datos.

▸ Cambio de proceso. A priori, puede parecer una tarea sencilla, sin embargo,

hay que responder a algunas cuestiones al sistema.

Sistemas Operativos 12
Tema 4. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave

• Cuando se realiza el cambio de proceso. Puede ocurrir en cualquier

instante donde el sistema operativo obtiene el control sobre el proceso que

se encuentra en ejecución. Algunos de los motivos pueden ser:

interrupción/trap y llamada al sistema.

☐ En el caso de una interrupción, el primero en tomar el control es el


manejador de interrupciones. Algunos ejemplos de interrupciones

son: interrupciones de reloj, E/S, fallo de memoria, etc.

☐ Con un trap, el sistema operativo conoce si la condición de excepción

es irreversible. Si es así, el proceso pasa a estado Saliente y se hace

un cambio de proceso. De no ser así, el comportamiento depende del

diseño del sistema operativo.

☐ En el caso de una llamada al sistema puede provocar que el

proceso pase al estado bloqueado.

• Cambio de modo. Si no hay una interrupción pendiente, el procesador

pasa la fase de búsqueda de la siguiente instrucción. En caso contrario

actúa de la siguiente forma:

☐ Coloca el contador de programa en la dirección de inicio del programa

manejador de la interrupción.

☐ Conmuta de modo usuario a modo núcleo.

• Cambio del estado del proceso. Un cambio de modo puede ocurrir sin

que cambie el estado del proceso actual. En tal caso, es necesario guardar

el estado del proceso actual y volverlo a restaurar cuando se vuelva del

cambio de modo.

Cuando un proceso cambia de «En Ejecución» a «listo/bloqueado», es necesario

Sistemas Operativos 13
Tema 4. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
Ideas clave

realizar cambios más importantes. Los pasos para realizar un cambio son:

☐ Guardar el estado del procesador, incluyendo el contador de


programa y registros.

☐ Actualizar el bloque de control de proceso al estado correspondiente.

☐ Mover el bloque de control de proceso a la cola correspondiente.

☐ Seleccionar un nuevo proceso a ejecutar.

☐ Actualizar el bloque de control del nuevo proceso.

☐ Actualizar las estructuras de datos de gestión memoria.

☐ Restaurar el estado del procesador.

▸ Ejecución del sistema operativo. El sistema operativo funciona igual que

cualquier otro software, ya que es ejecutado por el procesador. Sin embargo,

depende del procesador para recuperar el control cuando se ejecuta un

determinado proceso.

Sistemas Operativos 14
Tema 4. Ideas clave
© Universidad Internacional de La Rioja (UNIR)
A fondo

Procesos e hilos en C de Unix/Linux

Ejemplos java y C/Linux. (s.f.). Chuidiang.

Este artículo muestra la relación entre los procesos/hilos en UNIX creados con el

lenguaje de programación C. Desde el punto de vista de implementación del sistema

operativo, C es un lenguaje que se utiliza ampliamente.

Accede al documento a través del aula virtual o desde la siguiente dirección

web:

http://www.chuidiang.com/clinux/procesos/procesoshilos.php

Sistemas Operativos 15
Tema 4. A fondo
© Universidad Internacional de La Rioja (UNIR)
A fondo

Procesos vs. Hilos

Systop. (3 de mayo de 2012). Procesos vs. hilos [Blog]. Systop.

Este texto muestra las diferencias entre procesos e hilos. Se muestra un esquema de

5 estados de los procesos y la explicación de qué ocurre para que un proceso pueda

conmutar a cada estado según corresponda.

Accede al documento a través del aula virtual o desde la siguiente dirección web:

http://systope.blogspot.com.es/2012/05/procesos-e-hilos.html

Sistemas Operativos 16
Tema 4. A fondo
© Universidad Internacional de La Rioja (UNIR)
A fondo

Gestión de los recursos de un sistema operativo

McGraw-Hill. (s.f.). Gestión de los recursos de un sistema operativo (pp. 50-68).

Madrid: McGraw-Hill.

Este documento muestra diferentes aspectos como el control de procesos y la

creación de los mismos. Es un documento muy interesante como introducción a los

temas posteriores de sincronización y gestión de memoria.

Accede al documento a través del aula virtual o desde la siguiente dirección

web:
http://www.mcgraw-hill.es/bcv/guide/capitulo/8448180321.pdf

Sistemas Operativos 17
Tema 4. A fondo
© Universidad Internacional de La Rioja (UNIR)
A fondo

Critical Section Problem

Este video muestra uno de los aspectos que fundamentan la concurrencia de

procesos: la sección crítica. Se exponen las ideas necesarias para permitir que los

procesos concurrentes se ejecuten correctamente, obteniendo los resultados

correctos. Como se ha visto en el tema, hay que garantizar que el acceso a la

sección crítica se haga de manera segura, es decir, en un momento de tiempo solo

puede haber un proceso dentro de la sección crítica.

Accede al video a través del aula virtual o desde la siguiente dirección web:
http://www.youtube.com/watch?v=A9CCDS3Jizcf

Sistemas Operativos 18
Tema 4. A fondo
© Universidad Internacional de La Rioja (UNIR)
A fondo

Process management

Este video muestra un ejemplo de la gestión de procesos destacando cada uno de

los estados por los que puede ir pasando.

Accede al video a través del aula virtual o desde la siguiente dirección web:
http://www.youtube.com/watch?v=tfvOSqmg0vk

Sistemas Operativos 19
Tema 4. A fondo
© Universidad Internacional de La Rioja (UNIR)
A fondo

Procesos e hilos

Romero, M. (16 de mayo de 2012). Procesos e hilos. El Salvador: Universidad de

San Miguel.

En estas presentaciones se muestra entre los hilos y el sistema operativo haciendo

mención a los servicios POSIX.

Accede al documento a través del aula virtual o desde la siguiente dirección

web:

http://www.slideshare.net/marfonline/procesos-e-hilos-sistemas-operativos

Sistemas Operativos 20
Tema 4. A fondo
© Universidad Internacional de La Rioja (UNIR)
A fondo

Estados de los procesos e hilos

Wolf, G., Ruiz, E., Bergero, F. y Meza, E. (2015). Fundamentos de sistemas

operativos. México: Universidad Nacional Autónoma de Méxcio.

Este libro presenta una descripción de los estados de los procesos e hilos en un

sistema operativo determinado.

Accede al documento a través del aula virtual o desde la siguiente dirección

web:

https://sistop.org/pdf/sistemas_operativos.pdf

Sistemas Operativos 21
Tema 4. A fondo
© Universidad Internacional de La Rioja (UNIR)
Test

1. Se entiende por proceso:

2. Para la ejecución de proceso se requiere:

3. El bloque de control de procesos:

4. Para la ejecución de un proceso:

5. Un hilo:

6. La creación de sistemas multihilos se debe a:

7. El modelo de proceso de dos estados:

8. El modelo de procesos de cinco estados:

9. El control de procesos permite:

10. Un cambio de proceso se realiza cuando:

Sistemas Operativos 22
Tema 4. Test
© Universidad Internacional de La Rioja (UNIR)

También podría gustarte