Title: Sistemi Operativi / 2 - Architettura / 01 - Macchina di Von

Q: Architettura di Von Neumann
A: Architettura di Harvard: dove la memoria dei dati è divisa da quella che contiene il programma da eseguire (utilizzata nei microcontroller)
Bus è un dispositivo per comunicare con gli altri dispositivi, la comunicazione ha solo due comandi (il bus ha due canali il bus dati e il bus indirizzi):
- load
- store
(di solito i bit della macchina coincidono con quelli del bus)
le istruzioni delle macchine risc hanno di solito le istruzioni che sono uguali o metà della lunghezza del bus, nelle cisc invece l'istruzione può essere variabile come nel caso intel
Per distingere i vari dispositivi il bus abbiamo che i range di indirizzi di ogni dispositivo è lo stesso (quindi alla memoria accedere a un dispositivo o alla memoria è la stessa cosa)

Alcune Notazioni, device, device driver ,device controller, MMU e Memory Manager

Q: Def:Interrupt (singoli e Multipli) e Trap
A: ## interrupt
Meccanismo che permette l'interruzione del normale ciclo di esecuzione della CPU.
L'interrupt può essere mascherato (ritardato) se la CPU sta svolgendo compiti non interrompibili.
Esempi di Interrupt:
- dispositivi di I/O per la notifica di completamento di un operazione (solitamente dall'device controller)
- l'intervaltimer che da periodicamente un interrupt
L'intterrupt vector: è un area di memoria in cui viene messo l'indirizzo del codice che deve essere eseguito quando avviene un interrupt.
Gli interrupt possono essere a singolo livello.
Il che vuol dire che quando la cpu riceve un interrupt mette fine chiama il codice di gestione e nel mentre nessun altro interrupt può essere eseguito.
Oppure che gli interrupt di priorità maggiore possono stoppare l'interrupt attuale e venire gestiti prima, questo comporta però allocare un stack per ogni priorità di interrupt.
## Trap
Causati dai programmi, come errori durante l'esecuzione (es divisione per zero o problemi di indirizzamento) o richiesta di servizi di sistema.

Flusso di esecuzione durante un interrupt

Q: Compiti del controller
A: un controller di solito ha queste tre operazioni: seek( spostati ad una posizione),read e write
Il sistema operativo sceglie la politica di gestione migliore per il disopositivo ( e grazie agli interrupt sa quando una di queste operazoni finisce)

Q: Programmed I/O, Interrupt-Driver I/O con DMA
A: ## Programmed I/O
## Interrupt-Driven I/O
## DMA  (direct memory access)
DMA, il bus e la memoria principale possono comunicare tramite questo DMA che permette un collegamento diretto e quindi rubano il ciclo di bus alla cpu mentre la cpu fa altre cose (viene aggiunto nel bus un albitro)

Q: Esempi di Gestione di memeoria: RAM, Scheda VIdeo, Dischi
A: Memory Mapped I/O
Dischi

Q: Protezione hardware
A: Protezione dell MMU , il processo utente può solamente utilizzare le system calo per le operazioni di input ouputx

Q: Tipi di cashing
A: Cashing Hardware, di solito fatto attraverso memorie più veloci ma più costose che si mettono in mezzo tra memorie più lenete.
Cashing Software, di solito ha il controllo il sistema operativo, che deve segliere le varie politiche per gestire al meglio queste situazioni.
Problemi del cashing:
- Coerenza: avendo i dati replicati in più spazi di memoria.
- algoritmi di replacemnt