GiulioZhou/SO_GAOS
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
---------------------------------------------------- I) Composizione del Gruppo ---------------------------------------------------- * Olga Becci * Giacomo Rizzi * Giulio Zhou * Sara Brolli * Matteo Barato * Alessio Tosto Altri membri che hanno lavorato al progetto * Andrian Leah * Mattia Biondi ---------------------------------------------------- II) Compilazione ed esecuzione del codice sorgente ---------------------------------------------------- Il codice sorgente del kernel può essere compilato tramite il comando make nella cartella principale. L'unica dipendenza è la libreria uArm. Una volta eseguita la compilazione, si otterranno i file - kernel.elf.core.uarm - kernel.elf.stab.uarm I sorgenti dei test possono essere compilati con il comando make nella rispettiva cartella "test". Per ottenere il tape da inserire in uArm bisogna eseguire il comando: uarm-mkdev -t nome_tape.uarm test1 test2 ... dove test1 test2 ... sono i file prodotti dal make precedentemente eseguito. NOTE: - Per poter far partire più processi utente è necessario concatenare i file di test e NON creare più tape. - I test necessitano di un backing store device da inserire come disk 0, ottenibile tramite il comando: uarm-mkdev -d nome_disco0.uarm - Alcuni test (es. diskTest.c) necessitano di una memoria secondaria, avente una dimensione adeguata, da inserire come disk 1. La dimensione del disco si può definire specificando il numero di cilindri, testine e settori del disco. Per esempio, un disco ragionevole potrebbe essere: uarm-mkdev -d nome_disco0.uarm 50 49 48 - pinterTest.c non testabile III) Istruzioni al codice sorgente ---------------------------------------------------- Si è cercato di uniformare lo stile di codice per mantenere la leggibilità, le scelte principali sono: utilizzo di 4 spazi per l'indentazione, parentesi di apertura delle funzioni nella stessa riga della dichiarazione, commenti di descrizione uniformi prima di ogni funzione/macro, utilizzo di parole chiave come TODO. Guideline per il modulo clist: http://www.cs.unibo.it/~renzo/so/jaeos16/phase0/clist_template.h Panoramica dei moduli pcb e asl: http://www.cs.unibo.it/~renzo/so/jaeos16/phase1.pdf IV) Note e considerazioni Macro clist_pop: Questa macro è stata ridefinita per comodità, e semplicemente salva la testa in elem e la rimuove dalla lista (utilizzata nelle allocazioni) Macro clist_foreach: - Inizializzazione: a) tmp è la coda della lista (NULL se la lista è vuota) - Condizioni pre-ciclo: a) tmp non deve essere NULL (fallisce se la lista è vuota, o se viene forzata l'uscita nella modifica b) b) scan, che ad ogni ciclo diventa tmp->next, non deve essere NULL (condizione sempre vera, ma necessaria per effettuare l'assegnamento) - Modifiche post-ciclo: a) tmp diventa tmp->next b) se la lista ha un solo elemento (tmp == tmp->next), tmp diventa NULL per uscire dal ciclo (condizione a) Modulo util È stato creato il modulo util per raccogliere funzioni di generica utilità, ad esempio un implementazione della memset e delle funzioni per assistere il debug.
About
No description, website, or topics provided.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published