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.
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.
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.
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.
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
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.
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.
Datos…
• Un dato por sí mismo no constituye información, es el procesado de los datos lo que nos proporciona información.
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.
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
Representación de textos.
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
¿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.
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
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
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
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
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
Estructura funcional de un computador
Arquitectura de Von Neumann
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
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
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.
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))
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,...)
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
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
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.
Periféricos
Disposivos encargados de:
EntradaSalidaAlmacenamientoRecuperaciónTransmisiónRecepción
Componentes o partes de un periférico:
comp. Mecánica.comp. Electrónica
De datos
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).
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...
Dispositivos de Entrada
Dispositivos para captura de imágenes
Otros dispositivos de entrada
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
Dispositivos de Salida
El computador se comunica con el monitor a través de la tarjeta gráfica:
Dispositivos de Salida
Salidas Sonoras: Altavoces...
Dispositivos Mixtos
Permiten realizar tanto entradas como salidas.Pantallas táctiles, mandos dual shock, disp. de mem. masiva, ...
Dispositivos de Memoria Masiva
Almacenamiento permanente de informaciónDiscos flexibles, tarjetas de memoria, memorias flash, CDs, DVDs, discos duros...
HORA DEL CAFÉ