Difference between revisions of "Primo semestre 2022/23"

From Sistemi Operativi
Jump to navigation Jump to search
 
(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("===")