Práctica de PRO2 - Primavera 2023 - Entrega intermedia ESTE PROBLEMA SE CERRARÁ EN POCOS MINUTOS, USAD SOLO LA DEFINITIVA X46263


Statement
 

pdf   zip   tar

html

Este problema corresponde a la entrega intermedia de la práctica. Tened en cuenta que

  • esta no es la entrega definitiva de la práctica completa, ni siquiera es una entrega provisional de la práctica completa
  • en esta entrega se ha de proporcionar todo el código necesario (clases, programa principal y, opcionalmente, Makefile) para poder usar todas las funcionalidades de la práctica excepto modificar_cluster, enviar_procesos_cluster, y las dos de compactar.
  • en esta entrega no pedimos carpetas generadas mediante doxygen, pero los ficheros de las clases pueden llevar todos los comentarios doxygen que queráis; de hecho recomendamos que incluyáis las especificaciones de todas las operaciones y que sean lo más definitivas posible
  • esta entrega no tendrá nota manual

Entrada

Una secuencia de instrucciones y datos que siguen el formato del enunciado de la práctica y del juego de pruebas público.

Salida

Una secuencia de resultados que siguen el formato del enunciado de la práctica y del juego de pruebas público.

Observación

El Jutge prueba vuestras entregas mediante 4 juegos de pruebas:

  • sample: el juego de pruebas público
  • privat1: situaciones que no aparecen en el público
  • privat2: otras situaciones que no aparecen en el público
  • privat3: eficiencia

En un fichero llamado practica.tar tenéis que entregar los ficheros .hh y .cc de las clases y el programa principal. Opcionalmente, podéis entregar el Makefile que estáis usando para generar y probar el ejecutable.

Tened en cuenta las siguientes restricciones:

  • el fichero que contiene el programa principal se ha de llamar program.cc
  • el Makefile ha de generar un ejecutable llamado program.exe
  • es importante que uséis las opciones de compilación definidas en el menú Documentation → Compilers → PRO2 de www.jutge.org para funcionar en igualdad de condiciones con el Jutge
  • no usar la opción -D_GLIBCXX_DEBUG o usarla de forma incorrecta podrá ser penalizado

Producid el fichero practica.tar con la instrucción Linux

tar -cvf practica.tar fitxer1 fitxer2 fitxer3 ...

desde el directorio/carpeta donde tengáis los ficheros que vais a entregar. Os convendrá incluir en vuestro Makefile una regla con esta instrucción, de forma que el .tar se pueda generar ejecutando make practica.tar. Con eso reduciréis el riesgo de error en sucesivas entregas. El Jutge no acepta .tar donde los ficheros estén dentro de carpetas. Recomendamos usar GNU tar para reducir el riesgo de que el fichero practica.tar sea incompatible con el Jutge.

Public test cases
  • Input

    proc1
    10
    proc11
    100
    proc111
    500
    *
    *
    proc112
    500
    *
    *
    proc12
    100
    proc121
    500
    *
    *
    proc122
    500
    *
    *
    4
    1111
    11
    11111
    111
    imprimir_estructura_cluster
    imprimir_area_espera
    imprimir_procesadores_cluster
    alta_proceso_procesador
    pr 99 15 15
    app proc12 99 10 15
    imprimir_procesador pr
    ipro proc12
    app proc1 99 10 10
    ipro proc1
    alta_proceso_procesador
    proc1 99 5 5
    app proc12 101 91 15
    app proc12 101 90 15
    ipc
    baja_proceso_procesador
    pr 99
    bpp proc12 100
    bpp proc12 99
    ipro proc12
    avanzar_tiempo 7
    imprimir_procesador proc12
    at 2
    ipro proc1
    alta_proceso_espera 222 99 10 10
    ape 111 99 10 10
    ape 111 99 20 15
    ape 111 98 1000 20
    ape 111 100 10 1
    imprimir_prioridad 222
    ipri 111
    alta_prioridad 1111
    ap 2
    baja_prioridad 333
    bp 111
    bp 11
    iae
    configurar_cluster
    sndr01
    1000
    *
    *
    iec
    cc
    abc
    10
    *
    zsda
    5
    *
    *
    iec
    iae
    fin
    

    Output

    #imprimir_estructura_cluster
    (proc1(proc11(proc111  )(proc112  ))(proc12(proc121  )(proc122  )))
    #imprimir_area_espera
    11
    0 0
    111
    0 0
    1111
    0 0
    11111
    0 0
    #imprimir_procesadores_cluster
    proc1
    proc11
    proc111
    proc112
    proc12
    proc121
    proc122
    #alta_proceso_procesador pr 99
    error: no existe procesador
    #app proc12 99
    #imprimir_procesador pr
    error: no existe procesador
    #ipro proc12
    0 99 10 15
    #app proc1 99
    #ipro proc1
    0 99 10 10
    #alta_proceso_procesador proc1 99
    error: ya existe proceso
    #app proc12 101
    error: no cabe proceso
    #app proc12 101
    #ipc
    proc1
    0 99 10 10
    proc11
    proc111
    proc112
    proc12
    0 99 10 15
    10 101 90 15
    proc121
    proc122
    #baja_proceso_procesador pr 99
    error: no existe procesador
    #bpp proc12 100
    error: no existe proceso
    #bpp proc12 99
    #ipro proc12
    10 101 90 15
    #avanzar_tiempo 7
    #imprimir_procesador proc12
    10 101 90 8
    #at 2
    #ipro proc1
    0 99 10 1
    #alta_proceso_espera 222 99
    error: no existe prioridad
    #ape 111 99
    #ape 111 99
    error: ya existe proceso
    #ape 111 98
    #ape 111 100
    #imprimir_prioridad 222
    error: no existe prioridad
    #ipri 111
    99 10 10
    98 1000 20
    100 10 1
    0 0
    #alta_prioridad 1111
    error: ya existe prioridad
    #ap 2
    #baja_prioridad 333
    error: no existe prioridad
    #bp 111
    error: prioridad con procesos
    #bp 11
    #iae
    111
    99 10 10
    98 1000 20
    100 10 1
    0 0
    1111
    0 0
    11111
    0 0
    2
    0 0
    #configurar_cluster
    #iec
    (sndr01  )
    #cc
    #iec
    (abc (zsda  ))
    #iae
    111
    99 10 10
    98 1000 20
    100 10 1
    0 0
    1111
    0 0
    11111
    0 0
    2
    0 0
    
  • Information
    Author
    PRO2
    Language
    Spanish
    Official solutions
    Make
    User solutions
    Make