Estratto del documento

Informatica generale

Università Milano-Bicocca

Slides, libro e appunti presi a lezione

Lezione 1 (5 ottobre), introduzione

Software principale il sistema operativo. Software applicativo è il software che installi sul SO, esempio Word.

L'informatica tratta i dati, che possiamo suddividere in:

  • Dati semplici: numeri, caratteri, date
  • Dati complessi: immagini, grafici, filmati, suoni, animazioni

Ciclo di elaborazione dell'informazione

  • Input: Inserisco qualcosa all'interno del ciclo dell'informazione, esempio passo un audio, un testo, dispositivi input: scanner, tastiera.
  • Elaborazione: Una volta raccolti i dati li possiamo elaborare, modificare un’immagine o un testo, possiamo sommare, unire più file.
  • Output: Per vedere, ascoltare, ..., i dati elaborati. I dispositivi sono stampanti, altoparlanti.
  • Memorizzazione: I dati utilizzati vengono memorizzati per essere sempre disponibili, la memorizzazione avviene sull’hard disk.
  • Distribuzione: I dati possono essere stampati, distribuiti o trasmessi da un computer a un altro, tramite e-mail documenti cartacei, internet.

Aspetti applicativi più rilevanti della IT (Information Technology)

  • Gestione aziendale: Sistema informativo aziendale = insieme di tutti i dati e tutti i processi che riguardano la raccolta, l’archiviazione, l’elaborazione, la distribuzione dei dati nelle attività operative e di controllo. Sistema informatico = insieme delle risorse tecnologiche facenti parte il sistema informativo.
  • Office automation, Database, Educazione, Commercio, Giochi ed intrattenimento.

1945: Proposta dell’architettura general purpose (macchina di Von Neumann).

1969: Nasce ARPANET, net = network, arpa = associazione militare americana.

Lezione 2 (11 ottobre)

Lingua del computer: linguaggio binario

- Segnali analogici: Sono segnali molto sensibili alle interferenze (rumore).

- Segnali digitali: Possono assumere solo 2 stati, per un dispositivo è semplice distinguere i due stati, per cui sono meno soggetti alle interferenze.

Le informazioni del mondo esterno vengono memorizzati/elaborate in un computer tramite una codifica “rappresentazione binaria”, quando le informazioni devono passare dal pc al mondo esterno avviene una fase chiamata decodifica, trasformare le informazioni da linguaggio binario a un linguaggio comprensibile per il mondo.

Informazioni tradizionali

  • Numeri (interi positivi, positivi e negativi, reali)
  • Testi

Informazioni multimediali

  • Immagini fisse (vettoriali, bitmap)
  • Audio
  • Video

Codifica binaria

Byte = 8 bit, 28 = 256 informazioni.

Sistemi numerici

- Sistemi numerici non posizionali: Il valore delle cifre è indipendente dalla posizione (esempio numeri romani).

- Sistemi numerici posizionali: Il valore delle cifre dipende dalla posizione all’interno del numero.

Sistemi numerici posizionali a base fissa

Il sistema decimale è un sistema posizionale a base fissa, che utilizza:

  • r = 10
  • d = 0,1,2,3,4,5,6,7,8,9

Esempio = 8427 (8 cifra più significativa, 7 meno significativa).

Anche il sistema binario è un sistema numerico posizionale a base fissa:

  • r = 2
  • d = 0,1
  • ogni cifra è detta bit (binary digit)

Il 2 come apice indica la base di scrittura ovvero base 2. Quando usiamo base 10 non la scriviamo.

Abbiamo trasformato un numero da numero in base 2 a un numero in base 10, ottenendo 11 in base 10.

Da decimale a binario

Sistema ottale

  • r = 8
  • d = 0,1,2,3,4,5,6,7

Sistema esadecimale

  • r = 16
  • d = 1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

Bit necessari

Le macchine hanno vincoli spaziali, è necessario conoscere il valore massimo rappresentabile.

Con n bit si può rappresentare al massimo.

Per poter rappresentare fino a X numeri, sono necessari un numero di n bit pari a.

Overflow: quando si supera il limite di bit consentiti, andiamo in overflow ovvero un errore di superamento del limite di scrittura.

L’unità atomica è il bit.

L’insieme di 8 bit è detto byte.

Word: tipicamente 16, 32 o 64 bit. L’insieme di bit è una caratteristica del calcolatore, essa influisce: sulla larghezza degli indirizzi, la dimensione dei registri del processore, la larghezza dei bus (word o multipli di essa).

Intervalli di variabilità

  • Bit: Numero di configurazioni 2
  • Intervallo di variabilità: 0,1
  • Byte: Numero di configurazioni 256
  • Intervallo di variabilità: dipende dal tipo di codifica

Codifica dei testi

Si utilizza una tabella arbitraria, con uno standard riconosciuto quasi universalmente. Che può essere:

  • Codice ASCII: (American Standard Code for Informatic Interchange), dove ogni carattere (simbolo) è codificato con 7 bit (128 simboli diversi).
  • Extended ASCII: 8 bit per carattere
  • UNICODE: 16 bit per carattere

Lezione 3 (12 ottobre)

Software

È il software che implementa la funzionalità di un sistema di elaborazione, possiamo distinguere i software in due categorie:

  • Software di sistema: sistema operativo e linguaggi di programmazione. Il sistema operativo permette di avviare programmi applicativi.
  • Programmi applicativi: come ad esempio, Google, Word, ecc.

Applicazioni: compiti eseguiti con l’ausilio del computer.

Programmi Applicativi: programmi utilizzati per svolgere le applicazioni.

Il processo dell’informatica

Le interfacce utente: rappresentano il mezzo di interazione tra l’utente e la macchina.

GUI: interfacce grafiche utente.

Caratteristiche comuni delle GUI

  • Interfaccia a finestre
  • Funzioni attivabili tramite click del mouse
  • Impiego della tecnologia WYSIWYG
  • Standardizzazione dei comandi tra le diverse applicazioni, es: copia incolla cerca taglia

Principali funzioni del SO

  • Gestire le risorse dell’elaboratore
  • Controllare che le operazioni vengano eseguite in modo regolare
  • Determinare dove memorizzare dati e programmi
  • Coordinare la comunicazione tra i vari componenti del computer
  • Gestire l’interazione tra l’utente e i programmi applicativi

Ruolo del BIOS

BIOS: basic input output system. Ciò che è memorizzato all’interno del BIOS non andrà perso ad ogni riavvio del pc o con un’interruzione brusca del pc (esempio interruzione di corrente).

  • È un programma memorizzato su un chip di memoria (ROM) con le seguenti funzioni:
  • Interpreta i dati trasmessi tramite tastiera
  • Visualizza i caratteri sullo schermo
  • Gestisce le comunicazioni attraverso le porte del computer
  • Fornisce un collegamento fra il SW e i componenti HW dell’elaboratore

L’interprete dei comandi: è la porzione di SO che si occupa di acquisire l’input dell’utente e di interpretarlo (esempio digitazione da tastiera, click con il mouse).

I nuovi SO sono multitasking (permettono l’esecuzione di più programmi contemporaneamente), i programmi per essere eseguiti hanno bisogno dell’accesso alla CPU, ma essendoci soltanto una CPU per computer, sarà il SO a regolare il processo di entrata nella CPU dai vari programmi.

In un SO multithreading i programmi applicativi possono svolgere più operazioni parallelamente.

Lezione 4 (18 ottobre)

Architettura dei calcolatori

Che cos'è un calcolatore? Come funziona un calcolatore?

- Un calcolatore è un sistema.

- Un sistema è un oggetto costituito da molte parti (componenti) che interagiscono, cooperando, al fine di ottenere un certo comportamento.

Studiare l'architettura di un sistema vuol dire:

  • Individuare ciascun componente del sistema
  • Comprendere i principi generali di funzionamento di ciascun componente
  • Comprendere come i vari componenti interagiscono tra di loro

Hardware e software

La prima decomposizione di un calcolatore è relativa alle seguenti macro-componenti:

  • Hardware: la struttura fisica del calcolatore, costituita da componenti elettronici ed elettromeccanici.
  • Software: l'insieme dei programmi che consentono all'hardware di svolgere dei compiti utili. Il software comprende il software di base (tra cui il sistema operativo) e il software applicativo.

Sommario hardware

La CPU comunica con la memoria attraverso i BUS.

  • L'unità centrale di elaborazione (CPU)
  • Componenti fondamentali
  • Data path
  • Ciclo macchina

Caratteristiche fondamentali del calcolatore

Capacità di eseguire sequenze di istruzioni memorizzate.

  • Calcolatore = Unità di Elaborazione + Unità di Controllo
  • Preleva le istruzioni dalla memoria
  • Interpreta i codici di istruzione
  • Effettua le azioni che questi prevedono

Organizzazione a livelli (calcolatore)

Hardware e software sono organizzati a livelli (o strati).

  • Ciascun livello corrisponde a una macchina (reale o virtuale) in grado di eseguire un proprio insieme di operazioni.
  • Ciascun livello fornisce un insieme di operazioni più semplici da utilizzare rispetto a quelle del livello sottostante.

Componenti di un calcolatore

Bus e soluzione master-slave

Il Bus è una linea a cui sono contemporaneamente connesse le unità del calcolatore e che consente trasferimento di dati tra tali unità.

Problema: contesa su un mezzo condiviso!

Soluzione: CPU = master, periferiche = slave.

Pregi bus e master-slave

  • Semplicità: 1 sola linea di connessione # di dispositivi
  • Estendibilità: nuovi dispositivi possono essere aggiunti tramite un'interfaccia al bus senza influenzare l'HW preesistente
  • Standardizzabilità: definizione di normative che consentono a periferiche di costruttori diversi di interagire correttamente

Difetti bus e master-slave

  • Lentezza: l'uso in mutua esclusione del bus inibisce almeno parzialmente la parallelizzazione delle operazioni di trasferimento di dati tra dispositivi
  • Limitata capacità: al crescere del numero di dispositivi la presenza di una sola linea comporta un limite alla capacità di trasferire dati
  • Sovraccarico della CPU: l'unità centrale viene coinvolta in tutte le operazioni di trasferimento di dati

Schema di riferimento dei bus

  • Bus dati: utilizzato per trasferire dati (es. fra memoria e CPU, fra CPU e interfacce di I/O)
  • Bus indirizzi: che identifica la posizione delle celle di memoria un cui la CPU va a scrivere o leggere
  • Bus di controllo: in cui transitano i segnali di controllo che consentono di selezionare le unità coinvolte in un trasferimento dati (sorgente e destinazione), di definire la direzione dello scambio (scrittura o lettura)

Lezione 5 (19 ottobre)

Architettura di Von Neumann

Burks, Goldstein e Von Neumann sono stati i primi a proporre che il codice del programma potesse essere memorizzato nella stessa memoria dei dati. Quando apro Word (installato sull’hard disk), un frammento di Word si va a memorizzare nella CPU per permettere al programma di funzionare.

  • Memoria indifferenziata per dati o istruzioni
  • Solo l’interpretazione da parte di CPU stabilisce se una data configurazione di bit è da considerare come un dato o come un’istruzione

CPU: Unità centrale di elaborazione

Elementi di una CPU

  • Unità di controllo: Legge le istruzioni dalla memoria e ne determina il tipo
  • Unità aritmetico-logica: Esegue le operazioni necessarie per eseguire le istruzioni, esegue operazioni di tipo matematico e di tipo logico
  • Registri: Supporti di memorizzazione all’interno della CPU, pro: accesso immediato contro: quantità di dati salvabili molto ridotta

Memoria ad alta velocità usata per risultati temporanei, servono per avere accesso a informazioni in maniera veloce.

  • Determina il parallelismo della CPU
  • Esistono registri generici e registri specifici: Program Counter (PC), Instruction Register (IR)

Tre tipologie di istruzioni

  • Istruzioni aritmetico logiche (Elaborazione dati): Somma, sottrazione, divisione, And, Or, Xor, ..., Maggiore, minore, uguale, maggiore uguale, ...
  • Controllo del flusso delle istruzioni: Sequenza, Selezione, Ciclo a condizione iniziale, a condizione finale, ...
  • Trasferimento di informazioni: Trasferimento dati e istruzioni tra CPU e memoria, Trasferimento dati e istruzioni tra CPU e dispositivi di I/O

Data path: percorso dati.

Esecuzione delle Istruzioni all’interno della CPU Ciclo Fetch-Decode-Execute: Prendi l'istruzione corrente dalla memoria e mettila nel registro istruzioni (IR) [Fetch]. Incrementa il program counter (PC) in modo che esegui l'istruzione contenga l'indirizzo dell'istruzione successiva. Carica la parola, se necessario, in un registro della CPU [Decodifica]. Se l'istruzione usa una parola in memoria determina dove si trova.

Struttura semplificata di una CPU

Registri di CPU

  • Registro Istruzione (IR): Usato per contenere l'istruzione in corso di esecuzione. Caricato in fase di fetch determina le azioni svolte durante la fase di esecuzione. I bit del registro I indicano l'istruzione appena letta dalla RAM e da decodificare.
  • Program Counter (PC): Tiene traccia dell'esecuzione del programma. Contiene l'indirizzo di memoria in cui è memorizzata la prossima istruzione da eseguire.
  • Registro Indirizzi Memoria (MAR): Contiene l'indirizzo della locazione di memoria da leggere o scrivere. La dimensione di MAR determina l'ampiezza dello spazio di memoria fisica. I bus hanno indirizzi di 32 bit. I bit del registro MAR indicano l'indirizzo di una parola in RAM cui contenuto deve essere letto o scritto dal processore.
  • Registro Dati Memoria (MDR): Registro attraverso il quale viene scambiata l'informazione tra la memoria e la CPU. Tradizionalmente la dimensione di MDR dà la misura del grado di parallelismo della macchina (8, 16, 32, 64 bit). I bit del registro MDR indicano una copia del contenuto di una parola in RAM letto dal processore o il valore di bit che devono essere scritti in RAM dal processore.

PSW: (Program Status Word) contiene info riguardo lo stato del programma.

RO, R1,...Rn: Registri di uso generale, sono supporti per l’esecuzione di istruzioni memorizzando ad esempio: il contenuto di una parola di memoria letta dal processare,..

Registro di Stato (SR): bit del registro SR indicano che una particolare condizione si è verificata a seguito dell'esecuzione di un'istruzione, ad esempio, se un'istruzione di somma genera un overflow allora la ALU scrive un certo valore nel registro SR.

CISC e RISC

sono due modi di esecuzione delle istruzioni nella CPU:

CISC: Complex Instruction Set Computing. Complex: esegue istruzioni complesse.

  • Un repertorio di istruzioni esteso è preferibile perché:
  • Istruzioni potenti semplificano la programmazione
  • Riduce il gap tra linguaggio di macchina e linguaggio di alto livello, perché può sfruttare istruzioni complesse
  • L'uso efficiente della memoria (all'epoca era costosa) era la preoccupazione principale: Meglio avere codici compatti

RISC: Reduced Instruction Set Computing. L’approccio RISK si basa su un numero limitato di istruzioni, non come il CISC.

  • Memorie più veloci ed economiche:
  • Posso anche mettere un numero maggiore di istruzioni, però più semplici.
  • Comportamento dei programmi:
  • L'80% delle istruzioni eseguite corrispondeva al solo 20% del repertorio
  • Conviene investire nella riduzione dei tempi di esecuzione di quel 20%, anziché aggiungere raffinate istruzioni, quasi mai usate, ma responsabili dell'allungamento del tempo di ciclo di macchina
  • Conviene costruire processori molto veloci, necessariamente con repertori

RISC - Criteri di progettazione

  • Frequenza di clock (velocità della CPU): Velocità con cui gli istanti di tempo si succedono all'interno della CPU. Si misura in HZ, che significa "volte al secondo". 2Hz = 2 volte al secondo.
  • Periodo di Clock: intervallo di tempo tra un istante ed il successivo. È l'inverso della frequenza di clock. Il periodo di clock deve essere sufficientemente "lungo" da consentire a tutti i segnali elettrici di arrivare.
  • Le istruzioni devono essere semplici, Tutte le istruzioni occupano lo stesso spazio di memoria (una parola).
  • Ristretto numero di formati. La codifica "ordinata" consente accorgimenti per velocizzare l'esecuzione (pipeline), difficilmente applicabili a repertori di istruzioni complesse.
  • La semplificazione del repertorio tende a far aumentare la dimensione del codice. Non è un problema, vista la tendenza alla riduzione dei costi e all'aumento della densità delle memorie.
  • Dal punto di vista della velocità i guadagni che si ottengono nel semplificare le istruzioni sono superiori all'effetto negativo del maggior numero di istruzioni per programma.

L'Unità Aritmetico-Logica (ALU) è costituita da un insieme di circuiti in grado di svolgere le operazioni di tipo aritmetico e logico. La ALU legge i dati contenuti all'interno dei registri generali, esegue le operazioni e memorizza il risultato in uno dei registri generali.

Come sono fatte le istruzioni

Che tipo di istruzioni può eseguire un processore, esempi:

  • Leggi la parola in RAM all'indirizzo 5 e mettila nel registro R0.
  • Scrivi il contenuto del registro R1 nella parola di memoria all'indirizzo y.
Anteprima
Vedrai una selezione di 9 pagine su 37
Informatica generale Pag. 1 Informatica generale Pag. 2
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 6
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 11
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 16
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 21
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 26
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 31
Anteprima di 9 pagg. su 37.
Scarica il documento per vederlo tutto.
Informatica generale Pag. 36
1 su 37
D/illustrazione/soddisfatti o rimborsati
Acquista con carta o PayPal
Scarica i documenti tutte le volte che vuoi
Dettagli
SSD
Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher diegomgiordano96 di informazioni apprese con la frequenza delle lezioni di Informatica generale e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Milano - Bicocca o del prof Moriani Sergio.
Appunti correlati Invia appunti e guadagna

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community