Fundamentos de Informática: hardware, software, memoria y arquitectura Von Neumann


Introducción a la informática

La informática aborda la adquisición, representación, tratamiento y transmisión de la información. Estas operaciones se realizan automáticamente utilizando sistemas (máquinas) denominados computadoras. Informática es la ciencia que estudia el tratamiento automático y racional de la información.

Se dice que el tratamiento es automático por ser máquinas las que realizan los trabajos de captura, proceso y presentación de la información, y se habla de racional por estar todo el proceso definido a través de programas que siguen el razonamiento humano. Un programa es el conjunto de órdenes o instrucciones que se dan a una computadora, en determinada secuencia, para realizar un proceso determinado.

Conceptos básicos

Operaciones lógicas

Se denominan operaciones lógicas a aquellas que dan por resultado un valor VERDADERO o FALSO (por ejemplo: comparar símbolos, ya sean numéricos o no numéricos).

Computador como sistema

Una computadora puede considerarse como un sistema, cuyas salidas o resultados son función (dependen) de sus entradas, constituidas por datos e instrucciones.

Los tres pilares de la informática

Los tres pilares básicos son: elemento físico (hardware), elemento lógico (software) y elemento humano (personal informático).

Procesamiento y resolución de problemas

Pasos de procesamiento de datos: datos → operaciones sobre los datos → información → decisión.

Pasos para la resolución de un problema: planteamiento, análisis, algoritmo y ejecución.

Modelo del problema: universo, entes y atributos

Llamaremos universo de interés al conjunto de elementos que participan en la solución del problema que encaramos, en forma necesaria y suficiente.

Necesaria, porque sin su participación la solución del problema sería imposible. Suficiente, porque el agregado de nuevos elementos sólo perjudicaría nuestra solución del problema, agregando redundancia y confusión.

Nuestro universo de interés estará compuesto por una serie de objetos, concretos o abstractos, que interactúan entre sí generando lo que llamaremos sucesos. Llamaremos entes a todos los objetos y sucesos de nuestro universo de interés. Cada ente tiene una serie de propiedades y características, que llamaremos atributos de dicho ente. Llamaremos datos a los «valores» conocidos de los atributos de un ente.

Representación de datos

Representación externa

Representación externa: forma en que los datos son presentados ante nosotros para su lectura (por ejemplo en el monitor de nuestra computadora, en la impresora, etc.). Esta representación debe ser, en consecuencia, entendible por nosotros.

Representación interna

Representación interna: forma en que los datos son almacenados y procesados en nuestro sistema. Como veremos más adelante, esta representación interna será siempre en binario y dependerá del software su adecuada interpretación. La ventaja de operar en el interior de una computadora con dos estados eléctricos, correspondientes al 0 y al 1 binarios, reside en que operar tecnológicamente con dos estados es mucho más simple y más confiable que operar con diez valores de corriente o tensión eléctrica distintos.

Software

Software: conjunto de programas que, con distintos fines, son ejecutados en la computadora. Un programa es una secuencia de instrucciones que, ejecutadas en el orden especificado, dan por resultado la resolución de un determinado problema.

Una instrucción debe contener, además de la indicación de la función a realizar, los argumentos a los cuales ésta debe ser aplicada, es decir, los operandos de la instrucción. Una instrucción está formada por: un código de operación, que indique la función a realizar (por ejemplo, sumar), y ninguno, uno o más operandos.

Software de base o de sistema

Es el conjunto de programas que «hace funcionar a la computadora como tal» y nos permite su programación y la ejecución de nuestros programas en forma simple.

Programas traductores

Los programas traductores toman como entrada un programa escrito en lenguaje simbólico denominado programa fuente y proporcionan como salida otro programa equivalente, escrito en lenguaje comprensible por el hardware de la computadora, denominado programa objeto.

Compilador

El compilador recibe como datos un programa fuente, lo procesa y genera como información el programa compilado, que se denomina programa objeto.

Linkeador (linker)

En algunos casos, un programa objeto necesita antes una preparación previa a su ejecución y la inclusión de rutinas del propio lenguaje. Esta preparación la realiza un programa que complementa al traductor, denominado «linkeador» o «linker». El resultado final es un programa listo para ser ejecutado, que se denomina programa ejecutable.

Ensambladores

Los programas ensambladores son programas traductores que transforman programas fuente escritos en lenguajes simbólicos de bajo nivel (denominados lenguajes ensambladores o assemblers) en programas objeto, escritos en lenguaje de máquina y ejecutables directamente por el hardware de la computadora. La traducción se efectúa de forma que cada instrucción en lenguaje fuente se transforma en una única instrucción en lenguaje objeto.

Compiladores de alto nivel

Los programas compiladores son programas traductores que transforman programas fuente escritos en lenguajes simbólicos de alto nivel en programas objeto escritos en lenguaje máquina. La traducción no suele ser directa: existe un paso intermedio situado en un nivel similar al de ensamblador. Una característica fundamental de este tipo de traductores es que se realiza la traducción completa, y en el caso de no existir errores se genera el programa objeto. La traducción del programa fuente se efectúa, además, de forma que cada instrucción del programa fuente se transforma en una o más instrucciones en el programa objeto.

Intérpretes

Los programas intérpretes son traductores que transforman programas fuente escritos en lenguajes de alto nivel en instrucciones de lenguaje máquina, pero lo hacen traduciendo cada instrucción del programa fuente en una o varias instrucciones en lenguaje máquina e inmediatamente las ejecutan (antes de traducir la siguiente instrucción).

Esquema general del proceso de traducción

Programa fuente → software traductor → programa objeto → software linkeador → programa ejecutable

Firmware y memoria permanente

Firmware es el software almacenado permanentemente en el hardware, constituido por una memoria ROM soportada por circuitos electrónicos.

Una computadora encendida sin ningún programa en la Memoria Principal (MP) no puede hacer nada. Los programas que residen en la porción RAM de la MP desaparecen cuando se apaga un equipo.

Por ello, cada vez que éste se enciende, hay que traer del disco a memoria una copia del S.O. (Sistema Operativo). Esta acción se conoce como arranque o boot (también denominado buteo).

Al encender una computadora, el arranque es automático, merced a que está almacenado en la porción ROM de la memoria un primer programa que permite traer a la memoria principal los programas del sistema operativo almacenados en un disco. También están en esta ROM programas de diagnóstico (que verifican el correcto funcionamiento y configuración del hardware antes de traer el S.O.) y programas que son invocados cada vez que se necesita realizar una E/S, constituyentes del BIOS (Basic Input Output System).

Se trata, pues, de software que está permanentemente fijo en el hardware, o sea que una vez que un programa o varios se han escrito en la porción ROM de MP, permanecen siempre almacenados en MP, ya que la ROM no es volátil. Una ROM es también una memoria de acceso aleatorio como una RAM, con tiempo de acceso 3 a 5 veces mayor que ésta. Además de programas, una ROM se usa para conservar en forma permanente tablas de datos y constantes.

Procesamiento e información

Llamaremos procesamiento a toda operación que realicemos sobre uno o más datos. En el contexto informático llamaremos información al resultado del procesamiento de un conjunto de datos. Por lo tanto, podríamos concebir la información como sinónimo de «datos procesados».

Representación binaria y unidades de información

Habíamos visto que la representación interna de la información se realiza mediante el sistema binario. Las computadoras y sistemas digitales solo entienden los 1s y 0s. Al ser importante la unidad mínima de información, un dígito binario recibe un nombre específico: bit, que es la contracción de binary digit (dígito binario).

Otro nombre de uso muy común en la informática es el referido a la agrupación de 8 bits: el byte. También recibe el nombre de «octeto».

Tiempos y rendimiento

Si bien ciertas actividades en un sistema de procesamiento de datos se llevan a cabo en el nivel del minuto, en general los tiempos involucrados son significativamente menores incluso al segundo.

Algunas medidas de rendimiento comunes son:

  • MIPS: millones de instrucciones por segundo.
  • MFLOPS: millones de operaciones de punto flotante por segundo.

Codificación e información mínima

Codificación: transformación de elementos de un conjunto en elementos de otro conjunto siguiendo un método determinado, de tal forma que posteriormente se pueda efectuar el proceso inverso de decodificación.

Llamaremos cantidad de información a la mínima cantidad de dígitos binarios necesarios para identificar unívocamente un mensaje entre un conjunto de n igualmente probables a priori.

Componentes principales de la computadora

La computadora dispone de tres componentes principales para efectuar las tareas descritas anteriormente:

  1. Unidades de Entrada/Salida (E/S) para aceptar información y comunicar los resultados.
  2. Un procesador para procesar la información.
  3. Una memoria para almacenar la información y las instrucciones.

Arquitectura Von Neumann

La arquitectura Von Neumann se basa en tres principios:

  1. Hay un único espacio de memoria de lectura y escritura, que contiene las instrucciones y los datos necesarios (Memoria Principal o MP) codificados en binario. Deben estar almacenados en la memoria principal antes de realizar el procesamiento de los mismos.
  2. El contenido de la memoria es accesible por posición, independientemente de que se acceda a datos o a instrucciones.
  3. La ejecución de las instrucciones se produce de manera secuencial: después de ejecutar una instrucción se ejecuta la instrucción siguiente que hay en la memoria principal, aunque se puede romper la secuencia de ejecución utilizando instrucciones de salto. De esto se encarga la Unidad Central de Proceso (UCP) o CPU (Central Processing Unit).

Unidad direccionable y ancho de palabra

Se llama unidad direccionable a la mínima cantidad de información que tiene una dirección única. Es común que, en una computadora con un ancho de palabra de 16, 32 o 64 bits, el tamaño de la unidad direccionable sea de 1 byte (8 bits).

Unidad Central de Proceso (UCP)

Unidad Central de Proceso (UCP) — la UCP o CPU es la encargada de dos funciones básicas:

  • Control del funcionamiento de todo el sistema.
  • Ejecución de las instrucciones.

Memoria Principal (MP)

Memoria Principal (MP) almacena los programas (instrucciones) y datos necesarios para la operación del sistema. Para poder ser procesada por la UCP, una instrucción debe encontrarse obligatoriamente en la MP.

Periféricos

Periféricos se denominan tanto a las unidades o dispositivos a través de los cuales la computadora se comunica con el mundo exterior, como a los sistemas que almacenan o archivan la información, sirviendo de memoria auxiliar de la memoria principal.

Por lo tanto, clasificaremos a los periféricos en dos grupos:

  • De Entrada/Salida (E/S): permiten la intercomunicación del sistema con el mundo exterior, por ejemplo el teclado, el monitor, una impresora, un mouse, etc.
  • De Almacenamiento Masivo: permiten conservar programas y datos por tiempo indefinido para su eventual uso posterior, por ejemplo los distintos tipos de discos rígidos, discos de estado sólido (SSD), memorias flash y cintas magnéticas.

Los distintos componentes del sistema están conectados entre sí por medio de buses (sistema de interconexión).

Memoria caché

Memoria caché — este tipo de memoria tiene como función disminuir el tiempo de acceso a instrucciones y datos. Algunas de sus características son:

  • Son mucho más rápidas que la MP (menor tiempo de acceso), pero consecuentemente son sustancialmente más caras.
  • Su tamaño es reducido comparado con el de la MP. En general, las encontramos en tamaños del orden del megabyte (por ejemplo, de 2 MB a 6 MB). Algunos llegan a tener 32 MB.
  • Su modo de acceso difiere sensiblemente del acceso por dirección mencionado para la MP.

La forma de utilización de la memoria caché puede resumirse muy brevemente en lo siguiente:

  1. La MP y la caché se dividen lógicamente en bloques de un número pequeño de bytes (por ejemplo 64).
  2. Cuando se desea acceder al contenido de una determinada dirección de la MP, se busca en primer lugar en la caché para verificar si se encuentra almacenada allí. Si esto es así (hit), habremos logrado un acceso sumamente rápido; si no tenemos suerte (miss), deberemos leerlo de la MP, aprovechando para cargar todo el bloque que corresponda en la caché. Si la caché está ocupada, deberemos reemplazar algún bloque.

Memoria principal o central

Memoria Principal o Central (MP) — también denominada memoria interna o central, contiene las instrucciones y los datos que están siendo utilizados.

La MP es un elemento de almacenamiento en el cual, para poder leer o grabar un valor, debemos conocer la dirección donde hacerlo (es decir, el número que identifica a cada una de las posiciones de memoria).

Las memorias actuales, aun a nivel de PC, son relativamente grandes; podemos considerar como usuales capacidades de 4 GB a 128 GB (giga bytes).

El acceso a una MP es denominado aleatorio o random, lo cual significa que todas las posiciones pueden ser leídas en cualquier orden y en tiempos iguales; esto es lo opuesto al acceso secuencial, donde para acceder a un elemento se necesita más tiempo (por ejemplo, el acceso a las cintas magnéticas).

Se denomina tiempo de acceso al tiempo que se requiere para completar una operación de lectura o de escritura en la memoria.

Unidad Aritmético-Lógica (UAL)

Unidad Aritmético-Lógica (UAL) — es la encargada de realizar todas las operaciones aritméticas y lógicas necesarias para la ejecución de cualquier instrucción.

Organización interna de la UCP

La UCP está conformada por dos unidades funcionalmente bien diferenciadas:

Unidad de Control (UC)

Unidad de Control (UC) — es la encargada de controlar el adecuado funcionamiento de todo el sistema y, dado que el objetivo de éste es el procesamiento de datos, sus funciones estarán relacionadas con el control de:

  • Entrada de información: instrucciones, datos y comandos del usuario (lectura).
  • Interpretación de la información recibida a fin de generar las órdenes necesarias para satisfacer lo requerido (decodificación).
  • Generación de las señales de control necesarias para cumplir cada requerimiento (ejecución).
  • Recepción y procesamiento de los pedidos de atención de los distintos periféricos que conectan a la UCP con el mundo exterior (interrupciones).
  • Verificación del adecuado cumplimiento de las órdenes emitidas (manejo de errores).
  • Emisión de resultados y mensajes al usuario (salida).

Fin del documento corregido.

Dejar un Comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *