title | author | date |
---|---|---|
System Calls |
Joshua Samuel Chapman |
18-06-2020 |
Progetto sistemi operativi UNIVR 2019/2020 sulle system calls.
Il progetti include un Makefile
per la compilazione, la quale può avvenire in
due modi diversi.
- Cmake e Ninja
- Make
Il metodo di default è tramite cmake
, mentre il secondo è per compatibilità
in mancanza dei build tools su un sistema. Con cmake
si compilano anche i
test per il programma.
La compilazione tramite cmake
produce due tipi di file binari: Debug e Release.
In modalità debug il programma permette la terminazione del server con <C-c>
o SIGINT
e utilizza la system call mmap
per leggere interamente il file delle
posizioni.
In modalità release il programma blocca tutti i segnali a eccezione di SIGTERM
e legge il file delle posizioni a chunks con la system call read
.
Questo avviene settando la flag NDEBUG
.
Per compilare in modalità Debug:
make cmake-debug
Per compilare in release:
# Cmake & Ninja
make cmake
# Make
make legacy
Per testare il programma si utilizza il framework google-test
e ctest
. Per
invocare i test:
make test