Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Introduzione alle architetture di calcolatori: bit, byte, processori, cache e scheduling, Appunti di Elementi di Informatica

Una introduzione alle basi di calcolo e alla struttura di un computer, inclusi bit e byte, processori, memoria cache e scheduling. Viene spiegata la conversione di numeri decimale a binario e base 16, l'organizzazione di file e directory, il funzionamento di registri e unità specializzate del processore, e la scheduling di processi. Il testo include esempi di codifica ASCII e tipi di file come PDF, HTML, JPG e GIF.

Tipologia: Appunti

2020/2021

Caricato il 15/04/2021

alp123
alp123 🇮🇹

4.6

(7)

14 documenti

1 / 10

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
Bit: unità minima di informazione costituita da una delle due cifre del codice binario (0 o 1)
Bite: ‘boccone’, insieme di 8 bit es. 01000111
1 all’estrema dx =bit meno significativo
1 all’estrema sx =bit più significativo
Conversione da numero in base 10 a numero in base 2
pf3
pf4
pf5
pf8
pf9
pfa

Anteprima parziale del testo

Scarica Introduzione alle architetture di calcolatori: bit, byte, processori, cache e scheduling e più Appunti in PDF di Elementi di Informatica solo su Docsity!

Bit: unità minima di informazione costituita da una delle due cifre del codice binario (0 o 1) Bite: ‘boccone’, insieme di 8 bit es. 01000111 1 all’estrema dx =bit meno significativo 1 all’estrema sx =bit più significativo Conversione da numero in base 10 a numero in base 2

Conversione da numero in base 10 a numero in base 16

Attraverso la codifica ASCII, ad ogni carattere viene associato un numero da 0 a 127, quindi rappresentabile su 7 bit. Se rappresentata su un byte, ovvero 8 bit, la codifica ASCII ha sempre il bit più significativo uguale a 0 CODIFICA DEL COLORE La codifica più conosciuta e diffusa è quella RGB(Red Green Blue). Tale codifica deriva dal vecchio modo di generare il colore nelle televisioni a tubo catodico. In queste televisioni, ogni pixel della televisione veniva colorato a seconda dell'intensità con cui veniva colpito da tre fasci di elettroni, ciascuno corrispondente a colori rosso, verde e blu •La codifica CMYK(Cyan, Magenta, Yellow, Key black), detta anche di quattricromia, è usata principalmente nelle stampanti a getto di inchiostro. In questo caso, un colore è rappresentato da 4 numeri, corrispondenti alla quantità della singola componente necessaria a riprodurre il colore. •La codifica HSV(Hue, Saturation, Value) dall'inglese “tonalità, saturazione, valore", è particolarmente orientato al modo in cui i colori vengono percepiti dall'essere umano, essendo basato sulla percezione che si ha di un colore in termini di tinta, sfumatura e tono.

Processore: dispositivo hardware che permette l'esecuzione di istruzioni (in Inglese: Central Processing Unit, CPU) Memoria cache: memoria dedicata a contenere parte del contenuto della memoria principale che viene utilizzata Memoria principale: dispositivo hardware dedicato a contenere programmi da eseguire e dati utili alla loro esecuzione. Programmi e dati sono presenti in memoria (memorizzati) sotto forma di sequenza di byte. La memoria principale è volatile: il suo contenuto viene perso dopo che il calcolatore viene spento. (in Inglese: main memory)a più frequentemente (in Inglese: cache memory) Bus di comunicazione: canale attraverso cui avviene la comunicazione fra i vari dispositivi presenti (in Inglese: bus) Periferiche di input/output: dispositivi che permettono al calcolatore di comunicare con l'esterno. (in Inglese: I/O devices) Controllore I/O: dispositivo che permette l'utilizzo delle varie periferiche (in Inglese: I/O controller) IL PROCESSORE Il vantaggio di svolgere operazioni sui registri invece che sulla memoria è che i primi, essendo piccole celle di memoria fisicamente vicine al processore, sono molto più veloci perché permettono l'accesso ai dati senza dover accedere al bus di comunicazione. processore preleva dalla memoria i dati di cui ha bisogno e li mette nei registri. Esistono diversi tipi di registro: •Registri “general purpose”: non hanno utilizzi specificie possono essere utilizzati per contenere dati generici •Registri che gestiscono gli accessi in memoria (MBR e MAR) •Registri di stato: mantengono informazioni relative allo stato del processore (per esempio la temperatura o quanto tempo è trascorso dall’accensione) •Il Program Counter (PC) e l'Instruction Register (IR) servono a gestire le istruzioni e verranno discussi in maggiore dettaglio più avanti Unità del processore All'interno del processore, oltre ai registri, ci sono unità che svolgono funzioni specializzate •la ALU (Arithmetic Logic Unit) permette di svolgere operazioni aritmetico-logiche (somma tra contenuti di registri, AND, OR, NOT...) •la FPU (Floating Point Unit) permette di svolgere operazioni con numeri in virgola mobile (che sono un modo •la Control Unit decodifica le istruzioni e ne supervisiona l'esecuzioneper rappresentare numeri decimali Fasi di esecuzione FASE DI FETCH: Il processore preleva dall'indirizzo di memoria contenuto nel Program Counter, l'istruzione che dovrà essere eseguita e la scrive in un altro registro chiamato Istruction Register (IR).

Come è possibile sapere quali saranno le informazioni di uso più frequente? Per stimare la frequenza di utilizzo dei dati vengono sfruttati due principi: la località temporale e la località spaziale. Per località temporale si intende il fatto che se una determinata locazione di memoria è stata acceduta, è molto probabile che essa venga acceduta anche nell'immediato futuro. Per località spaziale, invece, si intende che se una certa locazione di memoria è stata acceduta, allora anche locazioni di memoria limitrofe (ovvero con indirizzi vicini) saranno probabilmente accedute prossimamente Nelle architetture di calcolatori moderne, possono esistere livelli diversi di cache, a seconda della loro vicinanza al processore (che poi determina la velocità nell'accesso). Si parla di cache L1, L2, L3, etc. Al crescere dell'indice del livello della cache, le cache memory diventano sempre più grandi, lontanedalla CPU e lent In computer architecture, the memory hierarchy ‘ LA GERARCHIA DI MEMORIA’ separates computer storage into a hierarchy based on response time. Il processore, le memorie e tutti i circuiti integrati (integrated circuits, ICs, in inglese) sono circuiti elettronici realizzati su silicio. Attraverso a un processo simile alla stampa chiamato litografia, il silicio può diventare sia conduttore che isolante. Questo permette di disegnare circuiti integrati sul silicio. Inoltre, il silicio è disponibile in quantità abbondante e a basso prezzo Oggi l'aumento delle prestazioni non avviene più migliorando la singola CPU, ma aggiungendo un numero sempre crescente di processori. In questo caso si parla di architetture multi-processore o multi-core In informatica un opcode(CODICE OPERATIVO) è una porzione d'istruzione in linguaggio macchina che specifica l'operazione che deve essere eseguita. La lunghezza e il formato del codice sono disposti nel set di istruzioni del processore in questione SISTEM OPERATIVO Il sistema operativo offre l'accesso alle risorse hardware (HW) e software (SW) in un modo più semplice per il programmatore e una visione astratta dell'hardware Vantaggi: A prescindere dall'hardware sottostante il programmatore non cambia il proprio programma. Per esempio, le applicazioni non devono essere riprogrammate se cambia la dimensione di memoria del telefono (per esempio, a seguito dell'acquisto di una memoria più capiente): ècompito del SO gestire la memoria. Le applicazioni possono usare la memoria soltanto attraverso il sistema operativo. Svantaggi:Il SO è comunque del software aggiuntivo che introduce una piccola perdita di prestazioni rispetto all'utilizzo dell'hardware direttamente da parte del programmatore. Questo accade perché il SO, fungendo da mediatore fra l'applicazione e le risorse hardware disponibili, richiede del tempo aggiuntivo per lo svolgimento delle operazioni richieste dal programma Le risorse gestite dal SO includono: •Processore (Central Processing Unit - CPU). Il SO si occupa di assegnare la CPU aivari programmi che ne fanno richiesta. L'assegnazione delprocessore ai vari programmi avviene sulla base di alcunicriteri. si chiamaattività di scheduling e viene svolta da un componente del SOche si chiama process scheduler. •Memoria. Il SO gestisce la memoria assegnandola ai variprocessi che la richiedono o togliendola a quelli che larilasciano. Questo operazioni sono conosciute come attivitàdi memory management.

•Periferiche Input/Output (I/O). Il SO gestisce i vari dispositivi di I/O. Ilcodice che serve a far funzionare le periferiche costituisce ildriver della periferica. I driver delle periferiche più comunisono già all'interno del SO. I driver delle periferiche piùparticolari, invece, sono solitamente forniti dal produttoredella periferica. •File system. Il SO gestisce tutti i file presenti su disco in unastruttura ad albero composta da file e directory (note anchecon il nome di cartelle o folder) I programmi (detti anche software o applicazioni) sono sequenze di istruzioni che possono essere eseguite dal processore Durante il loro ciclo di vita i processi si possono trovarein tre stati: •Esecuzione: un processo si trova in stato esecuzione quandouna CPU è assegnata ad esso (dallo scheduler). •Pronto:un processo si trova in stato pronto quando potrebbeeseguire, ma lo scheduler ha deciso di non metterlo inesecuzione. Questo avviene, per esempio, quando sono presenti processi più importanti da eseguire. •Bloccato(o in attesa): un processo si trova in stato bloccatoquando, per poter proseguire, deve attendere il vericarsi unevento. Esempi di eventi in attesa dei quali un processo sipuò bloccare sono: la terminazione di un altro processo, laricezione di un messaggio, la liberazione di una risorsacondivisa con altri processi, il trascorrere di una certaquantità di tempo Creazione di un processo I processi vengono creati davari tipi di eventi:

  1. attraverso un'invocazione esplicita dell'utente. Questo avviene quando l'utente esegue un programma (mediante doppio click oppure invocandolo da terminale);
  2. all'accensione del computer (processi di start-up o inizializzazione). Per esempio, i server web quando vengono accesi creano vari processi che offrono servizi per l'utente che volesse visualizzare alcune pagine web;
  3. da un timer periodico. Esistono attività che vengono svolte periodicamente. Un esempio di processo attivatoperiodicamente e`quello di update manager che verifica (appunto periodicamente) la presenza di aggiornamenti ;4. a seguito di eventi hardware. Per esempio, la ricezione di un particolare messaggio dalla scheda di rete oppure la rilevazione di malfunzionamenti potrebbero rendere necessaria la creazione di un processo per gestire tali eventi. Dopo la creazione, i processi vengono messi in stato pronto. Potranno poi passare in stato esecuzione se lo scheduler deciderà in tal senso. Schedulazione di un processoLa schedulazione di un processo (ovvero l'assegnazione di una CPU al processo) viene decisa da un componente del SO detto process scheduler o più semplicemente scheduler(in italiano, schedulatore dei processi). Lo scheduler seleziona i processi da eseguire fra quelli pronti sulla base di alcune regole dette politiche di scheduling, che verranno discusse i n seguito. La schedulazione di un processo determina quindi il passaggio del processo dallo stato pronto allo stato esecuzione. Il numero massimo di processi in esecuzione è pari al numero di CPU disponibili. eseguire fra quelli pronti sulla base di alcune regole dette politiche di scheduling, che verranno discusse i n seguito. La schedulazione di un processo determina quindi il passaggio del processo dallo stato pronto allo stato esecuzione. Il numero massimo di processi in esecuzione è pari al numero di CPU
  1. ogni processo che diventa pronto, viene inserito in fondo allacoda
  2. lo scheduler preleva sempre i processi dalla testa della coda3. lo scheduler non è preemptive quindi quando inizia unprocesso, lo scheduler non può farlo tornare in stato dipronto con un pre-rilascio. Il processo però può andare instato bloccato quando richiede una risposta non disponibile,tornando così al fondo della coda.Lo scheduler FIFO traduce una regola di buon senso. Ha però una limitazione importante: se un processo breve trova in esecuzione un processo lungo deve aspettare che questo termini prima di essere eseguito