Está en la página 1de 11

Asignatura Datos del alumno Fecha

Apellidos: Proaño Solórzano


Sistemas Operativos 30/04/2021
Nombre: Pedro Pablo

Actividad: Planificación de procesos

Objetivos

El objetivo fundamental es comprender la importancia y la complejidad de la


planificación de la CPU en sistemas multiprogramados, así como las distintas
maneras de asignar tiempo de ejecución entre los procesos que se encuentran
esperando en cola. En particular:

 Comprender el concepto de proceso y cómo podemos conseguir su creación con


llamadas al sistema.
 Practicar diferentes algoritmos de planificación de la CPU para ejecutar procesos
de manera concurrente.
 Aplicar el algoritmo del banquero para anticipar posibles problemas de
interbloqueo.

Descripción y pautas de elaboración

En esta actividad podrás practicar los conceptos estudiados en los temas 3, 4 y 5 de


la asignatura, donde nos hemos centrado en comprender el concepto de proceso y
la necesidad de planificar su ejecución en la CPU del computador. También hemos
estudiado qué es la concurrencia y los posibles problemas de interbloqueo que
pueden darse.

© Universidad Internacional de La Rioja (UNIR)

En esta actividad se proponen una serie de ejercicios relacionados con los procesos
y la planificación de la CPU. Deberás demostrar que has comprendido
correctamente los diferentes algoritmos de planificación estudiados, así como que
eres capaz de detectar situaciones de interbloqueo.

1
Actividades
Asignatura Datos del alumno Fecha
Apellidos: Proaño Solórzano
Sistemas Operativos 30/04/2021
Nombre: Pedro Pablo

También modificaremos las condiciones iniciales para mostrar las ventajas y


desventajas de los diferentes esquemas empleados.

Creación de procesos

Analiza el siguiente código. Escríbelo en un archivo y compílalo en GNU/Linux.

#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

int main() {
int num;
pid_t pid;
printf ("Saludo inicial del proceso con PID: %d\n", getpid());
for (num = 0; num < 3; num++) {
pid = fork();
printf("mi PID es %d y el de mi padre %d.\n",
getpid(), getppid());
if (pid != 0) break;
sleep (2);
}
if (pid != 0) printf("Fin del proceso de PID %d.\n", wait(NULL));
return 0;
}

© Universidad Internacional de La Rioja (UNIR)

2
Actividades
Asignatura Datos del alumno Fecha
Apellidos: Proaño Solórzano
Sistemas Operativos 30/04/2021
Nombre: Pedro Pablo

Ejecútalo y responde a las siguientes preguntas:


 Dibuja la jerarquía de procesos resultante.

 ¿Por qué se muestra algún mensaje repetido?


Al pasar por el fork() se crea el hijo con las mismas líneas de código, después
de la línea fork(), los dos programas se van a ir ejecutando simultáneamente.
 ¿En qué orden finalizan los procesos?
Los procesos como se puede notar en la ejecución del programa en c Linux,
su finalización es por terminación.

Planificación de procesos

En la siguiente tabla se muestra un conjunto de procesos que están esperando


inicialmente en la cola de procesos listos para comenzar su ejecución en el
procesador. En la tabla se indica:
© Universidad Internacional de La Rioja (UNIR)

 El orden que ocupa cada proceso en la cola de espera.


 La duración de su ráfaga de CPU en ms.
 La prioridad. Asumiremos que los valores más bajos indican prioridades más
altas.

3
Actividades
Asignatura Datos del alumno Fecha
Apellidos: Proaño Solórzano
Sistemas Operativos 30/04/2021
Nombre: Pedro Pablo

Proceso Orden Duración de ráfaga Prioridad

P0 1 1 1
P1 2 10 4

P2 3 2 3

P3 4 2 4

P4 5 6 2

En estas condiciones se pide resolver los siguientes problemas:

 Dibuja los diagramas de Gantt que representan la ejecución de los procesos


utilizando los siguientes algoritmos de planificación: FCFS, SJF, por prioridades
sin desalojo y RR (empleando en este caso un cuanto temporal de 1 ms.).

FCFS
FCFS P0 P1 P2 P3 P4
1 11 13 15

SJF
SJF P0 P2 P3 P4 P1
1 3 5 11

PRIORIDAD
Prioridad P0 P4 P2 P3 P1
1 7 9 11
© Universidad Internacional de La Rioja (UNIR)

Round Robín
Proceso Orden Duración de Tiempo de espera
ráfaga

4
Actividades
Asignatura Datos del alumno Fecha
Apellidos: Proaño Solórzano
Sistemas Operativos 30/04/2021
Nombre: Pedro Pablo

P0 1 1 0 ms

P1 2 10 1 + (5-2) + (9-6) + (11-10) + (13-12) +


(15-14) + (17-16) + (18-18) + (19-19)
+ (20-20) = 10ms
P2 3 2 2 + (6-3) = 5 ms

P3 4 2 3 + (7-4) = 6 ms

P4 5 6 4 + 8-5 + 10-9 + 12-11 + 14-13 + 16-


15 = 11 ms

Temporal: 1ms
1m 1m 1m 1m 1m 1m 1m 1m 1m 1m 1m
s s s s s s s s s s s
R P0 P1 P2 P3 P4 P1 P2 P3 P4 P1 P4
R
1 2 3 4 5 6 7 8 9 10 11
1m 1m 1m 1m 1m 1m 1m 1m 1m 1m
s s s s s s s s s s
12 13 14
P1 P4 P1 P4 P1 P4 P1 P1 P1 P1
15 16 17
18 19 20

 ¿Cuánto tiempo tarda cada proceso en finalizar su ráfaga de ejecución? Calcula


el tiempo medio de retorno en cada caso.

© Universidad Internacional de La Rioja (UNIR)

 ¿Cuál es el tiempo total de espera de cada proceso empleando cada uno de los
algoritmos? Calcula el tiempo medio de espera en cada caso.

5
Actividades
Asignatura Datos del alumno Fecha
Apellidos: Proaño Solórzano
Sistemas Operativos 30/04/2021
Nombre: Pedro Pablo

Algoritmo FCFS

0+1+ 11+13+15
t me FCFS= =8 ms
5

Algoritmo SJF
0+ 1+3+ 5+11
t me SJF = =4ms
5

Algoritmo de Prioridad

0+1+7+9+11
t me Prioridad= =5,6ms
5

Algoritmo Round Robín

0+10+5+6 +11
t me RR= =6,4 ms
5

© Universidad Internacional de La Rioja (UNIR)

6
Actividades
Asignatura Datos del alumno Fecha
Apellidos: Proaño Solórzano
Sistemas Operativos 30/04/2021
Nombre: Pedro Pablo

Estados de los procesos

En un sistema operativo que soporta la multiprogramación se utiliza un algoritmo


RR para planificar los procesos en ejecución. Se utiliza un cuanto temporal de 10
ms. Supondremos que el tiempo empleado en la conmutación de tarea es
despreciable respecto de este valor.

En un instante dado existen tres procesos en ejecución (A, B y C), cada uno de los
cuales necesita realizar en cierto momento una operación de E/S sobre un mismo
dispositivo. Esta operación tiene una duración de 4 ms. en todos los casos. Si cada
proceso se ejecutara de manera aislada, sus líneas temporales indicando las ráfagas
de uso de CPU y las ráfagas de E/S serían las siguientes:

A: CPU (18 ms.) E/S (4 ms.) CPU (4 ms.)

B: CPU (12 ms.) E/S (4 ms.) CPU (4 ms.)

C: CPU (4 ms.) E/S (4 ms.) CPU (9 ms.)

Además, los tres procesos llegan en diferentes momentos por primera vez a la cola
de procesos listos:

 El proceso A llega en el instante 0.


 El proceso B llega 8 ms. después que el proceso A.
 El proceso C lleva 9 ms. después que el proceso B.

© Universidad Internacional de La Rioja (UNIR)


En este sistema operativo asumiremos que los procesos se encuentran en alguno de
los siguientes estados:

7
Actividades
Asignatura Datos del alumno Fecha
Apellidos: Proaño Solórzano
Sistemas Operativos 30/04/2021
Nombre: Pedro Pablo

 L: Listo para comenzar a ejecutarse en la CPU.


 E: En ejecución.
 W: Esperando a que el dispositivo de E/S quede libre para poder utilizarlo.
 B: Bloqueado mientras se realiza la operación de E/S que ha solicitado.

En estas condiciones se pide resolver los siguientes apartados:

 Dibuja un diagrama de Gantt que indique la evolución temporal de los procesos,


indicando en qué estado se encuentra cada uno de ellos.

 Calcular el tiempo de retorno de cada proceso (el tiempo desde que llega por
primera vez a la cola hasta que finaliza su ejecución).

 Calcular el tiempo de espera de cada proceso (el tiempo que pasa esperando a
poder ejecutarse en la CPU).

Interbloqueos

Supongamos que un sistema tenemos en ejecución dos procesos, A y B, y que este


sistema dispone de los siguientes recursos:

 Una impresora P.
 Una unidad de disco D.
© Universidad Internacional de La Rioja (UNIR)
 Un puerto serie de comunicaciones, S.

En un instante dado el proceso A posee la impresora y solicita utilizar el disco y el


puerto serie. Por su parte, el proceso B está en posesión del puerto serie y necesita

8
Actividades
Asignatura Datos del alumno Fecha
Apellidos: Proaño Solórzano
Sistemas Operativos 30/04/2021
Nombre: Pedro Pablo

utilizar la impresora. Se pide dibujar un grafo de asignación de recursos y


determinar si se produce un interbloqueo.

Respuesta:
Como se puede observar el gráfico, si se produce un inter bloqueo, porque el
proceso A está ocupando la impresora, y el proceso B está requiriendo el uso de
dicha impresora.

Algoritmo del banquero


Supongamos un sistema en el que existen tres tipos de recursos: A (10 unidades), B
(6 unidades) y C (7 unidades). La siguiente tabla muestra los recursos actualmente
© Universidad Internacional de La Rioja (UNIR)
asignados y los recursos máximos necesarios para la ejecución de un conjunto de
cuatro procesos:

9
Actividades
Asignatura Datos del alumno Fecha
Apellidos: Proaño Solórzano
Sistemas Operativos 30/04/2021
Nombre: Pedro Pablo

Proceso Recursos asignados Recursos máximos Necesidades

A B C A B C A B C
P1 1 1 2 6 4 3

P2 2 0 1 3 5 1

P3 1 1 0 2 2 1

P4 2 0 2 2 3 3

En estas condiciones se pide resolver los siguientes problemas:

 Completa la tabla anterior calculando las cantidades adicionales que cada


proceso necesita para finalizar su ejecución.
Proceso Recursos asignados Recursos máximos Necesidades

A B C A B C A B C

P1 1 1 2 6 4 3 5 3 1

P2 2 0 1 3 5 1 1 5 0

P3 1 1 0 2 2 1 1 1 1

P4 2 0 2 2 3 3 0 3 1

 ¿Se encuentra el sistema en un estado seguro?


El estado es seguro porque se determinó un orden el cual todos los procesos
han sido ejecutados sin problemas, y esto quiere decir que no hay interbloqueo.
 En estas condiciones, ¿sería seguro conceder al proceso P4 una unidad
adicional del recurso C?
© Universidad Internacional de La Rioja (UNIR)
Si es factible al conceder una unidad al proceso P4, porque al momento de
realizar el ejercicio no existe ningún problema de interbloqueo. Con esto puedo
concluir que es un estado seguro.

10
Actividades
Asignatura Datos del alumno Fecha
Apellidos: Proaño Solórzano
Sistemas Operativos 30/04/2021
Nombre: Pedro Pablo

Extensión máxima: 10 páginas, con fuente Calibri 12 e interlineado 1,5.

La entrega consistirá en una memoria explicativa en formato Word en la que debes


resolver cada una de las cuestiones planteadas. Si utilizas algún recurso bibliográfico
externo deberás indicarlo claramente utilizando la normativa de citas y referencias
APA 7.

Puedes consultar información sobre la normativa APA 7 en el siguiente enlace:


https://bibliografiaycitas.unir.net/#tcontent1_2

Rúbrica

Procesos y Puntuación
Peso
planificación Descripción máxima
%
de la CPU (puntos)
Ejercicio 1 Correcta resolución del ejercicio 1. 1 10%
Ejercicio 2 Correcta resolución del ejercicio 2. 3 30%
Ejercicio 3 Correcta resolución del ejercicio 3. 2 20%
Ejercicio 4 Correcta resolución del ejercicio 4. 1 10%
Ejercicio 5 Correcta resolución del ejercicio 5. 2 20%
El documento está correctamente
Estructura estructurado según la distribución de 0,5 5%
ejercicios planteada.
El trabajo está correctamente redactado y
Redacción mantiene un estilo homogéneo y 0,5 5%
académicamente correcto.
10 100 %

© Universidad Internacional de La Rioja (UNIR)

11
Actividades

También podría gustarte