Fondamenti di Informatica – CdL in Ingegneria Gestionale A.a. 2007/2008 – Prof. Michele Amoretti Esempi di domande d’esame – 3 La prova d’esame è scritta, dura 2 ore e consiste di alcune domande a risposta aperta sugli argomenti del corso. Domanda Cosa è l’informazione e come viene rappresentata nei calcolatori elettronici? Risposta L’informazione è il significato associato a un messaggio (enunciato, testo, immagine, filmato, ecc.). Il messaggio ha il solo compito di convogliare e rappresentare l'informazione. L’informazione contenuta in un messaggio è ciò che rimane dopo che è stata eliminata ogni ridondanza Quest’ultima è un meccanismo di sicurezza: garantisce che una informazione venga ricevuta anche se il messaggio è stato leggermente danneggiato nel corso di una trasmissione (questo vale per qualsiasi tipo di comunicazione: vocale, radiofonica, visiva, ecc.). Shannon ha mostrato che qualsiasi informazione può essere rappresentata come sequenza (stringa) di simboli 0 e 1 (bit = binary digit), utilizzando cioè un alfabeto binario. Tra persone l’informazione viene scambiata utilizzando alfabeti più ricchi, a seconda del contesto (esempi di alfabeti sono quello italiano costituito da 21 simboli, l’insieme dei segnali stradali, ecc.). Un codice è un insieme di regole che mettono in corrispondenza biunivoca ogni simbolo appartenente ad un alfabeto più ricco con una stringa di simboli appartenente ad un alfabeto più ridotto. Per codifica si intende il processo di trasformazione dell’informazione secondo le regole definite da un certo codice. La decodifica è il processo inverso. I calcolatori elettronici elaborano informazione codificata in forma binaria (la più semplice di tutte). Il motivo è di carattere tecnologico: dal punto di vista della progettazione e realizzazione circuitale è più conveniente elaborare segnali digitali a 2 livelli, piuttosto che segnali digitali a M>2 livelli o segnali analogici. Nelle memorie dei calcolatori i dati vengono organizzati in celle da 1 byte (8 bit) ciascuna. Domanda Cosa significa “sistema di numerazione posizionale”? Risposta Per sistema di numerazione si intende un insieme di simboli e regole atti a rappresentare i numeri. Nei sistemi di numerazione posizionali ogni cifra (simbolo) assume un valore che dipende dalla posizione (peso) nella stringa numerica di cui fa parte. Per convenzione la cifra più significativa è quella più a sinistra. Il sistema di numerazione posizionale più comune è quello decimale (= in base 10), tanto che i numeri espressi in tale base hanno anche un corrispondente nome composto da caratteri alfabetici. Ad esempio 24310 è duecentoquarantatre. Non esiste invece una parola specifica, ad esempio, F316, che esprime la stessa quantità di 24310, per cui si dice “effe tre in base sedici” oppure lo si converte in decimale: F sta per 1510 3 sta per 310 F316 15x161 + 3x160 = 24310 Domanda Come si converte un numero in base 10 nell’equivalente in base 2? Risposta L’algoritmo per convertire un numero da base 10 a base 2 è il seguente: ripeti dividere per 2 il numero in base 10 - il resto rappresenta l’i-esima cifra del numero in base 2: ci (i = 0,…,n-1) - il quoziente è il nuovo dividendo fino a che l’ultimo quoziente ottenuto non è più divisibile. Esempio: 9310 (46,1) (23,0) (11,1) (5,1) (2,1) (1,0) (0,1) 10111012 . Domanda Come si rappresentano le informazioni testuali in codice binario? Perché lo standard UNICODE è meglio dello standard ASCII? Domanda Quanto spazio su disco richiede un brano musicale della durata di 3 minuti, se viene campionato alla frequenza di 50000 campioni al secondo e ciascun campione viene codificato con 32 bit? Risposta In 3 minuti ci sono 180 secondi. Il numero totale di campioni ricavati dal brano è dunque 180 x 50000 = 9000000 = 9M (nove milioni). Lo spazio richiesto su disco è quindi: 9M x 32 bit = 9M x 4 byte = 36MB (trantasei megabyte). Domanda Scrivere la tabella della verità della seguente funzione booleana: Risposta A 0 0 0 0 1 1 1 1 B 0 0 1 1 0 0 1 1 C 0 1 0 1 0 1 0 1 F 0 0 0 1 0 1 0 1 Domanda Da quali blocchi funzionali è composta una CPU? Risposta La CPU (central processing unit) è composta da: • una unità aritmetica e logica (ALU) • alcuni registri F = (A+B) · C • una unità di controllo • un bus interno La ALU è un circuito logico in grado di svolgere operazioni aritmetiche e logiche su uno o più operandi. La ALU include tra l’altro un sommatore binario (full adder) che serve anche a fare le sottrazioni nel momento in cui i numeri vengono espressi in complemento a due. I registri sono insiemi di n identici elementi di memoria (flip-flop), che hanno lo scopo di immagazzinare temporaneamente dati da elaborare, o altre informazioni utili al funzionamento della CPU. I registri si dividono in due gruppi: registri generici (general purpose) e registri dedicati. I primi sono coinvolti in operazioni di vario genere e possono essere utilizzati dagli sviluppatori di programmi in linguaggio assembly. I registri dedicati, come dice la parola stessa, hanno funzioni ben precise nell’economia del sistema CPU. Ad esempio il registro PC (program counter) contiene sempre l’indirizzo (di memoria) della successiva istruzione da eseguire. L’unità di controllo genera, in base all’istruzione da eseguire, un configurazione particolare dei segnali che attivano/disattivano le singole parti della CPU. Ad esempio una istruzione di lettura dalla memoria (LOAD) richiede che i flip-flop del registro AR vengano posti nello stato “lettura” (perché quel registro contiene l’indirizzo di memoria dei dati), mentre quelli del registro DR vengano posti nello stato “scrittura” (perché i dati devono essere copiati dalla memoria a DR), e il resto della CPU non faccia nulla (o quasi). Il funzionamento della CPU è scandito da un segnale periodico detto “clock” che sincronizza tutti i blocchi funzionali sopracitati. Domanda Che differenza c’è tra repertorio di istruzioni stile CISC e repertorio stile RISC? Domanda Quali sono i parametri di valutazione di una memoria? Domanda Cosa significa “gerarchia di memoria”? Domanda Qual è il vantaggio di avere un bus condiviso, anziché dei bus dedicati? Domanda Cosa è il sistema operativo? Cosa significa dire che il sistema operativo è l’allocatore delle risorse del calcolatore? Risposta Secondo la definizione di Tanenbaum, un sistema operativo è un programma che controlla le risorse di un calcolatore e fornisce ai suoi utenti un'interfaccia o macchina virtuale più agevole da utilizzare della macchina "nuda". Le risorse del calcolatore sono: il tempo di CPU, lo spazio di memoria, i dispositivi di I/O, ecc. Gestione delle risorse significa: - tenere traccia delle risorse - adottare strategie di assegnazione - allocare le risorse - recuperare le risorse inutilizzate - rilevare eventuali usi impropri Il sistema operativo è un allocatore di risorse perché decide quando assegnare le risorse ai processi attivi che le richiedono. Domanda Cosa è un processo? Quali sono i possibili stati di un processo? Domanda Che differenza c’è tra monoprogrammazione e multiprogrammazione? Domanda Cosa è una rete LAN? Risposta Una rete LAN (Local Area Network) connette dispositivi hardware come computer, stampanti e periferiche di memorizzazione tutti vicini tra loro. Esempi di LAN sono l’interconnessione di macchine in un locale, nello stesso edificio o in un campus universitario. Un’importante caratteristica delle LAN è che il proprietario dei computer è anche il proprietario dei mezzi di comunicazione (cavi, schede di rete, access point, ecc.). Domanda Cosa è Internet? Risposta Internet è la più grande rete telematica mondiale. Creata negli anni sessanta come progetto del dipartimento della difesa statunitense per lo sviluppo di una rete di computer decentrata (wide area network, WAN), alla fine della guerra fredda è stata messa a disposizione di impieghi civili, collegando dapprima i principali centri universitari e raggiungendo poi, in modo ampio, l'utenza aziendale ed infine quella domestica. Utenti privati, aziende, enti pubblici, ecc. accedono a Internet collegandosi (a pagamento) alle WAN di proprietà di alcune aziende chiamate Internet Service Provider (ISP). Internet è quindi una WAN data dall’insieme di sottoreti di tipo WAN che comprendono a loro volta LAN e singole utenze. La connessione tra singoli utenti, LAN e WAN avviene per mezzo di dispositivi chiamati router (smistatori di traffico). Domanda Cosa è un protocollo di rete? Risposta Un protocollo di rete è una serie di regole, convenzioni e accordi condivisi per lo scambio efficiente e ordinato di informazioni tra nodi di una rete telematica. Il processo di standardizzazione dei protocolli di Internet è gestito dalla Internet Society, con i sottocomitati IAB (Internet Architecture Board) e IETF (Internet Engineering Task Force). I protocolli di Internet sono organizzati in una gerarchia a 5 livelli, detta stack (pila) protocollare TCP/IP, dai nomi di due dei protocolli più importanti. Dal livello più basso a quello più alto: 1. livello fisico 2. livello di collegamento 3. livello di rete 4. livello di trasporto 5. livello di applicazione Domanda Cosa riguarda il livello di trasporto nello stack protocollare TCP/IP? Risposta I protocolli del livello di trasporto (livello 4) realizzano un servizio di recapito dei messaggi tra programmi (applicazioni). I messaggi del livello di applicazione (livello 5), a livello di trasporto vengono frammentati in pacchetti (la cui lunghezza può anche non essere sempre uguale, dipende dal protocollo di trasporto). Di seguito vengono riportati i servizi che possono venire offerti da un protocollo del livello di trasporto; è bene ricordare che nessuno di tali servizi è obbligatorio. Di conseguenza, per ciascuna applicazione è possibile scegliere il protocollo di trasporto più adatto allo scopo. • • • • • • • Servizio orientato alla connessione Corretto ordine di consegna dei pacchetti Trasferimento affidabile Controllo di flusso Controllo di congestione Orientamento al byte Multiplazione I principali protocolli di trasporto sono TCP e UDP. TCP è il più complicato fra i due e fornisce un servizio orientato alla connessione e al byte, con verifica del corretto ordine di consegna, controllo di errore e di flusso. Il nome è un acronimo per Transmission Control Protocol. UDP, invece, è un protocollo più snello e fornisce un servizio senza connessione, con un meccanismo di riduzione degli errori e con porte multiple. Il nome è un acronimo per User Datagram Protocol. Domanda (difficile) Che cosa significa “servizio orientato alla connessione”? Risposta Nel livello di rete un messaggio viene suddiviso in pacchetti, per essere inviato ad un host destinatario. In un servizio servizio senza connessione (connectionless) il pacchetto viene spedito con l'indirizzo del mittente e del ricevente, seguendo un percorso indipendentemente dagli altri pacchetti. Ciascun pacchetto segue il percorso stabilito di volta in volta dal router che sta attraversando, che può cambiare in ogni momento per evitare router inattivi oppure congestioni su specifiche tratte della rete. In un servizio orientato alla connessione, invece, la scelta del routing viene fatta in anticipo, in fase di setup (si parla di circuito virtuale). In tal caso ciascun pacchetto non reca con sé l’indirizzo del destinatario ma l’identificatore del circuito virtuale, e viene propagato dai router in base a questo identificatore. In un servizio senza connessione se un router dovesse subire un guasto, ciascun datagramma verrebbe indirizzato su altri router, mentre se cadesse un router di un circuito virtuale, si interromperebbe anche la connessione. TCP è orientato alla connessione, UDP invece no.