ARQUITECTURA DE COMPUTADORES
La arquitectura de computadoras es el diseño conceptual y la estructura operacional fundamental de un sistema que conforma una computadora. Es decir, es un modelo y una descripción funcional de los requerimientos y las implementaciones de diseño para varias partes de una computadora, con especial interés en la forma en que la unidad central de proceso (CPU) trabaja internamente y accede a las direcciones de memoria.
La arquitectura de una computadora explica la situación de sus componentes y permite determinar las posibilidades de un sistema informático, con una determinada configuración, pueda realizar las operaciones para las que se va a utilizar. La arquitectura básica de cualquier ordenador completo está formado por solo 5 componentes básicos: procesador, memoria RAM, disco duro, dispositivos de entrada/salida y software.
El concepto principal de esta arquitectura es que un computador es un sistema secuencial síncrono complejo que procesa información, esta se trata de información binaria, utilizando solamente los dígitos de valores lógicos ‘1’ y ‘0’. Estos valores lógicos binarios se corresponden con valores de tensión eléctrica, de manera que un ‘1’ lógico corresponde a un nivel alto a 5 voltios y un ‘0’ lógico corresponde a un nivel bajo de tensión cercano a 0 voltios; estos voltajes dependen de la tecnología que utilicen los dispositivos del computador.
EL PROCESADOR:
Es el cerebro del sistema, encargado de procesar todos los datos e informaciones. A pesar de que es un dispositivo muy sofisticado no puede llegar a hacer nada por sí solo. Para hacer funcionar a este necesitamos algunos componentes más como lo son memorias, unidades de disco, dispositivos de entrada/salida y los programas.
El procesador o núcleo central está formado por millones de transistores y componentes electrónicos de un tamaño microscópico. El procesamiento de las tareas o eventos que este realiza va en función de los nanosegundos, haciendo que los miles de transistores que contiene este trabajen en el orden de los MHz.
La información binaria se introduce mediante dispositivos periféricos que sirven de interfaz entre el mundo exterior con el usuario. Estos periféricos lo que van a hacer será traducir la información que el usuario introduce en señales eléctricas, que serán interpretadas como unos y ceros, los cuales son interpretados de una manera más rápida por la computadora, ya que el lenguaje maquina utiliza el código binario para ser interpretado por el computador.
Un sistema jerárquico es un conjunto de sistemas interrelacionados, cada uno de los cuales se organiza de manera jerárquica, uno tras otro, hasta que alcanza el nivel más bajo de subsistema elemental. Una posible clasificación seria:
1. Nivel de Componente. Los elementos de este nivel son difusiones de impurezas tipoP y de tipo N en silicio, polisilicio cristalino y difusiones de metal que sirven para construir los transistores.
2. Nivel Electrónico. Los componentes son transistores, resistencias, condensadores y diodos construidos con las difusiones del nivel anterior. Esta tecnología de muy alta escala de integración o VLSI es la que se utiliza en la fabricación de circuitos integrados. En este nivel se construyen las puertas lógicas a partir de transistores.
3. Nivel Digital. Se describe mediante unos y ceros son las puertas lógicas, biestables y otros módulos tanto combinacionales como secuenciales. Este nivel es la aplicación del algebra booleana y las propiedades de la lógica digital.
4. Nivel RTL. El nivel de transferencia de registros RTL será el preferido para la descripción de los computadores. Elementos típicos en este nivel de abstracción son los registros y módulos combinacionales aritméticos.
5. Nivel PMS. Este nivel es el más alto de la jerarquía. Las siglas PMS provienen del ingles Processor Memory Switch. Con elementos de jerarquía los buses, memorias, procesadores y otros módulos de alto nivel.
La arquitectura Von Neumann tiene sus orígenes en el trabajo del matemático John Von Neumann desarrollado con John Mauchly y John P. Eckert y divulgado en 1945 en la Moore School de la Universidad de Pensilvania, Estados Unidos, en el que se presentaba e EDVAC ( Electronic Discrete Variable Automatic Computer). De aquí surgió la arquitectura del programa almacena en memoria y búsqueda/ejecución secuencial de instrucciones. En términos generales una computadora tiene que realizar 3 funciones:
- Procesamiento de Datos
- Almacenamiento de Datos
- Transferencia de Datos
Tal que un PC (Personal Computer) debe procesar datos, transformando la información recibida, de igual forma tiene que almacenar datos, como resultado final de estas. También debe de realizartransferencia de datos entre su entorno y el mismo. La arquitectura de un computador hace referencia a la organización de sus elementos en módulos con una funcionabilidad definida y a la iteración entre ellos. En el esquema de la Figura 1.1 se muestra la estructura básica de Von Neumann que debe llevar una computadora para su correcta operación.
Unidad de disco duro:
En informática, la unidad de disco duro o unidad de disco rígido (en inglés: Hard Disk Drive, HDD) es el dispositivo de almacenamiento de datos que emplea un sistema de grabación magnética para almacenar archivos digitales. Se compone de uno o másplatos o discos rígidos, unidos por un mismo eje que gira a gran velocidad dentro de una caja metálica sellada. Sobre cada plato, y en cada una de sus caras, se sitúa un cabezal de lectura/escritura que flota sobre una delgada lámina de aire generada por la rotación de los discos. Es memoria no volátil.
El primer disco duro fue inventado por IBM, en 1956. A lo largo de los años, han disminuido los precios de los discos duros, al mismo tiempo que han multiplicado su capacidad, siendo la principal opción de almacenamiento secundario para computadoras personales, desde su aparición en los años 1960.1 Los discos duros han mantenido su posición dominante gracias a los constantes incrementos en la densidad de grabación, que se ha mantenido a la par de las necesidades de almacenamiento secundario.1
Los tamaños también han variado mucho, desde los primeros discos IBM hasta los formatos estandarizados actualmente: 3,5 pulgadaslos modelos para PC y servidores, y 2,5 pulgadas los modelos para dispositivos portátiles. Todos se comunican con la computadora a través del controlador de disco, empleando una interfaz estandarizada. Los más comunes hasta los años 2000 han sido IDE (también llamado ATA o PATA), SCSI (generalmente usado en servidores y estaciones de trabajo). Desde el 2000 en adelante ha ido masificándose el uso de los SATA. Existe además FC (empleado exclusivamente en servidores).
Memoria de acceso aleatorio(RAM):
La memoria de acceso aleatorio (Random Access Memory, RAM) se utiliza como memoria de trabajo de computadoras para el sistema operativo, los programas y la mayor parte del software.
En la RAM se cargan todas las instrucciones que ejecutan la unidad central de procesamiento (procesador) y otras unidades de cómputo.
Se denominan «de acceso aleatorio» porque se puede leer o escribir en una posición de memoria con un tiempo de espera igual para cualquier posición, no siendo necesario seguir un orden para acceder (acceso secuencial) a la información de la manera más rápida posible.
Durante el encendido de la computadora, la rutina POST verifica que los módulos de RAM estén conectados de manera correcta. En el caso que no existan o no se detecten los módulos, la mayoría de tarjetas madres emiten una serie de sonidos que indican la ausencia de memoria principal. Terminado ese proceso, la memoria BIOS puede realizar un test básico sobre la memoria RAM indicando fallos mayores en la misma.
Uno de los primeros tipos de memoria RAM fue la memoria de núcleo magnético, desarrollada entre 1949 y 1952 y usada en muchos computadores hasta el desarrollo de circuitos integrados a finales de los años 60 y principios de los 70. Esa memoria requería que cada bit estuviera almacenado en un toroide de material ferromagnético de algunos milímetros de diámetro, lo que resultaba en dispositivos con una capacidad de memoria muy pequeña. Antes que eso, las computadoras usaban relés y líneas de retardo de varios tipos construidas para implementar las funciones de memoria principal con o sin acceso aleatorio.
En 1969 fueron lanzadas una de las primeras memorias RAM basadas en semiconductores de silicio por parte de Intel con el integrado 3101 de 64 bits de memoria y para el siguiente año se presentó una memoria DRAM de 1024 bytes, referencia 1103 que se constituyó en un hito, ya que fue la primera en ser comercializada con éxito, lo que significó el principio del fin para las memorias de núcleo magnético. En comparación con los integrados de memoria DRAM actuales, la 1103 es primitiva en varios aspectos, pero tenía un desempeño mayor que la memoria de núcleos.
Software:
Existen varias definiciones similares aceptadas para software, pero probablemente la más formal sea la siguiente:
Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de las operaciones de un sistema de computación.
Extraído del estándar 729 del IEEE5
Considerando esta definición, el concepto de software va más allá de los programas de computación en sus distintos estados: código fuente, binario o ejecutable; también su documentación, los datos a procesar e incluso la información de usuario forman parte del software: es decir, abarca todo lo intangible, todo lo «no físico» relacionado.
El término «software» fue usado por primera vez en este sentido por John W. Tukey en 1957. En la ingeniería de software y las ciencias de la computación, el software es toda lainformación procesada por los sistemas informáticos: programas y datos.
El concepto de leer diferentes secuencias de instrucciones (programa) desde la memoria de un dispositivo para controlar los cálculos fue introducido por Charles Babbage como parte de su máquina diferencial. La teoría que forma la base de la mayor parte del software moderno fue propuesta por Alan Turing en su ensayo de 1936, «Los números computables», con una aplicación al problema de decisión.
Clasificación del software
Si bien esta distinción es, en cierto modo, arbitraria, y a veces confusa, a los fines prácticos se puede clasificar al software en tres grandes tipos:
Software de sistema: Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles del sistema informático en particular que se use, 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, controladores, herramientas y utilidades de apoyo que permiten el mantenimientodel sistema global. Incluye entre otros:
Sistemas operativos
Controladores de dispositivos
Herramientas de diagnóstico
Herramientas de Corrección y Optimización
Servidores
Utilidades
Software de programación: Es el conjunto de herramientas que permiten al programador desarrollar programas informáticos, usando diferentes alternativas y lenguajes de programación, de una manera práctica. Incluyen básicamente:
Editores de texto
Compiladores
Intérpretes
Enlazadores
Depuradores
Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores herramientas, usualmente en un entorno visual, de forma tal que el programador no necesite introducir múltiples comandos para compilar, interpretar, depurar, etc. Habitualmente cuentan con una avanzada interfaz gráfica de usuario (GUI).
Software de aplicación: Es 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. Incluye entre muchos otros:
Aplicaciones para Control de sistemas y automatización industrial
Aplicaciones ofimáticas
Software educativo
Software empresarial
Bases de datos
Telecomunicaciones (por ejemplo Internet y toda su estructura lógica)
Videojuegos
Software médico
Software de cálculo numérico y simbólico.
Software de diseño asistido (CAD)
Software de control numérico (CAM)
Proceso de creación del software:
Se define como proceso al conjunto ordenado de pasos a seguir para llegar a la solución de un problema u obtención de un producto, en este caso particular, para lograr un producto software que resuelva un problema específico.
El proceso de creación de software puede llegar a ser muy complejo, dependiendo de su porte, características y criticidad del mismo. Por ejemplo la creación de un sistema operativo es una tarea que requiere proyecto, gestión, numerosos recursos y todo un equipo disciplinado de trabajo. En el otro extremo, si se trata de un sencillo programa (por ejemplo, la resolución de una ecuación de segundo orden), éste puede ser realizado por un solo programador (incluso aficionado) fácilmente. Es así que normalmente se dividen en tres categorías según su tamaño (líneas de código) o costo: de «pequeño», «mediano» y «gran porte». Existen varias metodologías para estimarlo, una de las más populares es el sistema COCOMO que provee métodos y un software (programa) que calcula y provee una aproximación de todos los costos de producción en un «proyecto software» (relación horas/hombre, costo monetario, cantidad de líneas fuente de acuerdo a lenguaje usado, etc.).Los «procesos de desarrollo de software» poseen reglas preestablecidas, y deben ser aplicados en la creación del software de mediano y gran porte, ya que en caso contrario lo más seguro es que el proyecto no logre concluir o termine sin cumplir los objetivos previstos, y con variedad de fallos inaceptables (fracasan, en pocas palabras). Entre tales «procesos» los hay ágiles o livianos (ejemplo XP), pesados y lentos (ejemplo RUP), y variantes intermedias. Normalmente se aplican de acuerdo al tipo y porte del software a desarrollar, a criterio del líder (si lo hay) del equipo de desarrollo. Algunos de esos procesos son Programación Extrema (en inglés eXtreme Programming o XP), Proceso Unificado de Rational (en inglés Rational Unified Process o RUP), Feature Driven Development (FDD), etc.
Periférico de Entrada/Salida:
En informática, un periférico de Entrada/Salida (E/S), en inglés: Input/Output (I/O), es un dispositivo que permite la comunicación entre un sistema de procesamiento de información, tal como la computadora y el mundo exterior, y posiblemente un humano u otro sistema de procesamiento de información.
Los periféricos de E/S son utilizados por una persona (o sistema) para comunicarse con computadoras.
Por ejemplo, las pantallas táctiles o multitáctiles se consideran periféricos de E/S. En cambio, un teclado, ratón o escáner pueden ser periféricos de E para una computadora, mientras que los monitores, parlantes e impresoras se consideran los dispositivos de S de la computadora.
Dispositivos o periféricos de comunicación entre computadoras, tales como módems y tarjetas de red, por lo general sirven para entrada y salida. También, los dispositivos de almacenamiento de datos, como los discos rígidos, las unidad de estado sólido, las memorias flash, las disqueteras, entre otros, se pueden considerar periféricos de E/S.
Periféricos de Entrada o Salida:
Un periférico de E/S es el que se utiliza para ingresar (E) datos a la computadora, y luego de ser procesados por la unidad central de procesamiento (CPU), genera la salida (S) de información.
Su función es leer o grabar, permanente o virtualmente, todo aquello que se haga con la computadora, para que pueda ser utilizado por los usuarios u otros sistemas.
Ejemplos:
Pantalla táctil
Multitáctil
Casco virtual
Impresora multifunción
Dispositivos o unidades de almacenamiento de datos[editar]
Artículo principal: Dispositivo de almacenamiento de datos
En ocasiones, se consideran periféricos de E/S a los dispositivos de almacenamiento de datos, como por ejemplo, las lectograbadoras de discos ópticos, ‘lectoras’ de tarjetas de memoria, discos duros portátiles o externos, memorias USB o memorias flash, etcétera.
Dispositivos de redes
También, los dispositivos de redes o de comunicación, suelen considerarse periféricos de E/S porque su función es la interacción o interconexión entre dos o más computadoras, o entre la computadora y otro periférico externo.
Ejemplos: módem, tarjeta de red, concentrador, conmutador (dispositivo de red), enrutador, comunicación inalámbrica, bluetooth.
Periférico de Entrada ó Salida, únicamente
Se pueden diferenciar los dispositivos con dos enfoques posibles:
el primer enfoque se centra en el modo de almacenar la información (clasificando los dispositivos como de bloque o de carácter).
el segundo enfoque se centra en el destinatario de la comunicación (usuario, máquina, comunicadores).
Un dispositivo de bloque almacena la información en bloques de tamaño fijo. Al ser el bloque la unidad básica de almacenamiento, todas las escrituras o lecturas se realizan mediante múltiplos de un bloque. Es decir, escribe 3 o 4 bloques, pero nunca 3,5 bloques. El tamaño de los bloques suele variar entre 512 bytes hasta 32 768 bytes. Los discos magnéticos, como discos duros o disquetes, entran dentro de esta definición.
A diferencia de un dispositivo de bloque, un dispositivo de carácter no maneja bloques fijos de información sino que envía o recibe un flujo de caracteres. Dentro de esta clase se encuentran las impresoras o interfaces de red.
Entre cada categoría y dispositivo, hay grandes diferencias:
Velocidad de transferencia de datos: varios órdenes de magnitud para transferir. Hacer esto requiere mucho cuidado, según las necesidades de cada dispositivo.
Aplicación: la funcionalidad para la que está diseñado un dispositivo tiene influencia sobre el software por ende lo tendrá sobre el sistema operativo.
Complejidad de control: cada dispositivo tiene una complejidad asociada, no es lo mismo controlar un ratón que gestionar un disco duro.
Unidad de transferencia: datos transferidos como un flujo de bytes/caracteres o en bloques de tamaño fijo.
Representación de datos: cada dispositivo puede usar su propia codificación de datos.
Condiciones de error: el porqué del error, su manera de notificarlo así como sus consecuencias difiere ampliamente entre los dispositivos.
Periférico de Entrada
Los dispositivos de entrada son aquellos dispositivos externos de las computadoras, los cuales alojan componentes situados fuera de la computadoras a las que pueden dar información o instrucciones.
Periférico de Salida
Mientras tanto, los periféricos de salida son aquellos dispositivos que permiten ver resultados del procesamiento de datos que realizan las computadoras (salidas de datos). El más común es la pantalla o monitor, y también las impresoras (que imprimen los resultados en papel), los trazadores gráficos o plotters, los parlantes o altavoces, etc.