21
ADQUITECTURA DE HARDWARE Y SOFWARE

Adquitectura de hardware y sofware

Embed Size (px)

Citation preview

ADQUITECTURA D

E HARDW

ARE

Y SOFW

ARE

ADQUITECTURA DE HARDWARE

Un computador desde la perspectiva del hardware, esta constituido por una serie de

dispositivos cada uno con un conjunto de tareas definidas. Los dispositivos de un computador se

dividen según la tarea que realizan en: dispositivos de entrada, salida,

Dispositivos de entrada

Son aquellos que permiten el ingreso de datos a un computador. Entre estos se cuentan, los teclados, ratones, scaners, micrófonos, cámaras fotográficas, cámaras de video, game pads y guantes de realidad virtual.

Dispositivos de salida

 Son aquellos que permiten mostrar información procesada por el computador. Entre otros están, las pantallas de video, impresoras, audífonos, plotters, guantes de realidad virtual, gafas y cascos virtuales

.

Dispositivos de almacenamiento

Son aquellos de los cuales el computador puede guardar información nueva y/o obtener información previamente almacenada. Entre otros están los discos flexibles, discos duros, unidades de cinta, CD-ROM, CD-ROM de re-escritura y DVD.

Dispositivos de comunicación

 Son aquellos que le permiten a un computador comunicarse con otros. Entre estos se cuentan los modems, tarjetas de red y enrutadores.

Dispositivo de computo

Es la parte del computador que le permite realizar todos los cálculos y tener el control sobre los demas dispositivos. Esta formado por tres elementos fundamentales, la unidad central de proceso, la memoria y el bus de datos y direcciones.

La unidad central de proceso (UCP)[1]

es el ‘cerebro’ del computador, esta encargada de realizar todos los cálculos, utilizando para ello la información almacenada en la memoria y de controlar los demás dispositivos, procesando las entradas y salidas provenientes y/o enviadas a los mismos. Mediante el bus de datos y direcciones, la UCP se comunica con los diferentes dispositivos enviando y obteniendo tales entradas y salidas.

La unidad central de proceso (UCP)[1]

Unidad Central de Proceso.

Para realizar su tarea la unidad central de proceso dispone de una unidad aritmético lógica, una unidad de control, un grupo de registros y opcionalmente una memoria cache para datos y direcciones.

La unidad aritmético lógica (UAL)[2] es la encargada de realizar las operaciones aritméticas y lógicas requeridas por el programa en ejecución, la unidad de control es la encargada de determinar las operaciones e instrucciones que se deben realizar, el grupo de registros es donde se almacenan tanto datos como direcciones necesarias para realizar las operaciones requeridas por el programa en ejecución y la memoria cache se encarga de mantener direcciones y datos intensamente usados por el programa en ejecución.

La memoria esta encargada de almacenar toda la información que el computador esta usando, es decir, la información que es accedida (almacenada y/o recuperada) por la UCP y por los dispositivos. Existen diferentes tipos de memoria, entre las cuales se encuentran las siguientes:

RAM (Random Access Memory): Memoria de escritura y lectura, es la memoria principal del computador. Solo se mantiene mientras el computador está encendido.

ROM (Read Only Memory): Memoria de solo lectura, es permanente y no se afecta por el encendido o apagado del computador. Generalmente almacena las instrucciones que le permite al computador iniciarse y cargar (poner en memoria RAM) el sistema operativo.

Cache: Memoria de acceso muy rápido, usada como puente entre la UCP y la memoria RAM, para evitar las demoras en la consulta de la memoria RAM.

El bus de datos y direcciones permite la comunicación entre los elementos del computador. Por el bus de datos viajan tanto las instrucciones como los datos de un programa y por el bus de direcciones viajan tanto las direcciones de las posiciones de memoria donde están instrucciones y datos, como las direcciones lógicas asignadas a los dispositivos.

[1] La unidad central de proceso es más conocida como CPU por sus siglas en inglés Central Process Unit.

[2] La unidad aritmético lógica es más conocida como ALU por sus siglas en inglés Arithmetic Logic Unit.

ADQUITECTURA DEL SOFWARE

ADQUITECTURA DEL SOFWARE

En los inicios de la informática, la programación se consideraba un arte y se desarrollaba como tal, debido a la dificultad que entrañaba para la mayoría de las personas, pero con el tiempo se han ido descubriendo y desarrollando formas y guías generales, con base a las cuales se puedan resolver los problemas. A estas, se les ha denominado Arquitectura de Software, porque, a semejanza de los planos de un edificio o construcción, estas indican la estructura, funcionamiento e interacción entre las partes del software. En el libro "An introduction to Software Architecture", David Garlan y Mary Shaw definen que la Arquitectura es un nivel de diseño que hace foco en aspectos "más allá de los algoritmos y estructuras de datos de la computación; el diseño y especificación de la estructura global del sistema es un nuevo tipo de problema".

La Arquitectura del Software es el diseño de más alto nivel de la estructura de un sistema. Una Arquitectura de Software, también denominada Arquitectura lógica, consiste en un conjunto

de patrones y abstracciones coherentes que proporcionan el marco Una arquitectura de software se selecciona y diseña con base en objetivos y restricciones. Los

objetivos son aquellos prefijados para el sistema de información, pero no solamente los de tipo funcional, también otros objetivos como la mantenibilidad, auditabilidad, flexibilidad e interacción con otros sistemas de información. Las restricciones son aquellas limitaciones derivadas de las tecnologías disponibles para implementar sistemas de información. Unas arquitecturas son más recomendables de implementar con ciertas tecnologías mientras que otras tecnologías no son aptas para determinadas arquitecturas. Por ejemplo, no es viable emplear una arquitectura de software de tres capas para implementar sistemas en tiempo real.

La arquitectura de software define, de manera abstracta, los componentes que llevan a cabo alguna tarea de computación, sus interfaces y la comunicación entre ellos. Toda arquitectura debe ser implementable en una arquitectura física, que consiste simplemente en determinar qué computadora tendrá asignada cada tarea.

La arquitectura de software, tiene que ver con el diseño y la implementación de estructuras de software de alto nivel. Es el resultado de ensamblar un cierto número de elementos arquitectónicos de forma adecuada para satisfacer la mayor funcionalidad y requerimientos de desempeño de un sistema, así como requerimientos no funcionales, como la confiabilidad, escalabilidad, portabilidad, y disponibilidad.

Kruchten, Philippe

En los años 1960 ya se acercaba el concepto de arquitectura de software en los círculos de investigación (por ejemplo, por Edsger Dijkstra). No obstante, toma popularidad en los años 1990 tras reconocerse la denominada crisis del software y como tema de interés de la incipiente disciplina de la ingeniería del software.Modelos o vistasToda arquitectura de software debe describir diversos aspectos del software. Generalmente, cada uno de estos aspectos se describe de una manera más comprensible si se utilizan distintos modelos o vistas. Es importante destacar que cada uno de ellos constituye una descripción parcial de una misma arquitectura y es deseable que exista cierto solapamiento entre ellos. Esto es así porque todas las vistas deben ser coherentes entre sí, evidente dado que describen la misma cosa.Cada paradigma de desarrollo exige diferente número y tipo de vistas o modelos para describir una arquitectura. No obstante, existen al menos tres vistas absolutamente fundamentales en cualquier arquitectura:

La visión estática: describe qué componentes tiene la arquitectura.La visión funcional: describe qué hace cada componente.La visión dinámica: describe cómo se comportan los componentes a lo largo del tiempo y como interactúan entre sí.Las vistas o modelos de una arquitectura de software pueden expresarse mediante uno o varios lenguajes. El más obvio es el lenguaje natural, pero existen otros lenguajes tales como los diagramas de estado, los diagramas de flujo de datos, etc. Estos lenguajes son apropiados únicamente para un modelo o vista. Afortunadamente existe cierto consenso en adoptar UML (Unified Modeling Language, lenguaje unificado de modelado) como lenguaje único para todos los modelos o vistas. Sin embargo, un lenguaje generalista corre el peligro de no ser capaz de describir determinadas restricciones de un sistema de información (o expresarlas de manera incomprensible).Arquitecturas más comunes

Generalmente, no es necesario inventar una nueva arquitectura de software para cada sistema de información. Lo habitual es adoptar una arquitectura conocida en función de sus ventajas e inconvenientes para cada caso en concreto. Así, las arquitecturas más universales son:Monolítica. Donde el software se estructura en grupos funcionales muy acoplados.Cliente-servidor. Donde el software reparte su carga de cómputo en dos partes independientes pero sin reparto claro de funciones.Arquitectura de tres niveles. Especialización de la arquitectura cliente-servidor donde la carga se divide en tres partes (o capas) con un reparto claro de funciones: una capa para la presentación (interfaz de usuario), otra para el cálculo (donde se encuentra modelado el negocio) y otra para el almacenamiento (persistencia). Una capa solamente tiene relación con la siguiente. Otras arquitecturas afines menos conocidas son: Modelo Vista Controlador. En pipeline. Entre pares. En pizarra. Orientada a servicios. Dirigida por eventos. Máquinas virtuales

GENERACION D

E

COMPUTA

DORES

Generaciones de computadoras

Las computadoras han ido evolucionando desde su creación, pasando por diversas generaciones, desde 1940 hasta la actualidad, la historia de las computadoras ha pasado por muchas generaciones y la sexta, la más reciente, que se viene integrada con microprocesadores Pentium.

Historia

El Electronic Numerical Integrator and Computer (ENIAC) se ha considerado a menudo la primera computadora de propósito general, aunque este título pertenece en realidad a la computadora alemana Z1. Era totalmente digital, es decir, ejecutaba sus procesos y operaciones mediante instrucciones en lenguaje máquina, a diferencia de otras máquinas contemporáneas de procesos analógicos. Presentada al público el 15 de febrero de 1946, John W. Mauchly y John P. Eckert de la Universidad de Pensilvania (EEUU) iniciaros su desarrollo en 1943. Esta enorme máquina medía más de 30 metros de largo y pesaba 32 toneladas, estaba compuesta por 17.468 válvulas. El calor de las válvulas elevaba la temperatura de la sala donde se hallaba instalada hasta los 50º C. y para que llevase a cabo las operaciones para las que se había diseñado. Cuando la ENIAC se terminó en 1946, la II Guerra Mundial ya había terminado. El fin de la contienda hizo que los esfuerzos hasta entonces dedicados principalmente a objetivos militares, se destinaran también a otro tipo de investigación científica más relacionada con las necesidades de la empresa privada. Los esfuerzos múltiples dieron resultados en 1945 Mauchly y Eckert comenzaron a trabajar en una sucesora de la ENIAC, el EDVAC (Electronic Discrete Variable Automatic Computer) y Aiken inició el diseño de la Mark II. En 1951, el que está considerado como la primera computadora que se llamó Saly fue ampliamente comercializada, la UNIVAC I, comenzó a funcionar con éxito. En 1952 la computadora UNIVAC se utilizó para realizar el recuento de votos en las elecciones presidenciales de EE.UU. El resultado victoria (Eisenhower sobre Adlai Stevenson) se conoció 45 minutos después de que se cerraran los colegios electorales.

En 1952 entra en funcionamiento la primera de las llamadas IAS machines, diseñadas por John von Neumann y que incorporaban notables mejoras respecto a sus predecesoras y en 1962, Steven Russell creó el primer juego para computadoras, Spacewar.

Primera Generación (1946-1958)

En esta época las computadoras funcionaban con válvulas, usaban tarjetas perforadas para entrar los datos y los programas, utilizaban cilindros magnéticos para almacenar información e instrucciones internas y se utilizaban exclusivamente en el ámbito científico o militar. La programación implicaba la modificación directa de los cartuchos y eran sumamente grandes, utilizaban gran cantidad de electricidad, generaban gran cantidad de calor y eran sumamente lentas.

.

Segunda Generación (1958-1964)

Características de ésta generación: Usaban transistores para procesar información. Los transistores eran más rápidos, pequeños y más confiables que los tubos al vacío. 200 transistores podían acomodarse en la misma cantidad de espacio que un tubo al vacío. Usaban pequeños anillos magnéticos para almacenar información e instrucciones. Producían gran cantidad de calor y eran sumamente lentas. Se mejoraron los programas de computadoras que fueron desarrollados durante la primera generación.

Se desarrollaron nuevos lenguajes de programación como COBOL y FORTRAN, los cuales eran comercialmente accesibles. Se usaban en aplicaciones de sistemas de reservaciones de líneas aéreas, control del tráfico aéreo y simulaciones de propósito general. La marina de los Estados Unidos desarrolla el primer simulador de vuelo, Computadora Whirlwind. Se comenzó a disminuir el tamaño de las computadoras.

Aparecen muchas compañías y las computadoras eran bastante avanzadas para su época como la serie 5000 de Burroughs y la ATLAS de la Universidad de Mánchester. Algunas computadoras se programaban con cintas perforadas y otras por medio de cableado en un tablero.

Tercera Generación (1964-1971)

Comienza a utilizarse los circuitos integrados, lo cual permitió abaratar costos al tiempo que se aumentaba la capacidad de procesamiento y se reducía el tamaño de las máquinas. La tercera generación de computadoras emergió con el desarrollo de circuitos integrados (pastillas de silicio) en las que se colocan miles de componentes electrónicos en una integración en miniatura. El PDP-8 de la Digital Equipment Corporation fue el primer miniordenador.

Cuarta Generación (1971-1983)

Fase caracterizada por la integración sobre los componentes electrónicos, lo que propició la aparición del microprocesador, es decir, un único circuito integrado en el que se reúnen los elementos básicos de la máquina. Se desarrolló el microprocesador. Se colocan más circuitos dentro de un "chip". "LSI - Large Scale Integration circuit". "VLSI - Very Large Scale Integration circuit". Cada "chip" puede hacer diferentes tareas. Un "chip" sencillo actualmente contiene la unidad de control y la unidad de aritmética/lógica. El tercer componente, la memoria primaria, es operado por otros "chips". Se reemplaza la memoria de anillos magnéticos por la memoria de "chips" de silicio. Se desarrollan las microcomputadoras, o sea, computadoras personales o PC. Se desarrollan las supercomputadoras.

Quinta Generación (1984 -1999)

Surge la PC tal cual como la conocemos en la actualidad. IBM presenta su primera computadora personal y revoluciona el sector informativo. En vista de la acelerada marcha de la microelectrónica, la sociedad industrial se ha dado a la tarea de poner también a esa altura el desarrollo del software y los sistemas con que se manejan las computadoras