Primo semestre 2022/23
Registro delle lezioni del primo semestre
Mercoledì 21 Settembre
Introduzione al corso di sistemi operativi con i Pensieri
Giovedì 22 Settembre
Lezione teatrale con la metafora del cuoco.
La recipe è presente qui
~Spero non si rompano sti links 😟
Mercoledì 28 Settembre
Introduzione alle concorrenza.
- Descrizione di un processo (stati possili descrizione in memoria, differenza con programma)
- Introduzione al concetto di Liveness e Safety
Giovedì 29 Settembre
Laboratorio pratico con
- Introduzione alla riga di comando.
- Programmi che non fanno uso di librerie
- Programma che fa lampeggiare (TODO: non so come si chiami quel chip, sarebbe da mettere qui)
qui sono presenti tutti i file utilizzati
Mercoledì 5 Ottobre
Sono stati trattati gli algoritmi per la risoluzione di sezioni critiche, come Dekker e Peterson.
Si possono trovare in Esperimenti_sugli_algoritmi_di_Dekker_e_Peterson gli esempi scritti dal Prof.
Giovedì 6 Ottobre
Abbiamo discusso in classe gli esercizi di lettura di C presenti in Esercizi_di_"lettura"_programmi_in_C
Mercoledì 12 Ottobre
Descrizione di tecniche alternative per l'implementazione di sezioni critiche come
- disabilitazione interrupt
- Spinlock (test&set, divisione, swap)
- Introduzione ai semafori
Giovedì 13 Ottobre
Altri esercizi di lettura
Mercoledì 19 Ottobre
Discussione di problemi con i semafori Publisher/Consumer Buffer limitato
Giovedì 20 Ottobre
- Lettura dei programmi in C (printf, e metaprogrammazione con macro per getops)
- Introduzione alle syscall
Mercoledì 26 Ottobre
- Dining philosophers
- Readers and writers
- Introduzione alla sintassi await, un modo strutturato per trattare di problemi con i semafori
Giovedì 27 Ottobre
Il professore deve fare un aggiornamento agli insegnanti della scuola secondaria di secondo grado quindi non fa lezioni.
Mercoledì 2 Novembre
Approfondimento async Implementazione operazioni async Readers and writers con async
Giovedì 3 Novembre
Mercoledì 9 Novembre
Giovedì 10 Novembre
- pipes
- dup2
- apertura e chiusura di file
Mercoledì 16 Novembre
Giovedì 17 Novembre
Mercoledì 23 Novembre
Giovedì 24 Novembre
Mercoledì 30 Novembre
Giovedì 1 Dicembre
Mercoledì 7 Dicembre
Giovedì 8 Dicembre
Mercoledì 14 Dicembre
Giovedì 15 Dicembre
Curiosità
I titoli sono stati generati utilizzando questo script in python, opportunamente riadattato da queto post di StackOverflow
from datetime import date, timedelta
import calendar
import locale
def daterange(start_date, end_date):
for n in range(int((end_date - start_date).days)):
yield start_date + timedelta(n)
locale.setlocale(locale.LC_ALL, 'it_IT.UTF-8') # use italian names for months
start_date = date(2022, 9, 20)
end_date = date(2022, 12, 20)
for single_date in daterange(start_date, end_date):
# print only if wednesday or thursday
wed_or_thur = False
if single_date.weekday() == 2:
wed_or_thur = True
name_of_day = "Mercoledì"
elif single_date.weekday() == 3:
wed_or_thur = True
name_of_day = "Giovedì"
if wed_or_thur:
print("===", end=' ')
print(name_of_day, end=' ')
print(single_date.day, calendar.month_name[single_date.month].capitalize(), end=' ')
print("===")