Architettura computer PDF

Title Architettura computer
Course Sistemi operativi
Institution Università degli Studi del Molise
Pages 5
File Size 90.8 KB
File Type PDF
Total Downloads 107
Total Views 157

Summary

Architettura di un computer...


Description

Architettura del computer 2.1 Funzionamento del computer Un computer general-purpose (cioè adatto a fare un po' tutto) ha:  CPU  Dispositivi di controllo  Memoria condivisa Ogni dispositivo di controllo gestisce una periferica specifica. Sono tutti su un bus condiviso. Tutti, CPU e dispositivi, agiscono in modo concorrente per rubarsi a vicenda l'accesso alla memoria => occorre un controller della memoria per gestire gli accessi. Per partire quando si dà corrente occorre un programma di bootstrap • semplice • in genere in una ROM con indirizzo noto, così la CPU sa dove andare a pescarlo. Eventi = segnalati da interruzioni (interrupt). Gli eventi che le generano possono essere • provenienti dall'hardware • provenienti dal software (chiamate di sistema = system call = monitor call) Sistemi operativi moderni = guidati dalle interruzioni Eventi = segnalati da interrupt o da eccezioni (trap), che sono interruzioni generate dal software (divisioni per zero, accessi non validi alla memoria). Per ogni interrupt, c'è una routine che lo deve gestire => il controllo deve passare a questa routine => per sapere quale routine assegnare a quale int, c'è una tabella. Gestire un interrupt = salvare l'indirizzo dell'istruzione che ha chiamato l'interrupt nello stack, assieme a program counter e a registri => dopo aver gestito l'interrupt, si riprende come se non fosse successo niente. Chiamata di sistema = un processo utente chiama una funzione del SO => in genere si usa una trap. 2.2 Struttura dell'I/O Controller della periferica = mantiene dati nel buffer locale. Responsabile dello spostamento di dati tra periferiche. 2.2.1 Interruzioni di I/O Iniziare un'operazione IO:  CPU: carica i registri appropriati nel controller del dispositivo  Controller: in base ai valori, decide che azione intraprendere  Controller: finita l'operazione, genera un'int e avvisa la CPU che ha finito Dopo che è iniziata, l'operazione di I/O può essere: • sincrona: quando finisce l'I/O, il controllo torna al processo che chiamò l'I/O • asincrona: non si aspetta che l'op finisca, e si fanno altre cose nel frattempo. Attesa della rispsota dell'I/O, alternative: 1. Wait = istruzione che alcune CPU hanno per dormire mentre attendono I/O. 2. wait loop: un loop che chiama se stesso fino a che non arriva un int. I/O sincrono: posso gestire una chiamata I/O alla volta perché aspetto che finisca => no I/O

concorrente. I/O asincrono: meglio, ma devo tener traccia delle molte richieste contemporanee => tabella di stato del dispositivo che indica • tipo • indirizzo • condizione del dispositivo. Se il dispositivo è impegnato, allora salvo la richiesta nella tabella => più processi che vogliono accedere allo stesso dispositivo sono messi in una coda di attesa. Arriva un interrupt: • la CPU deve determinare quale periferica lo generò • la CPU cerca nella tabella di stato del dispositivo e vede se far partire il dispositivo con un altra richiesta Se dal dispositivo arriva qualcosa che un processo attendeva, posso ridare il controllo a questo processo. Kernel buffer = dispositivo per salvare i segnali in input prima che qualcuno li richieda (eg buffer della tastiera). La routine di gestione dell'interrupt salva tutti i registri che la CPU stava utilizzando, così poi può riprendere da dov'era. Vantaggio dell'I/O asincrono = più efficienza, perché mentre un I/O avviene, la CPU fa altro ai dischi eg non accede direttamente, perché non può usare indirizzi delle parole nei dischi come usa invece gli

indirizzi di memoria. Spazio di indirizzamento = insieme degli indirizzi di memoria cui la CPU può accedere. Accesso comdo all'I/O = I/O a memoria mappata, in cui alcuni blocchi dello spazio di indirizzamento sono mappati non nella memoria centrale, ma in registri del controller del dispositivo => utile per dispositivi rapidi eg schede video. Per spedire dati la CPU: • scrive quei dati nel registro dei dati • attiva un bit nel registro di controllo per segnalare che il byte è stato messo Il dispositivo: • prende il byte • azzera il bit nel registro di controllo per segnalare che il byte è stato preso. I/O programmato: è la CPU che ciclicamente controlla lo stato del bit nel registro di controllo. I/O guidati da interrupt: è il dispositivo che genera un interrupt dicendo che ha trasferito il byte. Accesso ai registri della CPU: si ottiene in un clock. Accesso alla memoria: si ottiene in più clock => rallenta il tutto => occorre della cache per cercare di velocizzare questo possibile collo di bottiglia (si vedrà poi). 2.3.2 Dischi magnetici Memoria secondaria di grandi dimensioni. Composti da: • piatti magnetici • braccio • testina in fondo al braccio Un piatto è diviso in tracce circolari. Una traccia è divisa in settori. Cilindro = insieme delle tracce che stanno sotto il braccio (vedi immaginetta sul libro...) Tasso di trasferimento = ritmo con cui i dati vanno da disco a processore. Tempo di posizionamento = somma del tempo richiesto per • spostare il braccio sul cilindro desiderato • far ruotare il piatto sotto la testina. Caduta della testina: essa atterra sul piatto e lo distrugge. I/O bus = cavi per collegare dischi al computer (EIDE, SCSI, ATA). I trasferimenti sono gestiti da controller: • un controller presso il computer • un controller presso il disco, dotato di cache interna. 2.3.3 Nastri magnetici Accesso lento e sequenziale => ideale per backup, non per accesso diretto. 2.4 Gerarchia di memorizzazione Vedi il libro per la piramide. Il succo è che più la memoria è veloce, più è costosa. L'ideale è trovare un compromesso tra velocità d'accesso e quantità di memoria. Per questo c'è la cache.

2.4.1 Caching Caching = memorizzazione temporanea di informazioni in dispositivi veloci. Quando si accede ad un sistema di memorizzazione (uno qualsiasi), i dati vengono prima copiati nella cache, che è veloce e vicina al processore, e da lì vengono acceduti. Gestione della cache = in hw o in sw. Politiche di aggiornamento = se sono buone, ho 80-99% di accessi in cache. Nella gerarchia di memorizzazione, un tipo di memoria più in alto può fare da cache per memorie più in basso. 2.4.2 Consistenza Struttura gerarchica usata come cache => stessi dati che appaiono in modi diversi in due livelli diversi => devo renderli consistenti. Sistemi con un solo processo: allo stesso dato accede lo stesso processo => accede sempre al livello più alto possibile => non è un problema. Sistemi multitasking: allo stesso dato possono accedere processi diversi => necessario sincronizzare le copie dei dati disponibili ai vari processi. Sistemi multiprocessore: l'aggiornamento della cache di un processore deve riflettersi nella cache dell'altro processore => coerenza della cache in genere gestita in hw. Modi per garantire coerenza = capitolo 16. 2.5 Protezione hardware Primi tempi: quando il system admin si connetteva, faceva quello che voleva. Monitor residente: i primi SO installati, che governavano l'hw. Poi: condivisione risorse tra diversi utenti => multiprogrammazione => un processo può causare errori sia un un altro processo, che nel monitor (SO) stesso. 2.5.1 Funzionamento in modalità differenziate Voglio funzionamento corretto => proteggere i processi e il SO da altri processi => protezione per ogni risorsa condivisa. 2 modalità separate: 1. user mode = modalità utente 2. supervisor | monitor | system | privileged mode = modalità di sistema Bit di modalità: dice in che modalità sto. Avvio: computer in modalità di sistema, poi si caricano i processi dell'utente. Trap o interrupt: computer passa in modalità di sistema. Istruzioni privilegiate = eseguibili solo in modalità di sistema => chiamata di sistema da parte di un processo utente per chiedere al SO di fare cose privilegiate. Chiamata di sistema = trattata come un interrupt software => SO controlla che i parametri siano legali, esegue e ritorna. Se c'è la modalità di sistema in hardware, i programmi che la violano sono trovati automaticamente dall'hw, il quale invierà una trap al SO => possibile terminazione anomala del processo (eventuale dump). 2.5.2 Protezione dell'I/O Il funzionamento anomalo del sistema si può avere con:

• chiamate a I/O illegali • accesso a locazioni di memoria proprie del SO • rifiuto di un processo di lasciare il processore ad altri => tutte le op. I/O sono definite privilegiate => se un utente vuole usare l'I/O deve passare attraverso le chiamate di sistema. Se un processo utente diventa attivo in modalità supervisore, può fare danni => virus che sfruttano errori di programmazione del SO per abusarne. 2.5.3 Protezione della memoria • Proteggere la memoria usata dal SO • Proteggere la memoria usata da un processo => i non autorizzati non devono leggere fuori dai loro confini Confini di memoria => indirizzo di partenza della memoria valida è contenuto nel registro base, indirizzo finale nel registro limite => ogni processo ha i suoi confini => l'hw controlla ogni accesso in memoria per vedere se è legale. Registi base e limite sono caricabili solo dal SO. 2.5.4 Protezione della CPU Il SO deve mantenere il controllo: se un processo prende il sopravvento, il SO scompare Temporizzatore: un clock che interrompe il computer dopo un tot di tempo. Uso comune del temporizzatore: si definisce un quanto di tempo della durata di N millisecondi => alla scadenza una interrupt ferma il processore e trasferisce il controllo al SO, che opera un cambio di contesto (cap 4). 2.6 Strutture di rete Due tipi: • LAN = Local Area Network • WAN = Wide Area Network = reti geografiche (città diverse etc.) => differenze in hw, protocolli, efficienza etc. 2.6.1 Reti locali LAN = nate inizio anni 70 come sostituto dei grandi mainframe => più economico avere piccoli computer in rete ed autonomi che uno ciccione centrale. LAN = poca distanza => cavi veloci ed affidabili. Gateway = punti di accesso ad altre reti. Lo schema più usato è Ethernet per la connessione fisica => non è centralizzata, ma è un bus ad accesso multiplo in "autogestione" => scala facilmente. 2.6.2 Reti geografiche Vasta area => bassa velocità, meno affidabilità rispetto alle LAN. Computer connessi molto diversi. Reti locali raggruppate in reti regionali => router per connettere più reti regionali nella rete mondiale. Altri tipi di accesso: telefono (56K e DSL), fibra ottica, wireless....


Similar Free PDFs