Pages: 1 2 [3] 4 5 ... 24   Go Down
Print
Author Topic: AA 2010-2011: Quesiti a risposta aperta  (Read 88802 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.534


« Reply #30 on: 21-05-2011, 15:47:46 »

il model 75 era piu grande è piu veloce,abbiamo piu memoria..........
Infatti le prestazioni sono migliori nel model 75 rispetto al model 30, ma non di un fattore 5 bensì 50. Cos'altro contribuisce a migliorare le prestazioni, oltre a un ciclo più breve?
Quote
-un calcolarore ha un bus a 220 mhz,32 bit per un ciclo e un disco ultra4-SCSI che lo usa a 160 mb/s.la cpu ha un ciclo esecutivo di 1 ns in che misura percentulae lo rallenta?
Premesso che, secondo il testo dell'esercizio, il bus è a 200 MHz e il disco lo usa a 160 MB/s (qui la differenza fra maiuscole e minuscole è significativa), faccia due conti, cominciando con lo stabilire quanti cicli di bus al secondo può usare la CPU alla massima velocità e quanti (in un secondo) gliene ruba il disco per trasferire 160 MB.
Logged
R3m
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 486



« Reply #31 on: 24-05-2011, 11:23:25 »

Spiegare brevemente perché l'architettura Harvard sia soprattutto vantaggiosa nelle CPU con pipeline (max 10 righe)

Credo sia un problema relativo alla memoria cache, e alla memoria in generale.
Nell'architettura Harvard dati e programma giacciono su due memorie differenti, a livello di cache, mentre a livello di memoria principale, si adotta l'architettura di Von Neumann. Utilizzando una pipeline è possibile accedere in parallelo a memoria dati e programma a livello di cache (volendo anche a livello di memoria principale).
Logged

Ciò che è nostro è stato in campo sudato....ciò che vostro è stato in aula assegnato.
In serie B non sei mai stato perchè la prescrizione t'ha salvato.
immatricola
Matricola
*
Offline Offline

Posts: 25


« Reply #32 on: 24-05-2011, 17:44:24 »

.Il RAID livello 3 corregge errori singoli usando un disco di parità,il raid di livello 2 ne impiega di piu.Quale vantaggio ha questo rispetto all’altro,per la correzione di errori?


Il bit singolo di parità nel livello 3,trova l’errore,ma non lo corregge nel caso in cui abbiamo un errore casuale,cio non succede al livello 2 dove l’errore viene corretto comunque.
basta come risposta...
Logged
immatricola
Matricola
*
Offline Offline

Posts: 25


« Reply #33 on: 24-05-2011, 19:08:26 »

come si calcola il fattore di compressione per memorizzare 133 minuti di video............
Logged
fabio_bm
Apprendista Forumista
**
Offline Offline

Posts: 108


« Reply #34 on: 25-05-2011, 09:31:31 »

Ha significato che un compilatore generi output per il livello di microarchitettura invece che per il livello ISA? Si analizzino pro e contro di tale ipotesi (max 10 righe).

In teoria potremmo generare output direttamente per il livello di microarchitettura, però avremmo bisogno di un hardware dedicato ad uno specifico linguaggio (C, Java, ecc), e quindi perderemmo in flessibilità del calcolatore, e inoltre le istruzioni andrebbero interpretate, perdendo il vantaggio dovuto alla compilazione.
Logged
fabio_bm
Apprendista Forumista
**
Offline Offline

Posts: 108


« Reply #35 on: 25-05-2011, 10:39:26 »

Il rapporto tra le prestazioni dell'IBM 360 model 75 e model 30 era di 50 volte, mentre il ciclo di clock era solo 5 volte più veloce. Come si spiega questa differenza? (max 5 righe)

I due modelli di calcolatori non differivano solamente dal ciclo di clock, ma anche dalla quantità di memoria, numero di byte prelevati per ciclo di clock e dal massimo numero di canali per i dati. Queste differenze, messe assieme, permisero al model 75 di aumentare le prestazioni di 50x rispetto al modello di base, il model 30.
Logged
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.534


« Reply #36 on: 25-05-2011, 14:43:47 »

Il bit singolo di parità nel livello 3,trova l’errore,
OK, ma è più appropriato dire che "Il bit di parità nel livello 3 trova l’errore singolo".
Logged
R3m
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 486



« Reply #37 on: 28-05-2011, 15:57:36 »

Qual è la differenza fra istruzioni e pseudoistruzioni di un assemblatore (max 5 righe)?

Con il termine istruzionesi intende il comando impartito ad un esecutore utilizzando un linguaggio ad esso comprensibile. Mentre il termine microistruzione impartisce ordini all'assemblatore, ad esempio chiedendo di allocare una certa quantità di memoria, oppure andare a una certa pagina del listato.

Individuare qualche proprietà sintattica di un linguaggio assemblativo che permetta di usare come etichette anche simboli identici a codici operativi simbolici (max 5 righe)

L'utilizzo di un carattere testuale conosciuto a propri che indentifichi la fine di un'etichetta, nel P4 ad esempio viene utilizzato il ':', così è possibile chiamare un'etichetta  MOV: MOV identificando il nome dell'etichetta poichè contiene i :, e il codice operativo che non li contiene.

È possibile usare un registro come parametro attuale in una chiamata di macro? E una costante? Motivare le risposte (max 5 righe)
L'assemblatore, ogni volta che trova una chiamata di macro, salva, se non presente, il nome e la sua espansione in una tabella della definizioni di macro, che non ha nulla in comune con la memoria che contiene i registri o l'area dedicata alle costanti. La difficoltà stà però nel capire se una certa linea di codice viene interpretata correttamente come voluto dal programmatore (distinguendo macro, registro e costante). Tecnicamente, se una stringa di codice contiene alla sua destra alcuni parametri, possiamo essere sicuri che sia una chiamata ad una macro (es. "SWAP A B"), mentre se la stringa di codice è preceduta da un'istruzione potrebbe essere utilizzata una costante (es. "MOV MACRO, B").

Definire una macro con 3 parametri A, B, C, da attualizzarsi con nomi di locazioni di memoria, che ne permuti circolarmente i contenuti usando una macro interna SWAP per scambiarne due (max 15 righe).
CPERM   MACRO
              SWAP A,B
              SWAP B,C
              ENDM

Confrontare almeno tre diverse modalità d'indirizzamento in termini dei loro effetti sulla lunghezza dell'istruzione e sul suo tempo di esecuzione (max 15 righe).
Immediato, diretto e a registro.
A livello di lunghezza, quello immediato vince poichè viene utilizzato nel campo relativo all'indirizzo, l'operando stesso (una costante) che è chiaramente più piccolo rispetto ad un intero indirizzo di una locazione di memoria o di un registro stesso.
A livello di velocità, l'indirizzamente immediato recupera l'operando in fase di fetch, ed è subito disponibile.

Perché i controllori di I/O inviano il vettore di interrupt sul bus? Non potrebbero invece memorizzare questa informazione in una tabella di memoria (max 5 righe)?
Credo che sia un discorso legato a CPU->Bus->Dispositivo. La Cpu invia l'acknowledgment sul bus, che arriva al dispositivo, dopodichè sempre su quel bus viene inviato dal dispositivo un vettore di interrupt, che viene prelevato dalla CPU. Credo sia una questione di velocità (il dispositivo lo salva in una tabella...ma poi deve dire alla CPU dove si trova questa tabella, e deve sempre usare il bus...e se la memoria fosse tutta occupata?)

Perché le routine di servizio degli interrupt sono associate a priorità, mentre le procedure normali non hanno priorità (max 5 righe)?
Non ho capito cosa si intende per procedure normali...è forse un qualunque programma, o una trap?

Perché si salva anche il registro PSW sullo stack prima di trasferire il controllo a una routine di servizio di interrupt (max 5 righe)?
Indica il livello di priorità, il gestore degli interrupt poi deciderà se interrompere l'interrupt in corso a favore di quello "nuovo", oppure se la proprità è minore porlo in uno stato di attesa.
« Last Edit: 28-05-2011, 16:39:11 by R3m » Logged

Ciò che è nostro è stato in campo sudato....ciò che vostro è stato in aula assegnato.
In serie B non sei mai stato perchè la prescrizione t'ha salvato.
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.534


« Reply #38 on: 28-05-2011, 19:20:52 »

Mentre il termine microistruzione
pseudoistruzione
Quote
andare a una certa pagina del listato.
non mi risulta che esistano pseudoistruzioni del genere, semmai "generare un'interruzione di pagina nel listato". Il listato è prodotto dal macroassemblatore.
Quote
a propri
a priori
Quote
L'assemblatore, ogni volta che trova una chiamata di macro, salva, se non presente, il nome e la sua espansione in una tabella della definizioni di macro,
No, l'assemblatore salva nome e corpo della macro, rispettivamente nelle tabelle dei simboli e delle definizioni di macro, quando incontra una pseudoistruzione MACRO, mentre quando trova una chiamata di macro la rimpiazza (nell'output della prima passata) con la sua espansione, utilizzando la definizione precedentemente salvata.
Quote
Tecnicamente, se una stringa di codice contiene alla sua destra alcuni parametri, possiamo essere sicuri che sia una chiamata ad una macro.
Le istruzioni seguono lo stesso formato, cioè operandi di una istruzione e parametri di una chiamata di macro hanno un aspetto sintatticamente simile. La distinzione è possibile semplicemente in base al fatto che sia i codici operativi simbolici sia i nomi delle macro sono simboli memorizzati nella tabella dei simboli, i cui contenuti (codici binari per i codici operativi simbolici, puntatori alla tabella delle definizioni di macro per i nomi di macro) ne distinguono il tipo. La risposta alla domanda è comunque molto semplice: sì, qualsiasi argomento è accettabile come parametro di una macro, perché l'assemblatore ne effettua l'espansione  mediante una mera sostituzione testuale in prima passata, senza generare codice oggetto.
Quote
[...] usando una macro interna SWAP [...]
CPERM   MACRO
              SWAP A,B
              SWAP B,C
              ENDM
manca la definizione della macro interna
Quote
A livello di lunghezza, quello immediato vince poichè viene utilizzato nel campo relativo all'indirizzo, l'operando stesso (una costante) che è chiaramente più piccolo rispetto ad un intero indirizzo di una locazione di memoria o di un registro stesso.
No: una costante può benissimo occupare tanti bit quanti ne occupa un indirizzo (ad es. 32), e quasi sempre più di quanti ne occorrano per specificare un registro (ad es., 3 bit se i registri sono otto). Perché il confronto a tre sia completo, non basta indicare quale dei tre vince rispetto a ciascuno dei due criteri, ma occorre indicare l'ordine relativo delle tre modalità, rispetto a ciascuno di essi.
Quote
(il dispositivo lo salva in una tabella...ma poi deve dire alla CPU dove si trova questa tabella, e deve sempre usare il bus...e se la memoria fosse tutta occupata?)
più che di velocità è una questione di comunicazione: la CPU deve sapere quale dispositivo ha generato l'interrupt per potergli associare la routine di servizio appropriata; una comunicazione di questa informazione mediata dalla memoria sarebbe una complicazione inutile, poiché il dispositivo dovrebbe sapere in quale locazione di memoria andare a scrivere il vettore di interrupt, e non è detto che questa possa essere una locazione prefissata: è più semplice comunicare il vetttore di interrupt direttamente sul bus.
Quote
Non ho capito cosa si intende per procedure normali...è forse un qualunque programma, o una trap?
Una definizione di procedura ha nome, parametri (formali) e corpo; è eseguibile mediante invocazione, con parametri attuali in luogo di quelli formali; la sua esecuzione può restituire un valore (ad es. in cima allo stack) e fa riprendere il flusso di esecuzione all'istruzione successiva a quella di invocazione. Nella programmazione OO, le procedure sono note come "metodi".
Quote
Indica il livello di priorità
Questo è un buon motivo, ma non l'unico. Nella gestione dell'interrupt il contenuto della PSW può cambiare anche in altri aspetti, ad es. la modalità operativa (kernel o utente); dopo che l'interrupt è stato servito, è in ogni caso necessario ripristinare il contenuto della PSW al valore che essa aveva al momento dell'interruzione. In breve, la PSW va salvata (sullo stack) perché la gestione dell'interrupt possa essere trasparente.
Logged
AleX
Matricola
*
Offline Offline

Posts: 41


« Reply #39 on: 30-05-2011, 15:13:52 »

Il rapporto tra le prestazioni dell'IBM 360 model 75 e model 30 era di 50 volte, mentre il ciclo di clock era solo 5 volte più veloce. Come si spiega questa differenza? (max 5 righe)

perché oltre ad avere 5 volte il ciclo di clock più veloce, ha anche più byte prelevati per ciclo oltre ad avere più canali per i dati.In più ha ance molta più memoria e permette di memorizzare più programmi oltre alla multiprogrammazione.
Logged
AleX
Matricola
*
Offline Offline

Posts: 41


« Reply #40 on: 30-05-2011, 15:38:03 »

Anche se questa domanda è già stata fatta volevo porvi le mie tre risposte...

–Si indichino le tre persone che si ritiene abbiano avuto la maggiore influenza nella creazione del software moderno, e se ne descrivano brevemente i contributi più rilevanti (max 10 righe).

Gary Kildall: che ha scritto il primo sistema operativo (CP/M) su floppy disk, con file system e istruzioni da scrivere tramite tastiera per la shell;
Steve Jobs che con l’evoluzione di Apple Lisa cioè Macintosh adottò per primo le GUI( interfaccia grafica);
Microsoft prima con progettando MS-DOS(in collaborazione con l’IBM) e poi successivamente da sola Windows;
Logged
R3m
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 486



« Reply #41 on: 31-05-2011, 09:42:51 »

Definire una macro con 3 parametri A, B, C, da attualizzarsi con nomi di locazioni di memoria, che ne permuti circolarmente i contenuti usando una macro interna SWAP per scambiarne due (max 15 righe).

CPERM   MACRO
              SWAP A,B
              SWAP B,C
              ENDM


SWAP MACRO
             MOV EAX,P
             MOV EBX,Q
             MOV Q,EAX
             MOV P,EBX
ENDM

Quote
Quote
andare a una certa pagina del listato.
non mi risulta che esistano pseudoistruzioni del genere, semmai "generare un'interruzione di pagina nel listato". Il listato è prodotto dal macroassemblatore.
Pagina 498, Capitolo 7.1.4
Un linguaggio assemblativo, oltre a specificare quali istruzioni macchina ...... , per richiedere, per esempio, di allocare una certa quantità di memoria oppure per passare a una nuova pagina del listato.

Potrebbe essere un errore tecnico del testo, magari valevole di bonus?

Qual è la differenza (se c'è) tra il contatore di locazioni delle istruzioni (ILC) e il contatore d'istruzioni (PC)? Entrambi tengono traccia della successiva istruzione in un programma (max 5 righe).
La variabile ILC è contenuta come campo nella tabella dei simboli durante la prima passata e contiene l'indirizzo che l'istruzione che sta assemblando avrà a tempo di esecuzione. Esiste quindi una ILC per ogni istruzione. Il PC invece è un registro che contiene, di volta in volta, la successiva istruzione da eseguire (si usa quindi in runtime).

Confrontare gli algoritmi di ricerca dicotomica e mediante codifica hash rispetto alla velocità delle operazioni di ricerca e di modifica della tabella (inserimenti e rimozioni) (max 10 righe).
L'operazione di inserimento, utilizzando la ricerca dicotomica prevede l'inserimento in un array ponendo attenzione al fatto che deve essere rispettato l'ordine (crescente o decrescente) delle informazioni ottenute (altrimenti poi non è possibile cercare gli elementi). Con l'hashing, invece, basta allocare nel bucket corrispondente la nuova informazione, stando attenti a settare per bene la lista concatenata (quindi il puntatore next).
La rimozione è pressochè la stessa. La dicotomica deve "tappare" il buco che si viene a creare quando si rimuove l'elemento (se il valore viene reso nullo, deve traslare tutti gli elementi di indice maggiore verso sinistra). Con l'hashing, invece, basta cercare l'elemento da eliminare e togliere tutti i riferimenti a esso nella tabella concatenata. Dopodichè si può eliminare l'elemento dalla memoria.

I programmi spesso si collegano a più librerie dinamiche. Non sarebbe più efficiente inserirne tutte le procedure in un'unica libreria e collegarla al programma (max 10 righe)?
Per una questione di semplicità, no. Solitamente le librerie sono suddivise per file mediante le loro funzionalità (directx, suddivise in 9,10 e 11, opengl, ecc...). A livello di efficienza si avrebbe una sola (ed enorme) libreria che in fase di runtime del programma deve essere allocata in memoria, e questo richiederebbe del tempo (anche maggiore di quello che si risparmia)
« Last Edit: 31-05-2011, 10:56:40 by R3m » Logged

Ciò che è nostro è stato in campo sudato....ciò che vostro è stato in aula assegnato.
In serie B non sei mai stato perchè la prescrizione t'ha salvato.
zElOtO
Forumista
***
Offline Offline

Gender: Male
Posts: 845



WWW
« Reply #42 on: 31-05-2011, 15:49:52 »

Quesito 20: Il linker risolve il problema della rilocazione e quello dei riferimenti esterni. Spiegare in cosa consistono e in che senso la soluzione del secondo dipende da quella del primo (max 10 righe).

Compito del linker è quello di risolvere il problema della rilevazione e quello dei riferimenti esterni.
I moduli oggetto creati dall'assemblatore hanno spazi degli indirizzi separati. Questo problema è noto come problema della rilevazione. Per risolverlo il linker permette di collegare più moduli oggetto, assemblati separatamente, in modo da costruire un unico modulo eseguibile finale.
Per far ciò il linker deve:
- Costruisce una tabella contenente la lunghezza dei moduli oggetto
- In base alla tabella, assegna un indirizzo di caricamento ad ogni modulo oggetto
- Aggiorna tutti gli indirizzi rilevabili
- Aggiorna i riferimenti a procedure esterne
Logged

I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. Insieme sono una potenza che supera l'immaginazione. (A. Einstein)

Damiano Cancemi
www.damianocancemi.com
www.nerdbren.com
www.nerdbren.com/blog
peppe89ct
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 288


very normal people


« Reply #43 on: 31-05-2011, 18:31:14 »

Code:
Si indichino le tre persone che si ritiene abbiano avuto la maggiore influenza nella creazione del software moderno, e se ne descrivano brevemente i contributi più rilevanti (max 10 righe).
.
Io penso che siano Steve Jobs, perchè nel primo macintosh aveva utilizzato la gui(graphical user interface);Ward Cunningham, creatore del concetto wiki, che è un sito web (o comunque una collezione di documenti ipertestuali) che viene aggiornato dai suoi utilizzatori e i cui contenuti sono sviluppati in collaborazione da tutti coloro che vi hanno accesso;infine Ken Thompson e Dennis Ritchie creatori del sistema operativo unix con innovazioni quali il multitasking, multiutente e scritto in linguaggio c rendendolo un sistema operativo portabile.
Logged

"Real programmers always confuse Halloween and Christmas 'cause 31oct = 25dec"
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.534


« Reply #44 on: 31-05-2011, 23:10:42 »

Microsoft
non è una persona.
Logged
Pages: 1 2 [3] 4 5 ... 24   Go Up
Print
Jump to: