Está en la página 1de 9

42

Capítulo 3  Administración de procesos

3.2  Modelo de procesos


€
Para poder manejar la complejidad inherente de los esquemas de administración del
procesador se ha generalizado el uso de una abstracción conocida como modelo de
procesos, que se basa en el siguiente concepto de proceso, propio del ámbito de los
sistemas operativos.

Proceso
Representación de todos los elementos que constituyen una instancia de ejecución de un
programa.
Los elementos de un proceso son los siguientes:
• Una identificación única para el proceso, a menudo numérica.
• El comportamiento definido por el programa.
• El estado, que consiste en la memoria asignada y en los valores de los registros del
procesador.

Asimismo, hay dos conceptos relacionados que debemos diferenciar:

• Hilo de ejecución (Thread). Estado de una secuencia de ejecución de instruccio­


nes dentro de un proceso. Todos los procesos tienen al menos un estado con el
apuntador a la instrucción y el estado de los registros del procesador, pero en mu­
chos sistemas operativos se permite que un proceso tenga múltiples hilos de eje­
cución con estados independientes que comparten los recursos del proceso, como
memoria, código del programa, archivos, dispositivos de entrada y salida asigna­
Copyright © 2015. Grupo Editorial Patria. All rights reserved.

dos, etc. (En algunos libros, thread se traduce como hebra.)


• Programa. Constituye una secuencia de instrucciones ordenadas en un lenguaje
regular, que implementa un algoritmo que cumple un propósito particular.
Los programas, a diferencia de los procesos y los hilos, representan informa­
ción estática o pasiva que es utilizada por los procesos para realizar su ejecución, y
por ello no debe confundirse con hilos o proceso, a pesar de su relación con estos.
Cuando se ejecuta un programa, además de cargar sucesivamente las instruc­
ciones que lo componen en el registro de instrucciones del procesador y permitir
que a lo largo de los ciclos de reloj este haga las transiciones de estado correspon­
dientes, se requiere asignar segmentos de la memoria del equipo para almacenar
los datos que el programa ha de procesar y llevar el control de los dispositivos de
entrada y salida que se reserven para el programa y la interacción con estos. A me­
nudo, también se dedica especial atención al uso que el proceso da a los archivos.
Sol, Llaven, Daniel. Sistemas operativos: panorama para la ingeniería en computación e informática, Grupo Editorial Patria, 2015. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/bibliounicartagenasp/detail.action?docID=4569649.
Created from bibliounicartagenasp on 2018-07-27 18:26:05.

03 Sistemas operativos cap 3.indd 42 9/29/15 11:47 AM


Modelo de procesos 43

En los ambientes de multiprogramación actuales se requiere pro­


teger estos recursos de la intervención de otros procesos que puedan
Importante
estar en ejecución y que pudieran tratar de afectar, incluso de manera
accidental, el uso de dichos recursos. ♥ Docente. De manera tradicio­
Es importante resaltar que aunque la gran mayoría del proce­ nal, los cursos de programa­
ción dejan de lado los aspectos
samiento que realiza una computadora o dispositivo está a cargo de
gráficos y de concurrencia en
diversos procesos, no todas las operaciones que realizan los proce­ los proyectos de clase, por lo que
sadores están cubiertas por este modelo. Principalmente, los dispo­ usarlos resulta muy novedoso,
sitivos de entrada y de salida pueden incluir considerables capaci­ a pesar de que son una parte
fundamental de la mayoría de
dades de procesamiento que operen al margen de este modelo, en
los sistemas computacionales
virtud de servir a propósitos particulares y por ello no restan validez y debe dedicarse tiempo para
al modelo. conocerlos y familiarizarse con
estos.

♠ Arquitecto. Al diseñar y crear


Modo de usuario y modo de sistema programas que usen multipro­
(o protegido) cesamiento, el arquitecto debe
integrar a sus pruebas alguna
El modo de sistema, también conocido como Kernel Mode o modo forma de manipular los tiem­
protegido, se utiliza para las operaciones que deben realizarse me­ pos de retardo, así como algunas
diante un software que se considera confiable como parte del sistema otras herramientas y estrate­
operativo, y que puede manipular recursos del sistema a un nivel que gias de experimentación, a fin
de poder observar la concurren­
las aplicaciones normales de usuario no deben realizar.
cia en acción.
En tanto, las aplicaciones más comunes operan en modo de
usuario, debido a que estas tienen segmentos de memoria asignada ♦ Líder. El líder debe evitar con­
fiar en pruebas que no detecten
protegidos, con el fin de que otras aplicaciones no puedan modificar
errores como evidencia de que
los valores. Asimismo, cuando es necesario llevar a cabo operaciones
Copyright © 2015. Grupo Editorial Patria. All rights reserved.

la implementación es correcta,
privilegiadas, como acceder a dispositivos de entrada, de salida, o am­ ya que muchos problemas pue­
bos, o a segmentos de memoria distintos, se opera en modo de siste­ den presentarse de forma alea­
toria. En proyectos complejos
ma, ya que en estos casos se requiere solicitar peticiones a rutinas de
es importante vigilar que las
sistema que verifiquen los privilegios del proceso, y en caso de con­ herramientas y libre­ rías estén
tar con autorización puedan realizarse las operaciones solicitadas. En preparadas para la programa­
caso contrario, el software que opera en modo de sistema funciona en ción concurrente.
un único espacio de memoria y no requiere verificar sus privilegios ♥ Usuario. Una revisión de las
para acceder a cualquier elemento presente, por lo que deben tomar­ recomendaciones de las inter­
se precauciones para evitar intervenir en los datos de otros programas faces de usuario y los mecanis­
mos para implementarlas no
que también operen en modo de sistema.
solo puede aportar un valioso
En el caso particular de Windows, en todas las versiones de este contexto al tema del multipro­
sistema operativo los controladores de dispositivos de E/S, los contro­
Sol, Llaven, Daniel. Sistemas operativos: panorama para la ingeniería en computación e informática, Grupo Editorial Patria, 2015. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/bibliounicartagenasp/detail.action?docID=4569649.
Created from bibliounicartagenasp on 2018-07-27 18:26:05.

03 Sistemas operativos cap 3.indd 43 9/29/15 11:47 AM


44 Capítulo 3  Administración de procesos

ladores de sistemas de archivos, las rutinas de apoyo para atención de


cesamiento, sino que también interrupciones y el núcleo del sistema operativo operan en el modo
permite tomar conciencia acer­
de sistema. En cambio, en Linux existe un núcleo del sistema, o ruti­
ca de lo difundido e indispen­
sable que resulta en las aplica­ nas de atención de interrupciones, y mediante el uso de llamadas a
ciones. sistema los procesos de usuario pueden acceder a los privilegios ad­
ministrativos, que suelen conocerse como root.
Por su parte, los sistemas operativos embebidos, como los que se usan en equipos
móviles (como Android), tienen núcleos que operan tanto en modo de sistema como
en modo de usuario, siguiendo el mismo esquema que Linux. Por esta razón, a menudo
se menciona que Android tiene un kernel basado en Linux, con lo que se alude a que
toma la misma funcionalidad para las operaciones en modo de sistema y los procesos
para el control de la interfaz gráfica, y para la operación de las aplicaciones se mantie­
ne en un modo de usuario, sujeto a los controles definidos por la planificación de pro­
cesos.
Los sistemas operativos de tiempo real también respetan esta jerarquía de modo
de usuario y de modo de sistema, aunque en versiones recientes del kernel se han he­
cho refinamientos para que las operaciones que se realizan en modo de sistema puedan
ser interrumpidas, por ejemplo, por nuevos eventos en dispositivos de entrada y de
salida que levanten interrupciones, así como para que puedan encolar las tareas pen­
dientes por cada procesador, de manera que recuperen el estado de procesamiento en
el que estaban sin efectos adversos ( preemptive) y sean capaces de atender una opera­
ción de modo de sistema por procesador de modo simultáneo (capacidad conocida
como Reentrant).
Copyright © 2015. Grupo Editorial Patria. All rights reserved.

actividad propuesta }
En acción

1. Para que conozcas más acerca de las capacidades de procesamiento de los dispositivos de
entrada y de salida, realiza una investigación acerca de una tecnología en particular (por ejem-
plo, las tarjetas aceleradoras de video orientadas a juegos o al diseño gráfico incorporan gran-

des capacidades de multiprocesamiento que pueden servir al procesamiento general del equipo
con protocolos como OpenGL, o el uso de procesamiento en los dispositivos de almacenamien-
to masivo que permiten asegurar la información en la norma SMART).
2. Con la información que obtuviste responde las siguientes preguntas:

•  ¿Cómo se mide la capacidad de procesamiento de uno de estos dispositivos?


•  ¿Cómo se compara con la capacidad de los procesadores principales del equipo?

Sol, Llaven, Daniel. Sistemas operativos: panorama para la ingeniería en computación e informática, Grupo Editorial Patria, 2015. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/bibliounicartagenasp/detail.action?docID=4569649.
Created from bibliounicartagenasp on 2018-07-27 18:26:05.

03 Sistemas operativos cap 3.indd 44 9/29/15 11:47 AM


Modelo de procesos 45

•  ¿Cómo se realiza un programa que aproveche esa capacidad?


3. En equipo, recopilen información acerca de las posibles aplicaciones de uso cotidiano que podrían
mejorarse, con el fin de que puedan ser aprovechadas al máximo. Comenten en clase, con sus
compañeros, si sería rentable en términos de costo-beneficio.

Ciclo de vida de un proceso


El ciclo de vida de un proceso consta de tres etapas principales: la creación, la ejecución
y la terminación de los procesos.

Creación de un proceso
Para tener un proceso activo es necesario:

1. Reservar los recursos que le serán asignados.


2. Asignar los elementos en la planificación de procesos para atenderlo.
3. Preparar un estado inicial en el procesador y la memoria que incluya cargar el códi­
go del programa a la memoria antes de llevar a cabo las instrucciones del programa.

Por lo general, para iniciar un proceso existen cuatro mecanismos:

1. Como parte del arranque del sistema operativo.


2. A partir de un proceso existente, mediante una llamada al sistema.
3. Con una petición del usuario mediante un intérprete de comandos o una interfaz
Copyright © 2015. Grupo Editorial Patria. All rights reserved.

gráfica.
4. Como parte del procesamiento por lotes en un sistema que lo realice de manera
automática.

actividad propuesta }
En acción

1. Identifica los diversos procesos de diferentes sistemas operativos que sean iniciados con los
mecanismos antes mencionados (por ejemplo, Time-Share, UNIX y embebido como Android).
2. Busca información acerca de las facilidades correspondientes en tiempo real, como RTLinux y
Wind River Linux.

Sol, Llaven, Daniel. Sistemas operativos: panorama para la ingeniería en computación e informática, Grupo Editorial Patria, 2015. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/bibliounicartagenasp/detail.action?docID=4569649.
Created from bibliounicartagenasp on 2018-07-27 18:26:05.

03 Sistemas operativos cap 3.indd 45 9/29/15 11:47 AM


46 Capítulo 3  Administración de procesos

3. En sistemas de tiempo compartido o interactivos, como UNIX, ¿cuáles son los procesos que se
inician directamente al arrancar el SO?, ¿cómo lo contrasta con los procesos que inician me-
diante init.d?
4. Ejecuta un programa desde su intérprete de comandos y desde la interfaz gráfica de su sistema
operativo, y responde las siguientes preguntas:
•  ¿Cómo te informa el sistema operativo que el proceso ha iniciado?
•  ¿Cuál es el identificador del proceso?
•  ¿Cómo puedes solicitar la terminación del proceso directamente al sistema operativo?
5. Para iniciar un proceso desde otro podemos usar en nuestro programa la llamada al sistema
fork()del sistema operativo UNIX. Realiza un programa que genere una copia de sí mismo
con esta función y observa el comportamiento de ambos.
6. Ejecutar un archivo de ejecución por lote en un sistema Time share solo es una forma más de
iniciar un proceso desde otro proceso; no obstante, algunas aplicaciones han sido desarrolla-
das para llenar el nicho de automatizar la ejecución de procesos. Revisa la funcionalidad que
ofrece crond y analiza cómo se distingue esta funcionalidad del procesamiento en un sistema
Batch.

Estados durante la ejecución


El objetivo general de la administración de procesos es la realización de las tareas para
las que los programas fueron desarrollados. Ahora bien, cuando los recursos son escasos,
se puede atender un proceso a la vez, dedicando todos los recursos del equipo y mini­
mizando el consumo de estos en tareas administrativas; sin embargo, debido a que las
Copyright © 2015. Grupo Editorial Patria. All rights reserved.

computadoras más recientes tienen relativa abundancia de recursos, es posible satisfacer


las preferencias de interfaces de usuario más amigables, que dependen de tener múlti­
ples procesos operando y que suspenden y renudan su ejecución varias veces por segun­
do generando la ilusión para el usuario de que operan de forma simultánea; este modo
de operación por turnos se conoce como concurrente. Esto genera una carga de trabajo
que no ayuda de manera directa a la realización de las tareas (proceso conocido como
overhead); debemos tratar de minimizarlo al implementar la planificación de procesos.
Para atender múltiples procesos con un procesador, o varios, debemos establecer
turnos de ejecución que duren un tiempo determinado, los cuales permitan que la aten­
ción del procesador se alterne entre los diversos programas que deben ser atendidos.
Esta habilidad de atender múltiples programas en ejecución se conoce en general como
multiprogramación, y en particular como Time-Share, ya que comparte el tiempo en
el que la CPU atiende los diversos procesos.
Sol, Llaven, Daniel. Sistemas operativos: panorama para la ingeniería en computación e informática, Grupo Editorial Patria, 2015. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/bibliounicartagenasp/detail.action?docID=4569649.
Created from bibliounicartagenasp on 2018-07-27 18:26:05.

03 Sistemas operativos cap 3.indd 46 9/29/15 11:47 AM


Modelo de procesos 47

En ejecución
1. El proceso se bloquea por una operación de E/S.
2. La planificación da el turno a otro proceso.
1 3 2 3. La planificación da el turno a este proceso.
4. La operación de E/S termina.
4

Bloqueado 4 Listo

Figura 3.1  Esquema de las transiciones válidas.

Cuando un proceso está preparado para ser atendido por el procesador se dice que
está “listo” para ejecución, cuando está siendo atendido se dice que está “en ejecu-
ción”, y cuando no espera recibir atención del procesador se dice que está “bloquea-
do”. Más adelante se tratan con mayor detalle estos tres estados.
Es importante destacar que un proceso no recibe atención del procesador cuando
no puede continuar con la realización de sus instrucciones, debido a que se encuentra
en espera de una situación, evento, instrucción u orden que no está bajo su con­
trol directo; por ejemplo, puede estar en espera de un evento en uno de los dispositi­
vos de entrada, de salida, o ambos, como el hecho de que una unidad de disco termine
de cargar información desde un archivo con los datos que habrán de procesarse. Asi­
mismo, un proceso en espera también puede bloquearse hasta que otros procesos termi­
nen de rea­lizar algunas acciones que son necesarias para que el proceso bloqueado
progrese. De lo contrario, si dicho programa recibiera atención del procesador antes de
que los otros procesos necesarios logren el punto requerido, se impediría que el proce­
sador atendiera a los procesos indispensables para su ejecución y la espera solo sería
Copyright © 2015. Grupo Editorial Patria. All rights reserved.

más larga o, en el peor de los casos, se produciría un error que provocaría un bloqueo
definitivo del procesador. Cuando los procesos deben comunicarse entre sí para orga­
nizar su operación en el tiempo, como en el caso de los bloqueos, se dice que estos
requieren una “sincronización de procesos”, por lo que el sistema operativo propor­
ciona una serie de mecanismos para comunicar los procesos e implementar las accio­
nes necesarias para soportar diversos casos; es decir, este es el responsable de dicha
sincroni­zación de procesos.

Terminación de la ejecución
Algo muy importante que debe tomarse en cuenta en este punto es que todos los algo­
ritmos que se diseñen deben considerar las condiciones necesarias para que se con­
Sol, Llaven, Daniel. Sistemas operativos: panorama para la ingeniería en computación e informática, Grupo Editorial Patria, 2015. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/bibliounicartagenasp/detail.action?docID=4569649.
Created from bibliounicartagenasp on 2018-07-27 18:26:05.

03 Sistemas operativos cap 3.indd 47 9/29/15 11:47 AM


48 Capítulo 3  Administración de procesos

cluya la tarea en ejecución. Esto significa que los procesos deben terminar en algún
momento, por lo que debe vigilarse que los recursos del equipo sean recuperados para
atender las necesidades de otros procesos, a fin de que el sistema operativo pueda se­
guir operando durante periodos prolongados.
Lo anterior denota que los programas deben considerar los pasos y las instruccio­
nes necesarias y pertinentes para liberar todos los recursos que reservan, en especial
las estructuras de datos y los buffers que soportan el manejo de archivos y los seg­
mentos de memoria que se reservan durante la ejecución del proceso. En este mismo
sentido, se puede decir que algunos recursos pueden ser manejados de manera directa
por el sistema operativo o por la máquina virtual (como la máquina virtual Java, que
proporciona ambientes de ejecución para aplicaciones desarrolladas para estas pla­
taformas), e incluso por las interfaces de programación, para liberar o simplificar el
trabajo de programación, por lo que se recomienda vigilar con sumo cuidado el uso
de los recursos luego de la terminación de los procesos durante la etapa de pruebas de
los sistemas, con el fin de evitar omisiones que puedan comprometer la estabilidad del
sistema. Las condiciones usuales por las que un proceso debe terminar son:

• Salida normal. Ocurre cuando el propio algoritmo del programa considera que
debe concluirse la ejecución.
• Por un error crítico. Sucede cuando el programa detecta una situación que le
impide seguir con su operación normal, y debe proceder a ejecutar la funcionalidad
que le permita recuperar todos los recursos posibles y terminar su ejecución con el
menor impacto negativo posible al sistema.
• Por una condición de excepción. Ocurre cuando, ante diversas situaciones ines­
peradas por el algoritmo, el proceso procede a terminar, incluso si existe un proce­
Copyright © 2015. Grupo Editorial Patria. All rights reserved.

dimiento de recuperación.
• Recibir una señal de otro proceso. Ocurre cuando algunos procesos tienen au­
toridad para enviar señales a otros procesos; el comportamiento básico al recibir
una de estas señales es ejecutar una función asignada a ese tipo de señal y luego
terminar el proceso.

actividad propuesta }
En acción

Todos los mecanismos de terminación contemplan que los programas implementen todos los pasos
necesarios para liberar los recursos que se reservaron antes de ser terminados. Pero si un progra-

Sol, Llaven, Daniel. Sistemas operativos: panorama para la ingeniería en computación e informática, Grupo Editorial Patria, 2015. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/bibliounicartagenasp/detail.action?docID=4569649.
Created from bibliounicartagenasp on 2018-07-27 18:26:05.

03 Sistemas operativos cap 3.indd 48 9/29/15 11:47 AM


Modelo de procesos 49

ma no libera todos los recursos que reservó se habla de “fuga de recursos”; una de las formas más
comunes es la fuga de memoria.
1. Investiga la definición y diferentes ejemplos de fugas de memoria o fugas de conexión a base de
datos.
2. Con base en la información que recabaste mediante tu investigación, realiza lo que se te pide a
continuación.
¿Cómo afectan estos problemas al usuario final?
•  Cita un caso donde ese tipo de efectos negativos (fugas de memoria o fugas de conexión) se
presenten en la operación cotidiana del software que usas como apoyo en tus clases diarias.
3. Recopilen los ejemplos de todo el grupo y comenten acerca del nivel de calidad de los diversos
productos usados y su impacto en la operación.

Implementación de procesos
La administración de procesos requiere de diversos mecanismos para mantener bajo
control la información de todos los procesos presentes en el sistema durante su opera­
ción, así como para almacenar aquella información que representa el estado de los
procesos que se mantienen inactivos, con el fin de poder cargarla y ejecutarla cuando
se le asigne su turno de ejecución.
Por lo regular, esta información se almacena en una estructura de datos, donde
cada proceso recibe un registro y en la que se mantiene un conjunto de información
de los aspectos que el sistema operativo debe controlar para cada proceso. Por ejemplo,
con base en los campos que maneja la API procps, en su estructura proc_tse tiene
Copyright © 2015. Grupo Editorial Patria. All rights reserved.

lo que refiere la tabla 3.1.

Tabla 3.1  Tabla de procesos

Campo Contenido
tid Task ID, identificación del hilo de ejecución según el estándar POSIX.
ppid Identificador del proceso padre (proceso que a su vez creó al proceso que se está
describiendo).
state Estado en el que se encuentra el proceso; por ejemplo, “S” (Sleep) cuando está bloqueado.
utime Tiempo de atención de la CPU en modo de usuario dedicado al proceso.
stime Tiempo de atención de la CPU en modo de sistema (modo protegido) al proceso.
cutime Tiempo acumulado de atención en modo de usuario del proceso y todos los hijos terminados.
(Continúa)

Sol, Llaven, Daniel. Sistemas operativos: panorama para la ingeniería en computación e informática, Grupo Editorial Patria, 2015. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/bibliounicartagenasp/detail.action?docID=4569649.
Created from bibliounicartagenasp on 2018-07-27 18:26:05.

03 Sistemas operativos cap 3.indd 49 9/29/15 11:47 AM


50 Capítulo 3  Administración de procesos

Tabla 3.1  Tabla de procesos

Campo Contenido
cstime Tiempo acumulado de atención en modo de sistema del proceso y todos los hijos
terminados.
start_time Tiempo de inicio del proceso.
señales Se tienen diversos arreglos para registrar las señales que reciben el hilo y el proceso.
codigo Rango de direcciones de memoria en las que se encuentra el código del programa.
stack Rango de direcciones de memoria en las que se almacena el stack y el cursor.
Apuntador de Apuntador a la siguiente instrucción que será procesada por la CPU.
instrucción
wchan Dirección del canal de espera del núcleo por el cual el proceso está bloqueado.
Prioridad Indicador de la preferencia del proceso para la planeación.
Nivel de Nice Indicador numérico de modificador de prioridad (Nice) actual del proceso.
rtprio Prioridad de tiempo real.
sched Tipo de planificación (tiempo real o normal).
rss Tamaño del conjunto de páginas que habrá de mantenerse en memoria para el proceso.
alarma Información de la siguiente alarma pendiente del proceso.
size Total de páginas de memoria asignadas al proceso.
resident Número de páginas residente (no enviadas a memoria virtual).
share Número de páginas compartidas usadas por el proceso.
environ Vector de variables de ambiente.
cmdline Vector de línea de comandos.
pgrp Identificador del grupo de procesos.
Copyright © 2015. Grupo Editorial Patria. All rights reserved.

session Identificador de la sesión en la que se creó el proceso.


nlwp Número de hilos del proceso.
euid, egid Identificadores efectivos de usuario y de grupo, respectivamente.
ruid, rgid Identificadores reales de usuario y de grupo, respectivamente.
suid, sgid Identificadores originales de usuario y de grupo, respectivamente.
fuid, fgid Identificadores para usar el sistema de archivos de usuario y de grupo, respectivamente.
exit_signal Código de terminación del proceso.
processor Identificador que atendió por última vez al proceso o que lo está atendiendo.

Ahora bien, es muy importante destacar aquí que el control de las fechas y horas
para el manejo de procesos en el sistema operativo se realiza mediante un contador
que se encuentra ligado con un cristal de cuarzo que vibra en una frecuencia que es un
Sol, Llaven, Daniel. Sistemas operativos: panorama para la ingeniería en computación e informática, Grupo Editorial Patria, 2015. ProQuest Ebook Central,
http://ebookcentral.proquest.com/lib/bibliounicartagenasp/detail.action?docID=4569649.
Created from bibliounicartagenasp on 2018-07-27 18:26:05.

03 Sistemas operativos cap 3.indd 50 9/29/15 11:47 AM

También podría gustarte