Está en la página 1de 9

EXAMEN DE LA UNIDAD 2.

ADMINISTRACIÓN DE
PROCESOS
SISTEMAS OPERTATIVOS EN TIEMPO REAL

Axel Fernando Tam Ruiz | No. de control: 18060732


INSTITUTO TECNOLÓGICO DE CHIHUAHUA | DOCENTE: JAVIER VEGA PINEDA | 14/SEP/2021
1. Explique con sus propias palabras (lo que usted entiende) las diferencias entre proceso,
programa e hilo (thread).

Un programa es un archivo que contiene una serie de instrucciones que el CPU tiene que procesar,
esta serie de instrucciones se dan en forma de código en algún lenguaje de programación que
después se compila para hacerlo legible para la máquina. Mientras que el proceso es la ejecución
de algún programa, además, los procesos tienen asignados recursos como memoria para los datos
y código que sirven para conocer el estado de la ejecución, estos recursos son independientes de
los recursos de otros procesos. Por otro lado, los hilos son “subprocesos” que se encargan de
ejecutar la parte más básica de cada programa para que el scheduler pueda manejarlo, estos hilos
también tienen recursos asignados, pero sí se pueden compartir entre varios hilos de un mismo
proceso, haciendo que los hilos sean más rápidos que los procesos. En otras palabras, un proceso
se puede “desmenuzar” en varios hilos dependiendo del programa que esté ejecutando para hacer
que este programa se ejecute eficientemente.

2. En la planificación del uso del procesador generalmente se manejan tres estados


básicos: Running, Blocked y Ready (Ejecutando, Bloqueado y Listo).
a) Explique cada uno de los tres estados en función de las tareas del SO.
• Running: El proceso en cuestión está siendo ejecutado actualmente en el procesador.
Previamente el scheduler le dio el paso a este proceso para que sea ejecutado.
• Blocked: Un proceso bloqueado no se está ejecutando, no espera ser ejecutado y está
esperando algún evento, que puede ser de entrada o salida de algún puerto, para estar listo
nuevamente para esperar la ejecución.
• Ready: Un proceso en este estado espera ser atendido por el procesador para ser ejecutado,
es decir, está listo para ejecutarse.

b) Mencione tres causas por las que una tarea puede estar en el estado de bloqueado.
• Porque está esperando recibir un dato de un sensor para continuar el proceso
• Porque está esperando que se abra un archivo para escribir en él
• Porque está esperando a que termine un proceso

3. En un mecanismo bloquear/despertar, un proceso se bloquea a sí mismo para esperar


que ocurra un evento. Otro proceso debe detectar que el evento ha ocurrido y despertar
al proceso bloqueado. Es posible para un proceso bloquearse a sí mismo para esperar
por un evento que nunca ocurrirá.
a) ¿Puede el SO detectar que un proceso bloqueado está esperando por un evento que
nunca ocurrirá?

Sí, un sistema operativo puede detectar esta situación, sin embargo, la capacidad de detectar
estas situaciones lleva consigo un overhead muy grande por lo que regularmente no se detectan,
sobre todo en sistemas de recursos limitados como los sistemas embebidos.

b) ¿Qué salvaguardas razonables se pueden construir en un SO para prevenir procesos de


estar esperando indefinidamente por un evento?
Existen tres formas de prevenir que esto suceda y se hace evitando que se cumplan las
condiciones de un interbloqueo.

1.- La primera es la asignación y espera, en donde el SO le asigna todos los recursos que necesita
un proceso para evitar que espere por un recurso que otro proceso está utilizando. Si no están
disponibles todos los recursos que el proceso necesita no se le asigna ninguno, espera a que estén
todos disponibles.

2.- También está la exclusión mutua que consiste en utilizar recursos preemptive en lugar de no
preemtive, es decir, cuando un proceso está ocupando recursos y solicita más, pero se le niegan,
los recursos que utiliza actualmente se liberan antes de que se termine de ejecutar y después
vuelve a solicitarlos.

3.- Por último, existe la espera circular, donde se enumeran los recursos y los procesos solicitan
estos recursos en el orden que están enumerados de forma ascendente.

4. (Investigación). Explique los algoritmos de planificación (scheduling) siguientes:

a) FCFS (first come first server): Es una planificación non-preemptive, por lo que una vez que los
procesos comienzan estos no se interrumpen. Como lo dice su nombre, los primeros procesos en
llegar son los primeros en ejecutarse, si llega otro proceso antes de que termine, este nuevo
proceso tendrá que esperar a que el primero acabe.

b) SJN (shortest job first): Al igual que el anterior, este también es non-preemptive por lo que los
procesos no se interrumpen. Cuando hay una fila de procesos, el proceso que vaya a tomar menos
tiempo será el que se ejecute primero, una vez que termine este proceso se seleccionará el
siguiente más corto para ejecutarse.

c) Priority Based: Es non-preemptive. Los procesos se ejecutarán en el orden de acuerdo a su


prioridad previamente asignada donde la prioridad 1 en la menor y si existen dos procesos con la
misma prioridad esperando, se ejecutará el que primero haya llegado.

d) SRT (shortest remaining time): Funciona de manera similar al SJN, los procesos más cortos se
ejecutan primero, con la diferencia de que si cuando se está ejecutando un proceso y llega un
proceso que tomará menos tiempo, el planificador escogerá al nuevo proceso para que se ejecute,
aunque el proceso actual no haya terminado de ejecutarse y una vez que el proceso más corto
termine su ejecución el anterior proceso reanudará su ejecución en donde se quedó. Es por esto
que se dice que es la versión preemptive del SJN.

e) Round Robin: Es una planificación preemptive en la que se determina un tiempo fijo para
ejecución llamado quantum. Cada proceso tiene ese tiempo quantum para ejecutarse, si no
termina de ejecutarse en ese tiempo se pausará su ejecución y se proseguirá a la ejecución del
siguiente proceso durante el mismo tiempo y ocurrirá así hasta que a todos los procesos en la fila
se les de un quantum de tiempo para ejecutarse. Una vez que todos los procesos, terminados o
no, hayan tenido este tiempo de ejecución, nuevamente se les da otro quantum de tiempo a los
procesos que aún no finalizan su ejecución en el mismo orden hasta que todos los procesos hayan
finalizado.
5. En el simulador de planificación, ejecute simulaciones para los algoritmos (a)(b)(d)(e)
mencionados en P4 (con 4 procesos): Calcule manualmente el tiempo promedio de
espera (average wait time) y compárelo con el dado por el simulador (use quantum = 3
para round robin). Presente recortes (imágenes) del inicio y final de la simulación
correspondiente a cada algoritmo.
a) FCFS:

Inicio de la simulación

Cálculos manuales

Final de la simulación
b) SJN:

Inicio de la simulación

Cálculos manuales
Final de la simulación

c) SRT

Inicio de la simulación
Cálculos manuales

(0-0)+(3-2)=

Final de la simulación
d) Round Robin:

Inicio de la simulación

Cálculos manuales
(0-0)+(6-4)=
(4-3)+(7-6)=

Final de la simulación

6. Explique a que se refiere en Sistemas Operativos el "Cambio de Contexto (Context


Switching)".

Un cambio de contexto es cuando cambiamos un proceso que se esta ejecutando en el procesador


por otro, para esto es necesario guardar el contexto del proceso que se quiere cambiar para que
pueda ser reentrante cuando se reanude su ejecución. Cuando ocurre un cambio de contexto, lo
primero que ocurre es que el estado del proceso que se estaba ejecutando se guarda en el PBC
(Bloque de Control del Proceso) del mismo proceso dentro de la pila del kernel, después el
scheduler determinará cuál proceso será el siguiente en ejecutarse, este proceso seleccionado
cargará los datos que tiene en su PCB para que reanude en el contexto previamente guardado
para así empezar a ejecutarse en donde previamente se había quedado.

También podría gustarte