INTRO ----------------------------------- Questa cartella contiene il primo homework del corso di Advanced Operating Systems (AOS) tenunto dal professore Francesco Quaglia. Il codice presente è principalmente ottenuto dal codice del professore Quaglia, con alcune piccole modifiche di forma. DESCRIZIONE PROBLEMA ----------------------------------- This homework deals with the implementation of a *TLS* support standing aside of the original one offered by gcc. It should be based on a few macros with the following meaning: - *PER_THREAD_MEMORY_START* and *PER_THREAD_MEMORY_END* are used to delimitate the variable declarations that will be part of TLS - *READ_THREAD_VARIABLE(name)* is used to return the value of a TLS variable with a given name - *WRITE_THREAD_VARIABLE(name, value)* is used to update the TLS variable with a given name to a given value Essentially, the homework is tailored to implementing an interface for managing per-thread memory resembling the one offered by the Linux kernel for managing per-CPU memory. CONTENUTO CARTELLA ----------------------------------- Il contenuto della cartella è così descritto: - ./tls.h, contiene le macro e funzioni principali per offrire il supporto TLS - ./tls.c, implementazione principale del supporto TLS tramite un wrapper alla funzione pthread_create() - ./main.c, test per provare l'implementazione del TLS tramite le macro definite in tls.h - ./Makefile, file utilizzato per compilazione con "make all".