diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ede80b8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +# created by virtualenv automatically +* diff --git a/Algoritmo1.py b/Algoritmo1.py new file mode 100644 index 0000000..e32de4a --- /dev/null +++ b/Algoritmo1.py @@ -0,0 +1,81 @@ + +procesos = [] +n = int(input("Ingrese el número de procesos: ")) + +# Función de entrada +def inProcesos(): + + for i in range(n): + print("-------------------------------------------------------------------") + pName = input (f"Ingrese el nombre del proceso {i + 1}: ") + llegada = int (input ("Ingrese la hora de llegada: ")) + ejecucion = int (input ("Ingrese el tiempo de ejecucion: ")) + + # Nombre del proceso, hora de llegada, tiempo de ejecucion, inicio, finalización, tiempo de servicio, indice de servicio, tiempo de espera + procesos.append([pName, llegada, ejecucion, 0, 0, 0, 0, 0]) + +def mostrarResultado(resultado): + # Calcular el tiempo de servicio, el indice de servicio y tiempo de espera + for i in range(n): + resultado[i][5] = resultado[i][4] - resultado[i][1] + resultado[i][6] = round((resultado[i][2] / resultado[i][5]),2) + resultado[i][7] = resultado[i][5] - resultado[i][2] + + # Calcular el tiempo de servicio, el indice de servicio y el tiempo de espera promedio + tiempoServicioProm = 0 + tiempoIservicioProm = 0 + tiempoEsperaProm = 0 + + for i in range(n): + tiempoServicioProm = (tiempoServicioProm + resultado[i][5]) + tiempoIservicioProm = (tiempoIservicioProm + resultado[i][6]) + tiempoEsperaProm = (tiempoEsperaProm + resultado[i][7]) + + tiempoServicioProm = round((tiempoServicioProm/n),2) + tiempoIservicioProm = round((tiempoIservicioProm/n),2) + tiempoEsperaProm = round((tiempoEsperaProm/n),2) + + # Resultados de salida, ordenados según la hora de inicio + resultado.sort(key = lambda x:x[3], reverse = False) + print ("Resultado de la ejecución:") + + print("Proceso | Llegada | Ejecucion | Salida | Servicio | Indice Servicio | Espera |") + for i in range(n): + print(" ",resultado[i][0]," | ",resultado[i][1]," | ",resultado[i][2], " | ",resultado[i][4], " | ",resultado[i][5], " | ",resultado[i][6], " | ",resultado[i][7], " |") + print(f"Tiempo de Servicio promedio: {tiempoServicioProm}") + print(f"Indice Servicio promedio: {tiempoIservicioProm}" ) + print(f"Tiempo de Espera promedio: {tiempoEsperaProm}") + + +# Primero algoritmo de primer servicio +def FCFS(): + + fcfs_procesos = procesos.copy() + + # Ordenar la lista en orden ascendente por hora de llegada x: x [1] se ordena por hora de llegada + fcfs_procesos.sort(key = lambda x:x[1], reverse = False ) + + # Calcular tiempo de inicio y finalización + for i in range(n): + if(i == 0): + startTime = fcfs_procesos[i][1] + fcfs_procesos[i][3] = startTime + fcfs_procesos[i][4] = startTime + fcfs_procesos[i][2] + + elif(i > 0 and fcfs_procesos[i - 1][4] < fcfs_procesos[i][1]): + startTime = fcfs_procesos[i][1] + fcfs_procesos[i][3] = startTime + fcfs_procesos[i][4] = startTime + fcfs_procesos[i][2] + + else: + startTime = procesos[i - 1][4] + fcfs_procesos[i][3] = startTime + fcfs_procesos[i][4] = startTime + fcfs_procesos[i][2] + + mostrarResultado(fcfs_procesos) + +def lanzar(): + inProcesos() + FCFS() + +lanzar() \ No newline at end of file diff --git a/Algoritmo2.py b/Algoritmo2.py new file mode 100644 index 0000000..f256aef --- /dev/null +++ b/Algoritmo2.py @@ -0,0 +1,85 @@ + +procesos = [] +n = int (input ("Ingrese el número de procesos: ")) + +# Función de entrada +def inProcesos(): + for i in range(n): + print("-------------------------------------------------------------") + pName = input (f"Ingrese el nombre del proceso {i + 1}: ") + llegada = int (input ("Ingrese la hora de llegada: ")) + ejecucion = int (input ("Ingrese el tiempo de ejecucion: ")) + + # Nombre del proceso, hora de llegada, tiempo de ejecucion, inicio, finalización, tiempo de servicio, indice de servicio, tiempo de espera + procesos.append([pName, llegada, ejecucion, 0, 0, 0, 0, 0]) + +def mostrarResultado(resultado): + + # Calcular el tiempo de servicio, el indice de servicio y tiempo de espera + for i in range(n): + resultado[i][5] = resultado[i][4] - resultado[i][1] + resultado[i][6] = round((resultado[i][2] / resultado[i][5]),2) + resultado[i][7] = resultado[i][5] - resultado[i][2] + + # Calcular el tiempo de servicio, el indice de servicio y el tiempo de espera promedio + tiempoServicioProm = 0 + tiempoIservicioProm = 0 + tiempoEsperaProm = 0 + + for i in range(n): + tiempoServicioProm = (tiempoServicioProm + resultado[i][5]) + tiempoIservicioProm = (tiempoIservicioProm + resultado[i][6]) + tiempoEsperaProm = (tiempoEsperaProm + resultado[i][7]) + + tiempoServicioProm = round((tiempoServicioProm/n),2) + tiempoIservicioProm = round((tiempoIservicioProm/n),2) + tiempoEsperaProm = round((tiempoEsperaProm/n),2) + + # Resultados de salida, ordenados según la hora de inicio + resultado.sort(key = lambda x:x[3], reverse = False) + print ("Resultado de la ejecución:") + + print("Proceso | Llegada | Ejecucion | Salida | Servicio | Indice Servicio | Espera |") + for i in range(n): + print(" ",resultado[i][0]," | ",resultado[i][1]," | ",resultado[i][2]," | ",resultado[i][4]," | ",resultado[i][5]," | ",resultado[i][6]," | ",resultado[i][7]," |") + print(f"Tiempo de Servicio promedio: {tiempoServicioProm}") + print(f"Indice Servicio promedio: {tiempoIservicioProm}" ) + print(f"Tiempo de Espera promedio: {tiempoEsperaProm}") + +# Primer algoritmo de proceso más corto +def SJF(): + temp_procesos = procesos.copy() + sjf_procesos = [] + queue_procesos = [] + + # # Ordenar la lista en orden ascendente por hora de llegada x: x [1] se ordena por hora de llegada + temp_procesos.sort(key = lambda x: x[1], reverse = False) + + + while(len(sjf_procesos) < len(procesos)): + + for p in temp_procesos[::-1]: + if(len(sjf_procesos) != 0): + if (sjf_procesos[-1][1] < p[1] < sjf_procesos[-1][4]): + queue_procesos.append(temp_procesos.pop(temp_procesos.index(p))) + + queue_procesos.sort(key=lambda x: x[2], reverse = False) + + if(len(queue_procesos) == 0): + queue_procesos.append(temp_procesos.pop(0)) + queue_procesos[0][3] = queue_procesos[0][1] + queue_procesos[0][4] = queue_procesos[0][3] + queue_procesos[0][2] + + elif (queue_procesos[0][1] < sjf_procesos[-1][4]): + queue_procesos[0][3] = sjf_procesos[-1][4] + queue_procesos[0][4] = queue_procesos[0][3] + queue_procesos[0][2] + + sjf_procesos.append(queue_procesos.pop(0)) + + mostrarResultado(sjf_procesos) + +def lanzar(): + inProcesos() + SJF() + +lanzar() \ No newline at end of file diff --git a/Algoritmo3.py b/Algoritmo3.py new file mode 100644 index 0000000..2cd0549 --- /dev/null +++ b/Algoritmo3.py @@ -0,0 +1,107 @@ +# Función para buscar el tiempo de espera +# para cada proceso +def buscarTiempoEspera(procesos, n, te): + tr = [0] * n + + # Se copia el tiempo de ráfaga en tr[] + for i in range(n): + tr[i] = procesos[i][1] + completados = 0 + t = 0 + min = 999999999 + corto = 0 + revisado = False + + # Procesar hasta que todos los procesos se completen + while (completados != n): + + # Encuentrar el proceso con el tiempo restante + # mínimo entre los procesos que llegan hasta la + # hora actual + for j in range(n): + if ((procesos[j][2] <= t) and + (tr[j] < min) and tr[j] > 0): + min = tr[j] + corto = j + revisado = True + if (revisado == False): + t += 1 + continue + + # Reducir el tiempo restante en uno + tr[corto] -= 1 + + # Se actualiza el mínimo + min = tr[corto] + if (min == 0): + min = 999999999 + + # Si un proceso se ejecuta completamente + if (tr[corto] == 0): + + # Incremento completo + completados += 1 + revisado = False + + # Encuentra la hora de finalización + # del proceso actual + tiempoTerminacion = t + 1 + + # Calcular tiempo de espera + te[corto] = (tiempoTerminacion - proc[corto][1] - + proc[corto][2]) + + if (te[corto] < 0): + te[corto] = 0 + + # Incrementa el tiempo + t += 1 + +# Función para calcular el tiempo de respuesta +def encontrarTiempoRespuesta(procesos, n, te, tdr): + + # Calcular tiempo de respuesta + for i in range(n): + tdr[i] = procesos[i][1] + te[i] + +# Función para calcular tiempos medios de espera +# y respuesta. +def encontrarTiempoPromedio(procesos, n): + te = [0] * n + tdr = [0] * n + + # Función para encontrar el tiempo de espera + # para todos los procesos + buscarTiempoEspera(procesos, n, te) + + # Función para encontrar el tiempo de respuesta + # para todos los procesos + encontrarTiempoRespuesta(procesos, n, te, tdr) + + # Mostrar procesos junto con todos los detalles + print("Procesos Tiempo ráfaga en espera") + total_te = 0 + total_tdr = 0 + for i in range(n): + + total_te = total_te + te[i] + total_tdr = total_tdr + tdr[i] + print(" ", procesos[i][0], "\t\t\t", + procesos[i][1], "\t\t\t", + te[i], "\t\t\t", tdr[i]) + + print("\nTiempo medio de espera = %.5f "%(total_te /n) ) + print("Tiempo medio de respuesta = ", total_tdr / n) + +# Controlador del coódigo + + # id's de procesos +proc = [[1, 5, 1], [2, 9, 2], + [3, 7, 4], [4, 4, 3], + [5, 8, 5]] +n = 5 + +def lanzar(): + encontrarTiempoPromedio(proc, n) + +lanzar() diff --git a/Algoritmo4.py b/Algoritmo4.py new file mode 100644 index 0000000..7693b53 --- /dev/null +++ b/Algoritmo4.py @@ -0,0 +1,33 @@ +class proceso(object): + def __init__(self, id, prioridad): + self.id = id + self.prioridad = prioridad + +print("Ingrese el numero de procesos") +nnumeros = int(input(">")) +if (nnumeros > 0): + listadeprocesos = [] + for i in range(nnumeros): + tmpllegada = -1 + print("-------------------- Proceso " + str(i + 1) + " ------------------------") + + prioridad = 0 + while (prioridad< 1): + print("Ingrese la prioridad del proceso", i+1) + prioridad = int(input(">")) + # en el arreglo el primer item es el "id del proceso", prioridad + listadeprocesos.append(proceso((i + 1), prioridad)) + print() + print() + + print("Procesoss creados Con exito!!") + print() + + listadeprocesos = sorted(listadeprocesos, key=lambda proceso: proceso.prioridad, reverse=True) + print("Orden de ejecucion de procesos: ") + for proceso in listadeprocesos: + + print("Proceso " + str(proceso.id) + " Prioridad " + str(proceso.prioridad)) + + + diff --git a/Algoritmo5.py b/Algoritmo5.py new file mode 100644 index 0000000..c418408 --- /dev/null +++ b/Algoritmo5.py @@ -0,0 +1,95 @@ + +# Función para ordenar el proceso por hora de llegada +def ordenarLlegada(time_llegada_proceso, numero_procesos): + # Clasificación de selección aplicada + for i in range(0, numero_procesos - 1): + for j in range(i + 1, numero_procesos): + + # Consultar por menor tiempo de llegada + if time_llegada_proceso[i] > time_llegada_proceso[j]: + # Cambiar el proceso anterior al frente + time_llegada_proceso[i], time_llegada_proceso[j] = time_llegada_proceso[j], time_llegada_proceso[i] + +# código de conductor +def lanzar(): + + suma_tiempo = 0 + tiempo_medio_espera = 0 + tiempo_prom_respuesta = 0 + numero_procesos = 5 + completado = [0] * numero_procesos + tiempo_espera = [0] * numero_procesos + tiempo_respuesta = [0] * numero_procesos + normalizado_TT = [0] * numero_procesos + + # Horas de llegada predefinidas + hora_llegada = [0, 2, 4, 6, 8] + + # Tiempos de ráfaga predefinidos + tiempo_quemado = [3, 6, 4, 5, 2] + proceso = [] + + # Inicializar las variables de estructura + for i in range(0, numero_procesos): + proceso.append(chr(65 + i)) #Adjunta los valores + suma_tiempo += tiempo_quemado[i] + + # Ordenar la estructura por horas de llegada + ordenarLlegada(hora_llegada, numero_procesos) + print("Nombre " , "Hora de llegada", + "Tiempo en ejecución", "Tiempo en espera", + "Retorno", "Normalizado TT") + tiempo = hora_llegada[0] + + while (tiempo < suma_tiempo): + + # Establecer el límite inferior para la relación de respuesta + aux = -9999 + temp, local = 0, 0 + + for i in range(0, numero_procesos): + + # Comprobar si el proceso ha llegado y esta completo + if hora_llegada[i] <= tiempo and completado[i] != 1: + + # Cálculo de la relación de respuesta + temp = ((tiempo_quemado[i] + (tiempo - hora_llegada[i])) / tiempo_quemado[i]) + + # Comprobación de la tasa de respuesta más alta + if aux < temp: + # Relación de respuesta de almacenamiento + aux = temp + # Ubicación de almacenamiento + local = i + + # Actualizando el valor del tiempo + tiempo += tiempo_quemado[local] + + # Cálculo del tiempo de espera + tiempo_espera[local] = (tiempo - hora_llegada[local] - tiempo_quemado[local]) + + # Cálculo del tiempo de respuesta + tiempo_respuesta[local] = tiempo - hora_llegada[local] + + # Suma del tiempo de respuesta para el promedio + tiempo_prom_respuesta += tiempo_respuesta[local] + + # Cálculo del tiempo de respuesta normalizado + normalizado_TT = float(tiempo_respuesta[local] / tiempo_quemado[local]) + + # Actualización del estado de finalización + completado[local] = 1 + + # Tiempo de espera total para el promedio + tiempo_medio_espera += tiempo_espera[local] + + print(proceso[local], "\t\t\t\t", hora_llegada[local], + "\t\t\t\t", tiempo_quemado[local], "\t\t\t\t\t", + tiempo_espera[local], "\t\t\t", + tiempo_respuesta[local], "\t\t", + "{0:.6f}".format(normalizado_TT)) + + print("Tiempo medio de espera: {0:.6f}".format(tiempo_medio_espera / numero_procesos)) + print("Tiempo promedio de respuesta: {0:.6f}".format(tiempo_prom_respuesta / numero_procesos)) + +lanzar() \ No newline at end of file diff --git a/Algoritmo6.py b/Algoritmo6.py new file mode 100644 index 0000000..1d7d90d --- /dev/null +++ b/Algoritmo6.py @@ -0,0 +1,131 @@ + +class proceso(object): + + def __init__(self, id, rafaga, llegada): + self.id = id + self.rafaga = rafaga + self.llegada = llegada + self.rafagatmp = rafaga + self.espera = 0 + self.retorno = 0 + self.finalizacion = 0 +try: + # if(True): + print("Ingrese el numero de procesos") + nnumeros = int(input(">")) + if (nnumeros > 0): + listadeprocesos = [] + for i in range(nnumeros): + tmpllegada = -1 + print("----------------- Proceso " + str(i + 1) + " -----------------") + while (tmpllegada < 0): + print("Ingrese el tiempo de llegada del proceso") + tmpllegada = int(input(">")) + + rafagatmp = 0 + while (rafagatmp < 1): + print("Ingrese la rafaga del proceso>") + rafagatmp = int(input(">")) + # en el arreglo el primer item es el "id del proceso", luego la rafaga y ultimo la llegada + listadeprocesos.append(proceso((i + 1), rafagatmp, tmpllegada)) + print("-------------- Fin del proceso --------------------") + print() + print() + print() + print() + print("Procesoss creados Con exito!!") + print() + quantum = 0 + swi = False + while (quantum < 1): + print("Ingrese el Quantum") + quantum = int(input(">")) + quantumtmp = quantum + + + # metodo para ordenar los procesos por tiempo de llegada + def ordenaInsersion(lista): + for i in range(1, len(lista)): + j = i + while j > 0 and lista[j].llegada < lista[j - 1].llegada: + lista[j], lista[j - 1] = lista[j - 1], lista[j] + j = j - 1 + return lista + + + listadeprocesos = ordenaInsersion(listadeprocesos) # lista queda ordenada por tiempo de llegada + print("[+] Se ordeno lista de procesos por tiempo de llegada") + procesosEspejo = len(listadeprocesos) # es la variable que controla los procesos que hacen falta por terminar + tiempo = 0 + procesosCola = [] + procesoEjecusion = None # variable que corresponde al proceso que altumanete se encuentra en ejecusion + nproceso = 0 # variable utilizada para pasar al siguiente + print("[+] Se establecieron varibles para el funcionamiento") + print("@@@@@@@ Incicio del Algortimo @@@@@@@@") + sw = True # Variable de control + while (procesosEspejo > 0): + print("---------------- Tiempo [" + str(tiempo) + "] ---------------") + if (len(listadeprocesos) > nproceso and tiempo >= listadeprocesos[nproceso].llegada): + print("[+]El proceso " + str(listadeprocesos[nproceso].id) + " se ingreso a la cola de listos") + procesosCola.append(listadeprocesos[nproceso]) + nproceso = nproceso + 1 + + else: + if nproceso > 0 or len(procesosCola) > 0: + if (procesoEjecusion == None): + procesoEjecusion = procesosCola.pop(0) + sw = True + print("[+] Se saca el proceso " + str(procesoEjecusion.id) + " de la cola y se ejecuta.") + else: + if (sw): + if (procesoEjecusion.rafagatmp >= quantum): + procesoEjecusion.rafagatmp = procesoEjecusion.rafagatmp - quantum + print("[+] Se resta " + str(quantum) + " a la rafaga del proceso " + str( + procesoEjecusion.id)) + tiempo = tiempo + quantum + print("[+] Se aumenta" + str(quantum) + " al tiempo") + else: + tiempo = tiempo + procesoEjecusion.rafagatmp + print("[+] Se aumenta " + str(procesoEjecusion.rafagatmp) + " al tiempo") + print("[+] Se resta " + str( + procesoEjecusion.rafagatmp) + " a la rafaga del proceso " + str( + procesoEjecusion.id)) + procesoEjecusion.rafagatmp = 0 + + if (procesoEjecusion.rafagatmp < 1): + print("---------------- Tiempo [" + str(tiempo) + "] ---------------") + print("[+] El Proceso " + str(procesoEjecusion.id) + " finalizo.") + procesoEjecusion.finalizacion = tiempo + procesoEjecusion.retorno = procesoEjecusion.finalizacion - procesoEjecusion.llegada + procesoEjecusion.espera = procesoEjecusion.retorno - procesoEjecusion.rafaga + procesosEspejo = procesosEspejo - 1 + procesoEjecusion = None + + else: + sw = False + else: + procesosCola.append(procesoEjecusion) + print("[+] Se agrega el proceso " + str( + procesoEjecusion.id) + " que estaba en ejecusion a la cola de listos") + procesoEjecusion = None + else: + tiempo = tiempo + 1 + print("@@@@@@@ Algoritmo Finalizado @@@@@@@@") + print("") + print() + print() + print("!!!!!!!!!!!!!! Resultados !!!!!") + totalretorno = 0 + totalespera = 0 + for proceso in listadeprocesos: + print("Proceso " + str(proceso.id) + " Finalizo: " + str(proceso.finalizacion) + " Espera: " + str( + proceso.espera) + " Retorno: " + str(proceso.retorno)) + totalretorno = totalretorno + proceso.retorno + totalespera = totalespera + proceso.espera + print() + print("Promedio de retorno: " + str(totalretorno / len(listadeprocesos))) + print("Promedio de espera: " + str(totalespera / len(listadeprocesos))) + else: + print("No es valido") +except Exception as e: + print(e) diff --git a/Algoritmo7.py b/Algoritmo7.py new file mode 100644 index 0000000..39034f2 --- /dev/null +++ b/Algoritmo7.py @@ -0,0 +1,68 @@ +def FMQ(): + temp_procesos = copy.deepcopy(procesos) + queue_rr8 = [] + queue_rr16 = [] + queue_fcfs = [] + fmq_procesos = [] + quantum8 = 8 + quantum16 = 16 + time = 0 + + # Ordenar la lista en orden ascendente por hora de llegada x: x [1] se ordena por hora de llegada + temp_procesos.sort(key = lambda x: x[1], reverse = False) + + while(len(fmq_procesos) < len(procesos)): + + if(len(queue_rr8) == 0): + queue_rr8.append([temp_procesos.pop(0),0]) + time = queue_rr8[0][0][1] + + for p in temp_procesos[::-1]: + if (p[1] <= time): + queue_rr8.append([temp_procesos.pop(temp_procesos.index(p))], 0) + + # Ordenar la lista en orden ascendente por hora de llegada x: x [1] se ordena por hora de llegada + queue_rr8.sort(key = lambda x: x[0][1], reverse = True) + + for p in queue_rr8[::-1]: + if(p[0][3] == 0): + p[0][3] = time + if(p[0][2] <= quantum8): + time += p[0][2] + p[0][2] -= p[0][2] + p[0][4] = time + fmq_procesos.append(queue_rr8.pop(queue_rr8.index(p)).pop(0)) + elif(p[0][2] > quantum8): + p[0][2] -= quantum8 + time += quantum8 + p[1] += 1 + + if(p[1] >= 8): + queue_rr16.append([queue_rr8.pop(queue_rr8.index(p)).pop(0),0]) + + if(len(queue_rr8) == 0): + for p in queue_rr16[::-1]: + if(p[0][2] <= quantum16): + time += p[0][2] + p[0][2] -= p[0][2] + p[0][4] = time + fmq_procesos.append(queue_rr16.pop(queue_rr16.index(p)).pop(0)) + elif(p[0][2] > quantum16): + p[0][2] -= quantum16 + time += quantum16 + p[1] += 1 + + if(p[1] >= 8): + queue_fcfs.append(queue_rr16.pop(queue_rr16.index(p)).pop(0)) + + if(len(queue_rr16) == 0): + queue_fcfs.sort(key = lambda x: x[1], reverse = True) + for p in queue_fcfs[::-1]: + time += p[2] + p[4] = time + fmq_procesos.append(queue_fcfs.pop(queue_fcfs.index(p))) + + for proceso in fmq_procesos: + for p in procesos: + if(proceso[0] == p[0]): + proceso[2] = p[2] \ No newline at end of file diff --git a/main.py b/main.py new file mode 100644 index 0000000..abff4b9 --- /dev/null +++ b/main.py @@ -0,0 +1,145 @@ +#import Algoritmo1 as a1 + +def mensajeBienvenida(): + print(" ───▄▀▀▀▄▄▄▄▄▄▄▀▀▀▄───") + print(" ───█▒▒░░░░░░░░░▒▒█───") + print(" ────█░░█░░░░░█░░█────") + print(" ─▄▄──█░░░▀█▀░░░█──▄▄─") + print(" █░░█─▀░░░░░░░░░▀─█░░█") + print(" █▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█") + print(" █░░╦─╦╔╗╦─╔╗╔╗╔╦╗╔╗░░█") + print(" █░░║║║╠─║─║─║║║║║╠─░░█") + print(" █░░╚╩╝╚╝╚╝╚╝╚╝╩─╩╚╝░░█") + print(" █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█") + print("\n") + print("▄▀█ █░░ █▀▀ █▀█ █▀█ █ ▀█▀ █▀▄▀█ █▀█ █▀   █▀▄ █▀▀   █▀█ █░░ ▄▀█ █▄░█ █ █▀▀ █ █▀▀ ▄▀█ █▀▀ █ █▀█ █▄░█") + print("█▀█ █▄▄ █▄█ █▄█ █▀▄ █ ░█░ █░▀░█ █▄█ ▄█   █▄▀ ██▄   █▀▀ █▄▄ █▀█ █░▀█ █ █▀░ █ █▄▄ █▀█ █▄▄ █ █▄█ █░▀█") + print("---------------------------------------------------------------------------------------------------------------------------------------------") + print("Integrantes: Juan Esteban Quintero Rodriguez - David Santiago Martinez Lopez - Ismenia Marcela Guevara Ortiz") + print("---------------------------------------------------------------------------------------------------------------------------------------------") + print("\n") +def mensajeDespedida(): + print(" ──────────────────────────────────────────────────────────────────────────────────────────────────────────") + print(" ─██████████████─████████████████───██████████████─██████████████─██████████─██████████████─██████████████─") + print(" ─██░░░░░░░░░░██─██░░░░░░░░░░░░██───██░░░░░░░░░░██─██░░░░░░░░░░██─██░░░░░░██─██░░░░░░░░░░██─██░░░░░░░░░░██─") + print(" ─██░░██████████─██░░████████░░██───██░░██████░░██─██░░██████████─████░░████─██░░██████░░██─██░░██████████─") + print(" ─██░░██─────────██░░██────██░░██───██░░██──██░░██─██░░██───────────██░░██───██░░██──██░░██─██░░██─────────") + print(" ─██░░██─────────██░░████████░░██───██░░██████░░██─██░░██───────────██░░██───██░░██████░░██─██░░██████████─") + print(" ─██░░██──██████─██░░░░░░░░░░░░██───██░░░░░░░░░░██─██░░██───────────██░░██───██░░░░░░░░░░██─██░░░░░░░░░░██─") + print(" ─██░░██──██░░██─██░░██████░░████───██░░██████░░██─██░░██───────────██░░██───██░░██████░░██─██████████░░██─") + print(" ─██░░██──██░░██─██░░██──██░░██─────██░░██──██░░██─██░░██───────────██░░██───██░░██──██░░██─────────██░░██─") + print(" ─██░░██████░░██─██░░██──██░░██████─██░░██──██░░██─██░░██████████─████░░████─██░░██──██░░██─██████████░░██─") + print(" ─██░░░░░░░░░░██─██░░██──██░░░░░░██─██░░██──██░░██─██░░░░░░░░░░██─██░░░░░░██─██░░██──██░░██─██░░░░░░░░░░██─") + print(" ─██████████████─██████──██████████─██████──██████─██████████████─██████████─██████──██████─██████████████─") + print(" ──────────────────────────────────────────────────────────────────────────────────────────────────────────") + + +def preguntar(): + print("Desea probar otro algoritmo?") + print("1. si") + print("2. no") + respuesta = int(input()) + if respuesta == 1: + return True + elif respuesta == 2: + return False + + +def funcion1(): + import Algoritmo1 + print("\n \n") + + +def funcion2(): + import Algoritmo2 + print("\n \n") + + +def funcion3(): + import Algoritmo3 + print("\n \n") + + +def funcion4(): + import Algoritmo4 + print("\n \n") + + +def funcion5(): + import Algoritmo5 + print("\n \n") + + +def funcion6(): + import Algoritmo6 + print("\n \n") + + +def funcion7(): + import Algoritmo7 + print("\n \n") + + +def lanzar_aplicacion(): + while True: + print("Escriba la opcion del algoritmo que desea probar"+"\n") + print("1. FCFS- (primero en llegar, primero en ser atendido)") + print("2. SJF- (Trabajo más corto primero)") + print("3. SRTF- (Tiempo restante más corto primero)") + print("4. PRIORIDAD") + print("5. HRN- (Respuesta Alta Siguiente)") + print("6. RR- (Round Robin)") + print("7. FMQ- (Colas múltiples de retroalimentación)") + print("0. Salir"+"\n") + opcion = input() + if opcion == "0": + mensajeDespedida() + break + elif opcion == "1": + funcion1() + if not preguntar(): + mensajeDespedida() + break + print("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆") + elif opcion == "2": + funcion2() + if not preguntar(): + mensajeDespedida() + break + print("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆") + elif opcion == "3": + funcion3() + if not preguntar(): + mensajeDespedida() + break + print("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆") + elif opcion == "4": + funcion4() + if not preguntar(): + mensajeDespedida() + break + print("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆") + elif opcion == "5": + funcion5() + if not preguntar(): + mensajeDespedida() + break + print("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆") + elif opcion == "6": + funcion6() + if not preguntar(): + mensajeDespedida() + break + print("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆") + elif opcion == "7": + funcion7() + if not preguntar(): + mensajeDespedida() + break + print("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆") + else: + print("Elija una opcion disponible"+"\n \n") + print("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆") + +mensajeBienvenida() +lanzar_aplicacion() diff --git a/pyvenv.cfg b/pyvenv.cfg new file mode 100644 index 0000000..1522e6f --- /dev/null +++ b/pyvenv.cfg @@ -0,0 +1,8 @@ +home = C:\Users\marce\AppData\Local\Programs\Python\Python39 +implementation = CPython +version_info = 3.9.10.final.0 +virtualenv = 20.13.0 +include-system-site-packages = false +base-prefix = C:\Users\marce\AppData\Local\Programs\Python\Python39 +base-exec-prefix = C:\Users\marce\AppData\Local\Programs\Python\Python39 +base-executable = C:\Users\marce\AppData\Local\Programs\Python\Python39\python.exe