Pages: 1 ... 9 10 [11] 12 13 ... 24   Go Down
Print
Author Topic: AA 2010-2011: Quesiti a risposta aperta  (Read 87299 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
zElOtO
Forumista
***
Offline Offline

Gender: Male
Posts: 845



WWW
« Reply #150 on: 12-06-2011, 19:50:59 »

20. Istruzioni virtuali di I/O e per il calcolo parallelo
Quesito 22 : Descrivere le operazioni sui semafori e i requisiti che la loro definizione impone alla loro implementazione in un sistema operativo (max 15 righe).

I semafori presentano 2 operazioni: Up, Down. La prima per incrementare un semaforo di 1, la seconda per decrementarlo di 1.
Ad esempio se si effettua un'operazione down di un semaforo che ha un valore positivo, questo viene decremento di 1 e il processo corrispondente continua. Altrimenti la down non può andare a buon fine e il processo corrispondente "viene messo a dormire" finchè un altro processo esegue una up su quel semaforo. Vicersa se si effettua un'operazione up.
Affinchè questo accada correttamente, il sistema operativo deve proibire che un semaforo venga usato da più di un processo per volta, o può almeno a limitarsi a interrompere l'esecuzione di ogni altro processo finchè quello impiegato nella chiamata di sistema non la porti a compimento.
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
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.529


« Reply #151 on: 12-06-2011, 22:42:41 »

4 byte?
Cominciamo con il fatto che, se la capacità di un chip è di 1 Mbit, meno di tanta capacità la memoria minima non può avere.
Aggiungiamo il fatto che, in base al ragionamento di cui alla nota precedente, la memoria deve avere almeno 32 chip. Qual è la conclusione?
Logged
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.529


« Reply #152 on: 12-06-2011, 22:54:33 »

SCAMBIO MACRO A,B,C,D
                MOV D,A
                MOV A,C
                MOV B,C
                MOV C,D
                ENDM
Poiché salva A nel registro di lavoro (quarto parametro formale), per poi caricare A con il contenuto di C, se ne deduce che la permutazione circolare intesa sia A ← C ← B ← A. Allora le due ultime istruzioni devono essere:
                MOV C,B
                MOV B,D
Quote
               MACRO  A,C,B,D
           MACRO  B,A,C,D
                MACRO C,B,A,D
                MACRO B,C,A,D
                MACRO C,A,B,D
Che roba è, un residuo di editing che ha dimenticato di cancellare? Non sono né definizioni di macro né invocazioni della macro sopra definita.
Logged
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.529


« Reply #153 on: 12-06-2011, 23:00:52 »

....ma è fattibile un fattore di compressione 65?
Per un video, direi di sì: le tecniche differenziali memorizzano solo le differenze tra una immagine e la precedente, e queste sono molto piccole se non c'è cambio di scena ma solo movimento (in 1/30 di secondo).
Logged
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.529


« Reply #154 on: 12-06-2011, 23:29:25 »

ignorando poi un eventuale riporto di 1 finale che causerebbe un overflow.
non esattamente: "ignorando l'eventuale riporto oltre il bit di segno". La condizione di overflow è definita in altro modo, v. domanda successiva.
Quote
bisogna verificare se il riporto è stato eseguito sul bit del segno (il bit più a sinistra, 0 per i positivi e 1 per i negativi) ma non è stato portato fuori, o viceversa;
che vuol dire "viceversa"? Consideri l'analisi dei casi articolata nelle seguenti domande:
  • Se non c'è riporto sul bit di segno ma c'è oltre il bit di segno, si ha overflow?
  • Se c'è riporto sul bit di segno ma non oltre il bit di segno, si ha overflow?
  • Se c'è riporto sia sul bit di segno sia oltre il bit di segno, si ha overflow?
  • Se non c'è riporto sul bit di segno né oltre il bit di segno, si ha overflow?
In 2 dei 4 casi si ha overflow, negli altri 2 no. L'individuazione dei casi di overflow in questo modo dovrebbe chiarire il senso del suo "viceversa".
Quote
più semplicemente, se i due bit più a sinistra sulla riga dei riporti non sono entrambi 0 o 1.
è vero che questa caratterizzazione è più semplice, ma manca la conclusione (forse sottintesa, ma va esplicitata), cioè, "se i due bit ... non sono entrambi 0 o 1" si ha overflow? O non si ha?
Logged
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.529


« Reply #155 on: 12-06-2011, 23:48:46 »

richiede 8,192 millisecondi di tempo di ciclo del bus. Questo lascia 7,808 msec per 16 msec per la CPU, riducendo così
7.808/16 o 48,8 per cento della sua velocità (cioè, è rallentato da 51,2per cento). Il numero di cicli di bus per istruzione è irrilevante.
Infatti non è un dato del problema... Se la risposta è ottenuta per traduzione da una risposta in inglese, la traduzione è un po' affrettata: che  vuol dire "richiede 8,192 millisecondi di tempo di ciclo del bus."? Il tempo di ciclo del bus è il reciproco della frequenza, ovvero 500 ns, cioè 0.5 msec. La traduzione corretta del frammento citato è "8,192 msec di tempo di ciclo del bus ogni 16 msec di tempo reale", e nella frase successiva è meglio sostituire "per" con "ogni".
Logged
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.529


« Reply #156 on: 13-06-2011, 00:02:40 »

Comunque, Dload4 è vuoto perchè deve aspettare nel ciclo precedente la scrittura del valore di MDR nell'indirizzo di MAR.
No, è questo il punto: non occorre. La scrittura lanciata nel ciclo precedente impiega MAR durante il ciclo successivo, nella parte che precede il fronte di salita; se una microistruzione in tale ciclo sovrascrive MAR, la sovrascrittura avrà luogo dopo il fronte di salita, dunque non occorre attendere.
Quote
Forse per sistemare il Dload5 è possibile usare MAR = LV + MBR1U + 1; rd ma non sono sicuro della correttezza. Salvando il valore di MAR in Dload1, avrei sempre lo stesso problema...
Io direi che, a causa del modo in cui funziona la IFU in Mic-2, se usa "MAR = LV + MBR1U + 1; rd" legge in realtà il byte successivo a quello (precedentemente letto) che contiene l'operando dell'istruzione, dunque chissà che succede... Se invece salva il valore di MAR calcolato in Dload1, basta incrementarlo di 1 per avere l'indirizzo della seconda variabile locale su cui l'istruzione deve operare.
Logged
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.529


« Reply #157 on: 13-06-2011, 00:06:48 »

F0  F1  ENA  ENB  INVA INC  Function
   0    1     0      0       1     0       -1
   1    1     0      0       1     1       -1
INC dev'essere 0 anche nel secondo caso, no? Specifica la somma aritmetica di 0 e -1.
Logged
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.529


« Reply #158 on: 13-06-2011, 00:16:44 »

F0  F1  ENA  ENB  INVA INC  Function
   0    1     0      0       1     0       -1
   1    1     0      0       1     1       -1

credo che in un caso f0->0, f1->1 (01:si indica l'operazione OR), nell'altro caso f0->1, f1->0 (10:si indica l'operazione NOT). in entrambi i casi, facendo qualche conto, il segnale uscente dovrebbe essere -1, senza input esterni, ovviamente supponendo che gli altri parametri siano in successione 0      0       1     0       -1.
Premesso, che il "-1"  finale non è un parametro (segnale di controllo, in input), questa configurazione degli altri segnali di controllo va bene per la selezione di funzione OR (come anche lei nota) come pure per la selezione di funzione "+" (dunque la seconda soluzione proposta dal suo collega va emendata); per la selezione di funzione NOT va aggiunto che il valore di INVA è irrilevante (vanno bene sia 0 che 1).
Logged
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.529


« Reply #159 on: 13-06-2011, 00:26:02 »

Perché conviene memorizzare sequenzialmente, nella memoria di controllo di Mic-4, le micro-operazioni di ciascuna istruzione IJVM, invece di uno schema simile a quello di Mic-1 (max 15 righe)?


Nel Mic-4, l'unità di decodifica è dotata di una propria ROM indicizzata per mezzo di codice IJVM. L'unità di decodifica invia all'unità di accodamento l'indice nella ROM delle microoperazioni che ha trovato nella sua tabella. Quindi penso che sia una questione di efficienza 
Non solo. Un aspetto architetturale rilevante è come viene trattata la sequenza delle microoperazioni estratta dalla memoria di controllo: va accodata, perché le microoperazioni vengano eseguite in pipeline. Dunque non c'è ragione di collocarle nella memoria di controllo in altro ordine se non quello della sequenza in cui vanno poi accodate per la successiva pipeline.
Logged
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.529


« Reply #160 on: 13-06-2011, 00:47:01 »

può essere gestita dal microprogramma che può gestirla perfettamente
corretto, ma un po' ripetitivo.
Logged
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.529


« Reply #161 on: 13-06-2011, 01:12:51 »

Non ho capito, nel libro si parla di tali processori, ma di condiviso c'è solo la memoria. Il bus è tra le CPU e la memoria, credo si intenda quello (non si parla di bus tra CPU e CPU).
Il testo specifica vari livelli ai quali può essere realizzata la condivisione della memoria. Dire che il multiprocessore è a bus condiviso equivale a dire che i processori condividono la memoria al livello dell'hardware, ovvero condividono lo spazio degli indirizzi fisici di memoria: sia le CPU che la memoria accedono allo stesso bus, non essendovi altre vie di comunicazione. Le CPU non comunicano direttamente fra loro bensì attraverso la condivisione della memoria.
Quote
Comunque, se si riferisce alla memoria, è possibile che si acceda a parti della memoria che stà leggendo un'altra CPU, ma non viene spiegato cosa succede (li si parla di un algoritmo che cerca gli oggetti in un'immagine, le 16 CPU trovano gli oggetti ma si deve "correggere" il valore via software, dato che tutte e 16 trovano oggetti già trovati).
Premetto che nella figura che vedo io nel testo (5a Edizione italiana) ci sono 3 oggetti riconosciuti da una sola CPU ciascuno e altri 3 riconosciuti da più CPU, ma non tutte. Poi, per rispondere al "cosa succede" basta chiedersi se esiste uno schema di arbitraggio del bus che permetta il controllo simultaneo del bus da più processori. Non mi risulta, e sarebbe comunque uno schema dagli esiti difficilmente prevedibili.
Quote
Tale codice in Mic-1 ha bisogno di 2 ILOAD (j e k), un ISTORE (i) e un IADD (j+k), ovvero 5+5 (iload)+ 6 (istore) + 3 (iadd) = 19 istruzioni da eseguire.
19 microistruzioni, alle quali va aggiunta la Main1 per ciascuna delle 4 istruzioni IJVM da lei correttamente individuate, dunque un totale di 23 cicli. Il resto del calcolo va corretto sostituendo 23 a 19.
Logged
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.529


« Reply #162 on: 13-06-2011, 01:38:06 »

in caso di accesso simultaneo si verifica il cosiddetto collo di bottiglia;
La risposta è sostanzialmente corretta, ma il termine "collo di bottiglia" caratterizza il degrado delle  prestazioni che si verifica quando un componente, ad es. bus, o memoria, rallenta la velocità di funzionamento degli altri rispetto alle loro possibilità.
Quote
un ipercubo invece, la scalabilità è rispettata dato che al crescere del numero di nodi si ha un più alto numero di collegamenti,
questo è vero anche per l'albero, tuttavia la larghezza di banda di bisezione non aumenta nel caso dell'albero. Come aumenta nel caso della griglia o dell'ipercubo?
Quote
e che la latenza cresce all’aumentare delle dimensioni della rete.
Questo è vero, e sarebbe un ostacolo alla scalabilità, se la velocità di crescita della latenza fosse lineare o peggio. Quanto velocemente cresce la latenza nella griglia o nell'ipercubo, al crescere della dimensione n del rispettivo lato?
Quote
ogni organizzazione che permette la condivisione delle proprie risorse con le altre componenti della grid computing,
più precisamente, alcune, di solito non tutte, le organizzazioni che accedono alla grid: quelle che costituiscono una stessa organizzazione virtuale, le cui regole stabiliscono quali organizzazioni hanno accesso alle risorse condivise dalle organizzazioni afferenti all'organizzazione virtuale stessa.
Logged
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.529


« Reply #163 on: 13-06-2011, 01:43:15 »

Si sono in contraddizone
giusto (solo) fin qui
Quote
ed è giusta quella del paragrafo 4.4.2 perchè  il prezzo da pagare è solamente un piccolo incremento della memoria di controllo.
No: questa non è una spiegazione ma una riproduzione del testo citato dal par. 4.4.2. È invece corretta l'altra, e le chiedo: perché la presenza di una IFU permette di ridurre la quantità di memoria di controllo usata dal microprogramma?
Logged
Giuseppe Scollo
Moderator
Forumista Eroico
*****
Offline Offline

Posts: 1.529


« Reply #164 on: 13-06-2011, 01:48:00 »

Vicersa se si effettua un'operazione up.
"Viceversa", suppongo: ma che vuol dire? Può accadere che un processo debba essere messo in attesa perché una Up non può essere completata?
Logged
Pages: 1 ... 9 10 [11] 12 13 ... 24   Go Up
Print
Jump to: