Difference between revisions of "Lezioni Anno Accademico 2018/19 I semestre"
Line 105: | Line 105: | ||
== Lezione del 25 ottobre 2018 == | == Lezione del 25 ottobre 2018 == | ||
+ | === Architettura === | ||
+ | Macchina di von Neumann: | ||
+ | * dati programma e istruzioni da eseguire sono nello stesso spazio di memoria | ||
+ | * bus complesso di fili paralleli ai quali sono collegate le unità | ||
+ | |||
+ | |||
+ | === Ciclo di CPU === | ||
+ | fetch/decode/load operandi/execute/store (+controllo interrupt) | ||
+ | |||
+ | tipi di archihtetture | ||
+ | * RISC, tutte le istruzioni hanno la stessa lunghezza | ||
+ | * CISC, istruzione di lunghezza diversa, passate al livello microcodice | ||
+ | |||
+ | RISC più efficiente rispetto a CISC, ma per fare le stesse operazioni ha bisogno di più istruzioni | ||
+ | |||
+ | I modi del processore: | ||
+ | * modo kernel: accesso completo a memoria e hardware | ||
+ | * modo user: accesso solo alla sua memoria e a operazioni base | ||
+ | |||
+ | modalità controllata da un bit sulla CPU. nell'architettura intel i livelli di privilegi sono chiamati ring | ||
+ | |||
+ | Comunicazione coi controllori dei device | ||
+ | |||
+ | Interrupt | ||
+ | * il ciclo di una istruzione ha una fase in più di controllo per gli interrupt ( Non viene mai interrotto il ciclo di una istruzione) | ||
+ | * interrupt di priorità maggiore vengono eseguiti prima mascheramento degli interrupt (mono e multiprocessore) | ||
+ | * cpu ha registro che consente di mascherarsi dagli interrupt | ||
+ | |||
+ | |||
+ | Senza interrupt = Polling | ||
+ | * polling = azione ripetuta | ||
+ | (esempio dalla vita: quello che fanno i bambini in macchina: siamo arrivati? siamo arrivati?) | ||
+ | * esempio prima degli interrupt: la cpu chiede al processo: hai finito? hai finito? prima o poi risponderà sì | ||
+ | |||
+ | |||
+ | DMA (Direct Memory Access). | ||
+ | * Operazioni di buffer fatte dal controller | ||
+ | * Migliora l'efficienza e semplifica la scrittura di SO | ||
+ | |||
+ | |||
+ | Gerarchia di memoria | ||
+ | Tipi di memoria: | ||
+ | * primaria | ||
+ | (codice e dati delle elaborazioni correnti); | ||
+ | (nanosecondo); | ||
+ | * secondaria | ||
+ | (attivazione esecuzioni e programmi); | ||
+ | (grosse moli di dati che vengono scambiati con la mem. promaria poco alla volta) | ||
+ | (millisecondo); | ||
+ | * terziaria | ||
+ | (lente e off-line, esempio CD, DVD, chiavette USB); | ||
+ | |||
+ | |||
+ | concetto di Cache: località (se faccio un accesso è probabile che dopo poco accedo al memoria subito vicina) | ||
+ | |||
+ | Concetto generale di Cache (hw o sw) | ||
+ | |||
+ | Protezione di memoria => MMU (Memory Management Unit) | ||
+ | * alcuni indirizzi accessibili e altri no | ||
+ | * limita l'accesso a determinati indirizzi e nel caso scaturisce una Trap call | ||
+ | * fa in modo che in usermode siano visibili solo alcuni indirizzi. | ||
+ | |||
+ | Casi semplici: registri base/limite, | ||
+ | cenni di funzionamento MMU moderne | ||
+ | |||
== Lezione del 30 ottobre 2018 == | == Lezione del 30 ottobre 2018 == | ||
== Lezione del 6 novembre 2018 == | == Lezione del 6 novembre 2018 == |
Revision as of 17:43, 28 October 2018
questa pagina serve per scrivere idee, riassunti dei concetti espressi, commenti approfondimenti sulle lezioni.
Lezione del 25 settembre 2018
Presentazione Corso
Introduzione generale sui concetti di:
- Università
- Informatica
- hardware software
- codice
- rivoluzione digitale
Risorse del corso:
- il docente: mailinglist-mail-ricevimento
- la mailinglist
- lezioni live (cercate davoli-live con un motore di ricerca e fate click su qui)
- il sito web www.cs.unibo.it/~renzo/so
- il wiki so.v2.cs.unibo.it
- il bot so.cs.unibot
- la macchina virtuale soho
- i vostri sistemi BYOD (bring your own device)
- i lab del dipartimento (ercolani+ranzani)
Cose da fare per gli studenti (compiti a casa):
- avere account di laboratorio
- avere un sistema GNU-Linux
- creare i gruppi di laboratorio
- iscriversi alla mailing list
Lezione del 27 settembre 2018
prima definizione di sistema operativo (astrazione-unificazione-gestione-controllo)
algoritmo - programma - processo
livelli - linguaggi - servizi - astrazioni
linguaggio = (alfabeto, lessico, sintassi, semantica)
UNIX: storia e principi costruttivi
Motivazioni del linguaggio C
C-toolchain (ed esempi di uso della shell UNIX).
Lezione del 2 ottobre 2018
Principi del linguaggio C.
Assegnati esercizi di lettura di programmi in C.
Esperimenti sulla portabilità dei compilatori.
Lezione del 9 ottobre 2018
Esercizi di lettura su puntatori e vettori e su puntatori a funzione unioni e strutture
mascheramento di bit
Introduzione ai sistemi di versioning (git) e ai sistemi di gestione delle compilazioni (cmake).
Lezione del 11 ottobre 2018
- installazione di GNU-Linux
- gruppi lab
- UNIX: struttura standard del file system (ma cosa e' il file system: 3 definizioni)
- user/group
- tipi di file in UNIX
Lezione del 16 ottobre 2018
Programmazione in C:
- -Utilizzo delle keyword Static/extern/auto/register
- -Preprocessore, compilazione condizionale,inizializzazioni const
parametri a linea comando
link fisici e simbolici
processi: foreground/background
quoting
Lezione del 18 ottobre 2018
Ruoli delle persone in rapporto ai sistemi operativi: utenti, programmatori(applicazioni), programmatori (sistema), amministratori, sviluppatore kernel.
Librerie e System call. librerie statiche e dinamiche Libreria standard C (stdio, errno, string, stdlib-allocazione dinamica).
Lezione del 23 ottobre 2018
Il catalogo delle system call di UNIX...
- File I/O
- Device I/O
- Memoria
- Process mgmt
- Networking
- IPC
Ritorno alla teoria...
- Breve storia dei sistemi anche operativi.
- Richiami di architettura: von newmann, interrupt/trap DMA, gerarchia di memoria, cache...
Lezione del 25 ottobre 2018
Architettura
Macchina di von Neumann:
- dati programma e istruzioni da eseguire sono nello stesso spazio di memoria
- bus complesso di fili paralleli ai quali sono collegate le unità
Ciclo di CPU
fetch/decode/load operandi/execute/store (+controllo interrupt)
tipi di archihtetture
- RISC, tutte le istruzioni hanno la stessa lunghezza
- CISC, istruzione di lunghezza diversa, passate al livello microcodice
RISC più efficiente rispetto a CISC, ma per fare le stesse operazioni ha bisogno di più istruzioni
I modi del processore:
- modo kernel: accesso completo a memoria e hardware
- modo user: accesso solo alla sua memoria e a operazioni base
modalità controllata da un bit sulla CPU. nell'architettura intel i livelli di privilegi sono chiamati ring
Comunicazione coi controllori dei device
Interrupt
- il ciclo di una istruzione ha una fase in più di controllo per gli interrupt ( Non viene mai interrotto il ciclo di una istruzione)
- interrupt di priorità maggiore vengono eseguiti prima mascheramento degli interrupt (mono e multiprocessore)
- cpu ha registro che consente di mascherarsi dagli interrupt
Senza interrupt = Polling
- polling = azione ripetuta
(esempio dalla vita: quello che fanno i bambini in macchina: siamo arrivati? siamo arrivati?)
- esempio prima degli interrupt: la cpu chiede al processo: hai finito? hai finito? prima o poi risponderà sì
DMA (Direct Memory Access).
- Operazioni di buffer fatte dal controller
- Migliora l'efficienza e semplifica la scrittura di SO
Gerarchia di memoria
Tipi di memoria:
- primaria
(codice e dati delle elaborazioni correnti); (nanosecondo);
- secondaria
(attivazione esecuzioni e programmi); (grosse moli di dati che vengono scambiati con la mem. promaria poco alla volta) (millisecondo);
- terziaria
(lente e off-line, esempio CD, DVD, chiavette USB);
concetto di Cache: località (se faccio un accesso è probabile che dopo poco accedo al memoria subito vicina)
Concetto generale di Cache (hw o sw)
Protezione di memoria => MMU (Memory Management Unit)
- alcuni indirizzi accessibili e altri no
- limita l'accesso a determinati indirizzi e nel caso scaturisce una Trap call
- fa in modo che in usermode siano visibili solo alcuni indirizzi.
Casi semplici: registri base/limite, cenni di funzionamento MMU moderne