informatica
Introducción al computador
Definiciones básicas: Se abordan los conceptos fundamentales y el contexto histórico del desarrollo de los computadores.
Sistemas de información
Un sistema de información toma información, la procesa y devuelve la información transformada de acuerdo a un plan previsto.
Se comparó a un sistema de información con una fábrica:
Materia prima: Información.
Almacenes: Memoria principal.
Oficina técnica: Unidad de control.
Líneas de producción: Ruta de datos y unidades funcionales.
Codificación
Definición: Se denomina codificación a una correspondencia biunívoca entre los elementos de un conjunto y los de otro.
Observación: Esto permite referirnos a elementos del primer conjunto representándolos mediante los del segundo.
Computador
Definición: Máquina capaz de recibir datos de entrada, efectuar operaciones aritméticas y lógicas, y suministrar resultados en forma de datos de salida bajo el control de un programa de instrucciones previamente cargado en el computador.
Datos
Definición: Un dato es un conjunto de uno o más símbolos que representan alguna realidad, no necesariamente cuantitativa.
Ejemplos: Temperatura, nombre de una persona, o título de una obra de teatro; estos deben ser codificados para ser representados en el computador.
Instrucciones y programas
Definición de instrucción: Símbolo que representa una orden para el computador; cada orden está codificada en una instrucción.
Definición de programa: Lista secuencial de instrucciones que el computador ejecuta en el orden dado.
Observación: Algunas instrucciones modifican el orden secuencial de ejecución, estableciendo como siguiente instrucción una diferente según el programa. La decisión puede ser dinámica, dependiendo del estado de la máquina durante la ejecución.
Codificación en binario
Todos los tipos de codificación utilizan finalmente un código binario; cada unidad elemental es un bit.
Un conjunto de 8 bits se denomina octeto o byte.
Unidades y múltiplos
Bit (símbolo: b) y byte (símbolo: B).
Prefijos y factores:
Kilo (k-) =
Mega (M-) =
Giga (G-) =
Tera (T-) =
Exa (E-) =
Peta (P-) =
Ejemplo: 1 kB significa mil bytes; 5 Mb significa cinco millones de bits.
Método alternativo para expresar múltiplos
Prefijos y factores en base 2:
Kilo (Ki-) =
Mega (Mi-) =
Giga (Gi-) =
Tera (Ti-) =
Exa (Ei-) =
Peta (Pi-) =
Ejemplo: 1 kB = 1000 bytes, 1 KiB = 1024 bytes; se debe tener cuidado con la distinción entre KB y KiB.
Estructura básica del computador personal (I)
Hardware básico, típicamente denominado placa madre (motherboard), donde se localizan:
Procesador.
Memoria.
Dispositivos de almacenamiento permanente.
Buses de interconexión:
Bus del sistema. EISA (Extended Industry Standard Architecture).
Bus IDE (Integrated Drive Electronics), para discos.
Bus de expansión de periféricos PCI (Peripheral Component Interconnect).
Otros buses de E/S (como SCSI).
Estructura básica del computador personal (II)
Dispositivos de entrada/salida (E/S) conectados a los buses:
Teclado.
Ratón.
Pantalla.
Comentario: Un smartphone se considera una plataforma de computación que integra todos estos elementos en un tamaño mucho más pequeño, utilizando pantallas táctiles que combinan entrada y salida en un solo dispositivo.
Arquitectura von Neumann
Estructura de la máquina von Neumann:
Memoria (instrucciones y datos).
Periféricos.
CPU.
Unidad de control.
Unidades funcionales (registros).
Banco de registros

Modelo de la memoria

Esquema de la CPU

Concepto de programa almacenado
La idea clave de von Neumann es representar las instrucciones mediante códigos numéricos, susceptibles de ser almacenados en memoria como cualquier otro tipo de dato.
El conjunto de todos esos códigos numéricos constituye el lenguaje máquina.
Nosotros no manejamos directamente los códigos de ese lenguaje, sino un mnemónico asociado a cada código (= instrucción).
Al conjunto de todos los mnemónicos lo llamamos lenguaje ensamblador.
Instrucciones
Para manejar la máquina, hablamos su lenguaje.
Las “palabras” de ese lenguaje son instrucciones.
El vocabulario completo (pequeño) es el ≪repertorio de instrucciones≫.
Las instrucciones deben ser
lo más sencillas que sea posible, pero. . .
deben permitir cualquier operaci´on, es decir, el repertorio debe ser completo.
Puede haber una infinidad de repertorios distintos, pero en la pr´actica, todos se parecen.
Fases de una instrucción
Búsqueda (fetch): Tomar la instrucción apuntada por el registro (program counter) y llevarla a la unidad de control.
Descodificación (decode) de la instrucción y lectura de operandos.
Ejecución (execute) de la operación.
Almacenamiento (write-back) de resultados en los lugares indicados por la instrucción.
Concepto de arquitectura
Definición: La arquitectura de un computador es el conjunto formado por el repertorio de instrucciones y los registros disponibles.
Observación: Dos computadores que compartan la misma arquitectura pueden ejecutar exactamente el mismo programa con idéntico resultado.
Descripción jerárquica del computador

Lenguajes de programación
Programar en ensamblador es complicado; se utilizan lenguajes de alto nivel que se asemejan al lenguaje natural.
Un archivo de sentencias en lenguaje de alto nivel se denomina código fuente.
Compilador
Un compilador es un programa que convierte el código fuente a lenguaje ensamblador.
Ejemplo en C:
int i, j, f, g, h;
f = (g + h) - (i + j);
Equivalente en lenguaje ensamblador:
ADD $R5, $R3, $R4
ADD $R6, $R0, $R1
SUB $R2, $R5, $R6
Proceso de desarrollo

Sistema operativo
Definición: Un sistema operativo es un conjunto de programas de control que facilita el uso eficiente del computador.
Servicios importantes:
Proporciona una extensión de las instrucciones de la máquina base como una “máquina virtual”.
Media entre programas en ejecución para repartir equitativamente los recursos.
Máquina extendida u operativa
