Gestione Centro di Calcolo
Completion requirements
Opened: Thursday, 3 October 2024, 12:00 AM
Due: Sunday, 30 November 2025, 12:00 AM
In un centro di calcolo le singole unità di calcolo che eseguono tasks sono inserite in slot, che vengono identificati univocamente in base a tre numeri
- la fila
- posizione relativa della colonna di unità nella fila
- posizione relativa dell'unità all'interno di tale colonna (e.g. terza fila della stanza, quarta colonna della fila, dodicesima unità nella colonna).
Il coordinatore del centro deve mantenere una struttura dati efficiente per l'assegnazione e rimozione di task di ogni unità, con gestione FIFO in cui il task più vecchio viene completato e rimosso per primo.
- si definisca una classe generica per la gestione di tuple ordinabili di lunghezza arbitraria e contenenti tipi qualsiasi ma che supportano un ordinamento.
- oltre a supportare l'ordinamento la classe offre getters (getters di tipo non primitivo) e setters per accedere o modificare l'elemento i-esimo.
- si utilizzi la classe delle tuple per individuare univocamente le unità.
- si rappresenti ogni task attraverso una stringa di lunghezza fissata di 16 caratteri.
- si scelga poi un'opportuna combinazione di collections per l'assegnamento e rimozione efficiente di task ad ogni unità.
- l'utente invia una richiesta (aggiunta, rimozione o visione del task corrente) specificando l'unità attraverso al propria tupla e il task stesso come stringa (solo per l'inserimento).
- si definisca un nuovo tipo di eccezione per gestire il caso in cui si tenti di creare una nuova unità con la stessa tripla identificativa di un'unità già esistente.