Fundamentos Computadores
Fundamentos Computadores
Módulo 1
Fundamentos de los computadores
Índice
Tema 1. Estructura básica de un computador
Tema 2. Representación de la información
Tema 3. Introducción a los Sistemas Operativos y lenguajes
de programación
Índice
Tema 1. Estructura básica de un computador
▫ Introducción
▫ Arquitectura Von Neumann
Memoria
Procesador (CPU)
Dispositivos de entrada y salida
Introducción
• Computador: máquina electrónica que, mediante
determinados programas, permite almacenar y tratar
información, resolviendo problemas de diversa índole
Programa
(instrucciones)
Introducción
• Hardware (HW): parte “tangible” del computador, es
decir, los componentes físicos del sistema (teclado,
ratón, monitor, etc.)
• Software (SW): elementos que describen la realización
de tareas específicas (sistema operativo, procesador de
texto, videojuegos, etc.)
Programa SW
(instrucciones)
HW
datos Computador resultados
Organización de un computador
• El esquema básico tiene una arquitectura Von Neumann
cuyos elementos principales son:
▫ Memoria, que almacena tanto las instrucciones de los
programas como los datos
▫ Procesador (CPU), que bajo control del programa procesa
los datos
▫ Dispositivos de entrada y/o salida (E/S)
buses
CURSO 2022-23 Informática y Programación. Grado en Ingeniería en Organización Industrial-EIIC
7
Organización de un computador
• Dispositivos de E/S
▫ Los dispositivos de entrada introducen en el computador
información del exterior (números, letras o información
obtenida por sensores externos), transformándola a un
sistema de representación interna apta para la
computadora
Organización de un computador
• Memoria: elemento que almacena información, ya sean
datos o instrucciones de programas
▫ En un computador existen diferentes tipos de memoria
Almacena instrucciones y datos
Almacena programa y datos en
Sistema ejecución
electrónico, volátil
Almacena programas y datos en
uso
Sistema
electromecánico (HDD) Almacena programas, imágenes,
o electrónico (SSD), archivos, … TODO
no volátil
Organización de un computador
• Memoria: elemento que almacena información, ya sean
datos o instrucciones de programas
▫ Características
Organización de un computador
• La memoria principal tiene una estructura de celdas
consecutivas, agrupadas en palabras que se identifican
mediante un número entero denominado dirección de
memoria
Organización de un computador
• Las operaciones básicas de la memoria principal son
▫ Lectura, se indica la dirección de memoria, y al activar la
señal de lectura se obtiene el dato contenido
▫ Escritura, se indica la dirección de memoria, el dato a
escribir y se activa la señal de escritura
Leer
Memoria
Escribir
0
Memoria
…
dato 0
26 0110
26 0110 …
dato
27
26 0110
… 27 1010
Dirección 27 1010
de memoria N
…
Dirección
de memoria N
Organización de un computador
• Las características más importantes de la memoria son
▫ Tamaño de la memoria: cantidad de información que
puede almacenar. Se suele medir en bytes
Un bit es un dígito binario con 2 estados posibles (0 y 1)
Un byte es un grupo consecutivo de 8 bits
Existen múltiplos de bytes, con la siguiente correspondencia:
Kilobyte (KB) = 210 = 1.024 bytes
Megabyte (MB) = 1.024 KB = 220 = 1.048.576 bytes
Gigabyte (GB) = 1.024 MB = 230 = 1.073.741.824 bytes
Terabyte (TB) = 1.024 GB = 240 = 1.099.511.627.776 bytes
▫ Tamaño de la palabra: cantidad de celdas de memoria que
se pueden leer o escribir simultáneamente. Suele ser
múltiplo de 8 bits (1 byte), es decir, 16, 32 o 64 bits
▫ Latencia: tiempo empleado para leer o escribir un dato
CURSO 2022-23 Informática y Programación. Grado en Ingeniería en Organización Industrial-EIIC
13
Organización de un computador
• Unidad Central de Proceso (CPU)
▫ Controla la actividad de la computadora y procesa los
datos según un programa
▫ Se compone de dos unidades:
Unidad aritmé�co-lógica (ALU): se encarga de realizar las
operaciones aritméticas (sumas, restas, etc.), lógicas (and, or,
etc.) y de desplazamiento de bits
Unidad de control: controla la ejecución de las instrucciones,
siguiendo el orden establecido en el programa almacenado
en memoria
Organización de un computador
• Unidad aritmé�co-lógica (ALU): realiza operaciones
aritméticas y lógicas básicas, y de desplazamiento de bits
▫ Dispone de registros donde almacena los operandos sobre
los que opera, el resultado y el estado
Organización de un computador
• Unidad de control (UC): controla la ejecución de las
instrucciones del programa almacenado en memoria
▫ Básicamente realiza lo siguiente:
1. (Búsqueda) Extrae una instrucción del programa y analiza su
contenido
2. (Ejecución) Ejecuta la instrucción leída anteriormente
Genera las señales eléctricas y organiza los intercambios de
información entre los componentes del ordenador
3. (Siguiente) Busca la siguiente instrucción y vuelve al paso 1
▫ Dispone de un conjunto de registros como el contador de
programa (PC), el registro de instrucción (IR), etc.
Organización de un computador
CPU
UC ALU
Leer numero
Entrada Salida
Leer numero
numero Calcular doble
Mostrar resultado
Memoria
Organización de un computador
CPU
UC ALU
Calcular doble
Entrada Salida
Organización de un computador
CPU
UC ALU
Mostrar
resultado
Entrada Salida
Organización de un computador
Placa base
Índice
Tema 1. Estructura básica de un computador
Tema 2. Representación de la información
▫ Introducción
▫ Codificación alfanumérica (código ASCII)
▫ Sistema binario y hexadecimal
▫ Notación científica
▫ Aritmética binaria
Introducción
• En nuestro entorno manejamos información que es
representada mediante diferentes símbolos
consensuados por nosotros. Por ejemplo:
▫ el valor de una temperatura se representa por números
▫ un texto se representa mediante símbolos de un alfabeto
▫ la ocurrencia de un hecho se puede representar mediante
una marca de cotejo (✓)
Introducción
• Para almacenar la información del exterior en el
computador es necesario representarla en el sistema
binario (tarea denominada codificación)
Alfabeto binario
Alfabeto latino 1
‘a’‘+’ ‘2’ 0
‘,’ ‘q’ ‘C’ Números
‘?’
‘8’
-3
12049
Codificación alfanumérica
• Los símbolos alfanuméricos abarcan:
Dígitos (‘0’, ‘1’, ‘2’, …)
Caracteres alfabéticos (‘a’, ‘b’, ‘c’, …, ‘A’, ‘B’, ‘C’, …, ‘Y’, ‘Z’)
Símbolos (‘%’, ‘*’, ‘[’, ‘]’, …)
Caracteres de control (tabulación, retorno de carro, …)
• El código ASCII base establece una correspondencia
entre 128 símbolos alfanuméricos y un código de 7 bits
(b7b6b5b4b3b2b1)
• El código ASCII anterior se completa con un ‘0’ a su
izquierda para obtener un código de 8 bits (1 byte)
Código ASCII = (0b7b6b5b4b3b2b1)
Codificación alfanumérica
Código ASCII
(0b7b6b5b4b3b2b1)
H o l a
01001000 01101111 01101100 01100001
‘370’
00110011 00110111 00110000
CURSO 2022-23 Informática y Programación. Grado en Ingeniería en Organización Industrial-EIIC
25
Codificación alfanumérica
• Existe un código ASCII extendido que incorpora 128
caracteres adicionales y utiliza los 8 bits, incluyendo:
Caracteres particulares de países no ingleses, como la ‘ñ’
Símbolos de monedas
Letras griegas
Caracteres para gráficos
Memoria
0 …
‘H’
8 01001000 01101111 01101100 …
1 …
6
… …
N …
1 byte
Sistema binario
• El sistema decimal que utilizamos habitualmente:
▫ utiliza 10 dígitos (del 0 al 9). Es un sistema en base 10
▫ un mismo dígito tiene diferente valor según la posición que
ocupe en el número, 34 ≠ 43. Sistema posicional
▫ cada posición tiene asociado un peso, dado por 10posición
dígito más significativo y dígito menos significativo
• Ejemplo: 281.37
Dígitos 2 8 1 . 3 7
posición 2 1 0 -1 -2
peso 102 101 100 10-1 10-2
valor 200 80 1 0.3 0.07
valor = dígito*peso
CURSO 2022-23 Informática y Programación. Grado en Ingeniería en Organización Industrial-EIIC
27
Sistema binario
• El sistema binario:
▫ utiliza 2 dígitos (el 0 y el 1). Es un sistema en base 2
▫ un mismo dígito tiene diferente valor según la posición que
ocupe en el número, 01 ≠ 10. Sistema posicional
▫ cada posición tiene asociado un peso, dado por 2posición
bit más significativo (MSB) y bit menos significativo (LSB)
• Ejemplo: 100111.101 Representa el número 39.625 en base 10
Dígitos 1 0 0 1 1 1 . 1 0 1
posición 5 4 3 2 1 0 -1 -2 -3
peso 25 24 23 22 21 20 2-1 2-2 2-3
valor 32 0 0 4 2 1 0.5 0 0.125
valor = dígito*peso
CURSO 2022-23 Informática y Programación. Grado en Ingeniería en Organización Industrial-EIIC
28
Sistema binario
• Conversión binario a decimal ✓
• Conversión decimal a binario
▫ Se trata de forma diferente la parte entera y fraccionaria
Método divisiones sucesivas: la parte entera se divide
sucesivamente por 2 (divisiones enteras), recogiendo los
restos y el último cociente (que es el MSB)
Método multiplicaciones sucesivas: la parte fraccionaria se
multiplica sucesivamente por 2, recogiendo las partes enteras
obtenidas. Hasta que el resultado de la multiplicación sea 1.0
Sistema binario
Ejemplo: 39.625 = 39 (parte entera) + 0.625 (parte fraccionaria)
39 2 0.625 * 2 = 1.25
1 19 2 0.25 * 2 = 0.5
1 9 2 0.5 * 2 = 1.0
1 4 2
0 2 2
0 1
100111.101
Sistema hexadecimal
• Codifica grupos de 4 bits mediante la siguiente tabla
Sistema binario Sistema hexadecimal - Es un sistema base 16 (utiliza dígitos del 0 a la F)
0000 0
0001 1 1579(10) = 11000101011(2) =
0010 2
0011 3 110 0010 1011(2) =
0100 4
0101 5 62B(16)
0110 6
0111 7 - Es posible convertir directamente del sistema
1000 8 decimal al hexadecimal por el método de
1001 9 divisiones sucesivas (dividiendo por 16)
1010 A - Es posible convertir directamente del sistema
1011 B hexadecimal al decimal, pues cada posición tiene
1100 C asociado un peso dado por 16posición
1101 D
1110 E
1111 F
Notación científica
• Para representar números enteros grandes o números
fraccionarios muy pequeños son necesarios muchos bits
• La notación científica (coma flotante) es una forma de
expresar estos números limitando la cantidad de bits
usados
• Un número en coma flotante tiene 3 partes
Signo
Mantisa, indica la magnitud del número
Exponente, indica el desplazamiento de la coma
± Mantisa × BaseExponente
Notación científica
• Los números se normalizan, desplazando la coma para
que la parte entera del número siempre valga cero
5104700 = + 0.5104700 × 107
Notación científica
• Bit de signo 0 para valores positivos y 1 para negativos
• El campo exponente no tiene bit de signo. Para permitir
valores positivos y negativos se almacena desplazado (se
le suma 127) exponente exponente desplazado
-127 0 00000000
… +127 … …
-1 126 01111110
0 127 01111111
1 128 10000000
… … …
128 255 11111111
• La mantisa se normaliza hasta que aparezca un solo ‘1’ a
la izquierda de la coma 1101.01 = 1.10101 × 23 (2)
0 10000010 10101000000000000000000
CURSO 2022-23 Informática y Programación. Grado en Ingeniería en Organización Industrial-EIIC
36
Notación científica
Ejemplo: 52.125(10)
1. Transformar de decimal a binario
52 2 0.125 * 2 = 0.25
0 26 2 0.25 * 2 = 0.5
0 13 2 0.5 * 2 = 1.0
1 6 2
0 3 2
1 1 110100.001(2)
2. Normalizar
110100.001 = 1.10100001 × 25
3. Codificar
signo = 0, exponente = 5 + 127 = 132, mantisa = 10100001
0 10000100 10100001000000000000000
CURSO 2022-23 Informática y Programación. Grado en Ingeniería en Organización Industrial-EIIC
37
Notación científica
Ejemplo: -0.0001(10)
1. Transformar de decimal a binario
0.0001 * 2 = 0.0002
0.0002 * 2 = 0.0004
0.0004 * 2 = 0.0008
0.0008 * 2 = 0.0016
… -0.00000000000001101000110110111100010111…(2)
2. Normalizar
-0.00000000000001101000110110111100010111… =
-1.10100011011011100010111… × 2-14
3. Codificar
signo= 1, exponente= -14 + 127 = 113, mantisa=10100011011011100010111
1 01110001 10100011011011100010111
Notación científica
Ejemplo: 00111010110001001001101110100110(2)
1. Identificar los campos (suponemos precisión simple)
signo = 0, exponente = 01110101, mantisa = 10001001001101110100110
2. Decodificar
exponente = 01110101(2) = 117(10)
exponente_noDesplazado = 117 – 127 = -10
número = 1.10001001001101110100110 × 2-10
3. Desnormalizar
1.10001001001101110100110 × 2-10 =
0.000000000110001001001101110100110
4. Convertir de binario a decimal
0*2-1 + 0*2-2 + … + 1*2-10 + 1*2-11 + 0*2-12 +… = 0.00150000001303852(10)
Almacenamiento en el computador
• Dado un valor numérico, se han presentado diversas formas
de almacenarlo en el computador
▫ Código ASCII, Binario puro, Coma flotante
Aritmética binaria
Suma binaria
▫ Reglas básicas 0 1 0 1 1
+0 +0 +1 +1
0 1 1 0
Ejemplo: 1 1
29 1 1 1 0 1
+ 26 1 1 0 1 0
1 1 0 1 1 1 = 55(10)
Aritmética binaria
Resta binaria
▫ La resta se convierte en suma, calculando el “complemento a 2” del
sustraendo
El complemento a 2 de un número binario se obtiene intercambiando 0s y
1s, y finalmente sumándole 1
También se calcula recorriendo el número de derecha a izquierda, y a partir
del bit a la izquierda del primer 1 localizado se intercambian 0s y 1s
Aritmética binaria
Procedimiento resta binaria
1.Ambos números deben tener igual cantidad de bits (en caso necesario
añadir 0s a la izquierda)
2.Añadir bit de signo a la izquierda de cada número (0 si positivo, 1 negativo)
3.Calcular el “complemento a 2” del sustraendo
4.Calcular la suma (en caso de acarreo final despreciarlo)
5.Si es negativa deshacer el “complemento a 2” sin considerar el signo
22 10110 010110 Ca2 010110 22
- 2 -00010 -000010 +111110 - 2
Acarreo final
1010100 +20
Índice
Tema 1. Estructura básica de un computador
Tema 2. Representación de la información
Tema 3. Introducción a los Sistemas Operativos y
lenguajes de programación
▫ Sistemas Operativos
▫ Lenguajes de programación
Introducción a los SO
• ¿Qué es un SO?
▫ Programa que actúa de intermediario entre los usuarios (o
aplicaciones) y el hardware, administrando de forma eficiente
los recursos disponibles
Introducción a los SO
• El SO tiene como objetivos:
▫ Facilitar la interacción con el computador
▫ Administrar eficientemente los recursos disponibles
▫ Proveer un entorno para ejecutar las aplicaciones
▫ Gestión del almacenamiento físico (sistema de archivos)
Introducción a los SO
• El SO tiene como objetivos:
▫ Facilitar la interacción con el computador
Proporciona una interfaz de usuario, con diferentes formas
Introducción a los SO
• El SO tiene como objetivos:
▫ Facilitar la interacción con el computador
▫ Administrar eficientemente los recursos disponibles
Optimiza el uso de los recursos (CPU, memoria, puertos, etc.). A
quién se le entregan los recursos, qué cantidad, en qué momento y
por cuánto tiempo
En algunos casos permite la multitarea y multiusuarios
Permite trabajar con dispositivos de E/S muy diversos (disco duro,
SSD, etc.), evitando conocer los detalles de cada periférico
▫ Proveer un entorno para ejecutar las aplicaciones
▫ Gestión del almacenamiento físico (sistema de archivos)
Introducción a los SO
• El SO tiene como objetivos:
▫ Facilitar la interacción con el computador
▫ Administrar eficientemente los recursos disponibles
▫ Proveer un entorno para ejecutar las aplicaciones
Cargar las aplicaciones en memoria
Gestionar la ejecución de los procesos (memoria virtual)
▫ Gestión del almacenamiento físico (sistema de archivos)
Introducción a los SO
• El SO tiene como objetivos:
▫ Facilitar la interacción con el computador
▫ Administrar eficientemente los recursos disponibles
▫ Proveer un entorno para ejecutar las aplicaciones
▫ Gestión del almacenamiento físico (sistema de archivos)
Ubicación de archivos y directorios, control de huecos, compactación
Manipulación de archivos y directorios (crear, borrar, leer, escribir)
Automatizar ciertos servicios como la copia de seguridad, archivos
temporales, versiones, etc.
Lenguajes de programación
Pasos para realizar la tarea “contar hasta 10”
• En lenguaje natural
“Levanta un dedo y di UNO. Levanta otro dedo, suma los dedos levantados y di el resultado. Levanta otro
dedo, suma los dedos levantados y di el resultado, …, cuando hayas levantado todos los dedos para.”
• En lenguaje de alto nivel
for (int i=1; i<=10; i++)
System.out.println(i); Más comprensible
• En lenguaje de bajo nivel
add $s0, $0, $0
addi $s1, $0, 10
bucle: beq $s0, $s1, fin
addi $s0, $s0, 1
move $a0,$v0
li $v0,1
syscall
j bucle
fin: jr $31 Mayor esfuerzo
• En lenguaje máquina
0000 1001 1100 0110 1010 1111 0101 1000 ... ... 1001 1100 0110 1010 1111
Lenguajes de programación
• Código fuente: conjunto de instrucciones que debe realizar el
computador para llevar a cabo una tarea
• Lenguaje de programación: lenguaje utilizado para describir el conjunto
de instrucciones de un código fuente
• Compilador: programa que examina y traduce las instrucciones de un
determinado lenguaje de programación a un lenguaje entendible por el
computador
Código fuente Código objeto
Compilador Ejecución
• Intérprete: programa que examina, traduce y ejecuta, una por una, las
instrucciones de un determinado lenguaje de programación sin generar
ningún programa traducido
Código fuente Intérprete Ejecución
IDE
• Existen programas, denominados entornos de desarrollo integrado (IDE),
que facilitan la edición, compilación, ayuda en la corrección de errores,
depuración, ejecución, etc. de uno o varios lenguajes de programación
IDE