Difference between revisions of "Primo semestre 2022/23"
(13 intermediate revisions by the same user not shown) | |||
Line 14: | Line 14: | ||
=== Mercoledì 28 Settembre === | === 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 === | === 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) | ||
+ | |||
+ | [https://www.cs.unibo.it/~renzo/so/lecture_examples2223/20220929/ qui] sono presenti tutti i file utilizzati | ||
+ | |||
=== Mercoledì 5 Ottobre === | === Mercoledì 5 Ottobre === | ||
Line 27: | Line 41: | ||
=== Mercoledì 12 Ottobre === | === 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 === | === Giovedì 13 Ottobre === | ||
+ | |||
+ | Altri esercizi di lettura | ||
+ | |||
=== Mercoledì 19 Ottobre === | === Mercoledì 19 Ottobre === | ||
+ | |||
+ | Discussione di problemi con i semafori | ||
+ | Publisher/Consumer | ||
+ | Buffer limitato | ||
+ | |||
=== Giovedì 20 Ottobre === | === Giovedì 20 Ottobre === | ||
+ | |||
+ | * Lettura dei programmi in C (printf, e metaprogrammazione con macro per getops) | ||
+ | * Introduzione alle syscall | ||
+ | |||
=== Mercoledì 26 Ottobre === | === 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 === | === Giovedì 27 Ottobre === | ||
+ | |||
+ | Il professore deve fare un aggiornamento agli insegnanti della scuola secondaria di secondo grado quindi non fa lezioni. | ||
+ | |||
=== Mercoledì 2 Novembre === | === Mercoledì 2 Novembre === | ||
+ | |||
+ | Approfondimento async | ||
+ | Implementazione operazioni async | ||
+ | Readers and writers con async | ||
+ | |||
=== Giovedì 3 Novembre === | === Giovedì 3 Novembre === | ||
+ | |||
+ | * famiglia execve | ||
+ | * exit e _exit | ||
+ | |||
=== Mercoledì 9 Novembre === | === Mercoledì 9 Novembre === | ||
+ | |||
+ | introduzione ai monitor | ||
+ | |||
=== Giovedì 10 Novembre === | === Giovedì 10 Novembre === | ||
+ | |||
+ | * pipes | ||
+ | * dup2 | ||
+ | * apertura e chiusura di file | ||
+ | |||
=== Mercoledì 16 Novembre === | === Mercoledì 16 Novembre === | ||
+ | |||
+ | Niente lezione | ||
+ | |||
=== Giovedì 17 Novembre === | === Giovedì 17 Novembre === | ||
+ | |||
+ | * filesystem | ||
+ | * stat | ||
+ | * links | ||
+ | |||
=== Mercoledì 23 Novembre === | === Mercoledì 23 Novembre === | ||
=== Giovedì 24 Novembre === | === Giovedì 24 Novembre === |
Latest revision as of 17:19, 17 November 2022
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
- famiglia execve
- exit e _exit
Mercoledì 9 Novembre
introduzione ai monitor
Giovedì 10 Novembre
- pipes
- dup2
- apertura e chiusura di file
Mercoledì 16 Novembre
Niente lezione
Giovedì 17 Novembre
- filesystem
- stat
- links
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("===")