Sei sulla pagina 1di 13

Unidad 2 / Escenario 3

Lectura Fundamental

Gestión de procesos en sistemas


operacionales

Contenido

1 Descripción de procesos. ¿Qué es un proceso?

2 Estados de un proceso

3 Control de procesos

4 Tratamiento de interrupciones

5 Fundamentos de multiprogramación y multiprocesamiento

6 Taller de comandos Linux y ejecución de un proceso en Linux

Palabras clave:
Bloqueo, caída, estado, interrupción, Linux, listo, proceso, suspendido.
1. Descripción de procesos. ¿Qué es un proceso?
El fundamento central del estudio de los sistemas operativos es el concepto de gestión de procesos.
Todos los sistemas operativos desde los monousuario hasta los sistemas multiusuario que soportan
miles de usuarios simultáneos, están construidos bajo el concepto de gestión de procesos.

En este escenario se abordarán los conceptos relacionados con la ejecución de procesos, sus estados,
la administración de procesos de entrada/salida y el manejo de colas de los procesos de un sistema
operativo.

2. Estados de un proceso
La misión principal del núcleo o procesador (aunque hoy un procesador como el i7, trae cuatro
núcleos), es la de ejecutar las instrucciones que están en la memoria caché que, a su vez, son traídas
de la memoria principal.

De acuerdo con el modelo arquitectural de Von Neumann (ver figura 1), desde el punto de vista del
procesador, este ejecutará instrucciones de un conjunto de instrucciones que maneja del contador
del programa, el cual se nutre de las que están en un “repositorio de instrucciones” llamado memoria
caché, el cual trae las instrucciones de la memoria principal, que a su vez las extrae de una dirección
en el disco.

Figura 1. Arquitectura computacional de Von Neumann


Fuente: Elaboración propia

POLITÉCNICO GRANCOLOMBIANO 2
El comportamiento de un proceso puede verse como la intercalación de secuencia de instrucciones
a ejecutar por un procesador. A estas secuencias se les llama trazas; además, existe un programa
llamado “despachador” que se encarga de administrar los tiempos de cada proceso en el estado en
que se encuentre.

La definición clásica de estado de un proceso es aquel en la cual el proceso está listo para comenzar a
ejecutarse o en ejecución; a este modelo se le llama “modelo de procesos de dos estados” (ver figura 2).

En la medida que entran más procesos a la cola de procesos, la gestión se vuelve más compleja,
porque un proceso no solo puede ser interrumpido porque se le terminó el tiempo de ejecución, sino
porque puede fallar, puede ser bloqueado por el sistema operativo, puede ser suspendido…

3. Control de procesos

3.1. Modelo de procesos de dos estados

Revisando la figura 3, se observa que el proceso B tiene 4 instrucciones que arrancan en la dirección
de memoria 8000, mientras que el proceso A tiene 12 instrucciones y comienza en la dirección de
memoria número 5000. El proceso C comienza en la dirección 12000 y tiene 12 instrucciones.

En la figura 5 se observa que hay un distribuidor o despachador de procesos, que es un programa del
sistema operativo que se encarga de administrar el tiempo de cada proceso, guardar los estados de las
variables del proceso y preparar las variables del programa siguiente.

Vamos a suponer que cada instrucción se realiza en un ciclo de reloj y que cada programa, incluido el
despachador, disponen de un tiempo “t”, para ejecutar 6 instrucciones por turno de tiempo, con el fin
de que un solo programa se apropie del procesador y no deje trabajar a los demás.

Haciendo la cuenta nos da que el proceso A, puede mandar 6 instrucciones y el despachador lo


interrumpe. El despachador se gasta 6 ciclos de reloj en interrumpir al programa que está corriendo,
guardar sus estados y alistar los estados del siguiente programa que es el B.

La cola de procesos entonces quedaría de la siguiente manera.

POLITÉCNICO GRANCOLOMBIANO 3
Tabla 1. Cola de procesos

PROGRAMA ACCIÓN

Programa A 6 instrucciones y se le termina el plazo.

Despachador 6 instrucciones.

Programa B 4 instrucciones y termina. Sale de la cola.

Despachador 6 instrucciones.

Programa C 6 instrucciones y se le termina el plazo.

Despachador 6 instrucciones.

Programa A 6 instrucciones y termina.

Despachador 6 instrucciones.

Programa C 6 instrucciones y termina.

TOTAL 52 CICLOS DE RELOJ

Fuente: Elaboración propia.

En la cola de procesos que se acaba de describir, se puede ver que cada proceso trabaja un tiempo y,
si no acaba, entonces vuelve a la cola, como el programa A, que ejecutó sus primeras 6 instrucciones
y se le terminó el tiempo, por lo que tuvo que regresar a la cola de la pila de procesos.

Esto es lo que hace que n procesos ejecutándose en un mismo núcleo a la vez, den la sensación de
estar trabajando de manera simultánea. Este concepto es el que se conoce como programación
multitarea. No es un procesamiento paralelo. Para que haya procesos en paralelo, se requiere que
cada proceso se esté ejecutando por un núcleo diferente al mismo tiempo.

POLITÉCNICO GRANCOLOMBIANO 4
Ahora observado el movimiento de la secuencia del programa A, se nota que tiene dos estados, o está
trabajando o está en espera, y se conoce como proceso de dos estados (ver figura 2).

Se acabó el tiempo de proceso (time out)

Entrada Salir
Nuevo Ejecución
Despachado
Figura 2. Diagrama de dos estados
Fuente: Elaboración propia

Un proceso puede tener varios subprocesos. Esto sucede cuando un proceso llamado padre, crea
varios subprocesos, llamados hijos, que le ayudan a resolver un problema.

Por ejemplo, un proceso que ejecuta un cálculo determinado puede crear dos procesos hijos que le
ayuden a realizar algunas tareas tales como leer datos con un proceso hijo y con otro proceso hijo
estar escribiendo resultados en el disco, mientras el proceso padre hace el trabajo duro. Esta técnica
se denomina procesos con hilos.

3.2. Modelo de procesos de cinco y de siete estados

Una cola de procesos ideal sería la de la figura 1A, donde los dos únicos eventos que paran un proceso
es cuando termina o cuando se le acaba el tiempo de proceso y debe volver a la cola de procesos para
tomar otro turno.

La cola de procesos es una lista FIFO (First-Input, First-Out), “el primero en entrar es el primero en
salir”.

Como las cosas no suceden de esa manera tan ideal, hay que contemplar una serie de eventos que
afectan el ciclo de vida de un proceso, desde que entra a la cola de procesos hasta que termina el
trabajo y sale.

Si todos los eventos que afectan a un proceso se almacenaran en la cola de listos para procesar, el
despachador tendría que entrar a revisar la lista hasta encontrar un proceso cuyo estado sea el de listo
y esto degrada el rendimiento del sistema operacional y del procesador. Por lo anterior, lo ideal es
crear una lista para cada evento (ver figura 3).

POLITÉCNICO GRANCOLOMBIANO 5
Figura 3. Diagrama de varias colas de sucesos
Fuente: Elaboración propia

Figura 4. Esquema del direccionamiento de las instrucciones de los procesos en memoria


Fuente: Elaboración propia

POLITÉCNICO GRANCOLOMBIANO 6
El modelo de la figura 4, se puede observar más gráficamente en la figura 6, donde ocurre una serie
de eventos que deben ser controlados y administrados por el sistema operacional, los cuales de
describen a continuación.

1. Estado de nuevo. Ocurre cuando un usuario o cuando el sistema operacional u otro proceso
crea un proceso nuevo. Este proceso nuevo debe ingresar al final en la cola de espera para
ejecución (estado de listos) (ver figura 5). El proceso reside en la memoria principal.

2. Estado de listo. El sistema operacional se encarga de recibir el proceso nuevo e ingresarlo a


la cola de listos. Es como la cola de despegue de aviones en un aeropuerto, una vez un avión
despega, los demás que están listos van haciendo cola para entrar en la pista de despegue (ver
figura 5). El proceso reside en la memoria principal.

Dependiendo de las características del procesador, de la cantidad de núcleos que tenga el


procesador y de la memoria RAM, el sistema operacional calcula el tamaño de la cola de listos
y no recibe más, hasta que algún proceso termine y deje su cupo libre. Igualmente, con estas
características es que se calcula el tiempo que se debe asignar a cada proceso para usar el
procesador.

3. Estado de ejecución. Una vez el procesador o un núcleo del procesador queda libre, el sistema
operacional toma el proceso en turno de la cola de listos y lo pone a trabajar durante un tiempo
t. Si durante ese tiempo termina el trabajo, pasa al estado de salida, si el tiempo se termina y no
ha terminado, entonces el sistema operacional a través del programa distribuidor, lo saca del
estado de ejecución mediante una interrupción (evento interrupción) y lo devuelve a la cola de
listos (ver figura 5). Pueden suceder otros eventos que no son precisamente la terminación del
tiempo. El proceso reside en la memoria principal.

4. Estado de bloqueado. Un proceso sale del estado de ejecución y pasa al estado de bloqueado,
por múltiples razones, una de ellas es porque necesita un dato que debe ser suministrado por
un usuario, por otro proceso o enviar un dato al disco, etc., y los recursos que necesita para la
operación no están disponibles y debe por lo tanto esperar. En ese caso el sistema operativo
lo detecta y lo saca del estado de ejecución y lo pasa al estado de bloqueado (ver figura 5). El
proceso reside en la memoria principal.

5. Estado de bloqueado a listo. Un proceso puede estar en la cola de bloqueados un tiempo t1, si
antes de que se venza el tiempo, su condición de bloqueado ha sido resuelta, entonces sale de
la cola de bloqueados y pasa a la cola de listos. De lo contrario pasa a la cola de bloqueados-
suspendidos (ver figura 6). El proceso reside en la memoria principal.

POLITÉCNICO GRANCOLOMBIANO 7
6. Estado de bloqueado a suspendido. Cuando un proceso que estaba en el estado de bloqueado
ha agotado el tiempo y su condición no fue resuelta, debe abandonar la memoria principal y por
tal razón el sistema operativo lo pasa a la memoria swap o memoria de intercambio que es una
porción del disco con formato de memoria RAM, pero no es memoria RAM (ver figura 5). Un
proceso puede estar en la cola de suspendidos un tiempo t2, pasado ese tiempo, el proceso es
eliminado.

7. Estado de suspendido a listo. Un proceso pasa de suspendido a listo, si ocurre el evento que
levanta la suspensión (ver figura 5). Es decir, que sale de la memoria swap y pasa a la cola de
listos en la memoria RAM, nuevamente. El sistema operacional puede eventualmente sacar
un proceso de la cola de suspendido y pasarlo a la cola de bloqueados nuevamente, si ocurren
eventos que posiblemente levanten la suspensión después de cumplirse el tiempo t2.

8. Estado listo a suspendido. Finalmente, un proceso que está listo, pero tiene baja prioridad de
ejecución y entra un nuevo proceso con alta prioridad y la memoria RAM no es suficiente, el
sistema operacional baja de la cola de listos a la cola de listos suspendidos a los procesos listos de
más baja prioridad. Ver figura 6.

Figura 5. Estructura de control de procesos de estados


Fuente: Elaboración propia

POLITÉCNICO GRANCOLOMBIANO 8
4. Tratamiento de interrupciones
El caso ideal del control de procesos es el modelo de dos estados, donde todo es funcional sin eventos
anormales. El único evento que se ejecuta en este modelo es el de correr, mientras se consume el
tiempo dado para cada proceso o el proceso termina.

Los eventos que tiene que atender un sistema operativo dependen de lo moderno que es el sistema
operativo, de la cantidad de procesos que debe atender (ver figura 6), del tipo de red sobre el que
opera, del hardware sobre el que está corriendo, etcétera.

Cada estado del proceso de control de procesos es dado por una interrupción. Una interrupción es un
evento generado por un programa llamado control de interrupciones del sistema operativo y atiende
solicitudes relativas a un proceso o conjunto de procesos.

En la figura 7 se puede ver la secuencia en que entran las interrupciones sobre un proceso. Suponga
que el programa X (un video) está ejecutándose y que el operador requiere detenerlo porque le han
llamado, entonces pausa el video y en ese momento el sistema operativo lo que hizo fue mandar
una interrupción mediante la rutina A de control de interrupciones. Ese proceso fue bloqueado y
el distribuidor del sistema operacional lo sacó de ejecución y le dio el control de ejecución a otro
proceso.

Figura 6. Tratamiento de interrupciones


Fuente: Elaboración propia

POLITÉCNICO GRANCOLOMBIANO 9
5. Fundamentos de multiprogramación y multiprocesamiento
Antes de empezar este ítem, es necesario aclarar que multiprocesamiento no es lo mismo que
multiprogramación y que multiprogramación y multiprocesamiento no es lo mismo que multiusuario.
Multiprogramación es diferente de programación paralela.

Multiprogramación. Es un concepto acuñado con base en los estados de un proceso y el tratamiento


de interrupciones de procesos. Con base en lo anterior, multiprogramación es la secuencia de
ejecución de procesos sobre un núcleo de un procesador con base en la cola de listos.

Al revisar la figura 3 del diagrama de dos estados, ocurre una interrupción de control de tiempo de un
proceso y el proceso en ejecución debe volver a la cola de listos, para dar paso a un nuevo proceso de
la cola de procesos listos, dando la sensación de que los procesos se ejecutan de manera simultánea,
debido a la velocidad del núcleo y a las fracciones de microsegundos que son asignadas para la
ejecución de cada proceso.

Multiprocesamiento. Este concepto obedece a las nuevas arquitecturas en las cuales los
computadores traen más de un procesador y este a su vez trae más de un núcleo. El procesador i7,
es un procesador que trae 4 núcleos que, por lo general, son usados por las aplicaciones desarrolladas
en programación paralela. ¿Cuándo se procesa en paralelo?, cuando se tiene hardware con más de un
núcleo y como tal, se pueden despachar n procesos simultáneos (uno por cada núcleo).

Si un servidor tiene 128 núcleos, puede ejecutar 127 programas a la vez, uno por cada núcleo y dejar
un núcleo para el sistema operacional. Para usar el procesamiento paralelo, se requiere aprender a
programar con MPI (Interfase de paso de mensajes), es decir, programación paralela.

Se pueden hacer combinaciones: usar multiprocesamiento y dentro del multiprocesamiento usar


multiprogramación, es decir, poner en ejecución n procesos por n cores y dentro de cada Core o
núcleo, ejecutar subprocesos usando el concepto de control de estados de un proceso.

6. Taller de comandos Linux y ejecución de un proceso en Linux

El estudiante debe desarrollar un taller de transferencia de datos en dos máquinas virtuales con Linux
instalado. Par ello debe usar el comando scp.

POLITÉCNICO GRANCOLOMBIANO 10
Pasos
6.1. Clone con macadress diferentes la máquina virtual donde está instalado en Linux del taller #2
y colóquele el nombre de MaquinaVirtual3.
6.2 Repita el paso 6.1 y llame a la nueva máquina: MaquinaVirtual4.
6.3. Configure una red interna que le permita hacer ping entre la maquina real y entre las
máquinas virtuales del taller.
6.4. Con el comando touch, cree un archivo llamado taller3.txt en la carpeta /tmp
6.5. Use el comando scp para pasar el archivo taller3.txt de la MaquinaVirtual3, a la carpeta /home
de la MáquinaVirtual4.
6.6. Haga un manual con los pantallazos del proceso y describa cada pantallazo.

POLITÉCNICO GRANCOLOMBIANO 11
Referencias bibliográficas
Andrew, S. (2009). Sistemas operativos modernos. Ciudad de México, México: Pearson Educación,
Recuperado de http://www.ebooks7-24.com/?il=3245

Torres, F., y Galán, A. (2014) Linux para usuarios. Madrid, España: Ministerio de Educación de
España. Recuperado de https://ebookcentral-proquest-com.loginbiblio.poligran.edu.co/lib/bibliopoli-
gransp/detail.action?docID=3223319

Referencias de figuras
Nasirkhan. (s. f.). Figura 1. Decisiones en la gestión de procesos. [Fotografía]. Recuperado de https://
es.123rf.com/imagenes-de-archivo/decisiones_de_programaci%C3%B3n.html?imgtype=0&oriSear-
ch=decisiones+de+programaci%C3%B3n&sti=lc2vciy4e8splja3gs|&mediapopup=17915036

POLITÉCNICO GRANCOLOMBIANO 12
INFORMACIÓN TÉCNICA

Módulo: Sistemas operacionales


Unidad 2: Gestión de procesos y sincronización de procesos
hijos
Escenario 3: Gestión de procesos

Autor: Alexis Rojas Cordero

Asesor Pedagógico: Diana Marcela Díaz Salcedo


Diseñador Gráfico: Jully Guzmán Rodríguez
Asistente: Ginna Paola Quiroga Espinosa

Este material pertenece al Politécnico Grancolombiano. Por


ende, es de uso exclusivo de las Instituciones adscritas a la Red
Ilumno. Prohibida su reproducción total o parcial.

POLITÉCNICO GRANCOLOMBIANO 13

Potrebbero piacerti anche