Difference between revisions of "Primo semestre 2022/23"
(first commit) |
|||
(20 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
''' Registro delle lezioni del primo semestre ''' | ''' Registro delle lezioni del primo semestre ''' | ||
+ | === Mercoledì 21 Settembre === | ||
+ | |||
+ | Introduzione al corso di sistemi operativi con i [https://www.cs.unibo.it/~renzo/so/materiale2223/pensieri2223.pdf Pensieri] | ||
+ | |||
+ | === Giovedì 22 Settembre === | ||
+ | |||
+ | Lezione teatrale con la metafora del cuoco. | ||
+ | |||
+ | La recipe è presente [https://www.cs.unibo.it/~renzo/so/materiale2223/ristorante.pdf 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) | ||
+ | |||
+ | [https://www.cs.unibo.it/~renzo/so/lecture_examples2223/20220929/ 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 [https://stackoverflow.com/questions/1060279/iterating-through-a-range-of-dates-in-python queto post di StackOverflow] | ||
+ | |||
+ | <syntaxhighlight lang=python> | ||
+ | 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("===") | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | </syntaxhighlight> |
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("===")