SlideShare una empresa de Scribd logo
Descripción y Control de Procesos
 Como los procesos son representados y
controlados por el Sistema Operativo.
 Estados del Proceso que caracterizan el
comportamiento de los mismos.
 Estructuras de Datos usadas para administrar
los procesos.
 Las formas en que el SO utiliza estas
estructuras de datos para controlar la ejecución
del proceso.
 Discusión de la administración de procesos en
UNIX SVR4.
2
 Tarea fundamental: Gestión de procesos.
 El sistema operativo debe:
◦ Intercalar la ejecución de múltiples procesos.
◦ Asignar recursos a los procesos, y protegerlos de
procesos.
◦ Habilitar procesos para compartir e intercambiar
información.
◦ Habilitar la sincronización entre procesos.
3
 De capítulos anteriores vimos:
◦ Plataformas computacionales se compone de una
colección de recursos de hardware.
◦ Las aplicaciones informáticas se han desarrollado
para realizar alguna tarea.
◦ Es ineficiente para las aplicaciones que se
escriben directamente para una plataforma de
hardware determinada.
4
 SO proporciona una interfaz para que las
aplicaciones utilicen
 SO proporciona una representación de los
recursos que se pueden solicitar y acceder
por las aplicaciones aplicación.
5
 Los recursos están disponibles a múltiples
aplicaciones.
 El procesador se conmuta entre múltiples
aplicaciones.
 El procesador y dispositivos E/S se puede
utilizar de manera eficiente.
6
 Como los procesos son representados y
controlados por el Sistema Operativo.
 Estados de Proceso que caracterizan el
comportamiento de los mismos.
 Estructuras de Datos usadas para administrar
los procesos.
 Las formas en que el SO utiliza estas
estructuras de datos para controlar la ejecución
del proceso.
 Discusión de la administración de procesos en
UNIX SVR4.
7
8
Estado de un Proceso
 La ejecución de un programa individual se
conoce como proceso o tarea.
 El comportamiento de un proceso individual
puede caracterizarse por el listado de la
secuencia de instrucciones que se ejecutan
para dicho proceso.
 Dicho listado se llama traza del proceso.
9
10
11
12
13
14
15
16
17
Transiciones de Estado de un Proceso
18
Modelo de Colas
19
…Modelo de Colas
20
Estados de los Procesos para la Traza
Ejemplo
21
Transición de Estados de un Proceso
con Estados de Suspensión
22
…Transición de Estados de un
Proceso con Estados de Suspensión
23
Transición de Estados de un Proceso
con Estados de Suspensión
24
…Transición de Estados de un
Proceso con Estados de Suspensión
 Hasta ahora, se ha identificado el concepto de proceso Suspendido
con el hecho de que el proceso no está en memoria principal.
 Un proceso que no esté en memoria no estará disponible de
inmediato para su ejecución, esté o no esperando un suceso.
 Se puede generalizar este concepto de proceso Suspendido. Se
define proceso Suspendido como aquel que tiene las características
siguientes:
1. Un proceso que está suspendido no está disponible de inmediato para
ejecución.
2. El proceso puede estar esperando o no un suceso. Si lo está, la
condición de Bloqueado es independiente de La condición de
Suspendido y el acontecimiento del suceso bloqueante no lo habilita
para la ejecución.
3. El proceso fue situado en el estado suspendido por un agente (por sI
mismo, por el proceso padre o por el sistema operativo) con el fin de
impedir su ejecución.
4. El proceso no puede apartarse de este estado hasta que el agente lo
ordene explícitamente.
25
26
Razones para la Suspensión de Procesos
27
Descripción de Procesos
 El SO es el controlador de los eventos que se
producen en el computador.
 Es el SO el que planifica y expide a los
procesos para su ejecución en el procesador,
el que asigna los recursos y el que responde
a las solicitudes de servicios básicos.
 Esencialmente, se puede imaginar al SO como
una entidad que administra el uso que hacen
los procesos de los recursos del sistema.
28
29
Procesos y Recursos
30
Estructura General de las Tablas de
Control del Sistema Operativo
 Se utilizan para seguir la pista de la memoria principal (real) y
secundaria (virtual).
 Parte de la memoria principal está reservada para el uso del
sistema operativo; el resto está disponible para el uso de los
procesos.
 Los procesos se mantienen en memoria secundaria mediante
alguna forma de memoria virtual o por un simple mecanismo
de intercambio.
 Las tablas de memoria deben incluir la información siguiente:
◦ La asignación de memoria principal a los procesos
◦ La asignación de memoria secundaria a los procesos
◦ Cualesquiera atributos de protección de segmentos de memoria
principal o virtual, tales como qué procesos pueden acceder a
ciertas regiones compartidas de memoria
◦ Cualquier información necesaria para gestionar la memoria virtual
31
 Utilizadas por el sistema operativo para
administrar los dispositivos y los canales de E/S
del computador.
 En un momento dado, un dispositivo de E/S
puede estar disponible o estar asignado a un
proceso en particular.
 Si hay una operación de E/S en marcha, el
sistema operativo necesita conocer el estado de
la operación de E/S y la posición de memoria
principal que se está utilizando como origen o
destino de la transferencia de E/S.
32
 Ofrecen información sobre la existencia de los
archivos, su posición en la memoria secundaria,
su estado actual y otros atributos.
 Gran parte de esta información, si no toda, puede
ser mantenida y utilizada por un sistema de
gestión de archivos, en cuyo caso el sistema
operativo tendrá poco o ningún conocimiento de
los archivos.
 En otros sistemas operativos, gran parte de los
detalles de la gestión de archivos son
gestionados por el propio sistema operativo.
33
 Finalmente, el SO debe mantener tablas de
procesos para administrarlos.
 Antes de continuar con esta discusión, se deben
señalar dos puntos:
1. Aunque la filmina 25 muestra cuatro conjuntos de tablas
distintos, debe quedar claro que estas tablas deben estar
enlazadas o disponer de referencias cruzadas de alguna
manera.
2. ¿Cómo crea el sistema operativo las tablas por primera vez?
Desde luego, el SO debe tener algún conocimiento sobre el
entorno básico, tal y como cuánta memoria principal hay, cuáles
son los dispositivos de E/S y sus identificadores, etc.
34
 Considérese lo que debe conocer un sistema
operativo si tiene que administrar y controlar
a los procesos:
1. Debe saber dónde está ubicado el proceso.
2. Debe conocer los atributos del proceso que son
necesarios para su administración.
35
 ¿Cuál es la manifestación física de un proceso?
◦ Como mínimo, un proceso debe incluir un programa o un conjunto de
programas que sean ejecutados.
◦ Asociados a estos programas hay un conjunto de ubicaciones de datos
para las variables locales y globales, y Las constantes definidas.
 Así pues, un proceso constará, al menos, de la memoria
suficiente para albergar los programas y los datos del proceso.
 Además de esto, en la ejecución de un programa entra en juego
normalmente una pila, que se utiliza para llevar la cuenta de las
llamadas a procedimientos y de los parámetros que se pasan
entre los procedimientos.
 Por último, asociado a cada proceso hay una serie de atributos
utilizados por el sistema operativo para el control del proceso.
 Estos atributos se conocen como el bloque de control del
proceso.
 Esta colección de programa, datos, pila y atributos puede
llamarse imagen del proceso.
36
37
 En un sistema de multiprogramación sofisticado,
se requiere una gran cantidad de información de
cada proceso para su administración.
 Como ya se dijo, puede considerarse que esta
información reside en un bloque de control del
proceso.
 Diferentes sistemas organizarán esta información
de modo diferente.
 Las filminas 38, 39 y 40 enumeran las categorías
típicas de la información que requiere el SO para
cada proceso.
38
 Se puede agrupar la información de los
bloques de control del proceso en las tres
categorías:
1. Identificación del proceso
2. Información del estado del procesador
3. Información de control del proceso
39
40
41
 El bloque de control de proceso es la estructura de
datos central y más importante de un SO.
 Cada bloque de control de proceso contiene toda la
información de un proceso necesaria para el SO.
 Los bloques son leídos y/o modificados por casi
todos los módulos de un sistema operativo,
incluyendo aquellos que tienen que ver:
◦ con la planificación
◦ la asignación de recursos
◦ el tratamiento de interrupciones y
◦ el análisis y supervisión del rendimiento.
 Puede decirse que el conjunto de los bloques de
control de procesos definen el estado del sistema
operativo.
42
43
Elementos Básicos de un Bloque de Control
de Proceso
44
..Elementos Básicos de un Bloque de Control
de Proceso
45
..Elementos Básicos de un Bloque de Control
de Proceso
46
Control de Procesos
 La mayoría de los procesadores dan soporte a
dos modos de ejecución:
1. Modo del sistema, modo de control o modo de
núcleo. Ciertas instrucciones pueden ejecutarse
solo en modo privilegiado.
2. Módulo de usuario: Es el modo menos
privilegiado, ya que los programas de usuario
ejecutan normalmente en ese modo.
47
48
 Surgen dos preguntas:
1. ¿Cómo conoce el procesador en qué modo va a
ejecutar?
2. ¿Cómo se cambia de modo?
49
 Una vez que el sistema operativo decide, por alguna razón (tabla
3.1), crear un nuevo proceso, éste puede proceder como sigue:
1. Asignar un único identificador al nuevo proceso. En ese momento
se añade una nueva entrada a la tabla principal de procesos, que
contiene una entrada por proceso.
2. Asignar espacio para el proceso. Esto incluye todos los elementos
de la imagen del proceso. Así pues, el sistema operativo debe saber
cuánto espacio se necesitará para el espacio privado de direcciones
del usuario (programas y datos) y para la pila del usuario. Estos
valores se pueden asignar por omisión en función del tipo de
proceso o bien se puede asignar a partir de la solicitud del usuario
cuando se crea el trabajo. Si un proceso es generado por otro, el
proceso padre puede pasarle al sistema operativo los valores
necesarios como parte de la solicitud de creación del proceso. Si
algún espacio de direcciones existente se va a compartir con este
nuevo proceso, entonces se deben establecer los enlaces
adecuados. Por último, se debe asignar espacio para el bloque de
control del proceso.
50
51
3. Debe inicializarse el bloque de control del proceso. La parte de
identificación del proceso contiene el ID de este proceso junto a
otros ID apropiados, tales como el del proceso padre. La parte
de información del estado del procesador normalmente se
inicializa con la mayor parte de las entradas a cero, excepto
para el contador de programa (que se prepara con el punto de
entrada del programa) y los punteros a las pilas del sistema
(que establecen los limites de la pila del proceso). La parte de
información de control del procesador se inicializa a partir de
los valores estándares por omisión y los atributos que se han
solicitado para el proceso.
52
4. Se deben establecer los enlaces apropiados. Por
ejemplo, si el SO mantiene cada cola de
planificación como una lista enlazada, entonces el
proceso nuevo se debe poner en la cola de Listos o
de Listos y suspendidos.
5. Puede haber otras estructuras de datos que crear o
ampliar. Por ejemplo, el SO puede mantener un
archivo de contabilidad para cada proceso que sea
utilizado más tarde con propósitos de facturación
y/o evaluación del rendimiento.
 A primera vista, la función de cambio de proceso
parece sencilla.
 En cierto momento, un proceso que está
ejecutándose se interrumpe, el SO pone a otro
proceso en el estado de Ejecución y pasa el
control a dicho proceso.
 Sin embargo, surgen diversas cuestiones de
diseño:
1. ¿Qué sucesos provocan un cambio de proceso?
2. Otra cuestión es que se debe hacer una distinción
entre cambio de contexto y cambio de proceso.
3. ¿Qué debe hacer el sistema operativo con las
diferentes estructuras de datos bajo su control para
llevar a cabo un cambio de proceso?
53
 Un cambio de proceso puede producirse en
cualquier momento en que el sistema
operativo haya tornado el control a partir del
proceso que está actualmente ejecutándose.
 La siguiente tabla 3.11 propone los sucesos
posibles que pueden dar el control al sistema
operativo.
54
55
 Recuérdese que, en el ciclo de interrupción, el
procesador comprueba si se ha producido alguna
interrupción, lo que se indicaría por la presencia
de una señal de interrupción.
 Si no hay pendiente ninguna interrupción, el
procesador continúa con el ciclo de lectura de la
instrucción siguiente del programa en curso del
proceso actual.
 Si hay alguna interrupción pendiente, el
procesador hace lo siguiente:
1. Salva el contexto del programa que está ejecutándose.
2. Asigna al contador de programa el valor de la
dirección de comienzo de un programa de tratamiento
de la interrupción.
56
 El procesador continúa entonces con el ciclo de lectura de
instrucción y trae la primera instrucción del programa de
tratamiento de interrupciones, que atenderá a la
interrupción.
 ¿Que es lo que constituye el contexto que se salva?
◦ La respuesta es que se debe incluir cualquier información que
pueda alterarse por la ejecución de la rutina de tratamiento de la
interrupción y que pueda sea necesaria para reanudar el programa
que fue interrumpido. Así pues, debe salvarse la parte del bloque
de control del proceso que se denomina información de estado
del procesador. Esto incluye el contador de programa, otros
registros del procesador y la información de la pila.
 ¿Hace falta hacer algo más?
◦ Ello dependerá de lo que ocurra a continuación. La rutina de
tratamiento de la interrupción es normalmente un programa corto
que lleva a cabo unas pocas tareas básicas relacionadas con una
interrupción.
57
 ¿Qué sucede con el resto de información del bloque de
control del proceso?
◦ Si la interrupción va a venir seguida de un cambio a otro proceso,
entonces hace falta hacer cierto trabajo.
 En la mayoría de los SO, el acontecimiento de una
interrupción no provoca necesariamente un cambio de
proceso.
 Es posible que después de que el gestor de interrupciones
haya ejecutado, el proceso que estaba ejecutándose
reanude su ejecución.
 En tal caso, todo lo que hay que hacer es salvar la
información de estado del procesador cuando se produzca
la interrupción y restaurar dicha información cuando el
control vuelva al programa que estaba en marcha.
 Las funciones de salvar y restaurar suelen llevarse a cabo
en el hardware.
58
 Está claro entonces que el cambio de contexto es
un concepto distinto del cambio de proceso.
 Puede producirse un cambio de contexto sin
cambiar el estado del proceso que está
actualmente en estado de Ejecución. En tal caso,
salvar el contexto y restaurarlo posteriormente
involucra un pequeño coste extra.
 Sin embargo, si el proceso que estaba
ejecutándose tiene que pasar a otro estado
(Listo, Bloqueado, etc.), el SO tiene que llevar a
cabo cambios substanciales en su entorno.
59
 Los pasos involucrados en un cambio completo
de proceso son los siguientes:
1. Salvar el contexto del procesador, incluyendo el
contador de programa y otros registros.
2. Actualizar el bloque de control del proceso que estaba
en estado de Ejecución. Esto implica cambiar el estado
del proceso a alguno de los otros estados (Listo,
Bloqueado, Listo y suspendido, Terminado). También
se tienen que actualizar otros campos significativos,
incluyendo la razón por la que se abandona el estado
de Ejecución y la información de contabilidad.
3. Mover el bloque de control del proceso a la cola
apropiada (Listos, Bloqueados por el Suceso i, Listos y
suspendidos).
4. Seleccionar otro proceso para ejecución.
60
5. Actualizar el bloque de control del proceso
seleccionado. Esto incluye cambiar el estado del
proceso a Ejecución.
6. Actualizar las estructuras de datos de gestión de
memoria. Esto puede hacer falta dependiendo de
cómo se gestione la traducción de direcciones.
7. Restaurar el contexto del procesador a aquel que
existía en el momento en el que el proceso
seleccionado dejó por última vez el estado de
Ejecución, cargando los valores previos del contador
de programa y de otros registros.
 Así pues, el cambio de proceso, que supone un
cambio de estado, requiere un esfuerzo
considerablemente mayor que un cambio de
contexto.
61
 En el capitulo 2 se señalaron algunos hechos curiosos
sobre los sistemas operativos:
◦ El sistema operativo funciona de la misma forma que un software
corriente, es decir, es un programa ejecutado por el procesador.
◦ El sistema operativo abandona frecuentemente el control y debe
depender de que el procesador le permita recuperarlo.
 Si el sistema operativo es solamente una colección de
programas y si es ejecutado por el procesador, como
cualquier otro programa,
◦ ¿es el sistema operativo un proceso?
◦ Si lo fuese, ¿cómo se controla?
 Estas interesantes preguntas han merecido variadas
respuestas de los diseñadores de SO.
 La siguiente figura ilustra un rango de enfoques que
pueden encontrarse en varios de los SO contemporáneos.
62
63
 Un enfoque bastante tradicional en muchos de los SO más antiguos es
ejecutar el núcleo del sistema operativo fuera de cualquier proceso.
 Con este enfoque, cuando el proceso en ejecución es interrumpido o
hace una llamada de supervisor, se salva el contexto del procesador para
este proceso y se pasa el control al núcleo.
 El SO tiene su propia región de memoria y su propia pila del sistema
para controlar las llamadas y retornos de procedimientos.
 El SO puede llevar a cabo cualquier función deseada y luego restaurar el
contexto del proceso interrumpido para reanudarlo.
 Otra solución seria que el SO pudiese completar la función de salvar el
entorno del proceso y continuar con la planificación y expedición de otro
proceso. Que sea esto lo que pase depende de la causa de la
interrupción y de las circunstancias del momento.
 En cualquier caso, el punto clave es que se considera que el concepto de
proceso se aplica solo a los programas del usuario.
 El código del SO se ejecuta como una entidad separada que opera en
modo privilegiado.
64
 Una alternativa que es común en los SO de
máquinas pequeñas (minicomputadores y
microcomputadores) es ejecutar casi todo el
software del sistema operativo en el contexto
de un proceso de usuario.
 El enfoque es que el SO es principalmente
una colección de rutinas que el usuario llama
para llevar a cabo varias funciones y que son
ejecutadas dentro del entorno del proceso de
usuario.
65
 En un punto dado cualquiera, el SO estará
gestionando N imágenes de procesos. Cada imagen
incluye no solo las regiones que se ilustran en la
figura 3.11, sino también zonas de programa, de
datos y de pila para los programas del núcleo.
66
 La figura propone una
estructura típica para la
imagen de un proceso de
usuario según esta
estrategia.
 Una pila del núcleo separada
se utiliza para gestionar las
llamadas y los retornos
mientras que el proceso esté
en el modo del núcleo.
 El código y los datos del
sistema operativo están en el
espacio de direcciones
compartidas y son
compartidos por todos los
procesos de usuario.
67
 Cuando se produce una interrupción, un cepo o una
llamada del supervisor, el procesador se pone en modo del
núcleo y el control pasa al sistema operativo.
 Con tal fin, se salva el contexto del procesador y tiene
lugar un cambio de contexto hacia una rutina del SO.
 Sin embargo, la ejecución continúa dentro del proceso de
usuario en curso.
 De esta manera, no se ha llevado a cabo un cambio de
proceso, sino un cambio de contexto dentro del mismo
proceso.
 Si el sistema operativo, al completar su trabajo, determina
que el proceso en curso debe continuar ejecutando,
entonces se lleva a cabo un cambio de contexto para
reanudar el programa interrumpido del proceso en curso.
68
 Esta es una de las ventajas clave de este enfoque:
◦ Un programa de usuario se interrumpe para emplear alguna
rutina del sistema operativo, luego se reanuda y todo se
produce sin la penalización de dos cambios de proceso.
◦ No obstante, si se determina que va a producirse un
cambio de proceso en vez de retomar a! programa que
estaba ejecutándose previamente, entonces se pasa el
control a una rutina que hace el cambio entre procesos.
◦ Esta rutina puede o no ejecutar en el proceso en curso,
dependiendo del diseño del sistema.
◦ Sin embargo, en algún punto, el proceso en curso debe
ponerse en estado de No Ejecución y otro proceso debe
designarse como proceso en Ejecución.
◦ Durante esta fase, es lógicamente más conveniente
considerar que la ejecución tiene lugar fuera de todos los
procesos.
69
 Una última alternativa, es la de implementar el
SO como una colección de procesos del sistema.
 Al igual que en las otras opciones, el software
que forma parte del núcleo ejecutará en modo de
núcleo.
 En este caso, sin embargo, las funciones más
importantes del núcleo se organizan en procesos
separados.
 Una vez más, puede haber una pequeña cantidad
de código de cambio de procesos que se debe
ejecutar fuera de todo proceso.
70
 Este enfoque tiene varias ventajas.
1. Impone unas normas de diseño de programas que promueven el
uso de un SO modular con unas interfaces mínimas y claras
entre los módulos.
2. Además, algunas funciones no criticas del sistema operativo se
pueden implementas como procesos separados.
 Por ejemplo, un programa supervisor que registrara el nivel de utilización
de Los recursos (procesador, memoria, canales) y la velocidad de
progreso de los procesos de usuario en el sistema. Como este programa
no provee un servicio particular a ningún proceso activo, puede ser
invocado solamente por el SO.
3. Como un proceso, la función podrá ejecutar con un nivel de
prioridad asignado y ser intercalada con otros procesos bajo el
control del distribuidor.
4. Por último, implementar el SO como un conjunto de procesos es
útil en un entorno de multiprocesador o de varios
computadores, en el cual algunos de los servicios del sistema
operativo pueden enviarse a procesadores dedicados,
mejorando así el rendimiento.
71
 Tarea de investigación
 Fecha de entrega: 21 de Febrero 2012
 Medio: Documento Word (papel o electrónico)
72
 Es un pequeño núcleo del sistema operativo que
proporciona las bases para ampliaciones
modulares.
 ¿Confuso?
◦ Qué tan pequeño que debe ser el núcleo para ser
calificado como micronúcleo.
◦ Sobre cómo diseñar los controladores (drivers) de
dispositivos para alcanzar el mejor rendimiento a la vez
que sus funciones se independizan del hardware.
◦ Si las operaciones que no sean del núcleo deben ejecutar
en el espacio del núcleo o en el del usuario.
◦ Se debe mantener el código de los subsistemas
existentes (por ejemplo, una versión de UNIX) o empezar
desde cero.
73
 El enfoque de los micronúcleo fue popularizado
por el SO Mach y su implementación en la línea
de computadoras Next.
 Otra aplicación muy conocida con el enfoque de
micronúcleo es Windows NT, que proclama no
solo la modularidad, sino la portabilidad, como
los beneficios clave.
 Actualmente, otros productos presumen de tener
implementaciones de micronúcleo y este enfoque
general de diseño parece que va asentarse en
casi todos los computadores personales,
estaciones de trabajo y sistemas operativos de
servidores que se desarrollen en el futuro
próximo
74
 La filosofía en que se basa el micronúcleo es que
solo las funciones absolutamente esenciales del
SO deben permanecer en el núcleo.
 Las aplicaciones y los servicios menos esenciales
se construyen sobre el micronúcleo.
 Aunque la línea divisoria de lo que esta adentro y
lo que está afuera del micronúcleo varia de un
diseño a otro, la característica común es que
muchos servicios que tradicionalmente han
formado parte del sistema operativo ahora son
subsistemas externos que interactúan con el
núcleo y con otros subsistemas; aquí se incluyen
los sistemas de archivo, los servicios de ventana
y los servicios de seguridad.
75
 Una vez más aunque los diseños específicos de cada
micronúcleo pueden diferir en general la arquitectura de
micronúcleo tiende a reemplazar la estratificación
tradicional, en capas verticales, de un sistema operativo,
por una horizontal.
 Las componentes del sistema operativo externas al
micronúcleo interactúan una con otra sobre una base
común, normalmente a través de mensajes distribuidos a
través del micronúcleo.
 De este modo, el micronúcleo funciona como un
distribuidor de mensajes: Valida los mensajes, los pasa
entre las componentes y otorga el acceso al hardware.
 Esta estructura es ideal para entornos de proceso
distribuido, ya que el micronúcleo puede pasar mensajes
tanto en local como en remoto, sin necesidad de cambios
en otras componentes del sistema operativo.
76
77
Procesos e Hilos
 Se ha presentado el concepto de proceso incluyendo las dos características
siguientes:
◦ Unidad de propiedad de los recursos: A cada proceso se le asigna un espacio de
direcciones virtuales para albergar a la imagen del proceso y, de cuando en cuando,
al proceso se le puede asignar memoria virtual y otros recursos, tales como canales
de E/S, dispositivos de E/S y archivos.
◦ Unidad de expedición: Un proceso es un camino de ejecución (traza) a través de uno
o más programas. Esta ejecución puede ser intercalada con la de otros procesos. De
este modo, un proceso tiene un estado de ejecución (Ejecución, Listo, etc.) y una
prioridad de expedición. La unidad planificada y expedida por el SO es el proceso.
 Estas dos características son, de hecho, la esencia de un proceso.
 Sin embargo, algunos argumentos pueden convencer de que estas dos
características son independientes y que deben ser tratadas de manera
independiente por el SO.
 Para distinguir estas dos características:
◦ la unidad de expedición se conoce como hilo (thread)
◦ mientras que a la unidad de propiedad de los recursos se le suele llamar proceso o
tarea.
78
 La utilización que más salta a la vista del concepto
de hilo es la de una disposición en la que pueden
existir varios hilos dentro de un mismo proceso.
 Algo aproximado a este enfoque es lo que se hace
en MVS.
 Este enfoque es el asumido por:
◦ Windows NT
◦ OS/2
◦ La versión que tiene Sun Microsystem de UNIX (Solaris).
◦ Mach.
 Mach es una evolución ampliada de UNIX que se
utiliza en las estaciones Next y que forma la base
de la versión de UNIX de la Fundación para el
Software Abierto (OSF: Open Software Foundation).
79
 Mach está diseñado específicamente para trabajar en un entorno
multiprocesador, aunque también se adapta bien a los sistemas
monoprocesadores.
 En Mach, una tarea se define como la unidad de protección o unidad de
asignación de recursos. A las tareas se les asocian los siguientes elementos:
 Un espacio de direcciones virtuales, que contiene la imagen de la tarea.
 Acceso protegido a los procesadores, otros procesos (para la
comunicación entre procesos), archivos y recursos de E/S (dispositivos y
canales)
 En una tarea pueden haber uno o más hilos, cada uno con lo siguiente:
 El estado de ejecución del hilo (Ejecución, Listo, etc.).
 El contexto del procesador, que se salva cuando no está ejecutando;
una forma de contemplar al hilo es con un contador de programa
independiente operando dentro de una tarea.
 Una pila de ejecución.
 Almacenamiento estático para las variables locales.
 Acceso a la memoria y a los recursos de la tarea, que se comparten con
todos los otros hilos de la tarea
80
 Los beneficios clave de los hilos se derivan de las
implicaciones del rendimiento:
◦ Se tarda mucho menos tiempo en crear un nuevo hilo en un
proceso existente que en crear una nueva tarea,
◦ menos tiempo para terminar un hilo y
◦ menos tiempo para cambiar entre dos hilos de un mismo proceso.
 Por tanto, si hay una aplicación o una función que pueda
implementarse como un conjunto de unidades de
ejecución relacionadas, es más eficiente hacerlo con una
colección de hilos que con una colección de tareas
separadas.
 Algunos estudios llevados a cabo por los desarrolladores
de Mach demuestran que la aceleración en la creación de
procesos, comparada con la de Las implementaciones de
UNIX que no utilizan hilos, está en un factor de 10
81
 Un ejemplo de aplicación que podría hacer uso de hilos es un
servidor, como puede ser un servidor de archivos de una LAN.
 Cada vez que llegue una solicitud de un nuevo archivo, se puede
generar un nuevo hilo para el programa de gestión de archivos.
 Puesto que el servidor debe manejar muchas solicitudes, se
crearán y destruirán muchos hilos en un corto periodo de
tiempo.
 Si el servidor es un multiprocesador, se pueden ejecutar varios
hilos de una misma tarea simultáneamente y en diferentes
procesadores.
 Los hilos son también útiles en los monoprocesadores para
simplificar la estructura de los programas que lleven a cabo
diversas funciones.
 Otros ejemplos de uso efectivo de los hilos es en las aplicaciones
de proceso de comunicaciones y en los supervisores de
transacciones.
82
1. Trabajo interactivo y de fondo: Esto se produce en el sentido
de la interacción directa con el usuario, no en el de sesiones
interactivas y de fondo. Por ejemplo, en un programa de hoja
de cálculo, un hilo puede estar visualizando los menús y
leyendo la entrada del usuario mientras que otro hilo ejecuta
las órdenes y actualiza la hoja de cálculo. Esta medida suele
aumentar la velocidad que se percibe de la aplicación,
permitiendo que el programa pida la orden siguiente antes de
terminar la anterior.
2. Proceso asíncrono: Los elementos asíncronos del programa se
pueden implementar como hilos. Por ejemplo, para protegerse
de un corte de alimentación, se puede diseñar un procesador
de textos que escriba su buffer de la RAM al disco una vez por
minuto. Se puede crear un hilo cuya única tarea sea hacer
estas copias de respaldo periódicas y que se planifique
directamente con el sistema operativo; no hay necesidad de
ningún código superfluo en el programa principal que haga la
comprobación de tiempo o que coordine la entrada y la salida.
83
3. Aceleración de la ejecución: Un proceso con hilos múltiples
puede computar un lote de datos mientras lee el lote
siguiente de un dispositivo. En un sistema con
multiproceso, varios hilos de un mismo proceso podrán
ejecutar realmente a la vez.
4. Organización de los programas: Los programas que
suponen una variedad de actividades o varios orígenes y
destinos de entrada y salida pueden hacerse más fáciles de
diseñar e implementar mediante hilos.
84
 La planificación y la expedición se llevan a cabo con los hilos;
por tanto, la mayor parte de la información de estado
relacionada con la ejecución se mantiene en estructuras de
datos al nivel de los hilos.
 Sin embargo, hay varias acciones que afectan a todos lo hilos
de una tarea y que el SO debe gestionar al nivel de las tareas.
 La suspensión implica la descarga del espacio de direcciones
fuera de la memoria principal.
 Puesto que todos los hilos de una tarea comparten el mismo
espacio de direcciones, todos deben entrar en el estado
Suspendido al mismo tiempo.
 De manera similar, la terminación de una tarea supone
terminar con todos los hilos dentro de dicha tarea.
85
 La aplicación Aldus PageMaker, corre en OS/2.
 Es una herramienta de composición, diseño y producción de
publicaciones.
 La estructura de hilos, se muestra en la figura.
 Siempre hay tres hilos activos:
1. un hilo de gestión de sucesos
2. un hilo para el dibujo de la pantalla
3. y un hilo de servicio.
86
 Los conceptos de unidad de asignación de recursos y de unidad de
expedición se han englobado tradicionalmente dentro del concepto
único de proceso, es decir, como una relación de uno a uno.
 Recientemente, ha habido un gran interés en disponer de varios hilos
dentro de un mismo proceso, es decir, una relación de muchos a uno.
 Sin embargo, como se muestra en la tabla, también se han investigado
las otras dos combinaciones.
87
88
Ejemplos de Descripción
Y Control de Procesos

Más contenido relacionado

Similar a 4_Descripcion_y_Control_de_Procesos.pptx

Sistemas operativos miguel angel
Sistemas operativos  miguel angelSistemas operativos  miguel angel
Sistemas operativos miguel angelcarlos-1
 
Sistemas operativos miguel angel
Sistemas operativos  miguel angelSistemas operativos  miguel angel
Sistemas operativos miguel angelangel-12
 
Unidad 2 Sistemas Operativos
Unidad 2 Sistemas OperativosUnidad 2 Sistemas Operativos
Unidad 2 Sistemas OperativosKim Sorel Rush
 
Recurrencia en procesos
Recurrencia en procesosRecurrencia en procesos
Recurrencia en procesos
rcarrerah
 
Unidad2
Unidad2Unidad2
104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesador104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesadorMiguel Joshua Godinez Barbosa
 
Sistema Operativos PNFI IUTM (2º Capitulo Procesos y Administracion del Proc...
Sistema Operativos PNFI IUTM (2º Capitulo  Procesos y Administracion del Proc...Sistema Operativos PNFI IUTM (2º Capitulo  Procesos y Administracion del Proc...
Sistema Operativos PNFI IUTM (2º Capitulo Procesos y Administracion del Proc...
ruben ferrer
 
Gestion de nucleo
Gestion de nucleoGestion de nucleo
Gestion de nucleo
Lewuin Ocanto
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativosadriel91
 
Unidad 2 sistemas operativos 2011
Unidad 2  sistemas operativos 2011Unidad 2  sistemas operativos 2011
Unidad 2 sistemas operativos 2011Abimael hernandez
 
Estructura de los Sistemas Operativos
Estructura de los Sistemas OperativosEstructura de los Sistemas Operativos
Estructura de los Sistemas OperativosG Hoyos A
 
2015 gestión de procesos
2015 gestión de procesos2015 gestión de procesos
2015 gestión de procesos
Michael Ramirez
 

Similar a 4_Descripcion_y_Control_de_Procesos.pptx (20)

sistema operativo
sistema operativosistema operativo
sistema operativo
 
Windows
WindowsWindows
Windows
 
Sistemas operativos miguel angel
Sistemas operativos  miguel angelSistemas operativos  miguel angel
Sistemas operativos miguel angel
 
Sistemas operativos miguel angel
Sistemas operativos  miguel angelSistemas operativos  miguel angel
Sistemas operativos miguel angel
 
Unidad 2 Sistemas Operativos
Unidad 2 Sistemas OperativosUnidad 2 Sistemas Operativos
Unidad 2 Sistemas Operativos
 
Recurrencia en procesos
Recurrencia en procesosRecurrencia en procesos
Recurrencia en procesos
 
Unidad2
Unidad2Unidad2
Unidad2
 
Procesos
ProcesosProcesos
Procesos
 
104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesador104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesador
 
Grupo1
Grupo1Grupo1
Grupo1
 
Parte u 3
Parte u 3Parte u 3
Parte u 3
 
Sistema Operativos PNFI IUTM (2º Capitulo Procesos y Administracion del Proc...
Sistema Operativos PNFI IUTM (2º Capitulo  Procesos y Administracion del Proc...Sistema Operativos PNFI IUTM (2º Capitulo  Procesos y Administracion del Proc...
Sistema Operativos PNFI IUTM (2º Capitulo Procesos y Administracion del Proc...
 
Expo So
Expo SoExpo So
Expo So
 
SYSTEM
SYSTEMSYSTEM
SYSTEM
 
Gestion de nucleo
Gestion de nucleoGestion de nucleo
Gestion de nucleo
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
 
Unidad 2 sistemas operativos 2011
Unidad 2  sistemas operativos 2011Unidad 2  sistemas operativos 2011
Unidad 2 sistemas operativos 2011
 
Estructura de los Sistemas Operativos
Estructura de los Sistemas OperativosEstructura de los Sistemas Operativos
Estructura de los Sistemas Operativos
 
2015 gestión de procesos
2015 gestión de procesos2015 gestión de procesos
2015 gestión de procesos
 
Procesos
ProcesosProcesos
Procesos
 

Último

Seguridad en mineria los Controles criticos
Seguridad en mineria los Controles criticosSeguridad en mineria los Controles criticos
Seguridad en mineria los Controles criticos
Melvin191754
 
Distribución Muestral de Diferencia de Medias
Distribución Muestral de Diferencia de MediasDistribución Muestral de Diferencia de Medias
Distribución Muestral de Diferencia de Medias
arielemelec005
 
MATERIALES MAGNETICOS EN EL CAMPO SIDERURGICO.pptx
MATERIALES MAGNETICOS EN EL CAMPO SIDERURGICO.pptxMATERIALES MAGNETICOS EN EL CAMPO SIDERURGICO.pptx
MATERIALES MAGNETICOS EN EL CAMPO SIDERURGICO.pptx
Fernando Benavidez
 
Plan de Desarrollo Urbano de la Municipalidad Provincial de Ilo
Plan de Desarrollo Urbano de la Municipalidad Provincial de IloPlan de Desarrollo Urbano de la Municipalidad Provincial de Ilo
Plan de Desarrollo Urbano de la Municipalidad Provincial de Ilo
AlbertoRiveraPrado
 
Hidrostatica_e_Hidrodinamica.pdggggggggf
Hidrostatica_e_Hidrodinamica.pdggggggggfHidrostatica_e_Hidrodinamica.pdggggggggf
Hidrostatica_e_Hidrodinamica.pdggggggggf
JavierAlejosM
 
A3QUIROZ,MANUEL- Operaciones Basicas- Construccion
A3QUIROZ,MANUEL- Operaciones Basicas- ConstruccionA3QUIROZ,MANUEL- Operaciones Basicas- Construccion
A3QUIROZ,MANUEL- Operaciones Basicas- Construccion
manuelalejandro238
 
tema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptx
tema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptxtema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptx
tema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptx
DianaSG6
 
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdfPLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
MariaCortezRuiz
 
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdfDialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
fernanroq11702
 
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaaEspecificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
ssuserebb7f71
 
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
JuanChaparro49
 
Medicina Peruana en el siglo XX y XXI- Julio Gabriel Pereda Sanchez.pptx
Medicina Peruana en el siglo XX y XXI- Julio Gabriel  Pereda Sanchez.pptxMedicina Peruana en el siglo XX y XXI- Julio Gabriel  Pereda Sanchez.pptx
Medicina Peruana en el siglo XX y XXI- Julio Gabriel Pereda Sanchez.pptx
gabrielperedasanchez
 
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docxPLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
Victor Manuel Rivera Guevara
 
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
FRANCISCOJUSTOSIERRA
 
Diagrama de flujo "Resolución de problemas".pdf
Diagrama de flujo "Resolución de problemas".pdfDiagrama de flujo "Resolución de problemas".pdf
Diagrama de flujo "Resolución de problemas".pdf
joseabachesoto
 
Becas de UOC _ Caja Ingenieros 2024-25.pdf
Becas de UOC _ Caja Ingenieros 2024-25.pdfBecas de UOC _ Caja Ingenieros 2024-25.pdf
Becas de UOC _ Caja Ingenieros 2024-25.pdf
UOC Estudios de Informática, Multimedia y Telecomunicación
 
CONTROL DE MOTORES DE CORRIENTE ALTERNA PPT
CONTROL DE MOTORES DE CORRIENTE ALTERNA  PPTCONTROL DE MOTORES DE CORRIENTE ALTERNA  PPT
CONTROL DE MOTORES DE CORRIENTE ALTERNA PPT
LuisLobatoingaruca
 
Edafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden HistosolesEdafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden Histosoles
FacundoPortela1
 
1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV
CarlosAroeira1
 
Una solucion saturada contiene la cantidad máxima de un soluto que se disuel...
Una solucion saturada contiene la cantidad máxima de un  soluto que se disuel...Una solucion saturada contiene la cantidad máxima de un  soluto que se disuel...
Una solucion saturada contiene la cantidad máxima de un soluto que se disuel...
leonpool521
 

Último (20)

Seguridad en mineria los Controles criticos
Seguridad en mineria los Controles criticosSeguridad en mineria los Controles criticos
Seguridad en mineria los Controles criticos
 
Distribución Muestral de Diferencia de Medias
Distribución Muestral de Diferencia de MediasDistribución Muestral de Diferencia de Medias
Distribución Muestral de Diferencia de Medias
 
MATERIALES MAGNETICOS EN EL CAMPO SIDERURGICO.pptx
MATERIALES MAGNETICOS EN EL CAMPO SIDERURGICO.pptxMATERIALES MAGNETICOS EN EL CAMPO SIDERURGICO.pptx
MATERIALES MAGNETICOS EN EL CAMPO SIDERURGICO.pptx
 
Plan de Desarrollo Urbano de la Municipalidad Provincial de Ilo
Plan de Desarrollo Urbano de la Municipalidad Provincial de IloPlan de Desarrollo Urbano de la Municipalidad Provincial de Ilo
Plan de Desarrollo Urbano de la Municipalidad Provincial de Ilo
 
Hidrostatica_e_Hidrodinamica.pdggggggggf
Hidrostatica_e_Hidrodinamica.pdggggggggfHidrostatica_e_Hidrodinamica.pdggggggggf
Hidrostatica_e_Hidrodinamica.pdggggggggf
 
A3QUIROZ,MANUEL- Operaciones Basicas- Construccion
A3QUIROZ,MANUEL- Operaciones Basicas- ConstruccionA3QUIROZ,MANUEL- Operaciones Basicas- Construccion
A3QUIROZ,MANUEL- Operaciones Basicas- Construccion
 
tema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptx
tema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptxtema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptx
tema-6.4-calculo-de-la-potencia-requerida-para-transporte-de-solidos-.pptx
 
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdfPLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
PLAN DE TRABAJO DE REFUERZO ESCOLAR 2024.pdf
 
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdfDialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
Dialnet-EnsenanzaDeLaModelacionMedianteEcuacionesDiferenci-9304821.pdf
 
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaaEspecificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
Especificacioes tecnicas.pdfaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
CODIGO DE SEÑALES Y COLORES NTP399 - ANEXO 17 DS 024
 
Medicina Peruana en el siglo XX y XXI- Julio Gabriel Pereda Sanchez.pptx
Medicina Peruana en el siglo XX y XXI- Julio Gabriel  Pereda Sanchez.pptxMedicina Peruana en el siglo XX y XXI- Julio Gabriel  Pereda Sanchez.pptx
Medicina Peruana en el siglo XX y XXI- Julio Gabriel Pereda Sanchez.pptx
 
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docxPLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
PLANIFICACION INDUSTRIAL ( Gantt-Pert-CPM ).docx
 
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
TR-514 (3) - BIS copia seguridad DOS COLUMNAS 2024 1.6.24 PREFERIDO.wbk.wbk S...
 
Diagrama de flujo "Resolución de problemas".pdf
Diagrama de flujo "Resolución de problemas".pdfDiagrama de flujo "Resolución de problemas".pdf
Diagrama de flujo "Resolución de problemas".pdf
 
Becas de UOC _ Caja Ingenieros 2024-25.pdf
Becas de UOC _ Caja Ingenieros 2024-25.pdfBecas de UOC _ Caja Ingenieros 2024-25.pdf
Becas de UOC _ Caja Ingenieros 2024-25.pdf
 
CONTROL DE MOTORES DE CORRIENTE ALTERNA PPT
CONTROL DE MOTORES DE CORRIENTE ALTERNA  PPTCONTROL DE MOTORES DE CORRIENTE ALTERNA  PPT
CONTROL DE MOTORES DE CORRIENTE ALTERNA PPT
 
Edafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden HistosolesEdafología - Presentacion Orden Histosoles
Edafología - Presentacion Orden Histosoles
 
1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV1º Caso Practico Lubricacion Rodamiento Motor 10CV
1º Caso Practico Lubricacion Rodamiento Motor 10CV
 
Una solucion saturada contiene la cantidad máxima de un soluto que se disuel...
Una solucion saturada contiene la cantidad máxima de un  soluto que se disuel...Una solucion saturada contiene la cantidad máxima de un  soluto que se disuel...
Una solucion saturada contiene la cantidad máxima de un soluto que se disuel...
 

4_Descripcion_y_Control_de_Procesos.pptx

  • 2.  Como los procesos son representados y controlados por el Sistema Operativo.  Estados del Proceso que caracterizan el comportamiento de los mismos.  Estructuras de Datos usadas para administrar los procesos.  Las formas en que el SO utiliza estas estructuras de datos para controlar la ejecución del proceso.  Discusión de la administración de procesos en UNIX SVR4. 2
  • 3.  Tarea fundamental: Gestión de procesos.  El sistema operativo debe: ◦ Intercalar la ejecución de múltiples procesos. ◦ Asignar recursos a los procesos, y protegerlos de procesos. ◦ Habilitar procesos para compartir e intercambiar información. ◦ Habilitar la sincronización entre procesos. 3
  • 4.  De capítulos anteriores vimos: ◦ Plataformas computacionales se compone de una colección de recursos de hardware. ◦ Las aplicaciones informáticas se han desarrollado para realizar alguna tarea. ◦ Es ineficiente para las aplicaciones que se escriben directamente para una plataforma de hardware determinada. 4
  • 5.  SO proporciona una interfaz para que las aplicaciones utilicen  SO proporciona una representación de los recursos que se pueden solicitar y acceder por las aplicaciones aplicación. 5
  • 6.  Los recursos están disponibles a múltiples aplicaciones.  El procesador se conmuta entre múltiples aplicaciones.  El procesador y dispositivos E/S se puede utilizar de manera eficiente. 6
  • 7.  Como los procesos son representados y controlados por el Sistema Operativo.  Estados de Proceso que caracterizan el comportamiento de los mismos.  Estructuras de Datos usadas para administrar los procesos.  Las formas en que el SO utiliza estas estructuras de datos para controlar la ejecución del proceso.  Discusión de la administración de procesos en UNIX SVR4. 7
  • 8. 8 Estado de un Proceso
  • 9.  La ejecución de un programa individual se conoce como proceso o tarea.  El comportamiento de un proceso individual puede caracterizarse por el listado de la secuencia de instrucciones que se ejecutan para dicho proceso.  Dicho listado se llama traza del proceso. 9
  • 10. 10
  • 11. 11
  • 12. 12
  • 13. 13
  • 14. 14
  • 15. 15
  • 16. 16
  • 17. 17 Transiciones de Estado de un Proceso
  • 20. 20 Estados de los Procesos para la Traza Ejemplo
  • 21. 21 Transición de Estados de un Proceso con Estados de Suspensión
  • 22. 22 …Transición de Estados de un Proceso con Estados de Suspensión
  • 23. 23 Transición de Estados de un Proceso con Estados de Suspensión
  • 24. 24 …Transición de Estados de un Proceso con Estados de Suspensión
  • 25.  Hasta ahora, se ha identificado el concepto de proceso Suspendido con el hecho de que el proceso no está en memoria principal.  Un proceso que no esté en memoria no estará disponible de inmediato para su ejecución, esté o no esperando un suceso.  Se puede generalizar este concepto de proceso Suspendido. Se define proceso Suspendido como aquel que tiene las características siguientes: 1. Un proceso que está suspendido no está disponible de inmediato para ejecución. 2. El proceso puede estar esperando o no un suceso. Si lo está, la condición de Bloqueado es independiente de La condición de Suspendido y el acontecimiento del suceso bloqueante no lo habilita para la ejecución. 3. El proceso fue situado en el estado suspendido por un agente (por sI mismo, por el proceso padre o por el sistema operativo) con el fin de impedir su ejecución. 4. El proceso no puede apartarse de este estado hasta que el agente lo ordene explícitamente. 25
  • 26. 26 Razones para la Suspensión de Procesos
  • 28.  El SO es el controlador de los eventos que se producen en el computador.  Es el SO el que planifica y expide a los procesos para su ejecución en el procesador, el que asigna los recursos y el que responde a las solicitudes de servicios básicos.  Esencialmente, se puede imaginar al SO como una entidad que administra el uso que hacen los procesos de los recursos del sistema. 28
  • 30. 30 Estructura General de las Tablas de Control del Sistema Operativo
  • 31.  Se utilizan para seguir la pista de la memoria principal (real) y secundaria (virtual).  Parte de la memoria principal está reservada para el uso del sistema operativo; el resto está disponible para el uso de los procesos.  Los procesos se mantienen en memoria secundaria mediante alguna forma de memoria virtual o por un simple mecanismo de intercambio.  Las tablas de memoria deben incluir la información siguiente: ◦ La asignación de memoria principal a los procesos ◦ La asignación de memoria secundaria a los procesos ◦ Cualesquiera atributos de protección de segmentos de memoria principal o virtual, tales como qué procesos pueden acceder a ciertas regiones compartidas de memoria ◦ Cualquier información necesaria para gestionar la memoria virtual 31
  • 32.  Utilizadas por el sistema operativo para administrar los dispositivos y los canales de E/S del computador.  En un momento dado, un dispositivo de E/S puede estar disponible o estar asignado a un proceso en particular.  Si hay una operación de E/S en marcha, el sistema operativo necesita conocer el estado de la operación de E/S y la posición de memoria principal que se está utilizando como origen o destino de la transferencia de E/S. 32
  • 33.  Ofrecen información sobre la existencia de los archivos, su posición en la memoria secundaria, su estado actual y otros atributos.  Gran parte de esta información, si no toda, puede ser mantenida y utilizada por un sistema de gestión de archivos, en cuyo caso el sistema operativo tendrá poco o ningún conocimiento de los archivos.  En otros sistemas operativos, gran parte de los detalles de la gestión de archivos son gestionados por el propio sistema operativo. 33
  • 34.  Finalmente, el SO debe mantener tablas de procesos para administrarlos.  Antes de continuar con esta discusión, se deben señalar dos puntos: 1. Aunque la filmina 25 muestra cuatro conjuntos de tablas distintos, debe quedar claro que estas tablas deben estar enlazadas o disponer de referencias cruzadas de alguna manera. 2. ¿Cómo crea el sistema operativo las tablas por primera vez? Desde luego, el SO debe tener algún conocimiento sobre el entorno básico, tal y como cuánta memoria principal hay, cuáles son los dispositivos de E/S y sus identificadores, etc. 34
  • 35.  Considérese lo que debe conocer un sistema operativo si tiene que administrar y controlar a los procesos: 1. Debe saber dónde está ubicado el proceso. 2. Debe conocer los atributos del proceso que son necesarios para su administración. 35
  • 36.  ¿Cuál es la manifestación física de un proceso? ◦ Como mínimo, un proceso debe incluir un programa o un conjunto de programas que sean ejecutados. ◦ Asociados a estos programas hay un conjunto de ubicaciones de datos para las variables locales y globales, y Las constantes definidas.  Así pues, un proceso constará, al menos, de la memoria suficiente para albergar los programas y los datos del proceso.  Además de esto, en la ejecución de un programa entra en juego normalmente una pila, que se utiliza para llevar la cuenta de las llamadas a procedimientos y de los parámetros que se pasan entre los procedimientos.  Por último, asociado a cada proceso hay una serie de atributos utilizados por el sistema operativo para el control del proceso.  Estos atributos se conocen como el bloque de control del proceso.  Esta colección de programa, datos, pila y atributos puede llamarse imagen del proceso. 36
  • 37. 37
  • 38.  En un sistema de multiprogramación sofisticado, se requiere una gran cantidad de información de cada proceso para su administración.  Como ya se dijo, puede considerarse que esta información reside en un bloque de control del proceso.  Diferentes sistemas organizarán esta información de modo diferente.  Las filminas 38, 39 y 40 enumeran las categorías típicas de la información que requiere el SO para cada proceso. 38
  • 39.  Se puede agrupar la información de los bloques de control del proceso en las tres categorías: 1. Identificación del proceso 2. Información del estado del procesador 3. Información de control del proceso 39
  • 40. 40
  • 41. 41
  • 42.  El bloque de control de proceso es la estructura de datos central y más importante de un SO.  Cada bloque de control de proceso contiene toda la información de un proceso necesaria para el SO.  Los bloques son leídos y/o modificados por casi todos los módulos de un sistema operativo, incluyendo aquellos que tienen que ver: ◦ con la planificación ◦ la asignación de recursos ◦ el tratamiento de interrupciones y ◦ el análisis y supervisión del rendimiento.  Puede decirse que el conjunto de los bloques de control de procesos definen el estado del sistema operativo. 42
  • 43. 43 Elementos Básicos de un Bloque de Control de Proceso
  • 44. 44 ..Elementos Básicos de un Bloque de Control de Proceso
  • 45. 45 ..Elementos Básicos de un Bloque de Control de Proceso
  • 47.  La mayoría de los procesadores dan soporte a dos modos de ejecución: 1. Modo del sistema, modo de control o modo de núcleo. Ciertas instrucciones pueden ejecutarse solo en modo privilegiado. 2. Módulo de usuario: Es el modo menos privilegiado, ya que los programas de usuario ejecutan normalmente en ese modo. 47
  • 48. 48
  • 49.  Surgen dos preguntas: 1. ¿Cómo conoce el procesador en qué modo va a ejecutar? 2. ¿Cómo se cambia de modo? 49
  • 50.  Una vez que el sistema operativo decide, por alguna razón (tabla 3.1), crear un nuevo proceso, éste puede proceder como sigue: 1. Asignar un único identificador al nuevo proceso. En ese momento se añade una nueva entrada a la tabla principal de procesos, que contiene una entrada por proceso. 2. Asignar espacio para el proceso. Esto incluye todos los elementos de la imagen del proceso. Así pues, el sistema operativo debe saber cuánto espacio se necesitará para el espacio privado de direcciones del usuario (programas y datos) y para la pila del usuario. Estos valores se pueden asignar por omisión en función del tipo de proceso o bien se puede asignar a partir de la solicitud del usuario cuando se crea el trabajo. Si un proceso es generado por otro, el proceso padre puede pasarle al sistema operativo los valores necesarios como parte de la solicitud de creación del proceso. Si algún espacio de direcciones existente se va a compartir con este nuevo proceso, entonces se deben establecer los enlaces adecuados. Por último, se debe asignar espacio para el bloque de control del proceso. 50
  • 51. 51 3. Debe inicializarse el bloque de control del proceso. La parte de identificación del proceso contiene el ID de este proceso junto a otros ID apropiados, tales como el del proceso padre. La parte de información del estado del procesador normalmente se inicializa con la mayor parte de las entradas a cero, excepto para el contador de programa (que se prepara con el punto de entrada del programa) y los punteros a las pilas del sistema (que establecen los limites de la pila del proceso). La parte de información de control del procesador se inicializa a partir de los valores estándares por omisión y los atributos que se han solicitado para el proceso.
  • 52. 52 4. Se deben establecer los enlaces apropiados. Por ejemplo, si el SO mantiene cada cola de planificación como una lista enlazada, entonces el proceso nuevo se debe poner en la cola de Listos o de Listos y suspendidos. 5. Puede haber otras estructuras de datos que crear o ampliar. Por ejemplo, el SO puede mantener un archivo de contabilidad para cada proceso que sea utilizado más tarde con propósitos de facturación y/o evaluación del rendimiento.
  • 53.  A primera vista, la función de cambio de proceso parece sencilla.  En cierto momento, un proceso que está ejecutándose se interrumpe, el SO pone a otro proceso en el estado de Ejecución y pasa el control a dicho proceso.  Sin embargo, surgen diversas cuestiones de diseño: 1. ¿Qué sucesos provocan un cambio de proceso? 2. Otra cuestión es que se debe hacer una distinción entre cambio de contexto y cambio de proceso. 3. ¿Qué debe hacer el sistema operativo con las diferentes estructuras de datos bajo su control para llevar a cabo un cambio de proceso? 53
  • 54.  Un cambio de proceso puede producirse en cualquier momento en que el sistema operativo haya tornado el control a partir del proceso que está actualmente ejecutándose.  La siguiente tabla 3.11 propone los sucesos posibles que pueden dar el control al sistema operativo. 54
  • 55. 55
  • 56.  Recuérdese que, en el ciclo de interrupción, el procesador comprueba si se ha producido alguna interrupción, lo que se indicaría por la presencia de una señal de interrupción.  Si no hay pendiente ninguna interrupción, el procesador continúa con el ciclo de lectura de la instrucción siguiente del programa en curso del proceso actual.  Si hay alguna interrupción pendiente, el procesador hace lo siguiente: 1. Salva el contexto del programa que está ejecutándose. 2. Asigna al contador de programa el valor de la dirección de comienzo de un programa de tratamiento de la interrupción. 56
  • 57.  El procesador continúa entonces con el ciclo de lectura de instrucción y trae la primera instrucción del programa de tratamiento de interrupciones, que atenderá a la interrupción.  ¿Que es lo que constituye el contexto que se salva? ◦ La respuesta es que se debe incluir cualquier información que pueda alterarse por la ejecución de la rutina de tratamiento de la interrupción y que pueda sea necesaria para reanudar el programa que fue interrumpido. Así pues, debe salvarse la parte del bloque de control del proceso que se denomina información de estado del procesador. Esto incluye el contador de programa, otros registros del procesador y la información de la pila.  ¿Hace falta hacer algo más? ◦ Ello dependerá de lo que ocurra a continuación. La rutina de tratamiento de la interrupción es normalmente un programa corto que lleva a cabo unas pocas tareas básicas relacionadas con una interrupción. 57
  • 58.  ¿Qué sucede con el resto de información del bloque de control del proceso? ◦ Si la interrupción va a venir seguida de un cambio a otro proceso, entonces hace falta hacer cierto trabajo.  En la mayoría de los SO, el acontecimiento de una interrupción no provoca necesariamente un cambio de proceso.  Es posible que después de que el gestor de interrupciones haya ejecutado, el proceso que estaba ejecutándose reanude su ejecución.  En tal caso, todo lo que hay que hacer es salvar la información de estado del procesador cuando se produzca la interrupción y restaurar dicha información cuando el control vuelva al programa que estaba en marcha.  Las funciones de salvar y restaurar suelen llevarse a cabo en el hardware. 58
  • 59.  Está claro entonces que el cambio de contexto es un concepto distinto del cambio de proceso.  Puede producirse un cambio de contexto sin cambiar el estado del proceso que está actualmente en estado de Ejecución. En tal caso, salvar el contexto y restaurarlo posteriormente involucra un pequeño coste extra.  Sin embargo, si el proceso que estaba ejecutándose tiene que pasar a otro estado (Listo, Bloqueado, etc.), el SO tiene que llevar a cabo cambios substanciales en su entorno. 59
  • 60.  Los pasos involucrados en un cambio completo de proceso son los siguientes: 1. Salvar el contexto del procesador, incluyendo el contador de programa y otros registros. 2. Actualizar el bloque de control del proceso que estaba en estado de Ejecución. Esto implica cambiar el estado del proceso a alguno de los otros estados (Listo, Bloqueado, Listo y suspendido, Terminado). También se tienen que actualizar otros campos significativos, incluyendo la razón por la que se abandona el estado de Ejecución y la información de contabilidad. 3. Mover el bloque de control del proceso a la cola apropiada (Listos, Bloqueados por el Suceso i, Listos y suspendidos). 4. Seleccionar otro proceso para ejecución. 60
  • 61. 5. Actualizar el bloque de control del proceso seleccionado. Esto incluye cambiar el estado del proceso a Ejecución. 6. Actualizar las estructuras de datos de gestión de memoria. Esto puede hacer falta dependiendo de cómo se gestione la traducción de direcciones. 7. Restaurar el contexto del procesador a aquel que existía en el momento en el que el proceso seleccionado dejó por última vez el estado de Ejecución, cargando los valores previos del contador de programa y de otros registros.  Así pues, el cambio de proceso, que supone un cambio de estado, requiere un esfuerzo considerablemente mayor que un cambio de contexto. 61
  • 62.  En el capitulo 2 se señalaron algunos hechos curiosos sobre los sistemas operativos: ◦ El sistema operativo funciona de la misma forma que un software corriente, es decir, es un programa ejecutado por el procesador. ◦ El sistema operativo abandona frecuentemente el control y debe depender de que el procesador le permita recuperarlo.  Si el sistema operativo es solamente una colección de programas y si es ejecutado por el procesador, como cualquier otro programa, ◦ ¿es el sistema operativo un proceso? ◦ Si lo fuese, ¿cómo se controla?  Estas interesantes preguntas han merecido variadas respuestas de los diseñadores de SO.  La siguiente figura ilustra un rango de enfoques que pueden encontrarse en varios de los SO contemporáneos. 62
  • 63. 63
  • 64.  Un enfoque bastante tradicional en muchos de los SO más antiguos es ejecutar el núcleo del sistema operativo fuera de cualquier proceso.  Con este enfoque, cuando el proceso en ejecución es interrumpido o hace una llamada de supervisor, se salva el contexto del procesador para este proceso y se pasa el control al núcleo.  El SO tiene su propia región de memoria y su propia pila del sistema para controlar las llamadas y retornos de procedimientos.  El SO puede llevar a cabo cualquier función deseada y luego restaurar el contexto del proceso interrumpido para reanudarlo.  Otra solución seria que el SO pudiese completar la función de salvar el entorno del proceso y continuar con la planificación y expedición de otro proceso. Que sea esto lo que pase depende de la causa de la interrupción y de las circunstancias del momento.  En cualquier caso, el punto clave es que se considera que el concepto de proceso se aplica solo a los programas del usuario.  El código del SO se ejecuta como una entidad separada que opera en modo privilegiado. 64
  • 65.  Una alternativa que es común en los SO de máquinas pequeñas (minicomputadores y microcomputadores) es ejecutar casi todo el software del sistema operativo en el contexto de un proceso de usuario.  El enfoque es que el SO es principalmente una colección de rutinas que el usuario llama para llevar a cabo varias funciones y que son ejecutadas dentro del entorno del proceso de usuario. 65
  • 66.  En un punto dado cualquiera, el SO estará gestionando N imágenes de procesos. Cada imagen incluye no solo las regiones que se ilustran en la figura 3.11, sino también zonas de programa, de datos y de pila para los programas del núcleo. 66
  • 67.  La figura propone una estructura típica para la imagen de un proceso de usuario según esta estrategia.  Una pila del núcleo separada se utiliza para gestionar las llamadas y los retornos mientras que el proceso esté en el modo del núcleo.  El código y los datos del sistema operativo están en el espacio de direcciones compartidas y son compartidos por todos los procesos de usuario. 67
  • 68.  Cuando se produce una interrupción, un cepo o una llamada del supervisor, el procesador se pone en modo del núcleo y el control pasa al sistema operativo.  Con tal fin, se salva el contexto del procesador y tiene lugar un cambio de contexto hacia una rutina del SO.  Sin embargo, la ejecución continúa dentro del proceso de usuario en curso.  De esta manera, no se ha llevado a cabo un cambio de proceso, sino un cambio de contexto dentro del mismo proceso.  Si el sistema operativo, al completar su trabajo, determina que el proceso en curso debe continuar ejecutando, entonces se lleva a cabo un cambio de contexto para reanudar el programa interrumpido del proceso en curso. 68
  • 69.  Esta es una de las ventajas clave de este enfoque: ◦ Un programa de usuario se interrumpe para emplear alguna rutina del sistema operativo, luego se reanuda y todo se produce sin la penalización de dos cambios de proceso. ◦ No obstante, si se determina que va a producirse un cambio de proceso en vez de retomar a! programa que estaba ejecutándose previamente, entonces se pasa el control a una rutina que hace el cambio entre procesos. ◦ Esta rutina puede o no ejecutar en el proceso en curso, dependiendo del diseño del sistema. ◦ Sin embargo, en algún punto, el proceso en curso debe ponerse en estado de No Ejecución y otro proceso debe designarse como proceso en Ejecución. ◦ Durante esta fase, es lógicamente más conveniente considerar que la ejecución tiene lugar fuera de todos los procesos. 69
  • 70.  Una última alternativa, es la de implementar el SO como una colección de procesos del sistema.  Al igual que en las otras opciones, el software que forma parte del núcleo ejecutará en modo de núcleo.  En este caso, sin embargo, las funciones más importantes del núcleo se organizan en procesos separados.  Una vez más, puede haber una pequeña cantidad de código de cambio de procesos que se debe ejecutar fuera de todo proceso. 70
  • 71.  Este enfoque tiene varias ventajas. 1. Impone unas normas de diseño de programas que promueven el uso de un SO modular con unas interfaces mínimas y claras entre los módulos. 2. Además, algunas funciones no criticas del sistema operativo se pueden implementas como procesos separados.  Por ejemplo, un programa supervisor que registrara el nivel de utilización de Los recursos (procesador, memoria, canales) y la velocidad de progreso de los procesos de usuario en el sistema. Como este programa no provee un servicio particular a ningún proceso activo, puede ser invocado solamente por el SO. 3. Como un proceso, la función podrá ejecutar con un nivel de prioridad asignado y ser intercalada con otros procesos bajo el control del distribuidor. 4. Por último, implementar el SO como un conjunto de procesos es útil en un entorno de multiprocesador o de varios computadores, en el cual algunos de los servicios del sistema operativo pueden enviarse a procesadores dedicados, mejorando así el rendimiento. 71
  • 72.  Tarea de investigación  Fecha de entrega: 21 de Febrero 2012  Medio: Documento Word (papel o electrónico) 72
  • 73.  Es un pequeño núcleo del sistema operativo que proporciona las bases para ampliaciones modulares.  ¿Confuso? ◦ Qué tan pequeño que debe ser el núcleo para ser calificado como micronúcleo. ◦ Sobre cómo diseñar los controladores (drivers) de dispositivos para alcanzar el mejor rendimiento a la vez que sus funciones se independizan del hardware. ◦ Si las operaciones que no sean del núcleo deben ejecutar en el espacio del núcleo o en el del usuario. ◦ Se debe mantener el código de los subsistemas existentes (por ejemplo, una versión de UNIX) o empezar desde cero. 73
  • 74.  El enfoque de los micronúcleo fue popularizado por el SO Mach y su implementación en la línea de computadoras Next.  Otra aplicación muy conocida con el enfoque de micronúcleo es Windows NT, que proclama no solo la modularidad, sino la portabilidad, como los beneficios clave.  Actualmente, otros productos presumen de tener implementaciones de micronúcleo y este enfoque general de diseño parece que va asentarse en casi todos los computadores personales, estaciones de trabajo y sistemas operativos de servidores que se desarrollen en el futuro próximo 74
  • 75.  La filosofía en que se basa el micronúcleo es que solo las funciones absolutamente esenciales del SO deben permanecer en el núcleo.  Las aplicaciones y los servicios menos esenciales se construyen sobre el micronúcleo.  Aunque la línea divisoria de lo que esta adentro y lo que está afuera del micronúcleo varia de un diseño a otro, la característica común es que muchos servicios que tradicionalmente han formado parte del sistema operativo ahora son subsistemas externos que interactúan con el núcleo y con otros subsistemas; aquí se incluyen los sistemas de archivo, los servicios de ventana y los servicios de seguridad. 75
  • 76.  Una vez más aunque los diseños específicos de cada micronúcleo pueden diferir en general la arquitectura de micronúcleo tiende a reemplazar la estratificación tradicional, en capas verticales, de un sistema operativo, por una horizontal.  Las componentes del sistema operativo externas al micronúcleo interactúan una con otra sobre una base común, normalmente a través de mensajes distribuidos a través del micronúcleo.  De este modo, el micronúcleo funciona como un distribuidor de mensajes: Valida los mensajes, los pasa entre las componentes y otorga el acceso al hardware.  Esta estructura es ideal para entornos de proceso distribuido, ya que el micronúcleo puede pasar mensajes tanto en local como en remoto, sin necesidad de cambios en otras componentes del sistema operativo. 76
  • 78.  Se ha presentado el concepto de proceso incluyendo las dos características siguientes: ◦ Unidad de propiedad de los recursos: A cada proceso se le asigna un espacio de direcciones virtuales para albergar a la imagen del proceso y, de cuando en cuando, al proceso se le puede asignar memoria virtual y otros recursos, tales como canales de E/S, dispositivos de E/S y archivos. ◦ Unidad de expedición: Un proceso es un camino de ejecución (traza) a través de uno o más programas. Esta ejecución puede ser intercalada con la de otros procesos. De este modo, un proceso tiene un estado de ejecución (Ejecución, Listo, etc.) y una prioridad de expedición. La unidad planificada y expedida por el SO es el proceso.  Estas dos características son, de hecho, la esencia de un proceso.  Sin embargo, algunos argumentos pueden convencer de que estas dos características son independientes y que deben ser tratadas de manera independiente por el SO.  Para distinguir estas dos características: ◦ la unidad de expedición se conoce como hilo (thread) ◦ mientras que a la unidad de propiedad de los recursos se le suele llamar proceso o tarea. 78
  • 79.  La utilización que más salta a la vista del concepto de hilo es la de una disposición en la que pueden existir varios hilos dentro de un mismo proceso.  Algo aproximado a este enfoque es lo que se hace en MVS.  Este enfoque es el asumido por: ◦ Windows NT ◦ OS/2 ◦ La versión que tiene Sun Microsystem de UNIX (Solaris). ◦ Mach.  Mach es una evolución ampliada de UNIX que se utiliza en las estaciones Next y que forma la base de la versión de UNIX de la Fundación para el Software Abierto (OSF: Open Software Foundation). 79
  • 80.  Mach está diseñado específicamente para trabajar en un entorno multiprocesador, aunque también se adapta bien a los sistemas monoprocesadores.  En Mach, una tarea se define como la unidad de protección o unidad de asignación de recursos. A las tareas se les asocian los siguientes elementos:  Un espacio de direcciones virtuales, que contiene la imagen de la tarea.  Acceso protegido a los procesadores, otros procesos (para la comunicación entre procesos), archivos y recursos de E/S (dispositivos y canales)  En una tarea pueden haber uno o más hilos, cada uno con lo siguiente:  El estado de ejecución del hilo (Ejecución, Listo, etc.).  El contexto del procesador, que se salva cuando no está ejecutando; una forma de contemplar al hilo es con un contador de programa independiente operando dentro de una tarea.  Una pila de ejecución.  Almacenamiento estático para las variables locales.  Acceso a la memoria y a los recursos de la tarea, que se comparten con todos los otros hilos de la tarea 80
  • 81.  Los beneficios clave de los hilos se derivan de las implicaciones del rendimiento: ◦ Se tarda mucho menos tiempo en crear un nuevo hilo en un proceso existente que en crear una nueva tarea, ◦ menos tiempo para terminar un hilo y ◦ menos tiempo para cambiar entre dos hilos de un mismo proceso.  Por tanto, si hay una aplicación o una función que pueda implementarse como un conjunto de unidades de ejecución relacionadas, es más eficiente hacerlo con una colección de hilos que con una colección de tareas separadas.  Algunos estudios llevados a cabo por los desarrolladores de Mach demuestran que la aceleración en la creación de procesos, comparada con la de Las implementaciones de UNIX que no utilizan hilos, está en un factor de 10 81
  • 82.  Un ejemplo de aplicación que podría hacer uso de hilos es un servidor, como puede ser un servidor de archivos de una LAN.  Cada vez que llegue una solicitud de un nuevo archivo, se puede generar un nuevo hilo para el programa de gestión de archivos.  Puesto que el servidor debe manejar muchas solicitudes, se crearán y destruirán muchos hilos en un corto periodo de tiempo.  Si el servidor es un multiprocesador, se pueden ejecutar varios hilos de una misma tarea simultáneamente y en diferentes procesadores.  Los hilos son también útiles en los monoprocesadores para simplificar la estructura de los programas que lleven a cabo diversas funciones.  Otros ejemplos de uso efectivo de los hilos es en las aplicaciones de proceso de comunicaciones y en los supervisores de transacciones. 82
  • 83. 1. Trabajo interactivo y de fondo: Esto se produce en el sentido de la interacción directa con el usuario, no en el de sesiones interactivas y de fondo. Por ejemplo, en un programa de hoja de cálculo, un hilo puede estar visualizando los menús y leyendo la entrada del usuario mientras que otro hilo ejecuta las órdenes y actualiza la hoja de cálculo. Esta medida suele aumentar la velocidad que se percibe de la aplicación, permitiendo que el programa pida la orden siguiente antes de terminar la anterior. 2. Proceso asíncrono: Los elementos asíncronos del programa se pueden implementar como hilos. Por ejemplo, para protegerse de un corte de alimentación, se puede diseñar un procesador de textos que escriba su buffer de la RAM al disco una vez por minuto. Se puede crear un hilo cuya única tarea sea hacer estas copias de respaldo periódicas y que se planifique directamente con el sistema operativo; no hay necesidad de ningún código superfluo en el programa principal que haga la comprobación de tiempo o que coordine la entrada y la salida. 83
  • 84. 3. Aceleración de la ejecución: Un proceso con hilos múltiples puede computar un lote de datos mientras lee el lote siguiente de un dispositivo. En un sistema con multiproceso, varios hilos de un mismo proceso podrán ejecutar realmente a la vez. 4. Organización de los programas: Los programas que suponen una variedad de actividades o varios orígenes y destinos de entrada y salida pueden hacerse más fáciles de diseñar e implementar mediante hilos. 84
  • 85.  La planificación y la expedición se llevan a cabo con los hilos; por tanto, la mayor parte de la información de estado relacionada con la ejecución se mantiene en estructuras de datos al nivel de los hilos.  Sin embargo, hay varias acciones que afectan a todos lo hilos de una tarea y que el SO debe gestionar al nivel de las tareas.  La suspensión implica la descarga del espacio de direcciones fuera de la memoria principal.  Puesto que todos los hilos de una tarea comparten el mismo espacio de direcciones, todos deben entrar en el estado Suspendido al mismo tiempo.  De manera similar, la terminación de una tarea supone terminar con todos los hilos dentro de dicha tarea. 85
  • 86.  La aplicación Aldus PageMaker, corre en OS/2.  Es una herramienta de composición, diseño y producción de publicaciones.  La estructura de hilos, se muestra en la figura.  Siempre hay tres hilos activos: 1. un hilo de gestión de sucesos 2. un hilo para el dibujo de la pantalla 3. y un hilo de servicio. 86
  • 87.  Los conceptos de unidad de asignación de recursos y de unidad de expedición se han englobado tradicionalmente dentro del concepto único de proceso, es decir, como una relación de uno a uno.  Recientemente, ha habido un gran interés en disponer de varios hilos dentro de un mismo proceso, es decir, una relación de muchos a uno.  Sin embargo, como se muestra en la tabla, también se han investigado las otras dos combinaciones. 87
  • 88. 88 Ejemplos de Descripción Y Control de Procesos