Anteprima parziale del testo
Scarica Informatica-Informatica appunti-Computer Science e più Appunti in PDF di Informatica Medica solo su Docsity!
5/20/25, 11:23 PM Informatica appunti nformatica ‘about:blank 1/155 5/20/25, 11:23 PM ‘about:blank Informatica appunti La codifica dell’inf ione. La codifica dell’informazione fa parte del macro-argomento dell’architettura di un elaboratore. TI termine “informatica” deriva dalla crasi di due parole: la radice di lunghezza 6 di informazione + il suffisso di lunghezza 5 di automatica; per cui informatica = informazione + automatica. Più nel dettaglio, l'informatica è quella disciplina che si occupa di far elaborare l’informazione a delle macchine, per cui all’equazione precedente può essere aggiunto che: informatica = informazione + automatica = elaborazione 0 trattamento + automatico + dell’informazione. All’interno del termine “informatica” vengono quin i indi iduate sostanzialmente tre parole chiavi: 1. Elaborazione > Viene suddivisa in tre sotto parti a. Elaborazione dei sistemi operativi = software b. Elaborazione dei dati = utilizzo di software predisposto da altri (es. fogli elettronici) e. Elaborazione dei programmi 2. Automatica > significa una macchina, in poche parole analizzando questo termine cercheremo di capire in che modo funziona una macchina e quali sono i suoi componenti principali 3. Informazione Informazione: L'informazione è accompagnata sia da un dato sia dall'insieme delle istruzioni che io posso effettuare sul dato, per cui ad una stessa scrittura possono essere associate delle istruzioni differenti. Una macchina, ovviamente, non è consapevole del significato dell’informazione, che deriva da ciò che decidiamo noi. Noi vedremo la codifica dei «Numeri naturali, detti anche numeri semplici > numeri privi di segno * Caratteri Ho bisogno di rappresentare l’informazione all’interno della macchina in quanto, se da un punto di vista logico quest’ultima non è altro che un dispositivo che serve per eseguire delle istruzioni semplici messe una di seguito all’altra in modo da risolvere i problemi [do un input per ottenere un output, ovvero la soluzione del problema], da un punto di vista fisico è costituita da una serie di dispositivi, o meglio componenti elettroniche, che concepiscono solo ed esclusivamente due condizioni opposte, ossia il passaggio o meno della corrente elettrica, e che sono rappresentate con “0” [assenza di voltaggio, chiuso] e con “1” [presenza di voltaggio, aperto]. I computer concepiscono solamente queste due condizioni in quanto sono costituite, sostanzialmente, da milioni di transistor che sono integrati all’interno di una placca di silicio per cui il processore, che è il cervello della macchina, è fatto da milioni di interruttori. Nel caso della macchina l’interruttore (il transistor) non viene azionato manualmente ma elettricamente, per cui il ruolo della mano viene svolto da un voltaggio. Tutto ciò comporta che per rappresentare un'informazione all'intero di una macchina, devo esprimerla necessariamente come delle sequenze di “0” di “1”. Da un punto di vista logico, lo “0” e 1°“1” prendono il nome di bit (binary digit, ovvero cifra binaria) e possono essere considerati come un quadratino di foglio riempito esclusivamente da uno dei due stai dei circuiti elettronici. In conclusione, tutta l'informazione con la quale abbiamo a che fare ogni giorno, deve essere tradotta in sequenze di 0 e di I. Una stringa è una sequenza di caratteri > es. Giulia = stringa composta da 6 caratteri Poiché un bit memorizza solamente due informazioni, per digitalizzare tutta la quantità di informazione è necessario mettere fra di loro i bit,in modo da formare i suoi multipli; ad esempio il byte è un raggruppamento di 8 bit, per cui è in grado di codificare, digitalizzare, 2 (256) informazioni. 1 bit ]2 informazioni ] 2 2/155 5/20/25, 11:23 PM ‘about:blank Informatica appunti Processo di codifica; prendo il carattere e guardo a che cosa è associato Esempio > Per codificare “B -spazio- r° [stringa di lunghezza 3 perché conta anche lo spazio, che ha una codifica propria così come tutti gli altri caratteri] ottengo = 1000010 0100000 1110010 Processo di decodifica: Per essere una codifica ASCII, la sequenza di bit deve essere necessariamente un multiplo di 7. In questo caso compio il processo opposto a quello della codifica. Esempio > Per decodificare 14 bit = 1111011000101 devo inizialmente suddividerla in gruppi di 7 e successivamente, utilizzando la tabella, devo guardare a quale carattere è associata la sequenza. Verifico quindi che la prima sequenza “1111101” corrisponde a “”, mentre la seconda sequenza “1000101” corrisponde a «E Osservazione sulla tabella di codifica ASCII: * All’intemo della tabella non troviamo numeri, bensì caratteri con un aspetto numerico, per cui non possiamo compierci operazioni di alcun tipo. * I caratteri con un aspetto numerico sono situati tutti sulla stessa riga, ovvero passando da un numero all’altro seguendo un ordine crescente notiamo che cresce solamente il bit meno significativo, cioè quello a destra. La tabella è stata strutturata în questo modo per rendere semplice il passaggio dalla codifica del carattere alla codifica del numero, e viceversa, parliamo quindi di una conversione automatica di tipo. Esempio: codifica del carattere 1 =0110001; codifica del carattere 0 = 0110000. Sottraggo le due sequenze [0110001 - 0110000] e ottengo la codifica del numero 1 [0000001], + La distanza tra una lettera maiuscola e la sua lettera minuscola è identica per tutte le lettere. Ciò permette la correzione automatica fra lettera minuscola e lettera maiuscola quando andiamo a capo. * Facendo una distinzione fra le lettere maiuscole e le lettere minuscole, osservo che le lettere maiuscole hanno una codifica più piccola per cui compiendo un ordinamento crescente precedono le lettere minuscole. Esempio > “anna” con la “a” minuscola precede “Anna” con la “A” maiuscola * Lo spazio è il carattere che ha la codifica più piccola rispetto a tutt gli altri. Esempio > Compiendo un ordinamento crescente osservo che “Bianchi zaira” precede “Bianchini bianca' Caratteri di controllo video non stampabili: categoria di caratteri codificati che stanno prima dello spazio. [esempio = l’invio]. Essendo tutti caratteri possono essere sostituiti e modificati automaticamente. Quanti bit sono necessari per codificare “giulia” in ASCII? 6*7 = 42 bit Codifica ASCII esteso: Per poter codificare una quantità maggiore di caratteri, la macchina deve aumentare il numero di bit; proprio per questo motivo molto presto è stata inventata la codifica dell’ASCII esteso che prevede 8 bit e permette quindi di codificare 256 informazioni. Poiché il passaggio doveva garantire che tutte le codifiche precedenti andassero bene anche per quella nuova, i bit viene aggiunto all’inizio della sequenza e corrisponde allo “0”. Esempio > Codifica/decodifica della parola cane. N.B: in questo caso devo accertarmi che la sequenza di bit sia un multiplo di 8 01000011 ]. 01000001 | 01001110 01000101 ] e Ta ÎN e Ì Quanti bit sono necessari per codificare “giulia” in ASCII esteso? 6*8 = 48 bit ] 4/155 5/20/25, 11:23 PM ‘about:blank Informatica appunti Codifica UNICODE: codifica che utilizziamo oggi. Si tratta di un organismo internazionale che lavora in continuità per codificare i caratteri. Attualmente, a livello di caratteri standard, l’UNICODE viene effettuata su 16 bit, ovvero 2 byte, per cui ho 2'5 possibili codifiche di carattere che possono inserire all’interno della macchina. In conclusione, ’UNICODE non smette mai di cercare di standardizzare tutta la nuova informazione che è necessaria. Quanti bit sono necessari per codificare “giulia” in UNICODE? 6*16 = 96 bit ] Per quanto riguarda i numeri non è presente una tabella che fa corrispondere un simbolo ad una sequenza di bit; per cui dato un numero decimale (naturale senza segno) è possibile passare al corrispondente numero binario (espresso esclusivamente con 0 e 1) attraverso una serie di divisioni successive per 2, nelle quali si considerano tutti i resti. Il primo resto ottenuto è il bit meno significativo della codifica binaria (quello posto all’estrema destra della sequenza). Esempio: 10 = 1010 mi 10/2 Ss Resto 0 K 552 2 Resto 1 è 212 1 Resto 0 bi in 0 Resto 1 î Codifica del numero 137 | Codifica del numero 18= = 10001001 10010 La sequenza di bit che viene disposta dalla macchina è fissa, per cui, ad esempio, se la mia macchina lascia uno spazio fisso di 1 byte, il numero “10” verrà codificato come 00001010. In poche parole vado ad aggiungere gli “0” negli spazi a sinistra che mi rimangono liberi. Motivo per cui utilizziamo questo metodo: 111010= Lx 10® + 1x 10°+ 1 x 10! + 0x 10° > Codifica nel nostro sistema di numerazione di 1110 Il nostro sistema di numerazione è decimale, ha quindi dieci cifre che vanno da 0 a 9, mentre la macchina ha un sistema di numerazione binario, per cui ottengo che: 1110=cxx 2 +c2x 2° +c1x2+ cax2°. 11 resto della divisione intera per 2 è C°, mentre în quoziente della divisione intera per 2 è csx 22 + cox 2 + ci x.2°. Per questo motivo, nella divisione, il primo resto che io ottengo è il bit meno significativo. ifica: Data una stringa binaria è possibile ottenere il corrispondente numero decimale moltiplicando ogni bi della stringa per la potenza di 2 corrispondente all’indice della cifra considerata e sommando tutti i risultati. Spiegazione > data una sequenza di simboli “0” e “1”, ovvero di bit, devo ottenere il corrispondente numero espresso nel nostro sistema di numerazione. 101100002 Lic ZHint Oi Zark Lai Lin+ Lic Zini+ Oni cit +0 Zi = 33 Laici B2ici + Oc gici + Lic Baci * Licio Odin Lei +0 ci 5 ai ivi dc = Hai 1011101014 Zi init crt Liri Vai Ziit td Datch scr ai Lic = Lu 2560 UcABdii Li Bit LIZ Laino L6irt Odia Brit Lair i+ Obi is+ Laica = art Bit art Tr 4 Ti Pin 5/155 5/20/25, 11:23 PM ‘about:blank Informatica appunti Computer]; il suo peso equivaleva a 30 tonnellate ed occupava uno spazio di 180 m?, inoltre la prima volta che venne acceso lasciò completamente al buio la cittadina accanto a dove era fisicamente situato perché dissipava una quantità di calore molto grande che assorbiva tutta l'energia possibile. 1 calcolatori di oggi si basano quindi sui risultati ottenuti da Von Neumann, ciò significa che pur avendo fatto dei grandi sviluppi, il modello concettuale è rimasto invariato. Prima di questi studi, per eseguire dei programmi differenti era necessario intervenire a livello fisico (hardware) sulla macchina: delle ruote dentate, che rappresentavano gli input, venivano impostate per stabilire, ad esempio, quali numeri dovessero essere sommati. Se invece che sommare i numeri volevo sottrarli 0 compiervi un’altra operazione era necessario intervenire manualmente per modificare questi dispositivi. L'idea quindi di Von Neumann è stata quella di farrisiedere in una memoria (che prende il nome di memoria centrale o RAM) i programmi che l’utente decide di far eseguire, ovvero il software, e i dati sui quali questi software lavorano, senza il bisogno di apportare alcun tipo di cambiamento fisico per far seguire un programma; progetta quindi nel 1947 il primo calcolatore con programmi memorizzabili anziché modificati mediate cavi e interruttori. Il suo modello prevede 5 componenti principi Unità centrale di elaborazione, chiamata anche processore, microprocessore 0 CPU [Central Processing Unit]: esegue istruzioni per l'elaborazione dei dati e svolge anche funzioni di controllo. Memoria Centrale o RAM [Random Access Memory]: memorizza e fomisce l’accesso a dati e programmi in esecuzione Memoria di Massa: memorizza permanentemente i dati ed i programmi e prevede accessi in lettura e scrittura. Spiegazione > Sono memorie che servono per memorizzare grandi quantità di dati. Esempi di memoria di massa sono: hard disk, chiavetta, SSD, CD, DVD .... 4. Dispositivi di Ingresso-Uscita (I/O): componenti di collegamento con le periferiche del calcolatore Esempi > la tastiera, il mouse, gli schermi touch, i microfoni ... 5. Dispositivi di collegamento (BUS): svolgono funzioni di trasferimento di dati, indirizzi e di informazioni di controllo tra le varie componenti funzionali. 1) Unità centrale di elaborazione, chiamata anche processore, microprocessore o CPU [Central Processing Unit] Spiegazione > Dobbiamo immaginare la CPU come se fosse idealmente divisa in due parti: «Data path: Contiene una serie di circuiti che prendono il nome di ALU [Arithmetic and Logic Unit = unità aritmerico-logica], e che avvalendosi di opportune memorie svolgono i conti. Si occupa dell'effettiva elaborazione dei contenuti nei registri generali, ovvero memorie veloci ma molto piccole, composte quindi da pochi bit, che servono di supporto alla ALU per svolgere le operazioni. Caratteristiche della ALU: ® leggei dati contenuti all'interno dei registri generali, esegue le operazioni e memorizza il risultato in uno dei registri generali. ® Vi sono circuiti in grado di eseguire la somma di due numerî binari contenuti în due registri e di depositare il risultato in un registro e circuiti in grado di eseguire il confronto tra due numeri. N.B: la ALU fa somme solamente di due numeri, per cui se vuole sommare, ad esempio, 6 numeri deve sommare i primi due, dopodiché al risultato somma il terzo numero, successivamente al risultato ottenuto somma il quarto numero, ecc. ... Questo perché la ALU esegue operazioni elementari. * Sempre più spesso alla ALU si affianca un processore specializzato per effettuare operazioni matematiche particolari, denominato il coprocessore matematico. > Di coprocessori ne esistono tanti; quello che in particolare aiuta a fare i conti è questo. Ad oggi, quasi tuttii dispositivi, anche quelli di ingresso e di uscita, sono dotati di processori propri perché se dovesse essere solo ed 7 7/155 5/20/25, 11:23 PM ‘about:blank Informatica appunti esclusivamente il processore principale a gestire tutte le operazioni che si svolgono all’interno di un calcolatore, la macchina sarebbe molto lenta. In questo modo invece, il processore principale invia Je istruzioni al processore aiutante, in modo da svincolarsi dal seguire le informazioni. Le schede grafiche sono tutte dotate di un proprio processore in modo che il processo principale dice al suo aiutante cosa deve mostrare, ma tutte le informazioni vengono svolte dal processore contenuto nella scheda grafica. 1 varî processori “aiutanti” sono ovviamente delegati e specializzati, per cui sanno svolgere bene una particolare operazione [es. il processore all’interno della stampante sa gestire la stampa, il processore della scheda grafica sa rendere bene al video le immagini]. CU (Control Unit = Unità di controllo): coordina le attività di tuto il resto della popolazione collocata all’intemo del processore, dando gli ordini alla ALU. Esegue le operazioni finalizzate al trasferimento dei dati 0 al controllo dell'esecuzione dei programmi, che sono: a) Coordinare le operazioni di tutto il processore > il processore svolge la sua attività in modo ciclico: ad ogni ciclo corrisponde l’esecuzione di una istruzione macchina, ovvero diverse attività controllate e coordinate dalla CU chiamate fetch-decode-execute: * Si legge, ovvero si carica, dalla memoria principale la prossima istruzione da eseguire (fecht) * Si decodifica l'istruzione e si caricano eventuali dati dalla memoria (decode) % Si esegue l’istruzione (execute) % Si memorizza un eventuale risultato (informazione elaborata) in memoria Regolare il flusso dei dati ed indicare quali registri devono essere collegati agli ingressi e all'uscita della ALU ©) Inviare alla ALU il codice dell’operazione da eseguire > Dice alla ALU quale operazioni eseguire sui dati che precedentemente gli ha comunicato ed indica il posto dove collocare il risultato 4) Ricevere indicazioni sull'esito dell’operazione appena eseguita dalla ALU e gestirla opportunamente > ricede dei feedback sull'esito dell’operazioni b) Esempio: La CU ordina alla ALU di prendere il 6 ed il 7, successivamente impartisce l’ordine da svolgere ed indica il posto nel quale deve essere collocato il dato. 8/155 5/20/25, 11:23 PM ‘about:blank Informatica appunti le operazioni più velocemente rispetto a quelli con frequenza minore. Ogni macchina ha una frequenza di clock. Overclockare > truccare il processore in modo da costringerlo, sfruttando i margini a disposizione, a emettere dei segnali più serrati in modo da eseguire le operazioni più velocemente. Tuttavia, se il processore viene modificato esageratamente si brucia perché non è fatto per mandare queste correnti a giro così rapidamente. Ad oggi, per Ta frequenza dei clock, andiamo nell'ordine dei Gigahert. Per l'acquisto di una macchina, oltre a tener di conto della A frequenza dei clockè utile considerare anche la dimensione dei Parametri CPU registri e dei bus dati: prendendo il processo spiegato prima, nel quale le istruzioni per essere eseguite devono andare dalla RAM al processore che mette in moto tutti gli agenti necessari per l'esecuzione; è possibile descrivere la differenza fra un - Frequenza clock (multipli Hz) processore avente dei registri con 64 bit ed un processore avente dei registri con 32 bit > chiaramente nel secondo caso, poiché il processore ha una capienza più limitata, l'informazione proveniente dalla RAM deve essere spezzata per cui per svolgere l'esecuzione occorre il doppio del tempo. - Frequenza bus (MT/s) Per quanto riguarda i bus, bisogna fare attenzione che quest'ultimi abbiamo dimensioni uguali a quelle del registro, perché altrimenti le operazioni della nostra macchina sono comunque rallentate. Allo stesso modo è inutile avere bus o registri con dimensioni grandi se poi i primi sono lenti, tenendo di conto che la loro frequenza si misura in milioni di trasferimenti al secondo. - Dimensione registri e bus dati (bit) Le memori Le memorie sono classificate în base a due elementi. «La funzione: le memorie hanno due scopi principali, il primo è quello di essere di supporto alla CPU mentre secondoè quello di memorizzare grandi quantità di dati istruzioni, fomendoli più rapidamente possibile alla CPU. Parliamo della memoria centrale, ovvero la RAM > memoria di tipo elettronico che funziona coni passaggio di corrente e che è molto veloci ma anche molto più costosa rispetto alle memorie di massa. Banchi di RAM: sono gli elementi fisici che rappresentano la memoria elettrica. Sono costituiti dai pin, chiamati anche piedini, (la fascia dorata in fondo) che. RIMINI sono inseriti in appositi lot e che hanno lo scopo di recuperare i bus n modo da scambiare le informazioni con tutto i resto delle componenti. La RAM ha il difetto di essere una memoria volatile (così come la cache), per cui necessita di essere alimentata in continuazione in modo elettrico perché al momento în cui la macchina viene spenta, il contenuto al suo interno può essere considerato vuoto > quando il calcolatore è spento nella RAM non c'è niente. + L'Archivio: deve garantire di archiviare dati e programmi garantendone la conservazione e la reperibilità anche dopo elevanti periodi di tempo [Un disco rigido, basato sui principî del magnetismo, viene garantito nell'ordine delle decine di anni; i CI sono garantiti nell'ordine delle centinaia di anni, mentre le chiavette non vengono garantite sulla base di un arco temporale bensì considerando il suo utilizzo, per cui più viene utilizzata e più viene degradata]. Stiamo parlando delle classiche memorie di massa che si basano su principi magnetici (leggi hard disk, leggi i nastri magnetici), ottici (leggi CD, leggi DVD) ed elettronici deggi SSD, leggi chiavetta), che non sono volatili, per cui mantengono i dati anche în assenza di alimentazione elettrica, che sono più economiche rispetto alla memoria centrale ma che, allo stesso tempo, sono più lente rispetto a quest'ultima (per questo motivo lc istruzioni che devono essere eseguite risiedono 10 10/155 5/20/25, 11:23 PM ‘about:blank Informatica appunti proprio nella RAM). Per valutare la velocità di funzionamento delle memorie di massa ci sono tanti parametri, fra i quali: >. Access time (tempo di accesso): intervallo di tempo tra il momento in cui una richiesta di accesso dalla CPU arriva alla memoria e l'istante in cui la memoria termina il proprio compito. >» Tempodi ciclo: tempo di accesso + tempo che deve trascorrere prima che possa iniziare un successivo accesso alla memoria. Esempio: Quando leggiamo un dato dalla RAM compiamo una operazione distruttiva, per cui prima di poter accedere nuovamente alla memoria quest’ultima deve riscostruirsi l'informazione precedentemente letta, ovvero deve ristabilire tutta una serie di condizioni prima di poter essere nuovamente operativa. Transfer rate: quantità di dati trasferiti nell'unità di tempo > velocità con cui i dati vengono trasferiti. Capacità: la capacità di una memoria la misuriamo con i multipli del byte ed indica la quantità di informazione che può contenere. Costo per bit: quanto costa produrre un bit. Modalità di accesso: Può essere diretta, sequenziale, mista ed associativa. vv vv 2. Memoria Centrale o RAM [Random Access Memory = Memoria ad accesso casuale] Spiegazione > Parliamo di memoria ad accesso casuale, 0 ad accesso diretto, in quanto la quantità di tempo che impiego per recuperare un dato è indipendente dalla posizione che quest’ultimo occupa all’interno della memoria. Quasi tutte le memorie elettroniche hanno un accesso diretto. Nei vecchi registratori, quando volevamo ascoltare un brano facevamo scorrere il nastro fino alla posizione in cui sî trovava la canzone desiderata, per cui sostanzialmente era necessario leggere, o meglio scandire sequenzialmente, tutta l'informazione che precedeva quella richiesta; è questo il caso di una memoria ad accesso sequenziale nella quale l’accesso dell’informazione non è diretto poiché il tempo è dipendente alla sua posizione. Esiste infine una memoria ad accesso misto (dischi în vinile) all'informazione, ovvero in parte diretto ed in parte sequenziale. Ilcompito della RAMè quello di mantenere le istruzioni oggetto di esecuzione e i dati sui quali queste operano. La RAM è volatile, riscrivibile (per cui può essere sovrascritta l’informazione), veloce, meno capace, costosa e ad accesso diretto; inoltre è costituita da una successione di elementi bistabili raggruppati in celle di uguale lunghezza, ciascuna dotata di un indirizzo univoco (posizione all’interno della sequenza). È quindi importante distinguere il contenuto della memoria dall’indirizzo di quest’ultimo. Poiché la CPU è molto più veloce della RAM, è presente un “cuscinetto” fra la RAM, contenente le istruzioni ed i dati, ed il processore, colui che esegue le istruzioni sui dati, che corrisponde ad una ulteriore memoria denominata cache, più veloce della RAM. le cache sono meno dense delle RAM, contengono qi le maggiormente capienti bisognerebbe aumentame le dimensi Martedì 12 Marzo Nello schema di funzionamento di un calcolatore, secondo il modello di Von Neumann, il processore continuamente preleva informazioni ed istruzioni dalla memoria centrale e scrive în essa informazioni. La memoria centrale, il bus edi processore lavorano a velocità diverse (il processore è quello più veloce) e poiché la velocità complessiva del sistema è determinata dal componente più lento per accelerare questa interazione si impiega una memoria ad alta velocità localizzata tra il processore e memoria centrale, e chiamata cache. Un processore attuale ha una frequenza dell'ordine di qualche giga Hertz: un processore con una frequenza di 1 giga Hertz esegue una operazione in un miliardesimo di secondo Quando si esegue un programma, ovviamente le istruzioni che devono essere eseguite devono stare nei registri dell’unità di controllo che li decodifica, li capisce e che mette in atto tutti gli attori. Per prima cosa, l'istruzione da eseguire viene ricercata nella cache, se vi è presente viene fatta avanzare e entra nei registri dei processori 11 11/155 5/20/25, 11:23 PM ‘about:blank Informatica appunti 1. Da un punto di vista statistico il comportamento medio dell'utilizzo dei programmi è facile da prevedere: tipicamente le istruzioni di un programma che vengono eseguite si rivolgono al 10% di tutte le istruzioni che compongono un programma; ciò vuo! dire che utilizzando un programma noi facciamo sempre le stesse cose. 2. Per il principio che prende il nome di località temporale nell’esecuzione dei programmi > se un'istruzione fa riferimento ad un dato 0 ad un’altra informazione, è molto probabile che nell’immediato fiuturo farà riferimento nuovamente alla stessa informazione; per cui se attualmente il processore necessita di un particolare dato, molto probabilmente nell’immediato dovrà mandare în esecuzione la stessa informazione (cicli di MahtLab). Questo principio fa in modo che la politica di sostituzione sia quella che prende nome di LRU [last Recently Used]: si butta fuori quello che da più tempo non viene utilizzato. 3. Per il principio di località spaziale > interviene nel momento in cui lanciamo un programma. Per far eseguire un programma sarebbe sufficiente trasferire dall’Hard disk alla RAM solamente la prima istruzione. Molto probabilmente però, l’utente dopo aver mandato in esecuzione la prima istruzione, manderebbe în esecuzione anche la seconda, dopodiché la terza e così via... ciò comporterebbe una serie di trasferimenti che di per sé sono lenti. Proprio per questo motivo, il principio di località spaziale permette di trasferire, all’interno di questa gerarchia di memorie, le informazioni a blocchi; se così non fosse le macchine non sarebbero così tanto veloci come noi le vediamo. Poiché quando il computer è spento nella RAM non c'è niente ma per far eseguire un programma dal processore devono essere collocati nella RAM, dal momento in cui accendo la macchina al momento in cui arriva l'interfaccia utente del sistema operativo avviene la fase di bootstrap. Nelle macchine digitali sono presenti le ROM [Read Only Memory]: il loro nome storico deriva dal fatto che inizialmente erano memorie prodotte per stampaggio che di conseguenza potevano essere scritte solo dal costruttore della macchina, dopodiché potevano essere solamente lette. Ad oggi non si parla più di memorie ROM come memorie non riscrivibil bensì come memorie elettroniche flash (esempio: varie memorie elettroniche di massa). Le memorie ROM appartengono alla categoria firmware, un’intersezione fra il software e l'hardware, e all'intemo hanno delle istruzioni, per cui quando la macchina viene accesa questo piccolo programma contenuto nelle ROM viene eseguito e compie una diagnostica dei vari dispositivi collegati (fase di bootstrap): - identifica il processore - controlla la RAM e verifica se funziona - esamina l’hard disk e le periferiche collegate effettuando test diagnostici di base che controllano lo stato delle periferiche stesse - legge il settore dell'hard disk în cui sono contenute le istruzioni per l'avvio del sistema (carica nella memoria principale la parte principale del sistema operativo (keel) > va a prelevare il pezzo principale del sistema operativo, individuando la sua posizione del disco fîsso, infilandolo successivamente nella RAM. (Tutti i software, sistema operativo compreso, risiedono permanentemente sul disco fisso) Le periferiche. Generalmente le memorie di massa vengono fatte rientrare nella categoria delle periferiche, nome che indica tutto ciò che si trova alla periferia del calcolatore, che è costituito dal processore, dalla RAM ecc. ... Tutte le periferiche sono collegate alla macchina attraverso un'interfaccia, che non è quella utente, bensì quella della periferica che consiste in circuiti che fanno da tramite trail calcolatore (processore) e la periferica stessa; per cui il loro compito è di fungere da una sorta dî traduttore per tradurre i segnali interni del processore in un linguaggio comprensibile dalla periferica in modo da far funzionare quest’ultima in modo corretto. [sono dei circuiti]. Poiché appunto queste periferiche sono collegate al calcolatore attraverso un'interfaccia connessa al ‘bus di sistema, devono recuperare le autostrade dell’informazione; inoltre queste interfacce specifiche sono realizzate tramite una scheda inserita nel case del calcolatore e connessa al bus mediante opportuni connettori e sono collegate con le periferiche attraverso porte di ingresso/uscita predisposte sulla scheda stessa e accessibili dall’estemo. 13 13/155 5/20/25, 11:23 PM ‘about:blank Informatica appunti Costruire una macchina non è molto diverso nel fare le lego, in quanto sostanzialmente si tratta di infilare elementi all’interno di una superficie che prende il nome di scheda madre proprio perché alloggia le ‘componenti della macchina. Quando parliamo di memoria espandibile significa che uno, o più, degli alloggiamenti della RAM è vuoto. Ogni periferica è dotata di questa scheda che implementa l'interfaccia della periferica e serve per riuscire a colloquiare con il processore. Se all’intemo di una macchina ci fosse un solo BUS condiviso da tutti gli elementi (|) video, la stampante, la tastiera ecc. ... ) le. |-cute- informazioni non potrebbero essere inviate | (13 contemporaneamente e sarebbero necessari dei meccanismi di arbitraggio; per questo motivo nelle macchine modeme sono presenti dei BUS dedicati ad una sola periferica. Sempre più le periferiche sono dotate di processori, sempre più hanno dei BUS propri e dedicati. Unica cosa importante da sapere dei BUS: Non esiste più un BUS unico nelle macchine di oggi bensì sono presenti BUS dedicati alle singole periferiche, in quanto, se così non fosse ci sarebbe troppo traffico e la macchina sarebbe lenta. La scheda madre: _ Scheda madre La scheda madre contiene: 1. II processore 2. 1banchi di RAM Comettri por schede, 3. Le varie schede che implementano 9 seeiuotive le interfacce dei dispositivi hardware che vogliamo collegare alla macchina Conettoi per la memoria 4. La ROM > piccolo rettangolo che ha un ruolo importante in quanto, in sua assenza, le macchine non partirebbero 5. Tutta una serie di pile > Possono servire, ad esempio, È importante garantire la compatibilità delle componenti all’interno di una macchina per poterla costruire. Le memorie di massa: Le memorie di massa sono memorie elettroniche di varie dimensioni che hanno un accesso diretto all’informazione ed infine sono molto costose, per cui l’idea della tecnologia è quella di abbattere i costi per permeare l’ambiente. Gli Hard disk: 14 14/155 5/20/25, 11:23 PM ‘about:blank Informatica appunti Le memorie di oggi sono in realtà pile di dischi a doppia faccia, per cui posso scrivere e leggere in entrambe le superficie, e sono presenti delle testine, una per ogni superficie del disco. Queste testine sono attuate da un dispositivo meccanico che gli fa effettuare un movimento radiale sulla superficie del disco. indro: tutte quelle tracce poste alla stessa distanza dal centro. Se la macchina riesce gli conviene scrivere tutta ""*' l'informazione sul medesimo cilindro, in modo da evitare di mettere în azione dei movimenti meccanici e da ridurre il tempo impiegato. Il tempo di accesso all’informazione è composto da: * Seek time > tempo di ricerca della traccia, ovvero tempo impiegato dalla testina per spostarsi radialmente sulla superficie del disco * Latecy time > tempo di latenza, necessario affinché il movimento rotatorio del disco faccia passare il settore in cui è presente l'informazione sotto la testina di lettura e scrittura. Intervengono anche le velocità di trasferimento dell’informazione che vengono misurate in milioni di byte per secondo. Le memorie flash Le memorie flash sono memorie elettroniche ad accesso diretto con una velocità maggiore rispetto a tutte le altre memorie di massa ma allo stesso tempo più costose e con una minor capacità. Dischi ottici 1 dischi ottici si basano sul principio dell’ottica, relativo alla luce ed in particolar modo del laser, ovvero un fascio di luce molto luminoso ed estremamente focalizzato che può essere emesso in fasci di dimensioni molto ridotte, per cui non sî irradia più di tanto. Appartengono alla categoria dei dischi ottici i cd, i dvd e i Blu-ray, ognuno dei quali si è evoluto nel tempo; siamo infatti passati dai rom, ai worm ai rw. ROM [Read Only Memory] > primi cd che sono nati, con lo scopo di distribuire i brani musicali. Venivano realizzati per stampaggio, quindi avevano un costo molto basso. I dischi ottici sono costituiti da un materiale riflettente e da un altro materiale non riflettente: gli strati riflettenti prendono il nome di land mentre quelli non riflettenti prendono il nome di pit. Nel momento in cui un laser colpisce la superficie del mio disco, se prende uno strato riflettente il suo raggio riflesso sarà di un certo tipo, altrimenti se complisce lo strato riflettente il suo raggio riflesso sarà sicuramente meno intenso e con un'angolazione diversa. Da ciò conseguono quindi due situazioni differenti, ricollocabili allo “0” e all’”1” e quindi al bit. I bit sono quindi Jegati al tipo di raggio che viene riflesso, a seconda dello strato che viene complito. ‘WORM [Write Once Read Many] > si potevano scrivere solo una volta dopodiché era possibile solamente leggerlì in quanto le modifiche apportate alla superficie del disco nella fase di scrittura erano irreversibili, per cui non era possibile tornare indietro. In questi dischi era presente una superficie riflettente, sopra la quale era presente un ulteriore strato di materiale trasparente quando all’inizio il disco era vergine. Lo stato trasparente quando veniva poi colpito da un laser ad alta potenza generava una macchia di colore scuro, per cui non era più possibile accedere al di sotto [ad alta potenza il laser rompeva dei legami chimici creando macchie scure]. Bruciare la superficie trasparente era una modifica permanente. 16 16/155 5/20/25, 11:23 PM ‘about:blank Informatica appunti RW [Read and Write] > questi dischi sono riscrivibili, per cui le modifiche apportate a questi materiali frapposti sopra la superficie riflettente non sono permanenti ma reversibili. In questi dischi è presente uno strato riflettente sopra il quale è presente un ulteriore strato che ha la possibilità di cambiare stato, ovvero di diventare da cristallino a amorfo. Quando il laser ad alta potenza fa passare lo stato cristallino a quello amorfo, significa che la luce non riesce ad arrivare allo stato riflettente; se sono nello stato cristallino riesco allora ad arrivare di sotto. Il processo è reversibile perché se abbasso la potenza del laser e raffreddo la superficie, lo stato amorfo toma ad essere cristallino. La lettura avviene sempre con gli stessi principi dei dischi normali, con un laser a minor potenza. La differenza fra i cd, i dvd, e il Blu-ray: Le dimensioni dei buchi dei cd sono più grossi rispett | w 0a quelli dei dvd, la distanza tra le tracce è più piccola per cui a parità di dimensione del supporto nel dvd la densità dell’informazione è maggiore rispetto al cd, \\ ottenuta facendo i pit ei land più piccoli e serrando le > apirale più tracce su cui vi risiedono. Per cui i dvd hanno Pit più piccoli, spirale più serrata e laser rosso. Nei cd si usa un lasera infrarossi, mentre nei dvd si utilizza un laser sso. Nei Blu-ray i pit e i land sono ancora più piccoli e la distanza fra le tracce è ancora inferiore; inoltre il raggio laser utilizzato è il blu. “pit più piccoli (0.4 vs. 0.8 pm) rate {0.74 va, 1.6 um} laser rosso (0.65 vs. 0.78 um} Blu-ray > non c'è la “e” finale perché nel posto in cui sono nati non è possibile utilizzare nomi normali. ] Giovedì 14 Marzo Il sistema operativo è un software come tutti gli altr, per cui risiede nella RAM viene eseguito dal processore, ed ha lo scopo di fungere da intermediario tra la parte fisica (hardware) e l'utente. Sono quindi presenti diversi strati: il cuore (l'hardware), il sistema operativo (che maschera sia all’utente sia ai software di tipo applicativo tutta la complessità architetturale dei dispositivi digitali), i software applicativi ed infine, all’estemo, c'è l'utente che interagisce con il software operativo, per cui i software applicativi non hanno un accesso diretto ai dispositivi hardware ma solo ed esclusivamente attraverso il sistema operativo. Sistemi operativi: [windows, Linux, OS, Android, ecc..] 1 software applicati sono tutti quei programmi che non fanno parte dei sistemi operativi e che sono suddivisi in diverse categorie a seconda del tipo di problema che sono in grado di risolvere; esiste ad esempio il software per l'elaborazione del testo, il software per l’elaborazione dei dati (es. R, excelle), il software per le basi di dati (Microsoft, access, Oracol), il software per la grafica, il software per la risoluzione dei filmati, ecc. ... Oltre ai software applicativi sono prescti gli strumenti di sviluppo, ovvero ambienti di sviluppo integrati che permettono di scrivere il codice utilizzando un linguaggio di programmazione ad alto livello e di tradurre le istruzioni che scriviamo in alto livello in un insieme di istruzioni del tutto equivalenti ma scritte in un linguaggio particolare, ovvero quello macchina. Quando l’utente scrive i programmi in MathLab scrive i codici sorgenti scritti in un linguaggio di programmazione ad lato livello in quanto hanno una sintassi ed unna semantica che riguarda parole inglesi. All’interno dell’idea di MathLab c'è una categoria di software che prendono il nome di traduttori che hanno lo scopo di scrivere un insieme i istruzioni, in un altro linguaggio, del tutto equivalenti a quelle scritte in un linguaggio ad alto livello: 7 17/155 5/20/25, 11:23 PM ‘about:blank Informatica appunti 1 sistemi operativi sono composti da sei moduli: 1. gestore dei processi 2. gestore della RAM 3. gestore dei dispositivi YO 4. gestore della memoria secondaria (Chiamato anche File System) 5. gestore di interpretazione dei comandi 6.. gestore delle reti. Da un punto di vista grafico: l'utente vede un'interfaccia utente, differente da quella delle periferiche, ed esegue dei “click” che vengono ricevuti da un primo software sottostante che è l'interprete dei comandi; vicino all'hardware vi è inoltre situato il nucleo dei processi (kemel). Infine, dal software applicativo partono frecce direzionali che lo collegano a tutte le altre bolle, per cui: il software applicativo dialoga con l’utente e si appoggia a tutte le altre componenti 0 moduli del sistema operativo. È una stratificazione dell’hardware con tutti questi rivestimenti, moduli, componenti software del sistema operativo, ognuno dei quali svolge i propri compiti ed aiuta l’altro. Distinzione fra il programma ed il processo: Il programma è un insieme, o meglio una lista ordinata di istruzioni. Si tratta quindi di una entità statica composta dal codice eseguibile dal processore. Il processo è un'entità dinamica poiché corrisponde ad un programma în esecuzione, per cui al passare del tempo il processo cambia. All’interno di un processo può cambiare il codice, ovvero l'istruzione che viene eseguita 0 il punto în cui questa lista si trova in esecuzione, i dati su cui lavora oppure il contesto, ovvero l’ambiente circostante in cui il processo sta evolvendo (in che stato è la RAM, în che stato sono i registri ecc....). Un processo può stare infine in tre fasi: 1. fase di esecuzione (uno solo) > avviene quando sta utilizzando il processore 2. fase di attesa (fase bloccato) > Il processo fase DI n scambio prin] . attende che sia terminata un'operazione di foi A tishicata DIO o risone input di dati oppure di poter usare una risorsa in quel momento occupata. In poche parole, il VO temminato 0 rtivorsa disp terminazione processo può attendere il verificarsi di un creazione evento esterno © che una risorsa hardware risulti disponibile. 3. pronto: quando è potenzialmente in condizione di poter utilizzare il processore che è occupato da un altro processo. L'utente fa “doppio click” su un programma, il processo viene creato e va a finire nell'insieme dei processi pronti per essere eseguiti dal processore, dopodiché ci sono delle politiche che altemano i vari processi eseguiti dal processore in quanto quest’ultimo è in grado di eseguire solamente uno alla vola. Chiaramente l’utente non si accorge di questo “limite” della macchina grazie alla velocità di quest’ultima, di futti i processori attuali hanno una frequenza dell'ordine dei gigahertz che gli permette di eseguire più di un'operazione ogni miliardesimo di secondo. Abbiamo quindi detto che il processo può passare dallo stato di pronto a quello in esecuzione, una volta collocato in questa seconda fase può tomare nello stato di pronto, proprio perché appunto i vari processi devono essere alternati senza che ognuno abbia la totale attenzione del processore, può 19 19/155 5/20/25, 11:23 PM ‘about:blank Informatica appunti terminare, oppure può avere necessità di una risorsa I/O entrando quindi nella fase di attesa. Dallo stato di attesa un processo torna nello stato di pronto quando l’utilizzo del dispositivo I/O è stato effettuato, in modo da proseguire la sua esecuzione (ritorna ad attendere l’attenzione della CPU). 1. Il gestore dei processi Il gestore dei processi è colui che gestisce il contesto di esecuzione dei vari processi, per cui li crea e li cancella, li sospende e li riattiva (dallo stato di pronto il processo prima o poi torna nello stato di esecuzione), fomisce i meccanismi per la loro sincronizzazione, comunicazione e per evitare, prevenire e risolvere î deadlock, gestisce il contesto di esecuzione di ognuno di loro [quando il processo passa dallo stato di esecuzione a quello di pronto viene fatta una specie di fotografia al contesto in modo da poterlo ripristinare nel momento in cui passa dallo stato di esecuzione a quello di pronto], gestisce l'alternanza nell’accesso alla CPU da parte dei processi in esecuzione, gestisce i compiti da assegnare alla CPU ed infine gestisce la risposta agli eventi esterni generati dalle unità periferiche. In poche parole, il gestore dei processi detta quali processi assegnare al processore secondo alcune politiche e gestisce la risposta generata dalle unità periferiche (quando la stampante ha finito di stampare manda al processore un feedback nel quale lo avverte di aver finito il proprio compito). Quindi, ricapitolando, dal punto di vista del processore în ogni istante vi è un solo processo di esecuzione, mentre dal punto di vista dell'utente, se l’alternanza tra i processi è frequente, l'impressione è che l'esecuzione dei programmi avvenga simultaneamente. Le politiche per alternare i processi nello stato di pronto eseguibili dal processore sono molte e dipendono dai vari sistemi operativi, 0 meglio dai vari software che vengono lanciati in esecuzione poiché non tutti hanno la stessa priorità: ad esempio, l’antivirus ha una priorità maggiore di word per cui se rileva qualcosa che non quadra salta la lista dei processi pronti prima di lui e va immediatamente in esecuzione. Per quanto riguarda la politica utilizzata per i processi operativi aventi tutte le medesime priorità, prende il nome di round robin, è di tipo FIFO [First In First Out], per cui il primo processo che entra nella lista è il primo ad essere assegnato al processore, € funziona a time-sharing (partizione del tempo), grazie al quale un solo processo non può monopolizzare il processore che assegna quindi ad ognuno dei processi un quanto di tempo. Cosa succede: supponiamo che nella lista dei processi pronti ci siamo tre processi, il primo di nome PI, il secondo di nome P2 ed il terzo di nome P3. PI, essendo il primo presente, passa subito allo stato di E, nel quale sta per il tempo che gli viene dedicato, dopodiché passa ad uno stato di P (pronto), ed il processore rivolge la sua attenzione al processo P2. Il processo P2 viene eseguito per il suo quanto di tempo, dopodiché anche a lui viene tolta l’attenzione del processore che viene \ —T 7 data al processo P3. Una volta che anche — quest’ultimo processo termina il suo () fsi quanto di tempo, PI che sì era nuovamente accodato, ripassa nello stato E ed il processo esegue nuovamente questo ciclo. Ad un certo punto, PI ha bisogno di una operazione IO, ovvero richiede la necessità di un dispositivo ingresso/uscita, per cui passa nello stato A (attesa) ed il suo posto nello stato E viene sostituito da P2, în modo da non lasciare il processore ad attendere senza far niente. Fino a quando PI è situato nella fase A, solamente P2 e P3 vengono alternati per ricevere l’attenzione del processore; nel momento în cui lo stato di attesa termina, PI passa nuovamente nello stato di pronto e si rimette in fila. o olo s è \ \ \ 0, BE [INI dd N Viù f Ò SII Round Robin e Q 20 20/155