La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Informatica B Allievi Elettrici - AA 2000-01 Larchitettura di un calcolatore e il sistema operativo.

Presentazioni simili


Presentazione sul tema: "Informatica B Allievi Elettrici - AA 2000-01 Larchitettura di un calcolatore e il sistema operativo."— Transcript della presentazione:

1 Informatica B Allievi Elettrici - AA Larchitettura di un calcolatore e il sistema operativo

2 Larchitettura di un calcolatore HD I/O tastiera InputOutput Monitor Stampante

3 La CPU Contiene gli elementi circuitali che regolano il funzionamento dellelaboratore: –Lunità di controllo e responsabile della decodifica e dellesecuzione delle istruzioni. E' la parte che "dirige" l'esecuzione di tutte le altre parti. –Lorologio di sistema (clock) permette di sincronizzare le operazioni temporizzando il funzionamento del computer. –Lunità aritmetico-logica (ALU) realizza le operazioni aritmetiche e logiche eventualmente richieste per lesecuzione dellistruzione. E priva di facoltà di scelta. –I registri sono piccole memorie velocemente accessibili, utilizzate per memorizzare risultati parziali o informazioni necessarie al controllo. Linsieme dei valori contenuti nell'insieme di tutti i registri in un dato istante della computazione viene chiamato contesto.

4 I registri piu importanti Laccumulatore (uno o due) contengono gli operandi e i risultati delle operazioni della ALU Il contatore di programma (PC, Program Counter) Contiene sempre lindirizzo della prossima istruzione del programma (SALTI!!!). Il registro dati E lungo come una parola di memoria ed è utilizzato, nella lettura e scrittura da essa o da e per le periferiche, come una sorta di deposito dellinformazione. A questo registro accede il bus dati. Il registro indirizzi Serve ad indirizzare la memoria. Ciascuna cella di memoria può essere indirizzata: capacità dellelaboratore di selezionare una particolare cella di memoria. Chiamiamo parola ogni elemento di memoria indirizzabile. Il compilatore assegna ad ogni operando in memoria un indirizzo. Il registro istruzione corrente (RIC) Contiene, istante per istante, listruzione che risulta in esecuzione da parte dellelaboratore. La dimensione del registro istruzione è (generalmente) quella del bus dati.

5 Formato delle istruzioni Costituito da tre campi: il codice operativo (obbligatorio) specifica loperazione da eseguire, loperando (facoltativo) è diviso in indirizzi degli oggetti, cioè le variabili, da utilizzare FORMATO ISTRUZIONE: Cod. operativo Operandi

6 Fasi del ciclo di CPU Fetch: –PC contiene indirizzo prossima istruzione –acquisizione prossima istruzione da memoria (nel RIC) –incremento PC Decodifica: interpretazione codice operativo Esecuzione: attivazione esecuzione pertinente alloperazione. Es: operazioni AL su operandi (indirizzi), o operazione di salto (modifica PC) Temporizzazione scandita dal clock: ad ogni tick un passo elementare

7 Il bus di sistema Insieme di connettori (conduttori elettrici) che trasportano bit di informazioni collegando fra di loro lunità di elaborazione, la memoria e le varie interfaccie di ingresso/uscita. I trasferimenti sono gestiti dalla CPU (modalita master/slave) e si chiamano cicli del bus, che con la sua capacità ne determina la velocità. Componenti: BUS DATI BUS INDIRIZZI BUS DI CONTROLLO

8 La memoria centrale accoglie il materiale di lavoro, e cioe' dati e programmi di dimensioni ridotte (dellordine di Megabyte) tempi di accesso: dellordine delle decine di nanosecondi (circa 1 milione di volte piu veloce delle memorie di massa) prima di poter essere elaborata, linformazione deve essere acquisita dalla memoria centrale e caricata in uno dei registri della CPU insieme ordinato di parole (celle) che contengono istruzioni e dati una parola = n elementi di memoria binari (8, 16, 32, 64 bit) la posizione di ogni parola è identificata da un indirizzo la capacità di indirizzamento in memoria è definita dalle dimensioni del bus indirizzi e del registro indirizzi ad accesso diretto (random)

9 Parti della memoria centrale La memoria RAM : e realizzata mediante circuiti a transistori, è modificabile, cioè leggibile e scrivibile, ma è volatile e quindi deve essere continuamente alimentata per mantenere le informazioni. Allaccensione il suo contenuto e una sequenza casuale di 0 e 1. La memoria ROM: E solo leggibile: le informazioni sono di solito scritte in modo permanente dal costruttore. viene quindi caricata al momento della produzione del computer vi si accede ogni qualvolta questo viene acceso contiene il bootstrap, un programma contenente le prime istruzioni che la CPU deve compiere

10 Componenti del bus di sistema BUS DATI: trasferisce dati da master a slave e viceversa BUS INDIRIZZI: trasferisce indirizzi, ad esempio lindirizzo di un dato dal registro indirizzi alla memoria, per accedere al dato stesso BUS DI CONTROLLO: –da master a slave: codice dellistruzione da eseguire (es. lettura da disco); –da slave a master: info sul successo delloperazione

11 Le interfacce verso le periferiche Dispositivi elettromeccanici Costituite da: –porte di I/O: registri scrivibili e/o leggibili dalle periferiche: registro dati periferica, registro comandi periferica (RCP), registro stato periferica –circuiti ausiliari

12 Le memorie di massa Informazione memorizzata su supporto magnetico (o ottico) Memoria permanente: le informazioni sono raggruppate in file gestiti dal sistema operativo Dischi rigidi: Tempi di accesso dellordine delle decine di millisecondi; floppy disk: dellordine delle centinaia di millisecondi Nastri: Per memorizzare informazioni storiche (back-up) CD-ROM: sola lettura

13 Struttura dei dischi rigidi -testine -superfici -tracce -cilindri -settori

14 Esempio di istruzioni in assembler Codice binarioCodice operativo simbolico 0000LOADA 0001LOADB 0010STOREA 0011STOREB 0110ADD 0111DIF 1010JMP 1011JMPZ 1100NOP 1101HALT 0100READ 0101WRITE

15 Cicli di bus: esempi Operazione di lettura da memoria (LOAD): –la CPU carica indirizzo della parola di memoria (operando del RIC) nel registro indirizzi e lo trasmette alla memoria via bus indirizzi –la CPU invia il comando di RM sul bus di controllo –la memoria trasmette sul bus dati il contenuto della parola verso il registro dati –la memoria segnala al processore sul bus di controllo che loperazione e stata completata con successo: il dato si trova nel registro dati Operazione di scrittura in memoria (STORE): –la CPU carica indirizzo della parola di memoria dove si vuole scrivere (operando del RIC) nel registro indirizzi e lo trasmette alla memoria via bus indirizzi –la CPU carica nel registro dati la parola da scrivere in memoria –la CPU invia il comando di WM sul bus di controllo –la CPU trasmette sul bus dati il contenuto del registro dati verso lindirizzo di memoria segnalato. –la memoria segnala al processore sul bus di controllo che loperazione e stata completata con successo: il dato si trova nella parola di memoria destinazione

16 Piccolo esempio di programma assembler Cella di mem.Cod. Oper.Operando 0INPUT8 1INPUT9 2LOADA8 3LOADB9 4MUL 5STOREA8 6OUTPUT8 7HALT 8(INT) 9(INT)

17 Il Sistema Operativo programma di grandi dimensioni e complessità che permette allutente di interagire col sistema sviluppo di un S.O.: centinaia di anni-uomo poca teoria, solo in alcune aree: perché prima sviluppo tecnologico, poi teorizzazione perché aspetti non di calcolo ma di ottimizzazione, gestione di interazione, gestione di malfunzionamenti etc. perché problema intrinsecamnete complesso e interdisciplinare complessità estrema: studio per livelli di macchine astratte per ragionare a diversi livelli di astrazione

18 Funzioni di un S.O. Relazione Macchina/Utente: –comandi espliciti, da tastiera –comandi interni, da programma Funzioni: –Gestione lavori –Supporto per la programmazione –Meccanismi di I/O –Gestione archivi (file)

19 Gestione lavori Riconoscimento degli utenti: login, password,… Assegnazione risorse: periferiche, memoria di massa.. Accounting (costo di esecuzione dei programmi) Attivazione sequenze di azioni: ad esempio »caricamento file XXX.C in memoria »caricamento compilatore c in memoria »attivazione compilazione e gestione file oggetto XXX.obj »ripetiz. questi passi per ogni sottoprogramma »attivazione linker e gestione file XXX.exe »attivazione loader »assegnazione risorse al programma (memoria e CPU) »terminazione lavoro e rilascio risorse

20 Supporto per la programmazione Messa a disposizione di: Editors: normali, WordProcessors, guidati dalla sintassi Debuggers: breakpoints, step-by-step, dump registri Librerie: funzioni matematiche, funzioni grafiche, etc. Programmi per la gestione di grandi progetti: cataloghi, versioni etc.

21 Meccanismi di I/O Il S.O. permette di vedere le periferiche: più numerose: maschera conflitti su periferiche condivise più potenti: primitive di alto livello più affidabili: gestione malfunzionamenti

22 Il Modello a Buccia di Cipolla di un S. O. HW Nucleo (gestione dei processi) Gestione della memoria centrale Gestione periferiche File system Programmi di utilita Interprete comandi

23 GESTIONE DEI PROCESSI: IL NUCLEO Il termine processo fa riferimento a un programma durante la sua esecuzione; Un processo è un oggetto dinamico che evolve nel tempo, contrapposto a un programma che è un oggetto statico ed invariante nel tempo. Nel contesto dei sistemi operativi, lunità di elaborazione che esegue i processi è detto processore. In un sistema a processi, uno solo dei processi può essere in esecuzione in un certo istante, cioè eseguito dal processore. Gli altri processi sono rispettivamente pronti oppure in attesa. I primi possono andare in esecuzione immediatamente, i secondi devono attendere il verificarsi di un evento esterno per passare in stato di pronto.

24 Stati di un processo In esecuzione Pronto In attesa Attivo

25 RELAZIONI TRA PROCESSI I processi devono essere sincronizzati, cioè le loro attività devono essere coordinate. Il coordinamento più semplice è quello sequenziale: un processo termina invocando lattivazione di un altro processo. Sincronizzazioni più complesse: –cooperazione = interazione desiderata e prevista –competizione = conflitto tra due programmi per lassegnazione di una stessa risorsa. Due modi per sincronizzarsi: la condivisione di variabili, in modo da creare unarea di memoria comune da utilizzare a turno; lo scambio di messaggi attraverso la condivisione di un canale.

26 Operazioni di input/output Si dividono in due sottocasi: Linformazione da parte della unità di input (o di output) del suo stato di pronto; La richiesta da parte del programma di dati di input (o la segnalazione di voler rilasciare dei dati in output): interruzione interna o sincrona o anche chiamata a supervisore (SVC).

27 POLITICHE DI GESTIONE DELLUNITA DI ELABORAZIONE Un processo attivo può essere arrestato di autorità dal nucleo per seguire ciascun programma utente entro un tempo approssimativamente proporzionale alla complessità del programma, senza creare ingiustizie.

28 La gestione della memoria centrale (memoria virtuale) Una parte della memoria è dedicata al sistema operativo (Supervisor mode), ed il resto ai processi utente (User mode). Problemi da risolvere: –definire delle tecniche per suddividere la memoria tra i vari processi –assegnare una o più porzioni a ciascun processo, attuando la migliore politica di gestione nel tempo –rilocare i programmi, cioè trasformare gli indirizzi logici, presenti nei programmi, in indirizzi fisici, corrispondenti alle locazioni di memoria ove i programmi sono stati caricati Principali meccanismi di suddivisione della memoria: –segmentazione –paginazione

29 Rilocazione Gli indirizzi di un programma eseguibile possono presentarsi in due modi: in formato assoluto, cioè calcolati a partire da una specifica cella di memoria; in formato rilocabile, cioè calcolati come se il programma dovesse essere caricato in memoria a partire dalla cella zero.

30 Politiche di gestione della memoria centrale Scelta delle pagine da scaricare: 2 principi: località spaziale: favorire il mantenimento in memoria centrale di aree di memoria vicine a quella che il processo sta già usando, perché gli accessi tendono a concentrarsi in zone vicine tra loro (es. arrays, codice etc.) località temporale: favorire il mantenimento in memoria centrale delle aree usate più di recente (Least Recently Used) perché si ritiene verranno usate di nuovo in futuro Per la paginazione si può decidere a priori di assegnare ad ogni programma un numero fisso di pagine oppure si decide volta per volta. Nel caso dei segmenti si usa il cosiddetto BEST FIT, ovvero si alloca a ciascun programma il più piccolo segmento libero di memoria che lo contiene.

31 GESTORE DELLE PERIFERICHE VIRTUALI Si occupa di far credere allutente di avere a disposizione delle periferiche più potenti, più affidabili e più numerose di quanto siano effettivamente, cioè permette allutente di utilizzare dei comandi di alto livello. I comandi che si rivolgono alle periferiche sono primitive (comandi messi a disposizione dal sistema operativo) di alto livello. I meccanismi di gestione delle periferiche includono: driver fisici (hardware): attivati direttamente dal gestore delle interruzioni per eseguire le operazioni di trasferimento e manipolazione dei dati; driver logici (software): forniscono la traduzione da primitive di alto livello a comandi di basso livello per i driver fisici (servono come interfaccia tra il programma utente e il driver fisico); spooling system: sottosistema usato dalle stampanti per gestire code di richieste di stampa e non tenere in memoria dati inutili; file speciali: la gestione della periferica da parte dellutente assomiglia a quella di un file.

32 Gestione archivi (file) Accesso ai file in modo logico: meccanismo nome /indirizzo Privatezza: gestione autorizzazioni Affidabilità: integrità dei files in caso di malfunzionamento

33 Il FILE SYSTEM Permette a un utente di creare un file, identificarlo con un nome simbolico, collegare il suo nome con la sua posizione in un opportuno spazio nella memoria di massa e accedervi in lettura e scrittura. Maschera le caratteristiche fisiche dellunità di memorizzazione Realizza dei meccanismi di controllo per gestire la concorrenza sui file. Particolari informazioni inerenti il file sono contenute nei descrittori, come ad esempio il nome, lindirizzo del primo blocco (o settore), il metodo di accesso, il creatore, i diritti di accesso, la data di creazione e dellultima modifica.

34 Le directory I file vengono organizzati in strutture, dette directory, organizzate ad albero. Ciascuna directory ha un unico nodo radice (root). Lintero file system ha un proprio nodo radice al di sotto del quale si aprono varie directory che ospitano programmi di sistema e file di utente. Laccesso ai file, avvenendo attraverso il nome del file stesso, è possibile attraverso il path name, un nome completo che include lintero cammino dalla radice al file.

35 Operazioni sui file Operazioni di gestione –open (filename, mode) Per aprire un file. –close (filename) Per chiudere un file. –remove(filename) Per cancellare un file. –rename(filename,newname) Per cambiare nome ad un file. Operazioni di lettura e scrittura read write

36 I programmi di utilita I programmi dellambiente di programma- zione Gli strumenti di produttività (editor, fogli elettronici,..) I sistemi di gestione di basi di dati I sistemi per linterazione con la rete...


Scaricare ppt "Informatica B Allievi Elettrici - AA 2000-01 Larchitettura di un calcolatore e il sistema operativo."

Presentazioni simili


Annunci Google