Makefile 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. export LC_ALL=C
  2. CXXFLAGS= -Wall -pedantic -g -ggdb -std=c++11
  3. LDFLAGS= -lpthread
  4. QUANTUM=10
  5. CONTEXT_SWITCH=2
  6. CORE_SWITCH=5
  7. 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
  8. MAIN=simusched
  9. .PHONY: all clean new informe
  10. all: $(MAIN)
  11. $(MAIN): $(OBJS)
  12. $(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS)
  13. %.o: %.cpp %.h basesched.h
  14. basesched.o: basesched.cpp basesched.h
  15. basetask.o: basetask.cpp basetask.h
  16. main.o: main.cpp simu.h basetask.h basesched.h tasks.h sched_fcfs.h \
  17. sched_mfq.h sched_rr.h sched_rsjf.h sched_sjf.h
  18. simu.o: simu.cpp simu.h basetask.h basesched.h
  19. simusched.o: simusched.cpp basetask.h basesched.h tasks.h
  20. tasks.o: tasks.cpp tasks.h basetask.h
  21. clean:
  22. rm -f $(OBJS) $(MAIN)
  23. rm -rf informe/imagenes
  24. rm -rf informe/*.pdf
  25. preinforme: ejercicio1 ejercicio2 ejercicio3 ejercicio4 ejercicio5 ejercicio7 ejercicio8 ejercicio9 casos
  26. informe: informe/informe.pdf
  27. informe/informe.pdf: informe/1-informe.md informe/2-informe.md informe/3-informe.md informe/4-informe.md informe/5-informe.md informe/6-informe.md informe/7-informe.md informe/8-informe.md informe/9-informe.md preinforme
  28. pandoc informe/*informe.md -o informe/informe.pdf
  29. new: clean all
  30. makedir:
  31. mkdir -p informe/imagenes
  32. ejercicio1: all makedir
  33. ./simusched consola.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio1.png
  34. ejercicio2: all makedir
  35. ./simusched ejer2.tsk 1 2 $(CORE_SWITCH) SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio2_1core.png
  36. ./simusched ejer2.tsk 2 2 $(CORE_SWITCH) SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio2_2core.png
  37. ./simusched ejer2.tsk 4 2 $(CORE_SWITCH) SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio2_4core.png
  38. ejercicio3: all makedir
  39. ./simusched ejer3.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio3_1core.png
  40. ejercicio4: all makedir
  41. ./simusched ejer3.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRR 1 $(QUANTUM) | ./graphsched.py > informe/imagenes/ejercicio4_1core.png
  42. ./simusched ejer3.tsk 2 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRR 2 $(QUANTUM) $(QUANTUM) | ./graphsched.py > informe/imagenes/ejercicio4_2core.png
  43. ./simusched ejer3.tsk 4 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRR 4 $(QUANTUM) $(QUANTUM) $(QUANTUM) $(QUANTUM) | ./graphsched.py > informe/imagenes/ejercicio4_4core.png
  44. ejercicio5: all makedir
  45. ./simusched ejer2.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRR 1 02 | ./graphsched.py > informe/imagenes/ejercicio5_1core_02q.png
  46. ./simusched ejer2.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRR 1 05 | ./graphsched.py > informe/imagenes/ejercicio5_1core_05q.png
  47. ./simusched ejer2.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedRR 1 10 | ./graphsched.py > informe/imagenes/ejercicio5_1core_10q.png
  48. ejercicio7: all makedir
  49. ./simusched ejer7-sjf.tsk 1 2 4 SchedSJF 1 15 10 5 | ./graphsched.py > informe/imagenes/ejercicio7_SJF_1core.png
  50. ./simusched ejer7-sjf.tsk 2 2 4 SchedSJF 2 15 10 5 | ./graphsched.py > informe/imagenes/ejercicio7_SJF_2core.png
  51. ./simusched ejer7-rsjf.tsk 1 2 4 SchedRSJF 1 4 20 4 5 | ./graphsched.py > informe/imagenes/ejercicio7_RSJF_1core.png
  52. ./simusched ejer7-rsjf.tsk 2 2 4 SchedRSJF 2 4 4 20 4 5 | ./graphsched.py > informe/imagenes/ejercicio7_RSJF_2core.png
  53. ejercicio8: all makedir
  54. ./simusched ejer8-A.tsk 1 2 0 SchedRR 1 4 | ./graphsched.py > informe/imagenes/ejercicio8A_RR_1core.png
  55. ./simusched ejer8-A.tsk 1 2 0 SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio8A_FIFO_1core.png
  56. ./simusched ejer8-A.tsk 1 2 0 SchedSJF 1 13 8 3 13 8 3 | ./graphsched.py > informe/imagenes/ejercicio8A_SJF_1core.png
  57. ./simusched ejer8-A.tsk 1 2 0 SchedRSJF 1 4 13 8 3 13 8 3 | ./graphsched.py > informe/imagenes/ejercicio8A_RSJF_1core.png
  58. ./simusched ejer8-A.tsk 2 2 8 SchedRR 2 4 4 | ./graphsched.py > informe/imagenes/ejercicio8A_RR_2core.png
  59. ./simusched ejer8-A.tsk 2 2 8 SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio8A_FIFO_2core.png
  60. ./simusched ejer8-A.tsk 2 2 8 SchedSJF 2 13 8 3 13 8 3 | ./graphsched.py > informe/imagenes/ejercicio8A_SJF_2core.png
  61. ./simusched ejer8-A.tsk 2 2 8 SchedRSJF 2 4 4 13 8 3 13 8 3 | ./graphsched.py > informe/imagenes/ejercicio8A_RSJF_2core.png
  62. ./simusched ejer8-B.tsk 1 2 0 SchedRR 1 4 | ./graphsched.py > informe/imagenes/ejercicio8B_RR_1core.png
  63. ./simusched ejer8-B.tsk 1 2 0 SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio8B_FIFO_1core.png
  64. ./simusched ejer8-B.tsk 1 2 0 SchedSJF 1 30 20 10 30 20 10 | ./graphsched.py > informe/imagenes/ejercicio8B_SJF_1core.png
  65. ./simusched ejer8-B.tsk 1 2 0 SchedRSJF 1 4 30 20 10 30 20 10 | ./graphsched.py > informe/imagenes/ejercicio8B_RSJF_1core.png
  66. ./simusched ejer8-B.tsk 2 2 8 SchedRR 2 4 4 | ./graphsched.py > informe/imagenes/ejercicio8B_RR_2core.png
  67. ./simusched ejer8-B.tsk 2 2 8 SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio8B_FIFO_2core.png
  68. ./simusched ejer8-B.tsk 2 2 8 SchedSJF 2 30 20 10 30 20 10 | ./graphsched.py > informe/imagenes/ejercicio8B_SJF_2core.png
  69. ./simusched ejer8-B.tsk 2 2 8 SchedRSJF 2 4 4 30 20 10 30 20 10 | ./graphsched.py > informe/imagenes/ejercicio8B_RSJF_2core.png
  70. ./simusched ejer8-C.tsk 1 2 0 SchedRR 1 4 | ./graphsched.py > informe/imagenes/ejercicio8C_RR_1core.png
  71. ./simusched ejer8-C.tsk 1 2 0 SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio8C_FIFO_1core.png
  72. ./simusched ejer8-C.tsk 1 2 0 SchedSJF 1 25 14 3 25 14 3 | ./graphsched.py > informe/imagenes/ejercicio8C_SJF_1core.png
  73. ./simusched ejer8-C.tsk 1 2 0 SchedRSJF 1 4 25 14 3 25 14 3 | ./graphsched.py > informe/imagenes/ejercicio8C_RSJF_1core.png
  74. ./simusched ejer8-C.tsk 2 2 8 SchedRR 2 4 4 | ./graphsched.py > informe/imagenes/ejercicio8C_RR_2core.png
  75. ./simusched ejer8-C.tsk 2 2 8 SchedFCFS | ./graphsched.py > informe/imagenes/ejercicio8C_FIFO_2core.png
  76. ./simusched ejer8-C.tsk 2 2 8 SchedSJF 2 25 14 3 25 14 3 | ./graphsched.py > informe/imagenes/ejercicio8C_SJF_2core.png
  77. ./simusched ejer8-C.tsk 2 2 8 SchedRSJF 2 4 4 25 14 3 25 14 3 | ./graphsched.py > informe/imagenes/ejercicio8C_RSJF_2core.png
  78. ejercicio9: all makedir
  79. ./simusched ejer9.tsk 1 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedMFQ 05 10 | ./graphsched.py > informe/imagenes/ejercicio9_1core.png
  80. ./simusched ejer9.tsk 2 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedMFQ 02 05 10 | ./graphsched.py > informe/imagenes/ejercicio9_2core.png
  81. ./simusched ejer9.tsk 4 $(CONTEXT_SWITCH) $(CORE_SWITCH) SchedMFQ 02 05 07 10 | ./graphsched.py > informe/imagenes/ejercicio9_4core.png
  82. ./simusched casos/cpu.tsk 4 2 9 SchedMFQ 4 12 | ./graphsched.py > informe/imagenes/ejercicio9_gantt_casos_1.png
  83. ./simusched casos/cpu_ioh.tsk 4 2 9 SchedMFQ 4 12 | ./graphsched.py > informe/imagenes/ejercicio9_gantt_casos_2.png
  84. ./simusched casos/cpu_usr.tsk 4 2 9 SchedMFQ 4 12 | ./graphsched.py > informe/imagenes/ejercicio9_gantt_casos_3.png
  85. casos: all makedir
  86. for f in casos/*json; do \
  87. echo $$f; \
  88. ./scripts/batchplotter.py $$f & \
  89. done; \
  90. wait