Browse Source

Parametrizado makefile y añadidas cosas al informe.

Fabian 10 năm trước cách đây
mục cha
commit
58f0bd36d0
2 tập tin đã thay đổi với 68 bổ sung29 xóa
  1. 28 18
      Makefile
  2. 40 11
      informe/informe.md

+ 28 - 18
Makefile

@@ -2,6 +2,10 @@ export LC_ALL=C
 CXXFLAGS= -Wall -pedantic -g -ggdb -std=c++11
 LDFLAGS= -lpthread
 
+QUANTUM=10
+CONTEXT_SWITCH=2
+CORE_SWITCH=5
+
 OBJS=main.o simu.o basesched.o basetask.o tasks.o sched_rr.o sched_fcfs.o sched_sjf.o sched_rsjf.o sched_mfq.o
 MAIN=simusched
 
@@ -25,11 +29,12 @@ clean:
 	rm -rf informe/imagenes
 	rm -rf informe/*.pdf
 
-informe/informe.pdf: informe/informe.md
-	pandoc informe/informe.md -o informe/informe.pdf
+preinforme: ejercicio1 ejercicio2 ejercicio3 ejercicio4 ejercicio5
 
 informe: informe/informe.pdf
-preinforme: ejercicio1 ejercicio2 ejercicio3 ejercicio5
+informe/informe.pdf: informe/informe.md preinforme
+	pandoc informe/informe.md -o informe/informe.pdf
+
 
 new: clean all
 
@@ -37,28 +42,33 @@ makedir:
 	mkdir -p informe/imagenes
 
 ejercicio1: all makedir
-	./simusched consola.tsk 1 1 2 SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio1.png
+	./simusched consola.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio1.png
 
 ejercicio2: all makedir
-	./simusched ejer2.tsk 1 2 99 SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio2_1core.png
-	./simusched ejer2.tsk 2 2 99 SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio2_2core.png
-	./simusched ejer2.tsk 4 2 99 SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio2_4core.png
+	./simusched ejer2.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio2_1core.png
+	./simusched ejer2.tsk 2 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio2_2core.png
+	./simusched ejer2.tsk 4 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio2_4core.png
 
 ejercicio3: all makedir
-	./simusched ejer3.tsk 1 2 99 SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio3_1core.png
+	./simusched ejer3.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio3_1core.png
+
+ejercicio4: all makedir
+	./simusched ejer2.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRR 1 $(QUANTUM) | ./graphsched.py > informe/imagenes/ejercicio4_1core.png
+	./simusched ejer2.tsk 2 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRR 2 $(QUANTUM) $(QUANTUM) | ./graphsched.py > informe/imagenes/ejercicio4_2core.png
+	./simusched ejer2.tsk 4 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRR 4 $(QUANTUM) $(QUANTUM) $(QUANTUM) $(QUANTUM) | ./graphsched.py > informe/imagenes/ejercicio4_4core.png
 
 ejercicio5: all makedir
-	./simusched ejer2.tsk 1 2 99 SchedRR 1 02 | ./graphsched.py > informe/imagenes/ejercicio5_1core_02q.png
-	./simusched ejer2.tsk 1 2 99 SchedRR 1 05 | ./graphsched.py > informe/imagenes/ejercicio5_1core_05q.png
-	./simusched ejer2.tsk 1 2 99 SchedRR 1 99 | ./graphsched.py > informe/imagenes/ejercicio5_1core_10q.png
+	./simusched ejer2.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRR 1 02 | ./graphsched.py > informe/imagenes/ejercicio5_1core_02q.png
+	./simusched ejer2.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRR 1 05 | ./graphsched.py > informe/imagenes/ejercicio5_1core_05q.png
+	./simusched ejer2.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRR 1 10 | ./graphsched.py > informe/imagenes/ejercicio5_1core_10q.png
 
 ejercicio7: all makedir
-	./simusched ejer7-sjf.tsk 1 2 99 SchedSJF 1 15 10 5 | ./graphsched.py > informe/imagenes/ejercicio7_SJF_1core.png
-	./simusched ejer7-sjf.tsk 2 2 99 SchedSJF 2 15 10 5 | ./graphsched.py > informe/imagenes/ejercicio7_SJF_2core.png
-	./simusched ejer7-rsjf.tsk 1 2 4 SchedRSJF 1 2 20 4 5 | ./graphsched.py > informe/imagenes/ejercicio7_RSJF_1core.png
-	./simusched ejer7-rsjf.tsk 2 2 4 SchedRSJF 2 2 2 20 4 5 | ./graphsched.py > informe/imagenes/ejercicio7_RSJF_2core.png
+	./simusched ejer7-sjf.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedSJF 1 15 10 5 | ./graphsched.py > informe/imagenes/ejercicio7_SJF_1core.png
+	./simusched ejer7-sjf.tsk 2 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedSJF 2 15 10 5 | ./graphsched.py > informe/imagenes/ejercicio7_SJF_2core.png
+	./simusched ejer7-rsjf.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRSJF 1 $(QUANTUM) 20 4 5 | ./graphsched.py > informe/imagenes/ejercicio7_RSJF_1core.png
+	./simusched ejer7-rsjf.tsk 2 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRSJF 2 $(QUANTUM) $(QUANTUM) 20 4 5 | ./graphsched.py > informe/imagenes/ejercicio7_RSJF_2core.png
 
 ejercicio9: all makedir
-	./simusched ejer2.tsk 1 2 99 SchedRR 1 02 | ./graphsched.py > informe/imagenes/ejercicio9_1core_02q.png
-	./simusched ejer2.tsk 1 2 99 SchedRR 1 05 | ./graphsched.py > informe/imagenes/ejercicio9_1core_05q.png
-	./simusched ejer2.tsk 1 2 99 SchedRR 1 10 | ./graphsched.py > informe/imagenes/ejercicio9_1core_10q.png
+	./simusched ejer2.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedMFQ 1 02 | ./graphsched.py > informe/imagenes/ejercicio9_1core_02q.png
+	./simusched ejer2.tsk 2 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedMFQ 2 $(QUANTUM) $(QUANTUM) | ./graphsched.py > informe/imagenes/ejercicio9_1core_05q.png
+	./simusched ejer2.tsk 4 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedMFQ 4 $(QUANTUM) $(QUANTUM) $(QUANTUM) $(QUANTUM) | ./graphsched.py > informe/imagenes/ejercicio9_1core_10q.png

+ 40 - 11
informe/informe.md

@@ -20,33 +20,62 @@ geometry: margin=2cm
 
 \newpage
 
-Ejercicio 1:
+# Ejercicio 1
 ====
 
 ![Ej1](informe/imagenes/ejercicio1.png)
 
-Ejercicio 2:
+
+# Ejercicio 2
 ====
 
 ![Ej2-1](informe/imagenes/ejercicio2_1core.png)
 ![Ej2-2](informe/imagenes/ejercicio2_2core.png)
 ![Ej2-4](informe/imagenes/ejercicio2_4core.png)
 
-Ejercicio 3:
+
+# Ejercicio 3
 ====
 ![Ej3](informe/imagenes/ejercicio3_1core.png)
 
 
-#### Ejercicio 5
+# Ejercicio 4
+====
+
+Para el ejercicio 4 se ejecutaron 3 casos distintos con 1, 2 y 4 cores para evaluar como escala la eficiencia del mismo en dichos casos.
+Se utilizaron los siguientes valores:
+	* __Quantum:__ ?????
+	* __Context Switch:__ ???
+	* __Core Switch:__ ???
+
+## 1 Core
+![Ej4-1](informe/imagenes/ejercicio4_1core.png)
+Se puede observar que el tener quantums muy chicos afecta negativamente el rendimiento del scheduler, ya que se pierde la mayoría del tiempo en context switch.
+
+## 2 Cores
+![Ej4-2](informe/imagenes/ejercicio4_2core.png)
+??
+
+## 4 Cores
+![Ej4-4](informe/imagenes/ejercicio4_4core.png)
+Se ve que aumentar la cantidad de cores no mejora los tiempos de ejecución de los procesos, ya que en casi todo momento se encuentra un core en idle.
+Esto se debe a que este scheduler toma el primer nucleo libre y tiene en cuenta en que nucleo se encuentra el proceso actual. Esto provoca que haya cambio de nucleos constantemente en los procesos, sin aprovechar los cores libres.
+
+
+# Ejercicio 5
 ====
 
-Dado el lote de tareas del ejercicio 2: 
- - Ejecutar y graficar la simulación utilizando el scheduler Round-Robin con quantum 2, 5 y 10.
- - Con un cambio de contexto de 2 ciclos y un sólo núcleo calcular 
- 
-la latencia
-el waiting time
-el tiempo total de ejecución
+## Quantum 2
+![Ej5-1](informe/imagenes/ejercicio5_1core_02q.png)
+
+## Quantum 5
+![Ej5-2](informe/imagenes/ejercicio5_1core_05q.png)
+
+## Quantum 10
+![Ej5-3](informe/imagenes/ejercicio5_1core_10q.png)
+
+
+