Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... ·...
Transcript of Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... ·...
![Page 1: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/1.jpg)
Objetivos y presentación del curso
Estructura de ComputadoresGrado en Ingeniería Informática
Grupo ARCOS
![Page 2: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/2.jpg)
Alejandro Calderón MateosFélix García-Carballeira,
Estructura de Computadores en la UC3M
} Asignatura obligatoria de segundo curso de:} Grado en Ingenería Informática} Doble Grado en Ingeniería Informática y Administración de
Empresas
ARCOS @ UC3M2
![Page 3: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/3.jpg)
Alejandro Calderón MateosFélix García-Carballeira,
Estructura de Computadores en la UC3M
ARCOS @ UC3M3
Estructura de Computadores2º
![Page 4: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/4.jpg)
Alejandro Calderón MateosFélix García-Carballeira,
Estructura de Computadores en la UC3M
ARCOS @ UC3M4
Estructura de Computadores
Programación Tecnología de Computadores Estructuras de Datos y Algorit.
2º
1º
![Page 5: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/5.jpg)
Alejandro Calderón MateosFélix García-Carballeira,
Estructura de Computadores en la UC3M
ARCOS @ UC3M5
Estructura de Computadores
Programación Tecnología de Computadores Estructuras de Datos y Algorit.
Sistemas Operativos
2º
1º
![Page 6: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/6.jpg)
Alejandro Calderón MateosFélix García-Carballeira,
Estructura de Computadores en la UC3M
ARCOS @ UC3M6
Estructura de Computadores
Programación Tecnología de Computadores Estructuras de Datos y Algorit.
Sistemas Operativos
Arquitectura de Computadores
Organización de Computadores
Redes de Ordenadores
Sistemas Distribuidos
2º
1º
3º
![Page 7: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/7.jpg)
Alejandro Calderón MateosFélix García-Carballeira,
Estructura de Computadores
ARCOS @ UC3M7
Estructura de Computadores
Programación Tecnología de Computadores Estructuras de Datos y Algorit.
Sistemas Operativos
Arquitectura de Computadores
Organización de Computadores
Redes de Ordenadores
Sistemas Distribuidos
Sistemas de Tiempo Real Desarrollo de SW de sistemas Panorámica de las Com. digitales
2º
1º
3º
4º
![Page 8: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/8.jpg)
Alejandro Calderón MateosFélix García-Carballeira,
Objetivos del curso
ARCOS @ UC3M8
¿ ?Conocer y entender los componentes y el funcionamientobásico de un computador
![Page 9: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/9.jpg)
Alejandro Calderón MateosFélix García-Carballeira,
Cualquier tipo de computador
ARCOS @ UC3M9
![Page 10: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/10.jpg)
Alejandro Calderón MateosFélix García-Carballeira,ARCOS @ UC3M10
Entender cómo se ejecuta un programa
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp; Lenguaje de alto nivel (C)
![Page 11: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/11.jpg)
Alejandro Calderón MateosFélix García-Carballeira,ARCOS @ UC3M11
Entender cómo se ejecuta un programa
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
0000 1001 1100 0110 1010 1111 0101 10001010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111
Instrucciones máquina
Lenguaje de alto nivel (C)
![Page 12: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/12.jpg)
Alejandro Calderón MateosFélix García-Carballeira,ARCOS @ UC3M12
Entender cómo se ejecuta un programa
lw $t0, 0($2)
lw $t1, 4($2)
sw $t1, 0($2)
sw $t0, 4($2)
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
0000 1001 1100 0110 1010 1111 0101 10001010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111
Lenguaje de alto nivel (C)
Lenguaje ensamblador
Instrucciones máquina
![Page 13: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/13.jpg)
Alejandro Calderón MateosFélix García-Carballeira,ARCOS @ UC3M13
Entender cómo se ejecuta un programa
lw $t0, 0($2)
lw $t1, 4($2)
sw $t1, 0($2)
sw $t0, 4($2)
temp = v[k];
v[k] = v[k+1];
v[k+1] = temp;
0000 1001 1100 0110 1010 1111 0101 10001010 1111 0101 1000 0000 1001 1100 0110 1100 0110 1010 1111 0101 1000 0000 1001 0101 1000 0000 1001 1100 0110 1010 1111
Compilador
Ensamblador
![Page 14: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/14.jpg)
Alejandro Calderón MateosFélix García-Carballeira,ARCOS @ UC3M14
Entender cómo se ejecuta un programaEjemplo 1int n;
n = 40000;
printf("%d \n", n *n );
n = 50000;
printf("%d \n", n *n );
} ¿Es correcta esta salida?1600000000
-1794967296
![Page 15: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/15.jpg)
Alejandro Calderón MateosFélix García-Carballeira,ARCOS @ UC3M15
Entender cómo se ejecuta un programaEjemplo 2float x, y , z;
x = 1.0e20;
y = -1.0e20;
z = 3.14;
printf("%f\n", (x + y) + z);
printf("%f\n", x + (y + z));
} ¿Es correcta ls siguiente salida?1600000000
-1794967296
} ¿Se cumple (x+y) + z == x + (y+z)?
![Page 16: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/16.jpg)
Alejandro Calderón MateosFélix García-Carballeira,ARCOS @ UC3M16
Entender cómo se ejecuta un programaEjemplo 3} Código 1
int a[N][N]
for (i=0; i < N; i++)
for (j=0; j < N; j++)
sum = sum + a[i][j];
} Código 2
int a[N][N]
for (j=0; j < N; j++)
for (i=0; i < N; i++)
sum = sum + a[i][j];
} ¿Hacen lo mismo?} ¿Tardan lo mismo en ejecutarse?
![Page 17: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/17.jpg)
Alejandro Calderón MateosFélix García-Carballeira,ARCOS @ UC3M17
Entender cómo se ejecuta un programaEjemplo 4
#include <stdio.h>
#define BLOCK_SIZE 512
void main(int argc, char **argv){
int fde, fds;char buffer[BLOCK_SIZE];int n;
fde = open(argv[1], 0);fds = creat(argv[2], 0666);
while((n = read(fde, buffer, BLOCK_SIZE))> 0)write(fds, buffer, n);
close(fde);close(fds);
return;}
¿Qué ocurre si BLOCK_SIZE = 8192?
![Page 18: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/18.jpg)
Alejandro Calderón MateosFélix García-Carballeira,
Entender cómo se ejecuta un programaEjemplo 5
if (i == (int)((float) i))
{
printf(“true”);
}
ARCOS @ UC3M18
¿Dado el siguiente fragmento?
¿Se ejecuta siempre la función printf()?
![Page 19: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/19.jpg)
Alejandro Calderón MateosFélix García-Carballeira,
Entender cómo se ejecuta un programaEjemplo 6} ¿Se puede intercambiar el valor de dos variables sin usar
una variable intermedia?
} ¿Cómo se puede saber si el número de bits igual a 1 de una variable long de Java es par (de forma eficiente)?
ARCOS @ UC3M19
![Page 20: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/20.jpg)
Alejandro Calderón MateosFélix García-Carballeira,
Entender cómo se ejecuta un programaEjemplo 7} ¿Son correctas las siguientes afirmaciones?
Un programa escrito en lenguaje máquina/ensamblador es más eficiente que un programa escrito en un lenguaje de alto nivel como C
Un programa siempre ejecutará más rápido cuanto más cores/núcleos tenga el procesador
ARCOS @ UC3M20
![Page 21: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/21.jpg)
Alejandro Calderón MateosFélix García-Carballeira,
Ejemplo 8¿Funciona correctamente este programa?public class Stack {
private Object[] elements;private int size = 0;private static final int DEFAULT_INITIAL_CAPACITY = 16;
public Stack() {elements = new Object[DEFAULT_INITIAL_CAPACITY];
}
public void push(Object e) {ensureCapacity();elements[size++] = e;
}
public Object pop() {if (size == 0)
throw new EmptyStackException();return elements[--size];
}
private void ensureCapacity() {if (elements.length == size)
elements = Arrays.copyOf(elements, 2 * size + 1);}
}ARCOS @ UC3M21
![Page 22: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/22.jpg)
Alejandro Calderón MateosFélix García-Carballeira,
Ejemplo 8¿Funciona correctamente este programa?public class Stack {
private Object[] elements;private int size = 0;private static final int DEFAULT_INITIAL_CAPACITY = 16;
public Stack() {elements = new Object[DEFAULT_INITIAL_CAPACITY];
}
public void push(Object e) {ensureCapacity();elements[size++] = e;
}
public Object pop() {if (size == 0)
throw new EmptyStackException();return elements[--size];
}
private void ensureCapacity() {if (elements.length == size)
elements = Arrays.copyOf(elements, 2 * size + 1);}
}ARCOS @ UC3M22
Memory Leaks
![Page 23: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/23.jpg)
Alejandro Calderón MateosFélix García-Carballeira,
Ejemplo 8¿Funciona correctamente este programa?public class Stack {
private Object[] elements;private int size = 0;private static final int DEFAULT_INITIAL_CAPACITY = 16;
public Stack() {elements = new Object[DEFAULT_INITIAL_CAPACITY];
}
public void push(Object e) {ensureCapacity();elements[size++] = e;
}
public Object pop() {if (size == 0)
throw new EmptyStackException();return elements[--size];elements[size] = null; // Eliminate obsolete reference
}
private void ensureCapacity() {if (elements.length == size)
elements = Arrays.copyOf(elements, 2 * size + 1);}
}
ARCOS @ UC3M23
![Page 24: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/24.jpg)
Alejandro Calderón MateosFélix García-Carballeira,ARCOS @ UC3M24
Ejemplo 9
} ¿Qué procesador es más rápido?
![Page 25: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/25.jpg)
Alejandro Calderón MateosFélix García-Carballeira,
Temario
Tema 1. Introducción a los computadores
Tema 2. Representación de la información
Tema 3. Fundamentos de la programación en ensamblador
Tema 4. El procesador
Tema 5. Sistemas de memoria
Tema 6. Sistemas de Entrada/salida
ARCOS @ UC3M25
![Page 26: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/26.jpg)
Alejandro Calderón MateosFélix García-Carballeira,ARCOS @ UC3M26
Bibliografía
} Problemas resueltos de Estructurade Computadores. 2ª ediciónF. García, J. Carretero, J. D. GarcíaD. Expósito2015
} Computer Organization and DesignThe Hardware/Software InterfaceD. A. Patterson, J. Hennessy
Quinta edición2014
![Page 27: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/27.jpg)
Alejandro Calderón MateosFélix García-Carballeira,
Bibliografía
} Fundamentos de Sistemas DigitalesThomas L. FloydPearson 2016
} Computer Organization and ArchitectureDécima ediciónWilliam StallingsPearson 2016
ARCOS @ UC3M27
![Page 28: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/28.jpg)
Alejandro Calderón MateosFélix García-Carballeira,
Materiales complementarios
} Computer History Museum} Museo histórico de la Informática, Universidad Politécnica
de Madrid} Museo virtual de la Informática. Universidad de Castilla-la
Mancha} https://www.computer.org/cms/Computer.org/Publication
s/timeline.pdf} The EDSAC Simuator} IBM Archives} Charles Babbage Institute
ARCOS @ UC3M28
![Page 29: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/29.jpg)
Alejandro Calderón MateosFélix García-Carballeira,
¿Por qué estudiar Estructura de Computadores? W. Stallings
ARCOS @ UC3M29
![Page 30: Grupo ARCOS - ocw.uc3m.esocw.uc3m.es/ingenieria-informatica/estructura-de-computadores/tran... · Objetivos y presentación del curso Estructura de Computadores Grado en Ingeniería](https://reader031.fdocument.pub/reader031/viewer/2022022105/5bdc52f609d3f2f2668dbdf9/html5/thumbnails/30.jpg)
Alejandro Calderón MateosFélix García-Carballeira,
¿Por qué estudiar Estructura de Computadores? W. Stallings
ARCOS @ UC3M30