1 00:00:00,820 --> 00:00:12,060 Algoritmo de planificación SRTF . Este algoritmo como hemos visto es expropiativo, 2 00:00:12,060 --> 00:00:19,539 es decir, el proceso que está ejecutándose en la CPU va a salir cuando llegue un proceso con 3 00:00:19,539 --> 00:00:26,019 un tiempo de CPU más corto que el tiempo de CPU que le queda al proceso que está ejecutando en 4 00:00:26,019 --> 00:00:34,229 ese momento. Aquí tengo dibujados dos ejes, el eje horizontal va a representar el tiempo, 5 00:00:35,070 --> 00:00:40,990 el eje vertical representa los procesos y vamos a ver cómo con este diagrama de GAN 6 00:00:40,990 --> 00:00:46,950 podemos ir representando cada uno de los estados del proceso. Cuando los procesos llegan y 7 00:00:46,950 --> 00:00:55,710 se crean, son nuevos y pasan a un estado de listos, luego cuando entran a la CPU se pasan 8 00:00:55,710 --> 00:01:03,729 al estado de ejecutando, cuando son expropiados vuelven a pasar al estado de listos, esperando 9 00:01:03,729 --> 00:01:09,909 otra vez para ejecutarse y cuando les llega el tiempo se vuelven a ejecutar y cuando ya 10 00:01:09,909 --> 00:01:15,329 termina todo su tiempo se van a finalizado. ¿Cómo lo representamos? Pues vamos a representar 11 00:01:15,329 --> 00:01:20,909 aquí los procesos. Tenemos el proceso 1, el 2, el 3, el 4 y el 5. Y tenemos los tiempos. 12 00:01:20,909 --> 00:01:27,010 El tiempo cero es el tiempo que llega, el tiempo de llegada, y cuánto tiempo de CPU necesita cada uno de los procesos. 13 00:01:27,090 --> 00:01:28,370 Eso es lo que representa esta tabla. 14 00:01:28,849 --> 00:01:35,269 Lo primero que voy a hacer es señalar en qué momento llega cada proceso. 15 00:01:37,439 --> 00:01:43,480 Ya tengo cuándo llega cada proceso. Este llega en el cero, en el uno, en el cuatro, en el cinco y en el ocho. 16 00:01:44,099 --> 00:01:47,640 Ahora empieza el proceso que llega en el tiempo cero, empieza a ejecutarse. 17 00:01:47,640 --> 00:01:51,319 Se ejecuta una vez, lo voy a representar con un color azul. 18 00:01:52,280 --> 00:02:16,039 Y aquí llega el proceso 2 y entonces hay que comparar si lo que le queda al proceso 1 por ejecutarse como en total son 3 le quedan 2 es menos tiempo o más tiempo que el tiempo que tiene el proceso 3 que son 5 como el proceso 2 tiene 5 tiempos pues se quedará en espera y el proceso 2 se seguirá ejecutando. 19 00:02:16,039 --> 00:02:20,620 aquí no llega ninguno, se termina de ejecutar. Para representar que se ha terminado de ejecutar 20 00:02:20,620 --> 00:02:26,379 lo que voy a hacer es señalarlo con un borde grueso. Este tiempo desde que el proceso 2 21 00:02:26,379 --> 00:02:31,060 ha llegado hasta que termina el proceso 1 lo vamos a poner en verde y va a representar 22 00:02:31,060 --> 00:02:36,680 el tiempo de espera. Aquí como no hay ningún proceso no comparamos y entonces el proceso 23 00:02:36,680 --> 00:02:43,780 2 empieza a ejecutarse. Aquí llega el proceso 3. El proceso 3 tiene dos tiempos de ejecución 24 00:02:43,780 --> 00:02:47,939 Y el proceso 2 ejecutado 1 y tenía 5, con lo cual le quedan 4. 25 00:02:48,199 --> 00:02:58,740 El proceso 2 es más largo que el proceso 3, con lo cual le expulsa de la CPU, se queda en estado de listo y entra el proceso 3 y se pone a ejecutar. 26 00:03:00,860 --> 00:03:07,419 Llega el proceso 4 y entonces el proceso 4 es más largo porque son 6 y al proceso 3 le queda 1. 27 00:03:07,919 --> 00:03:11,080 Entonces el proceso 3 sigue ejecutándose y termina. 28 00:03:11,080 --> 00:03:14,659 Le pongo un borde para ver que he terminado 29 00:03:14,659 --> 00:03:18,979 Este tiempo de aquí, el proceso 2 está esperando 30 00:03:18,979 --> 00:03:26,039 Y este tiempo de aquí, el proceso 4 está listo y esperando por CPU 31 00:03:26,039 --> 00:03:28,919 Ahora tengo dos procesos que están esperando por la CPU 32 00:03:28,919 --> 00:03:29,979 ¿Cuál tengo que elegir? 33 00:03:30,599 --> 00:03:32,539 El proceso más corto 34 00:03:32,539 --> 00:03:37,340 El proceso 2 son 5 tiempos y se ha ejecutado ya uno 35 00:03:37,340 --> 00:03:38,539 Con lo cual le quedan 4 36 00:03:38,539 --> 00:03:40,680 Y el proceso 4 son 6 tiempos 37 00:03:40,680 --> 00:03:48,120 Con lo cual el proceso 2 es más corto. Ejecuto el proceso 2 hasta que llega el siguiente proceso, que es el proceso 5. 38 00:03:48,819 --> 00:04:03,500 Compara, al proceso 2 le quedan todavía dos tiempos para ejecutarse y el proceso 5 que acaba de llegar tiene cuatro tiempos, con lo cual termina de ejecutarse el proceso 2. 39 00:04:03,500 --> 00:04:06,979 Le quedaban dos tiempos, 1, 2, 3, 4, 5 y termina. 40 00:04:07,479 --> 00:04:17,300 Lo señalo como finalizado, pongo los tiempos de espera, estos de aquí, pongo estos tiempos de aquí de espera también. 41 00:04:17,939 --> 00:04:20,860 Recordad que nunca puede haber dos procesos a la vez en la CPU. 42 00:04:21,600 --> 00:04:26,939 Y ahora solo nos quedan por terminar el proceso 5 y el proceso 4. 43 00:04:27,240 --> 00:04:29,680 ¿Cuál va a entrar primero? El que sea más corto. 44 00:04:29,680 --> 00:04:33,300 ninguno de los dos ha ejecutado ninguno de sus tiempos 45 00:04:33,300 --> 00:04:35,420 con lo cual el primero que se va a ejecutar es el 5 46 00:04:35,420 --> 00:04:37,720 con 4 tiempos de reloj, 1, 2, 3 y 4 47 00:04:37,720 --> 00:04:45,949 y después 1, 2, 3, 4, 5 y 6 48 00:04:45,949 --> 00:04:49,550 se va a ejecutar el proceso 4 49 00:04:49,550 --> 00:04:54,189 y este tiempo que nos queda aquí va a ser un tiempo de espera 50 00:04:54,189 --> 00:04:58,350 ya señalamos, ponemos todo con un borde 51 00:04:58,350 --> 00:05:01,250 para ver que ya han terminado todos 52 00:05:01,250 --> 00:05:09,879 Y así es como se hace el diagrama de Gantt para un algoritmo SRTF.