Anteprima
Vedrai una selezione di 10 pagine su 75
Sistemi di calcolo 1 (Teoria + Esercizi) Pag. 1 Sistemi di calcolo 1 (Teoria + Esercizi) Pag. 2
Anteprima di 10 pagg. su 75.
Scarica il documento per vederlo tutto.
Sistemi di calcolo 1 (Teoria + Esercizi) Pag. 6
Anteprima di 10 pagg. su 75.
Scarica il documento per vederlo tutto.
Sistemi di calcolo 1 (Teoria + Esercizi) Pag. 11
Anteprima di 10 pagg. su 75.
Scarica il documento per vederlo tutto.
Sistemi di calcolo 1 (Teoria + Esercizi) Pag. 16
Anteprima di 10 pagg. su 75.
Scarica il documento per vederlo tutto.
Sistemi di calcolo 1 (Teoria + Esercizi) Pag. 21
Anteprima di 10 pagg. su 75.
Scarica il documento per vederlo tutto.
Sistemi di calcolo 1 (Teoria + Esercizi) Pag. 26
Anteprima di 10 pagg. su 75.
Scarica il documento per vederlo tutto.
Sistemi di calcolo 1 (Teoria + Esercizi) Pag. 31
Anteprima di 10 pagg. su 75.
Scarica il documento per vederlo tutto.
Sistemi di calcolo 1 (Teoria + Esercizi) Pag. 36
Anteprima di 10 pagg. su 75.
Scarica il documento per vederlo tutto.
Sistemi di calcolo 1 (Teoria + Esercizi) Pag. 41
1 su 75
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Von Neumann

Bus: strumento di trasmissione su cui vengono trasmessi dati in un sistema di calcolo

Word (parola): unità di trasferimento dati (es. 32 bit, 64 bit)

Linguaggio Macchina = linguaggio nativo della CPU (microprocessore) è specificato da un set di istruzioni eseguibili dalla CPU

Una CPU esegue istruzioni caricandole dalla memoria ed eseguendole sequenzialmente

È in realtà possibile eseguire simultaneamente alcune istruzioni, ma l'effetto dal punto di vista di un osservatore esterno è come se le istruzioni fossere eseguite in sequenza

N.B.: Una CPU può essere costituita da più "CORE" che sono a loro volta dei microprocessori sequenziali

Gli eventi in una CPU sono regolati da un CLOCK, che temporizza gli eventi stessi.

Unità minima: ciclo di clock che descrive il tempo minimo fra due eventi.

I cicli di clock sono una misura indiretta del tempo di esecuzione.

Es.: L'addizione intera richiede generalmente 1 ciclo di clock. La divisione intera richiede spesso 8-10 cicli di clock

La velocità di una CPU è determinata dalla frequenza di clock

Anno: Microprocessore Frequenza

  • 1980: 780 1,5 MHz = 1,5 milioni di cicli al secondo
  • 2004: Intel Core 2 3,5 GHz = 3,5 miliardi

Memoria: RAM memoria volatili

(Tecnologia: DRAM)

Serve corrente elettrica per "rinfrescarsi" periodicamente

Regola Generale: Più una memoria è grande più è lenta ed economica.

Dimensioni: numero di byte (o suoi multipli di 10) memorizzabili.

Hard Disk: memoria non volatile; presente della scheda madre.

  • 1980: 20 MB — MB = milioni di byte
  • 2015: 2 TB

1 byte

1 KB = 103 byte ≈ migliaia

1 MB = 220 byte ≈ milioni

1 GB = 230 byte ≈ miliardi

1 TB = 240 byte ≈ migliaia di miliardi

KiB = 210 byte

MiB = 220 byte

Memoria RAM:

  • 1980: ZX Spectrum 48 KB, C64 64 KB
  • 2015: 8 GB

All'avvio di un programma, il Sistema Operativo allocca un certo numero di "risorse" che vengono riservate al programma.

Termine PROCESSO = Programma in esecuzione.

Il Sistema Operativo associa ad ogni processo uno spazio di memoria privato, cioè accessibile solo da quel processo (e da SO).

Lo SPAZIO di MEMORIA viene detto anche IMMAGINE DI MEMORIA.

Un processo può più e non deve interferire con le attività di un altro processo.

Autonomia dello spazio di memoria di un processo

  • Indirizzi Virtuali: Quelli usati dal processo (puntatori).
  • Indirizzo Fisico: Vissible solo da S.O.
  • Gli indirizzi logici vengono "mappati" dal S.O. sugli indirizzi fisici.

Prime Istruzioni:

ASSEGNAME NTO

C I A32

int x;x=10;x è in A

movl $10, %eax

istruzione operando destinazione operando sorgentesuffisso: specifica il tipo del valore scritto

Es.

minimo.s

globl ff: movl $10, %eaxret

ret è un'istruzione che ritorna al chiamante

N.B. per convenzione, il valore restituito quello nel registro A quando ret viene eseguito

N.B. Quando compilo i programmi sulla riga di comando deve inserire -m32

per lavorare con I A32

Es: gcc minimo.s -c -m32

C I A32

short x;X=30;x è in Amovw $30, %ax

char x;X=30;x è in Amovb $30, %al

int somma (int x, int y) {

  • int a = x ;
  • a = a + y ;
  • return y ;

Es.

void incrementa (int *xp) {

  • *xp = *xp + 1 ;

N.B. Sorgente e destinazione NON possono essere contemporaneamente operandi memoria!

NON SI PUÒ FARE: movl (%eax), (%ecx)

Salti Condizionati

Istruzione JCC etichetta

suffisso → stabilisce la condizione per cui il salto deve essere effettuato

Es.

  • JE → test uguaglianza
  • JG → test >

Test di Condizioni

Le condizioni sono le seguenti:

suffisso test e == ne != g (greater) > (test con segno) ge >= l (less) = b (below) 0) { if (a[d] == c) return 1; d--; } return 0; }

IA32

.globl cerca cerca: movel 4(%esp), %eax movswl 8(%esp), %ecx movl 12(%esp), %edx decl %edx L: cmpl $0, %edx Jle E cmpw %cx,(%eax,%edx,2) Jne F movl $1,%eax ret F: decl %edx Jmp L E: movel $0, %eax xorl %eax,%eax ret

C pseudo

L: if (d < 0) goTo E if (a[d] != c) goTo F return 1 F: d--; goTo L return 0;

N.B.: Si tratta dello stesso ciclo anche se do while

char a;

int c;

c = a; ➔ movsb %al, %ecx

c = a;

movswl %ax, %ecx

unsigned short a;

unsigned c;

void clear (unsigned *v, unsigned u) {

unsigned i=0;

while (i < n) v[i++]=0;

}

void print(unsigned short*v, unsigned u) {

unsigned n,i;

for(i=0; i < n; i++) printf("%hu ", v[i]);

printf("\n");

}

int main() {

unsigned short v[]= {1,5,2,3,6}

unsigned n = (sizeof(v) / sizeof (unsigned short));

clear(v,n);

print(v,n);

return 0;

}

E5

int g (int x, int y) {

int a = 8 (x/y);

return a;

}

QS

int g (int x, int y) {

int a = 8 (y/x);

return a;

}

C. QQ

int d = (x);

int a = g(x);

int b = g();

int c = (a);

int e = (b);

int c = y;

a = g(b);

c = a + c;

SP

  • moveq 16(%esp), %eax
  • divl 20(%esp)
  • movl 12(%esp)
  • movl 8(%esp)
  • call 16(%esp)
  • mov 24, %eax
Dettagli
Publisher
A.A. 2017-2018
75 pagine
SSD Scienze matematiche e informatiche MAT/08 Analisi numerica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher leoma di informazioni apprese con la frequenza delle lezioni di Sistemi di calcolo e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Roma La Sapienza o del prof Demetrescu Camil.