Está en la página 1de 15

 

 
 
 
LECTURA FUNDAMENTAL 

Módulo:  Sistemas operacionales   Código:  T2661PU2E3LFL1V01


Unidad:  2  Escenario:  3  Título del escenario:  Gestión de procesos.
Facultad  FICB  Programa:  Ingeniería del software 
Autor:  Alexis Rojas Cordero  Fecha de elaboración:  Diciembre 2017
Asesor:    Fecha de aprobación:   
 

Titulo. Gestión de procesos en sistemas operacionales 

 
Figura 1. Decisiones en la gestión de procesos
Identificador de la imagen: 17915036
Tipo de medios: Foto de archivo
Derecho de autor: nasirkhan

 
 
 
 
 

Índice 
 
 
1. Descripción de procesos     
2. Estados de un proceso   
3. Control de procesos (Listo, ejecución, bloqueo, suspendido, 
terminado). 
4. Tratamiento de interrupciones. 
5. Fundamentos de multiprocesamiento. 
6. Taller de comandos Linux y ejecución de un proceso en Linux 
 
Palabras claves:   Linux, proceso, caída, interrupción, estado, bloqueo, 
suspendido, listo 
 
 
  
 

 
 
 
 
 
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 cache, que
a su vez son traídas de la memoria principal.
De acuerdo con el modelo arquitectural de Von Neumann (ver figura 2). 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 instrucciones que están en un
repositorio de instrucciones llamado memoria caché que trae las instrucciones de la
memoria principal, que a su vez las extrae de una dirección en el disco.

Figura 2. Arquitectura computacional de Von Neumann.

 
 
 
 
 
Fuente: Adaptación propia
Palabras:
CPU
CONTROL DE PROGRAMA
REGISTROS
MEMORIA PRINCIPAL
ALU
Unidad de control
SISTEMA DE ENTRRA/SALIDA
ENTRADA
SALIDA

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 y
existe un programa llamado el 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 el 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 3.
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. 
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.
Revisando nuevamente 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 de 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 así.
Tabla 1. Cola de procesos
PROGRAMA ACCION
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.
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 3.

 
Figura 3. Diagrama de dos estados. Fuente: Elaboración propia

 
 
 
 
 
Palabras:
Entrada
Nuevo
Despachado
Se acabó el tiempo de proceso (time out)
Ejecución
Salir

Un proceso puede tener varios subprocesos. Esto sucede cuando un proceso llamado
padre, crea varios sub-procesos 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.
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 que lo ideal es crear una lista para cada evento. Ver figura 4.

 
 
 
 
 

Figura 4. Diagrama de varias colas de sucesos.


Fuente: Elaboración propia

Palabras:
Cola de listos
Ingreso de nuevos procesos
Ejecución
Time out
Cola del evento 1
Ocurre el evento 1
Cola del evento 2
Ocurre el evento 2
Cola del evento n
Ocurre el evento n

 
 
 
 
 

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


Fuente: Adaptación propia

Palabras:
Direccionamiento de procesos en memoria
Espacio vacio
Memoria
Contador de programa
Dirección inicial del programa del proceso A
Dirección inicial del programa del proceso B
Dirección inicial del programa del proceso C
Trazas de los procesos
Proceso A
Proceso B
Proceso C

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 6. El proceso reside
en 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 6. El proceso reside en
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 6. Pueden suceder otros eventos que no son precisamente la
terminación del tiempo. El proceso reside en 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 6. El proceso reside en
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 memoria principal.
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 6. 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 6. 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 6. Estructura de control de procesos de estados.
Fuente: Elaboración propia

Palabras:
Nuevo
Admitir
Cola de listos
Proceso C
Proceso B
Proceso A
Se acabó el tiempo de proceso (time out)
Ejecución
Salir
Finalizado
Bloqueado
Ocurre evento y activa
Suspender
Bloqueado y Suspendido
Activar
Ocurre evento sale de bloqueado suspendido
Listo y suspendido
Activar
Suspender

4. Tratamiento de interrupciones. 

 
 
 
 
 
El caso ideal del control de procesos es el modelo de dos estados, donde todo 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 muchos dependiendo 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.
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 para atender 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 mandarle pararlo porque le han llamado, entonces coloca en 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 7. Tratamiento de interrupciones.
Fuente: Elaboración propia
Palabras:

 
 
 
 
 
Tratamiento de interrupciones
Rutina de interrupción A
Rutina de interrupción B
Secuencia del programa X

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. 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.
Revisando la figura 3 del diagrama de dos estados, donde 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 ejecución a 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, colocar 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.

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 MaquinaVirtural3.
6.2 Repita el paso 6.1 y llame a la nueva máquina: MaquinaVirtural4.
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áquinaVirutal4.
6.6. Haga un manual con los pantallazos del proceso y describa cada pantallazo.

 
 
 
 
 

Referencias 
[1] Andrew S. Tanenbaum. Sistemas operativos Modernos, Editorial: Pearson Educación, Edición: 3
Año: 2009, ISBN: 9786074420463, ISBN ebook: 9786074424614. http://www.ebooks7‐24.com/?il=3245  
pagina 83 a 95 

[2] Torres, Escobar, Francisco, and Galán, Ana María Pizarro. Linux para usuarios, Ministerio de
Educación de España, 2014. ProQuest Ebook Central. Páginas 93 a 105, 128 a 129 y 131 a 137
https://ebookcentral-proquest-com.loginbiblio.poligran.edu.co/lib/bibliopoligransp/detail.action?docID=3223319
 
 

Referencia de imágenes 
 Nasirkhan. (S.F). Figura 1. Decisiones en la gestión de procesos. [Fotografía]. Recuperado de
Identificador de la imagen: 17915036, Tipo de medios: Foto de archivo, Derecho de autor: nasirkhan
https://es.123rf.com/imagenes‐de‐
archivo/decisiones_de_programaci%C3%B3n.html?imgtype=0&oriSearch=decisiones+de+programaci%C
3%B3n&sti=lc2vciy4e8splja3gs|&mediapopup=17915036 
 
 

También podría gustarte