Cognome: _______________ Classe: _______________ Data: _______________ 3AI - Verifica di TPSI del 30-04-2020 La seguente verifica DEVE ESSERE SVOLTA SINGOLARMENTE e consegnata entro 60 minuti dalla sua assegnazione. Gli studenti Depetris, Ferretti, Florea, Fortunato e Russo avranno 80 minuti di tempo per effettuare la consegna. Visti i possibili problemi di connessione il file dovrà essere scaricato da parte di ogni studente e completato in modalità offline usando un computer. Una volta completata, la verifica dovrà essere caricata su classroom. Nel caso di problemi potrà anche essere spedita tramite e-mail all'indirizzo della docente [email protected] NON DOVRETE ASSOLUTAMENTE INVIARE FOTOGRAFIE DELLA VERIFICA, spedite il file completo delle vostre risposte. L’intervallo dei voti è [1-10] e il punteggio indicato fra parentesi indica il massimo punteggio assegnabile alla risposta. La sufficienza si raggiunge totalizzando 7,2 punti su 12 punti totali. Per l’assegnazione dei punti saranno considerati i seguenti criteri: aderenza alla traccia; correttezza logica e completezza delle risposte; correttezza grammaticale e lessicale delle risposte. 1. [PUNTI 2] Elencare e spiegare quali sono le operazioni che vengono eseguite all’accensione di un PC. Le operazione che vengono eseguite all’accensione del pc sono,L’avvio del bootstrap, memorizzato nella memoria rom(Memoria a solo lettura). Viene caricato successivamente il boot a partire da un indirizzo che assume il controllo della CPU. Ogni componente hardware manda in esecuzione un programma di autodiagnostica chiamato POST che verifica il corretto funzionamento del dispositivo. L’hardware è predisposto per fare il caricamento del boot (i processori a 32 bit caricano la prima istruzione dall’indirizzo esadecimale 0xFFFFFFF0 di quello che si chiama IPL(Initial Program Loader). 2. [PUNTI 1] Spiegare qual è la funzione generale del Sistema Operativo. Il sistema operativo svolge 2 compiti: è il gestore delle risorse hardware (CPU , memoria,periferiche) che vengono usate da specifici programmi per eseguire il proprio compito; fornisce il supporto all’utente per impartire i comandi necessari al funzionamento del computer, cioè fa da interfaccia tra l’hardware e il software applicativo. 3. [PUNTI 1] Spiegare dettagliatamente cosa identificano i termini programma e processo. Il programma è un insieme di byte contenente le istruzioni che dovranno essere eseguite Il processo è un’entità attiva, che evolve man mano che le istruzioni vengono eseguite dalla CPU. 4. [PUNTI 2] Si elenchino e si descrivano gli stati di un processo indicando anche le azioni di transizione che causano il cambio di stato. Gli stati di un processo sono: 1. Nuovo(new): 1 di 3 è lo stato in cui si trova un processo appena è stato creato, cioè l’utente richiede l’esecuzione di un programma che risiede sul disco. 2. Esecuzione(running): è lo stato in cui il processo evolve, e la cpu svolge le istruzioni indicate. 3. Attesa(waiting): Un processo è nello stato di attesa quando gli manca una risorsa per poter evolvere e quindi sto aspettando che si verifichi un evento. 4. Pronto(ready-to-run): Un processo è nello stato di pronto se ha tutte le risorse necessarie alla sua evoluzione tranne la CPU. 5. Finito(terminated): Siamo nella situazione in cui tutto il codice del processo è stato eseguito e quindi ha terminato l’esecuzione. 5. [PUNTI 2] Si spieghi qual è la funzione del Process Control Block (PCB). La funzione del Process control Block è mantenere alcune informazioni dei processi (cosa sta facendo il processo) , questo prende il nome di descrittore del processo ed è memorizzato nel process control block. 6. [PUNTI 2] Considerando l'immagine di lato che mostra la struttura della memoria di un processo, si descriva brevemente la funzione di ogni segmento. Stack: Lo scopo primario è immagazzinare gli indirizzi di ritorno e salvarli da qualche parte per non perderli. Heap: L’Heap è una allocazione dinamica della memoria, in informatica, si intende l'allocazione di memoria per l'utilizzo di un programma durante la propria esecuzione. uninitialized data segments (bss): tutte le variabili inizializzate dal kernel a zero o NULL prima dell’esecuzione. long sum[1000] fuori da funzioni è memorizzato qui. text segments: Rappresenta le istruzioni eseguite dalla Cpu (solo lettura) (initialized) data segments: contiene variabili che sono specificamente inizializzate nel programma. La dichiarazione int count = 0; fuori da funzioni, causa la memorizzazione in questa sezione. 7. [PUNTI 2] Convertire nel corrispondente numero decimale frazionario il numero esadecimale 0x3F950000, che rappresenta un numero in codifica standard IEEE-754 a 32 bit. Si mostrino tutti i passaggi di conversione. 2 [IEEE-754] (0x3F950000)16 = (...)10 IEEE-754: (0 01111111 00101010000000000000000)2 Segno: 0 = + Esponente: ( -127 = 0 Numero: (-1)0 * 1,0010101 (1.0010101)2 Base 10: (1.1640625)10 3