Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

40
Fundamentos de Programación

Transcript of Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Page 1: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Fundamentos de Programación

Page 2: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Fundamentos de procesamiento de Datos (8 hrs)

Page 3: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Conceptos Básicos….

• Un programa informático es un conjunto de instrucciones que una vez ejecutadas realizarán una o varias tareas en una computadora.

• Sin programas, estas máquinas no pueden funcionar.

• Al conjunto general de programas, se le denomina software, que más genéricamente se refiere al equipamiento lógico o soporte lógico de una computadora digital.

Page 4: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Conceptos Básicos….

• Los programas se almacenan en una memoria no volátil (por ejemplo un disco), para que luego el usuario de la computadora, directa o indirectamente, solicite su ejecución.

• Al momento de dicha solicitud, el programa es cargado en la memoria de acceso aleatorio o RAM del equipo, bajo el control del sistema operativo, que puede acceder directamente al procesador.

• El procesador ejecuta (corre) el programa, instrucción por instrucción hasta que termina.

• A un programa en ejecución se le suele llamar también proceso.

• Un programa puede terminar su ejecución en forma normal o por causa de un error.

Page 5: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Tipos de Programas (Software).

Software de sistema. Como Sistemas operativos, controladores de dispositivo, herramientas de diagnóstico, etc.Software de programación. Editores de texto, compiladores, IDE – como Netbeans-, etc.Software de aplicación. Aplicaciones ofimáticas, bases de datos, sistemas de control, videojuegos, etc.

Page 6: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Software del sistema.

• Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles del computador en particular, aislándolo especialmente del procesamiento referido a las características internas de: memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc.

• El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivel, herramientas y utilidades de apoyo que permiten su mantenimiento.

• Ejemplo: Sistema Operativo.

Page 7: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Software de aplicación.

Aquel que permite a los usuarios llevar a cabo una o varias tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios. Ejemplo:• Aplicaciones ofimáticas • Software educativo • Software empresarial • Bases de datos • Telecomunicaciones (p.ej. internet y toda su

estructura lógica) • Videojuegos • Software médico

Page 8: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Conceptos de programa.

• Un programa, o también llamado programa informático, programa de computación , es simplemente un conjunto de instrucciones para una computadora para realizar una tarea especifica.

• Para realizar estas tareas se necesitan datos.

Page 9: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Datos…

• El dato (del latín datum), es una representación simbólica (numérica, alfabética, algorítmica etc.), atributo o característica de una entidad.

• En programación un dato es la expresión general que describe las características de las entidades sobre las cuales opera un algoritmo.

Page 10: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Datos…

• Un dato por sí mismo no constituye información, es el procesado de los datos lo que nos proporciona información.

Page 11: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Representación de los datos.

• El único código que entiende la CPU son los bits. • Los bits son representados en circuitos

electrónicos que pueden estar en estado “on” (1) u “off” (0)

• Las instrucciones se mandan a la CPU en forma de bytes, que son palabras de 8 bits

• 1 byte = 8 bits• 1 kilobyte = 1 024 bytes• 1 megabyte = 1 024 kilobytes = 1 048 576 bytes• Etc.

Page 12: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Representación de los datos.

Base 10:Dígitos = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

1111 = 1*103 + 1*102 + 1*101 + 1*100

Base 2:Dígitos = {0, 1}

1111 = 1*23 + 1*22 + 1*21 + 1*20 = 8 + 4 + 2 + 1 = 15

¿Cuántos valores puede representar un byte?

1 byte = 8 bits (Ej: 01100101)Cada bit puede representar 2 valores (0 y 1)Un byte puede representar 28 = 256 valores

Page 13: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Representación de textos.

Page 14: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Representación de imagen.

• División de la imagen en una matriz de pixels (unidad de la imagen)

• Cada pixel asociado con un color

0 0 0 0 0 0 0 00 0 1 1 0 1 1 00 0 1 0 0 0 1 00 0 1 0 0 0 1 00 0 1 1 0 1 1 00 0 0 0 0 0 0 00 0 1 1 0 1 1 00 0 0 0 0 0 0 0

Page 15: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

¿Qué es un programa entonces?

• Un programa es una secuencia de instrucciones a la CPU

• Cada instrucción es un conjunto de bytes• Ejemplos de instrucciones:

• Leer un dato del teclado• Guardar un dato en la memoria• Ejecutar una operación sobre

dos datos• Mostrar un dato en la pantalla

• etc.

Page 16: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Componentes de un programa.

• Entrada: datos del problema a resolver

• Salida: el resultado de la resolución• Proceso: pasos a seguir para la

resoluciónPropiedades:• Preciso: orden estricto + expresiones

precisas • Definido: con la misma entrada,

siempre resulta la misma salida• Finito: número finito de pasos

Page 17: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Ejemplo.

Problema: Sumar dos númerosSolución: • Entrada: dos números• Salida: guardar la suma en la memoria y

imprimirla por pantalla• Proceso: • Añadir los dos números • Guardar el resultado en la memoria• Imprimir el resultado por pantalla

Page 18: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Otro ejemplo.

Problema: averiguar la solvencia de un cliente que ejecuta un pedido a una fábrica.Solución:• Entrada: el pedido• Salida: mensaje de aceptación o rechazo• Proceso: • Leer el pedido• Examinar la ficha del cliente • Si el cliente es solvente, aceptar pedido• En caso contrario, rechazar pedido

Page 19: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Estructura funcional de una computadora.Definiciones

INFORMÁTICA = INFORmación autoMÁTICAConocimientos científicos + técnicas

paraTratamiento automático de la información

usandoComputadoras electrónicas

programas: listas de instrucciones

que el computador

puede ejecutar

datos sobre los que actúan los

programas

SOFTWARE: soporte lógico

Teclado

Pantalla

Tarjetas

Cables

HARDWARE: soporte

físico

Page 20: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Definiciones

computadora

Todas estas acciones se realizan bajo el control de un conjunto ordenado de instrucciones = PROGRAMAUn programas se escriben en un determinado LENGUAJE DE PROGRAMACIÓN => conjunto de reglas (léxicas, sintácticas, y semánticas)

Máq

uina

cap

az d

e

1. Aceptar unos datos de entrada

2. Efectuar con ellos operaciones lógicas y/o

aritméticas (procesamiento)

3. Proporcionar la información resultante a través de unos

datos de salida

Page 21: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Estructura funcional de un computador

Arquitectura de Von Neumann

Page 22: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

La Memoria Principal

Función:

Unidad de almacenamiento de instrucciones y datosFormada por circuitos electrónicos integrados capaces de almacenar valores binarios (0 o 1) en cada celda de memoriaPalabra de memoria: conjunto de celdas de memoria que se pueden leer o escribir simultáneamente.Dirección de memoria: número que identifica de forma unívoca cada palabra de memoria.

Ejemplo de memoria de 1024 palabras de 8 bits cada una = memoria de 1KB

Page 23: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

La Memoria Principal

Tipos de memoria principal

RAM (Random Access Memory, memoria de acceso aleatorio).ROM (Read Only Memory, memoria de sólo lectura).

Caché.Memoria RAM:

De Acceso aleatorio o directo: se puede acceder a ella a cualquier posición.El tiempo de acceso a un dato no depende de su posición.

Operaciones que se pueden realizar:Lectura, un dato puede ser leído tantas veces como queramos

Escritura, al escribir un dato se pierde el que hubiera antes en esa misma posición

Es una memoria volátil: se borra al desconectarle la alimentación.Información que contiene:

Código binario (instrucciones) de los programas en ejecución:Sistema Operativo

Programas del usuario en ejecución (editor de texto, juego,...)Controladores de dispositivos (ratón, tarjeta de sonido,...)

Datos que necesitan los programas

Page 24: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

La Memoria Principal

Memoria ROM:De Acceso aleatorio o directo.

Sólo se puede acceder a ella para realizar una operación de lectura.Es una memoria no volátil: no se borra al desconectarle la alimentación.

Información que contiene:Programa para la puesta en marcha del computador:

Chequeo del hardware: Control del teclado, memoria disponible…Cómo cargar el S.O.

BIOS (Basic Input Output System, sistema básico de entrada/salida) (actualmente en una memoria flash)

Programa SETUP

Memoria Caché:Memoria más cara y rápida que la memoria RAM que se suele ubicar entre ésta y la CPU.

Acelera la transferencia de datos entre la CPU y la Memoria principalFuncionamiento: Cuando la CPU necesita un dato se copia un bloque de memoria desde la RAM a la caché, de forma que los datos siguientes se leerán/escribirán de la caché, que es

mucho más rápida. El bloque se copiará a la RAM si hubo cambios.

Page 25: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Unidad Central de Proceso

CPU, Unidad Central de Proceso = Procesador

Elemento que controla y realiza la mayoría de las operaciones que se llevan a cabo en el computador.

Para llevar a cabo estas operaciones la CPU necesita al resto de los componentes del computador:

Memoria principalPeriféricos y dispositivos de entrada/salida

Componentes de la CPU:ALU, Unidad Aritmético Lógica

UC, Unidad de ControlRegistros

Unidades de almacenamiento temporalNormalmente tienen capacidad para almacenar una palabra de memoria

Velocidad de lectura/escritura de datos más alta que la memoria principal y la caché

Microprocesador (todo integrado en la misma pastilla)(ALU, UC, memoria caché, coprocesador matemático (FPU))

Page 26: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Unidad Central de Proceso

ALU, Unidad Aritmético LógicaRealiza operaciones

Aritméticas: sumas, restas, multiplicaciones,...Lógicas: comparaciones, NOT, AND,...

Componentes de la ALUCircuitos operacionales: circuitos digitales que realizan las operaciones

Registros: almacenan temporalmente los datos de E/S de los circuitos operacionales:Registro acumulador: almacena temporalmente el resultado de las operaciones

Registros de operandosRegistro de estados: registro especial que indica el estado de la última operación (si ha sido 0, si ha sido negativo, si

ha habido desbordamiento,...)

Page 27: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Unidad Central de Proceso

UC, Unidad de Control

Dirige las operaciones más importantes del computador, estableciendo la comunicación entre la ALU, la memoria principal y el

resto de componentes.Controla la ejecución de cada instrucción de un programa

Componentes de la UCPC (Program Counter, registro Contador de Programa), contiene la dirección

de memoria de la siguiente instrucción a ejecutar.RI (Registro de Instrucción), contiene el código de la instrucción que se está

ejecutando.Decodificador, circuitos especiales encargados de determinar qué se debe

hacer, en función de:El código de la instrucción a ejecutar

Señales de estado de los dispositivos enviando las señales de control adecuadas a los distintos componentes implicados

Page 28: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Unidad Central de Proceso

Fases de ejecución de una instrucción (las realiza únicamente la UC)1. Búsqueda de la instrucción a ejecutar:

• Carga en el RI la instrucción de memoria principal que se encuentre en la dirección que indique el PC

• Se modifica el PC para que apunte a la siguiente instrucción

2. Ejecución de la instrucción actual• Se decodifica el código de la

instrucción almacenada en el RI• Se generan las señales de control

necesarias para la ejecución de la instrucción, que se envían a los dispositivos correspondientes a través del bus de control:• ALU• Memoria principal• Canales de entrada / salida

Page 29: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Unidad Central de Proceso

El Reloj:

Circuito encargado de sincronizar el funcionamiento de todos los elementos del computador (UC, ALU, memoria...).

Ciclos máquina: pulsos regulares en el tiempo que emite el reloj.Cada instrucción se ejecuta en un tiempo igual a un múltiplo de ciclos

máquina (p.ej: en 8 ciclos, o en 6, pero no en 3.5 ciclos)

Frecuencia: velocidad de latido del reloj (cantidad de pulsos o ciclos por unidad de tiempo)Se suele medir en MegaHerzios (Mhz)

1 Mhz = 1.000.000 ciclos máquina / segundo

o en GigaHerzios (Ghz)A mayor frecuencia, mayor velocidad de ejecución de las instrucciones.

Page 30: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Periféricos

Disposivos encargados de:

EntradaSalidaAlmacenamientoRecuperaciónTransmisiónRecepción

Componentes o partes de un periférico:

comp. Mecánica.comp. Electrónica

De datos

Page 31: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Organización de Entradas y Salidas

Parte de la electrónica se encarga de la comunicación con la CPU

También puede ser necesario instalar software (driver).

Page 32: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Dispositivos de Entrada

Permiten introducir información en el computador.Esa información la convierten en bits (en las señales eléctricas adecuadas):Teclado, ratón, joystick, tableta digitalizadora, escáner, webcam, lector de código de barras, micrófono...

Page 33: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Dispositivos de Entrada

Dispositivos para captura de imágenes

Otros dispositivos de entrada

Page 34: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Dispositivos de Salida

Utilizados por los computadores para transmitir información al exteriorTransforman las señales binarias del PC en algo que los usuarios entiendan (sentidos).Monitores, impresoras, altavoces, ploters...

Salidas VisualesImportante:• Tamaño de punto (dot pitch)• Resolución máxima• Rango de frecuencias(kHz – H; Hz – V)• Tamaño de pantalla (pulgadas)• Brillo(cd/m2(candelas/m2)) en los TFT• Ángulo de visión en los TFT

Page 35: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Dispositivos de Salida

El computador se comunica con el monitor a través de la tarjeta gráfica:

Page 36: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Dispositivos de Salida

Salidas Sonoras: Altavoces...

Page 37: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Dispositivos Mixtos

Permiten realizar tanto entradas como salidas.Pantallas táctiles, mandos dual shock, disp. de mem. masiva, ...

Page 38: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

Dispositivos de Memoria Masiva

Almacenamiento permanente de informaciónDiscos flexibles, tarjetas de memoria, memorias flash, CDs, DVDs, discos duros...

Page 39: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)

HORA DEL CAFÉ

Page 40: Fundamentos de Programación. Fundamentos de procesamiento de Datos (8 hrs)