Está en la página 1de 10

PRACTICA 3

Facultad de ciencias naturales e ingeniería

Séptimo semestre

Objetivos

• Comprender la administración de procesos e hilos de los


sistemas operativos

• Comprender la tarea y la elección de un planificador

Trabajo realizado por: Edinson Corredor Fundación Universitaria de San Gil - UNISANGIL.
Ejercicio 1 (★)

Defina que es un proceso a nivel de un sistema operativo.

Un proceso es un programa en ejecución. Además, puede


definirse como el conjunto de datos de ejecución de un
programa.

Ejercicio 2 (★)

Varios sistemas operativos populares para microcomputadores


ofrecían poco o ningún soporte para el procesamiento concurrente.
Comente las principales dificultades que el procesamiento
concurrente añade al sistema operativo.
Los problemas del procesamiento concurrente, son
consecuencia de la velocidad de ejecución de los procesos que
no son predecibles, dependiendo, además, de las actividades de
otros procesos. Debido a la forma en que el sistema operativo
trata las interrupciones, surgen las principales dificultades:

• El riesgo de compartir recursos globales.


• Difícil gestión de la asignación óptima de recursos, por
parte del sistema operativo.
Las dificultades nombradas, también pueden presentarse en los
sistemas Multiprocesador. La acción de compartir recursos
genera problemas, y es por ello que se recomienda protegerlos.
Se puede producir hasta cuando hay un único procesador.

Trabajo realizado por: Edinson Corredor Fundación Universitaria de San Gil - UNISANGIL.
Ejercicio 3 (★)

Realice un diagrama de los estados de un proceso y sus


transiciones. Explique cuando se produce cada transición.

Transiciones entre estados

• Nuevo -> Listo


– Al crearse un proceso pasa inmediatamente al estado listo.

• Listo -> Ejecutando


– En el estado de listo, el proceso solo espera para
que se le asigne un procesador para ejecutar (tener
en cuenta que puede existir más de un procesador en
el sistema). Al liberarse un procesador el planificador
(scheduler). selecciona el próximo proceso, según
algún criterio definido, a ejecutar.

• Ejecutando -> Listo

Trabajo realizado por: Edinson Corredor Fundación Universitaria de San Gil - UNISANGIL.
– Ante una interrupción que se genere, el proceso
puede perder el recurso procesador y pasar al estado
de listo. El planificador será el encargado de
seleccionar el próximo proceso a ejecutar.

• Ejecutando -> Bloqueado


– A medida que el proceso ejecuta instrucciones
realiza pedidos en distintos componentes (ej.: genera
un pedido de E/S). Teniendo en cuenta que el pedido
puede demorar y, además, si está en un sistema
multiprogramado, el proceso es puesto en una cola de
espera hasta que se complete su pedido. De esta
forma, se logra utilizar en forma más eficiente el
procesador.

• Bloqueado -> Listo


– Una vez que ocurre el evento que el proceso estaba
esperando en la cola de espera, el proceso es puesto
nuevamente en la cola de procesos listos.

• Ejecutando -> Terminado


– Cuando el proceso ejecuta sus últimas instrucciones
pasa al estado terminado. El sistema libera las estructuras
que representan al proceso Ejercicio 4 (★)
¿Qué es el PCB?
El bloque de control del proceso es un registro especial donde
el sistema operativo agrupa toda la información que necesita
Trabajo realizado por: Edinson Corredor Fundación Universitaria de San Gil - UNISANGIL.
conocer respecto a un proceso particular. Cada vez que se crea
un proceso el sistema operativo crea el PCB correspondiente
para que sirva como descripción en tiempo de ejecución durante
toda la vida del proceso.
El bloque de control de proceso es básicamente una estructura
de datos con campos para registrar los diferentes aspectos de
la ejecución del proceso y de la utilización de recursos.

Describa sus campos más importantes

• Estado actual del proceso.

• Prioridad del proceso.

• Identificador del proceso.


• Ubicación en memoria.

• Recursos utilizados.
Ejercicio 5 (★)

Indicar la secuencia de pasos que sigue el sistema operativo al


realizar un cambio de contexto entre dos procesos, teniendo en
cuenta la estructura definida en el ejercicio anterior.
• Salvar el estado del programa que se estaba ejecutando. El
estado, también denominado contexto, consiste en los valores
de todos los registros del microprocesador. Se copian en la
memoria principal.

Trabajo realizado por: Edinson Corredor Fundación Universitaria de San Gil - UNISANGIL.
• Seleccionar otro programa para ejecutar. Entre todos los
programas que estén preparados para ejecutarse, la rutina
selecciona uno de ellos siguiendo algún algoritmo equitativo.
• Restaurar el estado del programa seleccionado. Para ello, se
toma el estado previamente copiado en la memoria principal
y se vuelca en los registros del microprocesador.
• Ejecutar el programa seleccionado. La rutina termina su
ejecución saltando a la instrucción que estaba pendiente de
ejecutar en el programa seleccionado.

Ejercicio 6 (★)

Cite dos ventajas que tienen los hilos (threads) sobre los
procesos. ¿Qué desventaja importante tienen? Sugiera una
aplicación que se beneficiaría del uso de hilos y una que no lo
haría.

• Menor tiempo en crear un hilo nuevo en un proceso existente


que en crear un proceso.

• Mucho más tiempo en cambiar entre dos hilos de un mismo


proceso.
Una desventaja importante que tienen es que, en la mayoría de
los sistemas operativos, las llamadas al sistema bloquean.
Cuando un Hilo realiza una llama a éste, se bloquea a sí mismo
y también al resto de Hilos del proceso.
Una aplicación multihilo no podría aprovechar los beneficios de
los sistemas multiprocesadores. El núcleo asigna un sólo

Trabajo realizado por: Edinson Corredor Fundación Universitaria de San Gil - UNISANGIL.
proceso a un sólo procesador, porque como no interviene ve al
conjunto de hilos como un sólo proceso.
Desafortunadamente los hilos tienen que confiar entre ellos
para no dañar datos compartidos. Cualquier programa que
pueda hacer más de una tarea a la vez podría beneficiarse de la
multitarea. Procesos de una sola forma de pensar no podrán
beneficiarse de múltiples hilos; por ejemplo, un programa que
muestre la hora del día.

Ejercicio 7 (★)

Describa las acciones del núcleo del sistema operativo (kernel),


cuando esta conmuta el contexto entre:

• Hilos

• Procesos
El núcleo del sistema operativo sabe de la existencia de los Hilos.
La conmutación, se realiza a través de la intervención del SO,
como, por ejemplo, una llamada al sistema, que es más lenta. Si
un Hilo se bloquea el scheduler seleccionará un Hilo del mismo
proceso o de algún otro. El kernel debe tener una zona de memoria
por hilo de ejecución, conteniendo registros del procesador,
estado, entre otros. Algunos sistemas soportan ambos tipos de
alimentación.
Un cambio de contexto, hace referencia a la ejecución de una
rutina perteneciente al núcleo del sistema operativo multitarea de

Trabajo realizado por: Edinson Corredor Fundación Universitaria de San Gil - UNISANGIL.
una PC. Tiene como objetivo parar la ejecución de un Hilo (o
proceso) para darle paso a otro distinto.

Ejercicio 8 (★★)

¿Qué diferencias hay entre los hilos a nivel de usuario (user-level


threads) y los hilos a nivel del núcleo (kernel-level threads)?
Los hilos a nivel usuario tienen soporte del kernel, por lo
tanto, soy muy fáciles de crear, destruir y hacerlas "switch".
Sin embargo, si uno se bloquea, todo el proceso se bloquea
también. Los hilos que tienen soporte de kernel son más
caros de crear debido a que se necesita una llamada al
sistema para que puedan ser creados y distribuidos y el
kernel debe programarlos. Son más poderosas porque son
programados y bloqueados individualmente.

¿En qué circunstancias es un tipo mejor que el otro?

• El cambio entre subprocesos a nivel de usuario a menudo es


más rápido, ya que no requiere restablecer las protecciones
de memoria para cambiar al programador en el núcleo y
nuevamente para volver al proceso. Esto es importante
principalmente para sistemas masivamente concurrentes que
usan una gran cantidad de hilos de muy corta duración, como
algunos lenguajes de alto nivel (Erlang en particular) y sus
hilos verdes. Los subprocesos a nivel de usuario requieren

Trabajo realizado por: Edinson Corredor Fundación Universitaria de San Gil - UNISANGIL.
menos compatibilidad con el núcleo, lo que puede simplificar
el núcleo.

• Los subprocesos a nivel de kernel permiten que un


subproceso se ejecute mientras otro subproceso en el mismo
proceso se bloquea en una llamada al sistema; los procesos
con subprocesos a nivel de usuario deben tener cuidado de no
realizar llamadas al sistema de bloqueo, ya que bloquean
todos los subprocesos del proceso. Los subprocesos a nivel
de kernel pueden ejecutarse simultáneamente en máquinas
multiprocesador, que los subprocesos puramente
a nivel de usuario no pueden lograr.

Ejercicio 9 (★)

Defina la diferencia entre planificación expropiativa (preemptive) y


no expropiativa (non preemptive). Explique en qué ámbitos sería
preferible utilizar uno u otro mecanismo.
• Planificación no expropiativa: Un proceso conserva el
procesador mientras no solicite un servicio del sistema
operativo que lo bloquee.
o Ventaja: Hace mínimo el tiempo que necesita el sistema
operativo para planificar y activar procesos.
o Desventaja: Un proceso puede monopolizar el procesador,
como por ejemplo un bucle infinito.

Trabajo realizado por: Edinson Corredor Fundación Universitaria de San Gil - UNISANGIL.
• Planificación expropiativa: El sistema operativo tiene la
posibilidad de expulsar a un proceso del estado de Ejecución,
aunque éste no lo haya solicitado.
o Ventaja: Permite el control del tiempo en el que está un
proceso en ejecución.

o Desventaja: Necesita que el sistema operativo ingrese de


forma sistemática a ejecutar para poder comprobar si el
proceso ha superado su límite de tiempo en ejecución.

Ejercicio 10 (★★) …

¿Qué ventaja tendría definir cuantos de tiempo de diferente tamaño


en distintos niveles de un sistema de colas multinivel?
Que los procesos con poco uso de procesador tengan mayor
prioridad, y los que consumen mucho procesador tendrán baja
prioridad.

Trabajo realizado por: Edinson Corredor Fundación Universitaria de San Gil - UNISANGIL.

También podría gustarte