Вы находитесь на странице: 1из 33

$UTXLWHFWXUDGHORV

VLVWHPDVLQIRUPiWLFRV
+PSEJ5VCFMMB.VSHBEBT

Diseo de la coleccin: Editorial UOC


Primera edicin digital en lengua castellana: noviembre 2013
Este captulo procede de la obra: Escaneando la informtica (Joan Arnedo Moreno, Jordi Cabot Sagrera,
Isabel Guitart Hormigo, Francisco Javier Noguera Otero, Rafael Macau Nadal, Maria Jess Marco Galindo,
Josep Maria Marco Sim, Joan Antoni Pastor Collado, Josep Prieto Blzquez, Daniel Riera Terrn, Jordi
Tubella Murgadas, Jos Ramn Rodrguez Bermdez, M. Elena Rodrguez Gonzlez, Ramon Segret Sala)
publicada en 2010, con ISBN: 978-84-9788-110-4
-RUGL7XEHOOD0XUJDGDV, del texto.
Editorial UOC, de esta edicin
2EHUWD82&3XEOLVKLQJ6/8
Gran Via de les Corts Catalanes, 872, 3. planta, 08018 Barcelona
www.editorialuoc.com
Realizacin editorial: Oberta UOC Publishing, SL8
Cdigo del captulo: 978-84-9788-925-4/00

Ninguna parte de esta publicacin, incluido el diseo general y la cubierta, puede ser copiada, reproducida,
almacenada o transmitida de ninguna forma, ni por ningn medio, sea ste elctrico, qumico, mecnico, ptico,
grabacin, fotocopia, o cualquier otro, sin la previa autorizacin escrita de los titulares del copyright.

Autor
Jordi Tubella Murgadas
Licenciado y Doctor en Informtica para|por la UPC, es Profesor Titular de Universidad en la UPC
y Profesor Consultor en la UOC desde 1997. A nivel de docencia ha sido profesor responsable de las
asignaturas de tipo introductorio dentro del rea de arquitectura de computadores. Actualmente es
el Jefe de Estudios de la Fase de Seleccin en la FIB (Facultad de Informtica de Barcelona de la UPC).
Forma parte del grupo de investigacin ARCO (Arquitectura i Compiladors), especializndose en el
diseo de procesadores con el objetivo de elevar las prestaciones en cuanto a rendimiento y de disminuir el consumo que requieren.

Editorial UOC

ndice

ndice

Captulo II. Arquitectura de los sistemas informticos,


Jordi Tubella Murgadas ................................................................................

47

1. Introduccin ........................................................................................
2. Software de los sistemas informticos ..................................................
2.1. Aplicaciones web ..........................................................................
2.2. Sistemas distribuidos ....................................................................
2.3. Sistema operativo ........................................................................
3. Hardware de los sistemas informticos ................................................
3.1. Unidad central de proceso ..........................................................
3.2. Subsistema de memoria ..............................................................
3.3. Subsistema de entrada/salida ......................................................
3.4. Buses ............................................................................................
4. El sistema binario ..................................................................................
5. Historia ..................................................................................................
6. Salidas profesionales ............................................................................

47
49
49
52
54
56
57
59
60
62
63
65
69

Editorial UOC

47

Arquitectura de los sistemas informticos

Captulo II

Arquitectura de los sistemas informticos


Jordi Tubella Murgadas

1. Introduccin

Los sistemas informticos constituyen, hoy da, un pilar fundamental en el


que se sustentan organizaciones de todo tipo para dar apoyo a sus actividades,
organizaciones que van desde grandes compaas o ministerios pblicos a
pequeas asociaciones de personas o microempresas. Aqu nos referiremos a los
sistemas informticos como los conjuntos de computadores, perifricos, redes y
programas que interactan para dar un servicio o producto concreto. El componente computacional tiene que permitir introducir, almacenar, procesar y visualizar la informacin que gestiona y los servicios y productos que proporciona,
no slo de la manera ms correcta y efectiva, sino tambin de la manera ms
cmoda e intuitiva para las personas que interactan.
Los computadores nos proporcionan la capacidad de poder procesar la
informacin con vistas a conseguir la ms variada posibilidad de aplicaciones
informticas. En este contexto, cuando hablamos de un computador debemos
entender que es un dispositivo electrnico capaz de ejecutar aplicaciones de
propsito general. As, por ejemplo, tanto puede ayudar a editar vdeo como
a resolver problemas contables.
La exibilidad de uso de los computadores es lo que ha hecho que sean atractivos para una multitud de usuarios, que se pudieran abaratar costes y que salga
rentable investigar en nuevas tecnologas. Este crculo es bsico para entender
el gran dinamismo que se da en este campo. De esta forma se est consiguiendo que la capacidad de proceso se vaya incrementando progresivamente, de
manera que se duplica cada dos aos, segn establece la Ley de Moore (podis
consultar la referencia en http://es.wikipedia.org/ wiki/Ley_de_Moore para ver los
detalles). Tambin se incrementa la capacidad de almacenaje, de la misma

Editorial UOC

48

Escaneando la Informtica

manera que disminuye la potencia que consumen y, como consecuencia, la


temperatura que disipan cada vez es menor.
Hay segmentos de mercado tan importantes que han conseguido que sea factible que los computadores se especialicen en procesar ciertas aplicaciones especcas. As, han aparecido dispositivos electrnicos que realizan una determinada
funcin, como telfonos mviles, consolas de videojuegos, reproductores de
audio y de vdeo, etc. La cantidad de dispositivos existentes y que pueden aparecer en el futuro es muy destacable. De hecho, las posibilidades son mltiples tanto
con respecto a la aparicin de nuevos dispositivos como para unir diversos dispositivos individuales para que converjan segn pide el mercado. Por ejemplo, es
factible pensar ya en dispositivos que integren la telefona, la radio y la televisin.
La cantidad de procesamiento digital que requieren estos sistemas es enorme.
En este captulo se describe la arquitectura que conforman los sistemas informticos y se hace especial hincapi en los sistemas distribuidos. En este contexto, entendemos el trmino arquitectura como los elementos o bloques que constituyen estos sistemas. Describiremos las diferentes capas del software, desde el
nivel de las aplicaciones que nos permite ejecutar programas hasta el nivel del
sistema operativo, que contiene el software para controlar los recursos del computador.
Con la infraestructura de red adecuada, estos computadores se pueden
conectar entre s para construir un sistema distribuido, en el que la comunicacin y la coordinacin a travs de la red se hacen mediante el paso de mensajes. Adems, un computador genrico est compuesto por una unidad central
de proceso, tambin llamada simplemente procesador, una memoria que almacenar el programa que se tiene que ejecutar, y unos elementos de entrada/salida que permitirn interaccionar con el exterior. Todos estos bloques estn
conectados por buses, que no son ms que los caminos de comunicacin entre
estos elementos.
Todo ello nos permite disear estos sistemas informticos, que ofrecen
actualmente una notable capacidad de proceso y permiten la comunicacin
desde cualquier lugar del planeta.
Intentaremos entrar en el detalle de estos sistemas informticos siguiendo
una visin top-down, es decir, empezaremos por su funcionalidad principal e iremos bajando descriptivamente hasta la explicacin de los elementos bsicos
que los constituyen.

Editorial UOC

49

Arquitectura de los sistemas informticos

2. Software de los sistemas informticos

Hoy en da los computadores, sean personal o porttiles, tienen unas capacidades de proceso muy elevadas y estn cada vez ms introducidos en la vida
cotidiana de las personas. La generacin actual de computadores nace, por una
parte, con el desarrollo del microprocesador (procesador integrado en un nico
chip), que permiti reducir el tamao y el coste de los computadores, aument
sus prestaciones y permiti el acceso a un mayor nmero de personas, y por otra
parte, con el desarrollo de las redes de rea local y de comunicaciones, que permitieron conectar computadores con posibilidad de transferir datos a gran velocidad.
En este contexto ha aparecido el concepto de sistemas distribuidos, que tiene
como mbito de estudio todos aquellos sistemas informticos constituidos en
red, tanto Internet como las redes de telefona mvil, las redes corporativas u
otras.
Hay innidad de ejemplos de aplicaciones que podemos considerar sistemas
distribuidos.1 Entre otros, podemos citar:
Acceso a pginas web, al correo electrnico y a bases de datos para buscar
informacin, que estn habitualmente presentes en todos los sistemas
informticos.
Capacidad de compartir todo tipo de archivos.
Juegos en red.
Videoconferencias, mensajera instantnea.
Sistemas de reserva de billetes de lneas areas, aplicaciones bancarias, etc.
En general, compras comerciales a travs de Internet (e-commerce).
Enseanza asistida por ordenador.
En esta seccin, primero haremos un repaso de las aplicaciones web ms utilizadas y, posteriormente, pasaremos a describir las caractersticas principales de
la arquitectura en el mbito del software de los sistemas distribuidos.

2.1. Aplicaciones web


El acceso a las pginas web, el correo electrnico y la bsqueda de informacin constituyen tal vez las aplicaciones web que son ms populares.

Editorial UOC

50

Escaneando la Informtica

2.1.1. Acceso a la web


Las pginas web ofrecen un contenido multimedia que puede incluir texto,
imagen y sonido, as como referencias a otros elementos de informacin
siguiendo el modelo de los sistemas hipertexto. La navegacin siguiendo los
hipertextos consiste en presentar en un documento un enlace a un recurso diferente y ofrecer mecanismos para acceder de manera inmediata.
El servicio web sigue el modelo cliente/servidor. En el modelo cliente/servidor de
un sistema distribuido hay un cliente que solicita un determinado servicio a travs de un computador y un servidor que proporciona ese servicio desde otro computador.

Las pginas web contienen bsicamente dos elementos: la informacin y la


manera como se tiene que presentar esta informacin. Esta informacin se especica siguiendo el estndar HTML. El servidor de la pgina web tiene la informacin almacenada. El cliente se encarga de solicitarla y presentarla al usuario
a medida que la va obteniendo. Hay diferentes servidores y clientes web. Los
clientes ms conocidos son: Mozilla (que es de cdigo abierto y es continuacin
de Netscape) y el MS-Internet Explorer. El servidor ms utilizado es Apache, un
servidor de software libre (www.apache.org).
La comunicacin entre el cliente web y el servidor web se hace a travs del
protocolo HTTP. Este protocolo permite tanto que el cliente baje datos del servidor (operacin de consulta de pginas web) como que el cliente enve datos
al servidor (p. ej. cuando se llena un formulario o cualquier otra informacin
que se enva al servidor).
Las pginas que almacenan los servidores en un primer momento eran estticas (siempre son iguales y se presentan de la misma manera). Una primera evolucin fueron las pginas dinmicas, que consisten en que la pgina que se devuelve al usuario que accede al servidor web se genera en el momento del acceso. Esto
es as porque en realidad no se est accediendo a un chero (como es el caso de
las pginas estticas) sino a un programa que formatea el resultado de su ejecucin como si fuera una pgina web. Esta manera de funcionar es la que utilizan
las aplicaciones que tienen una interfaz web (p. ej. el campus virtual de la UOC).
El siguiente paso fue conseguir que la pgina que recibe el navegador incluya un
cdigo que permite que la pgina se presente de manera diferente segn el cliente que lo ejecute. Lo cual ha dado mucha ms potencia a la hora de utilizar la web
como interfaz de aplicaciones.

Editorial UOC

51

Arquitectura de los sistemas informticos

2.1.2. Correo electrnico


Al igual que el correo tradicional, el correo electrnico es un medio de comunicacin asncrono, en el que la gente enva y recibe mensajes cuando le conviene
hacerlo, sin tener que coordinarse con nadie ms. A diferencia del correo tradicional, es rpido, fcil de distribuir y barato. Utilizando listas de distribucin, un mensaje se puede enviar a miles de receptores de una sola vez. Adems, los mensajes de
correo electrnico modernos incluyen adjunciones, hiperenlaces, texto formateado en HTML, imgenes, sonido, vdeo y applets pequeos programas escritos en
Java, un lenguaje de programacin concreto.
El correo electrnico tambin se gestiona utilizando el modelo cliente/servidor. El cliente de correo enva el mensaje al servidor de correo utilizando el protocolo SMTP. El receptor obtiene el correo del servidor utilizando uno de los dos
protocolos siguientes:
POP3: En este caso el correo se copia en el ordenador del receptor y el mensaje se borra del servidor. Antes de poder acceder a un mensaje nuevo, el
receptor tiene que haber recibido todo el correo pendiente.
IMAP: En este caso el receptor recibe la informacin sobre la cabecera de los
mensajes. El contenido del mensaje llega al receptor slo en caso de que ste
lo quiera leer. Los mensajes no se borran del servidor si el cliente no lo indica explcitamente. De esta manera se puede acceder rpidamente al correo
desde muchos ordenadores diferentes.
Otra modalidad de correo es la que ofrecen los gestores de correo va web. En
este caso, se accede al correo como si se accediera a una pgina web. Tanto si es
en el caso del emisor como en el del receptor, el usuario utiliza el navegador que
tiene instalado en el ordenador para enviar o recibir correo utilizando el protocolo HTTP. Ejemplos de correo va web son el correo del campus virtual de la
UOC o los correos que proporcionan sitios web como Yahoo o Hotmail.
En cuanto al correo electrnico hay otros aspectos importantes: los virus y los
ltros para el correo no deseado (spam). Los virus ya se han asociado al correo
electrnico. Por una parte, porque se reciben cheros que pueden estar infectados (programas ejecutables o cheros que tienen la capacidad de ejecutarse, p. ej.
los macros de los programas de omtica de MS-Ofce) y, sobre todo ltimamente, por problemas de seguridad de los clientes de correo, que permiten ejecutar
el cdigo que llega en un mensaje. El correo no solicitado, tambin llamado
spam, es un problema que cada vez se va haciendo ms patente. A diferencia del

Editorial UOC

52

Escaneando la Informtica

correo no solicitado que recibimos en papel en casa, el correo electrnico no


tiene ningn coste para el emisor, mientras que el receptor tiene que dedicar un
tiempo tanto para conectarse como para borrarlo. Para hacer frente a este problema, existen los programas de tipo ltro que se encargan de analizar los mensajes
para detectar y marcar el spam o incluso borrarlo directamente.

2.1.3. Sistemas de bsqueda en Internet


El nmero de pginas web sigue creciendo de forma constante. La gran cantidad de informacin disponible es un atractivo ms de la red Internet, a pesar
de los problemas evidentes de mantenimiento y de abilidad de esta informacin. Este hecho determina que uno de los principales usos que los usuarios
hacen de Internet sea la bsqueda de informacin por palabras clave. Se pueden
destacar varios sistemas de bsqueda: Yahoo, Lycos, Altavista y el ms utilizado,
Google, debido a su mayor rapidez y al mayor nmero de pginas encontradas.
Tambin hay otros sistemas de bsqueda que se llaman metabuscadores, sistemas que utilizan ms de un buscador y muestran sus resultados de forma resumida y ordenada.

2.2. Sistemas distribuidos


Los sistemas distribuidos son sistemas informticos en los que los componentes
de hardware y software estn conectados en red y comunican y coordinan sus
acciones mediante el paso de mensajes. La comunicacin se establece a travs de
un protocolo prejado, como el esquema cliente-servidor, de igual a igual, o
puede ser denido de forma particular por la aplicacin, como en la ejecucin
paralela de aplicaciones.

En la seccin anterior ya hemos comentado brevemente al modelo


cliente/servidor, en el cual el cliente hace una peticin de servicio, y los servidores, una vez recibidas estas peticiones, las resuelven y devuelven el resultado
al cliente.
Aparte del modelo cliente/servidor, se utiliza tambin el modelo de igual a igual
(peer-to-peer, P2P). En este caso no hay nodos (ordenadores) cliente y nodos servidor
sino que todos los nodos del sistema se comportan de la misma manera y son al

Editorial UOC

53

Arquitectura de los sistemas informticos

mismo tiempo clientes y servidores. Tambin se acostumbra a llamarlo modelo


punto a punto o entre iguales.

Este tipo de redes son muy utilizadas para compartir cheros entre los usuarios. Las redes P2P son objeto de mucho inters en los medios de comunicacin
por cuestiones legales cuando los cheros que se intercambian los usuarios
estn sometidos a derechos de autor. En cualquier caso, el nmero de cheros
de audio y vdeo que se intercambian con estas redes no deja de aumentar da
a da. La forma de poder saber dnde se encuentra la informacin es a travs de
nodos que contienen una especie de ndices hacia el lugar donde est esta informacin. Actualmente, se utilizan programas basados en algoritmos totalmente
descentralizados para identicar la informacin.
Otro ejemplo de las aplicaciones de igual a igual que se estn popularizando
muy rpidamente entre los usuarios de Internet es la mensajera instantnea. Ya
empieza a ser habitual que muchos internautas tengan activa durante todo el
da la aplicacin de mensajera instantnea y se comuniquen con sus amigos,
conocidos o compaeros de trabajo.
En el modelo cliente/servidor y en el modelo de igual a igual hay una peticin que hace un nodo que es servida por un servidor u otros nodos del sistema. Hay un modelo intermedio llamado publicacin/suscripcin, en que el
productor de la informacin anuncia la disponibilidad de esta informacin y el
consumidor de la informacin se suscribe a los canales que difunden la informacin y entonces puede decidir dnde ir a buscarla.
A la hora de disear estos sistemas distribuidos hay que tener en cuenta los
siguientes aspectos:
Heterogeneidad. El sistema distribuido est formado por una variedad de
redes, sistemas operativos, lenguajes de programacin o hardwares del
ordenador. Es necesario que todos estos diferentes elementos puedan interactuar entre s.
Apertura. Es deseable que el sistema se pueda extender fcilmente, es decir,
que se puedan aadir nuevos recursos y servicios compartidos y que stos
estn a disposicin de todos los componentes del sistema.
Seguridad. Es un aspecto crtico poder saber la identidad de los usuarios o
agentes que intervienen en el sistema.
Escalabilidad. Un sistema es escalable si mantiene la eciencia cuando se
aumentan los recursos y el nmero de usuarios.

Editorial UOC

54

Escaneando la Informtica

Tolerancia a fallos del sistema. Cuando un componente del sistema falla,


tendra que seguir funcionando el sistema global sin problemas.
Concurrencia. Los diferentes componentes de un sistema distribuido pueden pedir acceder a un recurso simultneamente. Es preciso que el sistema
est diseado para permitirlo.
Transparencia. La transparencia persigue que ciertos aspectos del sistema
estn ocultos en las aplicaciones, como por ejemplo la ubicacin de un
recurso o la replicacin de los datos.

2.3. Sistema operativo


La ltima capa de software est formada por el sistema operativo. El sistema operativo se encarga de coordinar el hardware del computador y la entrada y la salida, el almacenaje y el procesamiento.

Cada computador debe tener un componente de software que se tiene que


activar cuando el computador se pone en marcha. Este componente puede
residir en la memoria ROM, en el disco duro o bien en un disco externo que
se inserta en el momento inicial. Los primeros computadores tenan cada uno
un sistema operativo propio, por lo cual los programas diseados para una
mquina en concreto no se podan ejecutar en un modelo diferente.
La universalizacin de los sistemas operativos empieza con el sistema operativo UNIX. Los orgenes se remontan a 1968. Tras un intento que no cristaliz, en 1969 Ken Thompson y Dennis Ritchie consiguieron completar este
sistema operativo y fue el primer escrito totalmente en un lenguaje de alto
nivel, el lenguaje C.2 Eso permiti trasladar fcilmente este sistema operativo
a otras mquinas e hizo aumentar la popularidad de la filosofa UNIX.
Tambin hay que mencionar que a partir del primer computador personal
(IBM-PC en 1971) la empresa Microsoft dise un sistema operativo para esta
mquina (PC-DOS) y para cualquier computador PC compatible (MS-DOS).
Eso constituy un punto de inflexin para extender el uso de los computado2. El lenguaje de programacin C es el ms usado en el desarrollo de sistemas operativos, as como
en el desarrollo de aplicaciones, aunque en este punto cada vez se opta ms por sus lenguajes sucesores C++ y Java. Se combina la robustez de los lenguajes de alto nivel con la eciencia de poder
trabajar muy cerca de los lenguajes mquina de los computadores. Todo esto se explica en profundidad en el captulo Programacin.

Editorial UOC

55

Arquitectura de los sistemas informticos

res y ha hecho de Microsoft una de las empresas ms importantes del mundo.


EL MS-DOS ha ido evolucionando hacia mltiples versiones hasta llegar a la
que actualmente est disponible en el mercado, llamada MS Windows Vista.
Por otra parte, un estudiante finlands, llamado Linus Torvalds, tuvo en
cuenta la filosofa UNIX para desarrollar un sistema operativo que estuviera
disponible para todo el mundo que estuviera interesado en l, lo cual abri la
puerta a lo que actualmente se llama software libre. Este sistema operativo se
llama GNU/Linux y actualmente est bastante extendido dado que su licencia (GNU Public License, GPL) garantiza la libertad de distribucin (entre otras
libertades) a todos sus usuarios.3
Entrando en un poco ms de detalle, las tareas de un sistema operativo
son:
Asignar y controlar los recursos del sistema, definiendo qu aplicacin y
en qu orden se tienen que ejecutar.
Gestionar la memoria del sistema, que es compartida por todas las aplicaciones.
Gestionar los sistemas de entrada/salida, incluyendo los discos duros, las
impresoras y todo tipo de puertos.
Enviar mensajes de estado a las aplicaciones, al administrador del sistema o al usuario sobre cualquier error o informacin necesaria para que el
sistema trabaje de una forma estable.
Teniendo en cuenta que el paso de mensajes es la forma de comunicacin
en los sistemas distribuidos, la parte del sistema operativo encargada de controlarlo sigue la familia de protocolos de Internet llamada TCP/IP. Esta familia de protocolos permite dividir y ordenar la informacin que tiene que
transportarse en paquetes de tamao ms pequeo y establecer el direccionamiento de la informacin a travs de la red Internet.

3. Si queris saber ms cosas sobre el software libre y la GPL... Podis consultar el sitio web de la Free
software Foundation (FSF): http://www.fsf.org/

Editorial UOC

56

Escaneando la Informtica

3. Hardware de los sistemas informticos

En la introduccin hemos denido la arquitectura Von Neumann como el


modelo que constituye el pilar bsico de los ordenadores actuales. De acuerdo con
este modelo de arquitectura Von Neumann, un computador consta de un procesador, de un subsistema de memoria y de un subsistema de entrada/salida.
Arquitectura Von Neumann

La memoria contiene tanto los datos como las instrucciones de los programas. El procesador, formado por una unidad de proceso (UP) y una unidad de
control (UC), tiene la tarea de extraer las instrucciones de la memoria, descodicarlas (es decir, entender qu operacin desean hacer) y ejecutarlas. Las instrucciones son ejecutadas en secuencia (es decir, una detrs de la otra y en el
orden en que estn almacenadas) y slo las instrucciones de salto pueden romper esta secuencia. El subsistema de entrada/salida (E/S) permite la comunicacin con el exterior, sea con otros computadores o con los usuarios que interaccionan. Con este subsistema y la infraestructura de red adecuada, los computadores se comunican entre s.
El estilo de programacin que se adapta mejor a este modelo es el procedimental. Cualquier programa tiene que ser descrito a la mquina como una secuencia de instrucciones. La mquina espera un programa que le dice qu tiene que
hacer en cada instante de tiempo.
Podramos hacer una analoga del funcionamiento de un computador con
el sistema nervioso del cuerpo humano. La memoria y el procesador estaran
localizados en el cerebro, y el sistema de E/S seran los diferentes sentidos
odo, vista, gusto, tacto y olfato ms el sistema del habla como salida.

Editorial UOC

57

Arquitectura de los sistemas informticos

3.1. Unidad central de proceso


La unidad central de proceso (CPU), tambin llamada simplemente procesador,
es el elemento del computador encargado de ejecutar el programa guardado en la
memoria. En realidad, ejecutar no es ms que interpretar el conjunto de instrucciones que conforman el programa almacenado en un momento determinado en
la memoria de la mquina.

Una instruccin tiene una medida determinada (medida en nmero de bits o


de grupos de 8 bits el byte que ocupa) y est organizada en una serie de partes
jas (denominadas campos) cada una de las cuales contiene un tipo de informacin. As, generalmente, el primer campo es el cdigo de operacin, un nmero que
identica la operacin que hay que hacer (sumar, restar... o cualquier operacin
que permita el procesador). Los otros campos que siguen al cdigo de operacin son,
generalmente, los operandos, que indican cules son o dnde estn los datos sobre
los que se tiene que aplicar la operacin y dnde hay que guardar el resultado.
Las fases que el procesador tiene que realizar para interpretar las instrucciones son las siguientes:
Extraer la instruccin correspondiente de la memoria (fase de bsqueda). Segn la medida y el formato de las instrucciones, la bsqueda ser ms
o menos compleja. Por ejemplo, las mquinas RISC (reduced instruction set
computer) tienen todas las instrucciones del mismo tamao. De esta manera, la circuitera necesaria es ms sencilla y rpida. La contrapartida son las
mquinas CISC (complex instruction set computer) en las que las instrucciones
son de tamao variable.
Determinar qu operacin tiene que realizar la instruccin (fase de descodicacin). Aqu tambin es fundamental el formato de las instrucciones.
El hecho de que el cdigo de operacin ocupe una posicin concreta dentro
de la instruccin y que tenga un tamao concreto facilita esta descodicacin. Las mquinas RISC, adems, tienen pocas instrucciones en el repertorio, lo cual facilita todava ms esta tarea. De forma opuesta, una mquina
CISC contiene un gran nmero de instrucciones.
Obtener los datos con que se tiene que operar (fase de bsqueda de operandos). El formato de las instrucciones determina cuntos operandos se permite que tengan. Los operandos pueden ser fuente, es decir contener o indicar
los valores sobre los cuales se tiene que realizar la operacin, o destino, es
decir, indicar dnde se tiene que guardar el resultado de la operacin,
Pueden ser 3 (dos operandos fuente y uno de destino), 2 (caso en el que el

Editorial UOC

58

Escaneando la Informtica

destino coincide con uno de los operandos fuente) o, incluso 1, en el caso


de operaciones de un solo operando fuente que se hace coincidir con el destino del resultado. Tambin determina el lugar en el que estn guardados,
ya sea en la memoria, en la misma instruccin o en registros. Los registros
son elementos de almacenaje de informacin con un tiempo de acceso ms
pequeo que la memoria.
Realizar la operacin correspondiente (fase de ejecucin). Durante esta fase
se realiza la operacin. Normalmente, segn el tipo de procesador, tendremos las 4 operaciones aritmticas bsicas (suma, resta, producto y divisin)
sobre datos de tipo entero y real, y operaciones lgicas que realizan la complementacin (NOT), la suma lgica inclusiva (OR) y exclusiva (XOR), y el
producto lgico (AND) del lgebra booleana.
Almacenar el resultado de la operacin (fase de escritura). Al igual que
para los operandos fuente, la instruccin especica tambin el lugar en que
se tiene que guardar el resultado calculado.
Identicar la instruccin siguiente que hay que ejecutar (control de la
secuenciacin). La secuenciacin de las instrucciones es implcita, es decir,
que despus de ejecutar una instruccin se tiene que ejecutar la que hay
justo a continuacin de la memoria. Esta secuenciacin se puede romper en
cualquier momento por la existencia de instrucciones de salto, que permiten especicar de forma explcita la direccin de memoria donde reside la
prxima instruccin que se tiene que ejecutar. Estos saltos pueden ser
incondicionales o condicionales. De esta manera podemos ejecutar diferentes fragmentos del cdigo de un programa en funcin de los resultados precedentes de las instrucciones (lo que se correspondera con las sentencias
condicionales de los programas de alto nivel) o bien saltar atrs en el programa para poder realizar bucles y reaprovechar el cdigo del programa para
operar con otros datos (lo que se correspondera con las sentencias iterativas de los programas de alto nivel).
Con esta secuencia realmente simple de fases, repetida ad innitum, el procesador es capaz de ejecutar programas de cualquier complejidad.4

4. Los procesadores superescalares, como el Intel Pentium, siguen este modelo del ciclo de ejecucin de las instrucciones, pero disponen de optimizaciones arquitectnicas que aumentan sus prestaciones: son capaces de encabalgar la ejecucin de una instruccin con las siguientes y permiten
iniciar la ejecucin de ms de una instruccin en cada ciclo.

Editorial UOC

59

Arquitectura de los sistemas informticos

Conviene que sepamos que el procesador est constituido internamente por


dos unidades:
La unidad de proceso (UP). Contiene los registros, que guardan datos del
programa; la unidad que realiza las operaciones que mandan hacer las instrucciones; y los buses, que permiten interconectar todos los elementos
entre s.
La unidad de control (UC). Se encarga de generar las seales de control
para ejecutar las instrucciones. Para cada instruccin, genera una secuenciacin de seales que se envan a la unidad de proceso y que permiten realizar las fases mencionadas anteriormente.

3.2. Subsistema de memoria


La memoria almacena las instrucciones y los datos, incluyendo los resultados nales e intermedios, de los programas. Est formada por un espacio de un solo nivel de
direcciones con una organizacin lineal de las palabras. Sobre la memoria, el procesador puede efectuar operaciones de lectura y de escritura.

La comunicacin entre el procesador y la memoria es, desde los primeros


computadores, uno de los principales cuellos de botella del modelo Von
Neumann. La situacin ideal sera un sistema de memoria de gran capacidad,
gran ancho de banda, tiempo de acceso pequeo y bajo coste.
Desgraciadamente, el tiempo de acceso es inversamente proporcional a la capacidad y el ancho de banda est limitado por las conexiones del procesador con
el exterior as como por la organizacin de la memoria, mientras que el coste
limita todos los factores.
En la prctica hay una diferencia considerable entre la velocidad del procesador y la de la memoria. Esta tendencia no hace ms que crecer con el tiempo,
ya que los avances tecnolgicos son ms rpidos en los procesadores que en la
memoria. Para resolver este problema se dispone de una organizacin jerrquica de la memoria. La memoria est formada por diferentes niveles. Los niveles
que estn ms cerca del procesador, con respecto a la interconexin, son muy
rpidos de acceder pero de medida limitada ya que son muy costosos. En cada
nivel posterior o ms alejado del procesador se tiene ms capacidad pero tambin se tarda ms en acceder al contenido. La idea es que la informacin que se
utilice a menudo se guarde en los niveles ms rpidos, sabiendo que en el peor

Editorial UOC

60

Escaneando la Informtica

de los casos siempre se podr encontrar cualquier informacin en el ltimo


nivel de la jerarqua.
Dentro de la jerarqua de memoria, el nivel ms rpido de acceso son los registros, que forman parte de la unidad de proceso dentro del procesador. El nivel
siguiente se llama antememoria (memoria cach) y debemos tener en cuenta que
puede haber ms de uno en funcin del rendimiento/coste con que se disee un
computador. Los siguientes niveles de la jerarqua estn formados por elementos
de almacenaje de tipo memoria RAM y almacenaje magntico u ptico (que
incluye el disco duro, las unidades de CD y DVD, etc.).
Memoria RAM y disco duro: dos niveles dentro
de la jerarqua de la memoria de un computador

3.3. Subsistema de entrada/salida


El subsistema de entrada/salida (E/S) sirve para comunicar el computador con el
exterior, es decir, con los dispositivos de E/S, tambin llamados perifricos.

Los dispositivos de E/S se pueden clasicar en dispositivos de entrada de


informacin, de salida de informacin, o bien, dispositivos que permiten la
bidireccionalidad. Ejemplos tpicos de dispositivos de entrada son el teclado, el

Editorial UOC

61

Arquitectura de los sistemas informticos

ratn y el escner, entre otros. Por otra parte, la pantalla y la impresora son los
dos perifricos de salida ms representativos. Los dispositivos que actan como
entrada y salida al mismo tiempo corresponden a puertos de comunicacin con
otros sistemas computadores. Tambin se engloban dentro de esta posibilidad
los dispositivos que almacenan la informacin como los discos duros.
Los perifricos son bsicos para interaccionar
con los sistemas informticos

Formando parte de este subsistema dentro del computador encontramos los


controladores o drivers de los dispositivos de E/S. Estos controladores ofrecen
una interfaz de control uniforme y simple de los dispositivos de E/S por parte
del procesador. Si el procesador tuviera que tratar cada uno de los posibles
modelos existentes en el mercado de los dispositivos de E/S, la programacin se
hara muy compleja y poco exible ante los cambios de estos dispositivos. Para
resolver este inconveniente, el procesador controla los perifricos a travs de
unos registros ubicados dentro del controlador de cada perifrico. Estos registros
sirven para conocer la disponibilidad de la transmisin de informacin (el dispositivo, como es ms lento, podra no estar preparado todava), para indicar
que se haga la transferencia y para guardar o recibir el dato que se transere.

Editorial UOC

62

Escaneando la Informtica

3.4. Buses
Los diferentes elementos del computador se tienen que comunicar entre s para
pasarse informacin. Los buses son los caminos de comunicacin entre estos elementos. Cada bus est constituido por varias lneas, cada una de stas permite
transmitir una seal binaria.

Un computador puede tener diferentes tipos de buses que proporcionan


comunicacin entre sus componentes. Cuando esta comunicacin es entre sus
tres componentes principales procesador, memoria y entrada/salida, se llama
bus del sistema.5
Dentro de un mismo bus podemos clasicar a la vez las lneas segn la funcionalidad que tengan asignadas. As, estn las lneas que permiten transferir
datos entre los componentes (bus de datos), las lneas que designan el lugar en
que se tiene que leer o escribir el dato dentro de la memoria o el registro de los
controladores de E/S (bus de direcciones), y las lneas que se utilizan para coordinar el dato y la direccin en cada transferencia (bus de control). El nmero de
lneas del bus de datos y de direcciones suele coincidir en los computadores
actuales. Hoy por hoy la medida ms extendida es la de 32 bits y empiezan a aparecer las arquitecturas de 64 bits que se convertirn en estndar en un futuro
bien prximo.
El parmetro ms importante que debemos tener en cuenta cuando estudiamos un bus del computador es el ancho de banda. Se reere a la velocidad mxima con que se pueden transferir datos por el bus. Normalmente, se mide este
ancho de banda por el nmero de bits o de bytes por segundo, independientemente de cual sea la medida del bus de datos.

5. PCI ha sido y sigue siendo un estndar de bus en los computadores personales. Es un bus paralelo
(hasta 32 bits de datos) de conexin de dispositivos de E/S en la placa base del computador, con velocidades de hasta 133 MB/s.
Ms recientes, USB y Firewire son dos buses serie (los datos se transmiten bit a bit) que conectan dispositivos al computador y que comparten prestaciones similares, con velocidades pico de 480 Mbit/s y
800 Mbit/s, respectivamente, en las versiones actuales.

Editorial UOC

63

Arquitectura de los sistemas informticos

4. El sistema binario

La informacin que gestiona el computador son por una parte las instrucciones, que indican la operacin que se tiene que llevar a cabo, y por otra parte los
datos, con los que se tienen que hacer estas operaciones. Para que el computador pueda reconocer esta informacin se tiene que representar en un sistema
capaz de ser interpretado electrnicamente.
El fundamento fsico de los computadores electrnicos es la capacidad de determinar si hay o no tensin de alimentacin en una lnea o, en otras palabras, si circula corriente elctrica. El sistema que se adapta perfectamente es el sistema binario, en el que se utilizan nicamente dos dgitos (bits): 0 y 1. El 0 signica que no
hay tensin, mientras que el 1 signica que s que la hay. Por lo tanto, internamente, dentro del computador, toda la informacin estar representada mediante el sistema binario.

Sin embargo, para las personas es muy dicultoso trabajar con este sistema.
Hay que tener en cuenta que, actualmente, la medida habitual de los datos es de
32 bits y la tendencia es ir hacia arquitecturas de 64 bits cada vez ms extendidas. Si tenemos que denir o interpretar los datos en binario, nos podemos equivocar fcilmente si tenemos que escribir 32 (o 64) bits. Por eso, en nuestra aritmtica cotidiana utilizamos el sistema decimal, que es el que solemos utilizar
para escribir los nmeros. En informtica tambin es usual escribir los nmeros
en el sistema hexadecimal, en el que cada 4 bits se corresponden a 1 dgito hexadecimal, lo cual permite reducir el nmero de dgitos con que representamos los
datos y, de esta manera, podemos minimizar los errores de transcripcin.
Hay diferentes tipos de datos en los programas: nmeros naturales, nmeros
enteros, nmeros reales, vectores, matrices, etc. Hay que tener en cuenta que en
la memoria nicamente almacenaremos el valor del dato en el formato de representacin que se dena por convenio para cada tipo de dato. Eso implica que la
simple inspeccin del contenido de la memoria no nos da ninguna informacin
sobre el tipo de dato que hay almacenado.
Al igual que para los datos, un programa contiene instrucciones en lenguaje mquina que el procesador es capaz de interpretar, escritas utilizando los bits
0 y 1. Las instrucciones contienen una serie de campos, como el cdigo de operacin y la especicacin de dnde se encuentran los operandos. La descodicacin de la instruccin determina qu tipo de datos se corresponden con los

Editorial UOC

64

Escaneando la Informtica

operandos. Como podis imaginar, programar utilizando el lenguaje mquina


de unos y ceros es muy pesado para las personas. Por eso los programadores
utilizan una representacin textual del programa en que se utilizan unos cdigos mnemotcnicos para indicar el cdigo de operacin y los operandos. Los
programas escritos de esta manera utilizan el llamado lenguaje de ensamblador. Debe existir un proceso de traduccin de los programas escritos en lenguaje de ensamblador a lenguaje mquina antes de poder almacenarlos en la
memoria del computador para ser ejecutado.
En la tabla siguiente se dan algunos ejemplos de datos e instrucciones tal
como se denen en un programa hecho con lenguaje de ensamblador y tal
como se representan en el computador (suponiendo que disponemos de 16 bits
de medida para los datos y las instrucciones).
Lenguaje de
ensamblador

Lenguaje mquina

Signicado

a: .word 10

0000000000001010
(binario)

Declaracin o creacin de la variable de nombre a, que se


inicializa al valor entero 10. Los enteros se representan en
el formato denominado complemento a 2.

000A (hexadecimal)
b: .word -2

1111111111111110
(binario)

Declaracin de la variable b, inicializada al valor entero 2.

FFFE (hexadecimal)
ADD R3, R1, R2

0101001100010010
(binario)
5312 (hexadecimal)

ADDI R1, R1, #1

0111000100010001
(binario)
7111 (hexadecimal)

Instruccin que suma el contenido de los registros R1 y R2


y deja el resultado en R3. El formato de la instruccin
determina que los primeros 4 bits son el cdigo de operacin, que los operandos son registros y que cada registro se
especica en 4 bits.
Instruccin que incrementa el contenido del registro R1. El
formato de esta instruccin determina que hay un registro
fuente especicado en 4 bits, un registro destino<A[destinacin|destino]>, tambin de 4 bits, y un dato constante
tambin de 4 bits que se guarda en la misma instruccin
en los bits de ms a la derecha.

A modo de ejemplo tambin os mostramos un pequeo programa escrito en


lenguaje de ensamblador que muestra por pantalla los nmeros cuadrados
desde el 12 hasta el 102.

Editorial UOC

65

LOADI
bucle: INC
SUBI
BG
MUL
OUT
BR
final: .end

Arquitectura de los sistemas informticos

R1, #0
R1
R2, R1, #10
final
R2, R1, R1
R2
bucle

Cualquier componente dentro del hardware de los computadores se realiza


mediante unos dispositivos electrnicos bsicos que se llaman puertas lgicas.
Hay cuatro operaciones lgicas bsicas: NOT, OR, AND y XOR. No es el objetivo de este captulo denir el hardware de la unidad de proceso y de la unidad
de control de un procesador. En cualquier caso, podemos intuir que el nmero
de puertas lgicas es elevadsimo y disear todo el hardware nicamente a este
nivel es impracticable. Para disear un computador se disean circuitos lgicos
a partir de las puertas lgicas que llevan a cabo tareas comunes y que pueden
despus ser reutilizados en el diseo global. De esta manera, a partir de componentes ms sencillos se van diseando componentes ms complejos hasta llegar al diseo nal de todo el procesador.
Haremos una ltima referencia a la capacidad de almacenaje de los computadores, la memoria. Las puertas lgicas por s solas no permiten guardar informacin. Si cambia el valor de la seal en la entrada de la puerta cambia automticamente el valor de la salida. Hay un componente electrnico, el biestable,
que permite guardar 1 bit de informacin y que es el punto de partida de los
registros y de la memoria RAM, elementos que conforman la capacidad de almacenaje de los computadores.

5. Historia

Los computadores, tal como los hemos descrito aqu, son el resultado de una
evolucin tecnolgica de la que, llegados a este punto, querramos hacer una
pequea aproximacin histrica.
Desde hace mucho tiempo se ha querido acelerar la capacidad y la correccin
del procesamiento. Tenemos que tener en cuenta que las matemticas constitu-

Editorial UOC

66

Escaneando la Informtica

yen una base necesaria para el conjunto de la sociedad. El hecho de poder


sumar, restar, multiplicar o dividir est presente en la vida cotidiana.
La primera referencia histrica que tenemos en este aspecto es el baco, de
procedencia china y con indicios que pueden fechar su realizacin desde el siglo
XI a. C.
Sin embargo se considera que es en el siglo XVII cuando se inicia la construccin de los primeros computadores mecnicos. El cientco francs Blaise Pascal
dise y fabric una calculadora que permita sumar y restar de forma totalmente mecnica.
Habr que esperar un par de siglos ms hasta que Charles Babbage disee la
llamada mquina analtica. La importancia que ha tenido esta mquina radica
en el hecho de que su estructura mecnica ya coincida con la que tienen actualmente los computadores: dispona de un molino capaz de calcular, de un almacn para guardar informacin, de una seccin de entrada de datos y de otra de
salida de datos.
Diseo de la mquina analtica de Babbage

Aunque hay otros intentos que seguramente tambin mereceran ser destacados, para simplicar podemos sealar el paso del computador mecnico al
computador electrnico como el siguiente hito notable en esta historia. La creacin de las vlvulas de vaco marca el inicio de la primera generacin de los
computadores actuales.

Editorial UOC

67

Arquitectura de los sistemas informticos

El primer computador que contiene ya elementos electromecnicos es el


MARK1, diseado en 1944 en la Universidad de Harvard. El equipo era impresionante, meda 16 metros de longitud por 2,5 metros de altura, contena
800.000 piezas y ms de 800 kilmetros de cableado y pesaba 5 toneladas. Haca
sumas de hasta 23 dgitos en medio segundo, multiplicaciones en 3 segundos y
operaciones logartmicas en poco ms de un minuto. Todo un sueo hecho realidad.
MARK1: El primer computador electromecnico

El estmulo para construir los primeros computadores electrnicos fue la


Segunda Guerra Mundial. En aquella poca se necesitaban mquinas que fueran
capaces de descifrar mensajes en clave de los enemigos, as como calcular hasta
dnde podran llegar las piezas de artillera. El ENIAC (Electronic Numerical
Integrator And Computer), que se empez a construir en 1943 y se acab en 1946
en la Universidad de Pensilvania, ya se considera un computador totalmente
electrnico. Pesaba 30 toneladas, ocupaba un espacio de 450 m2, contena
18.000 vlvulas y consuma una gran cantidad de electricidad. La programacin
se haca manualmente a travs de 3 tableros con ms de 6.000 interruptores. Los
datos se representaban en decimal. Introducir un programa era muy costoso y

Editorial UOC

68

Escaneando la Informtica

se podan necesitar das o semanas. Como curiosidad tristemente clebre, hay


que aadir que uno de los primeros programas que funcionaron en el ENIAC
estaba relacionado con el diseo de la bomba de hidrgeno.
El siguiente paso fue el EDVAC en 1947, diseado por J. P. Eckert y J. W.
Mauchly a los que, posteriormente, se aadi John von Neumann. Esta mquina constituye el primer computador que incorpora el concepto de almacenaje
de la informacin. Tanto los datos como los programas se representaban en
binario. La posibilidad de poder guardar los programas dio exibilidad a los
computadores, que podran ser utilizados para ejecutar diferentes aplicaciones
cargando el programa adecuado en cada caso. De hecho, los computadores
actuales siguen la misma arquitectura iniciada con este computador, si bien, evidentemente, con muchas optimizaciones y mejoras. Por este motivo utilizamos
la denominacin de arquitectura Von Neumann para referirnos a la forma en
que est organizado internamiento un computador actual.
Para acabar esta pequea introduccin a la evolucin histrica haremos un
breve repaso de los acontecimientos que marcan el inicio de las cuatro generaciones de computadores hasta llegar a la actualidad. La primera (1946-1955),
mencionada anteriormente, est integrada por los computadores basados en la
vlvula de vaco y que se programan en lenguaje mquina o en lenguaje de
ensamblador. La segunda generacin (1955-1965) se inicia con la invencin del
transistor y se caracteriza por la disminucin del espacio fsico del hardware y
la utilizacin de lenguajes de programacin de alto nivel. La tercera generacin
(1965-1980) se basa en la integracin de los circuitos electrnicos mediante el
uso de los materiales semiconductores y la posibilidad de procesar informacin
en tiempo compartido, es decir, de ejecutar diferentes programas de manera
concurrente. La cuarta generacin (desde 1980) integra todo el procesador en
un solo chip y se caracteriza por el desarrollo de las primeras redes de computadores.6

6. Si tenis inters en conocer un poco ms a fondo estos aspectos de la historia de los computadores, podis consultar la pgina web http://www.thocp.net. Encontraris un montn de ancdotas
que complementarn vuestros conocimientos.

Editorial UOC

69

Arquitectura de los sistemas informticos

6. Salidas profesionales

Los sistemas informticos estn presentes en todos los sectores de la actividad econmica y, por lo tanto, hay muchos campos laborales que los requieren.
Las salidas profesionales en el campo del software se abordan en el captulo
sobre programacin de esta misma obra. Hay que destacar que la tarea de programador se tiene que entender tanto en el indiscutible contexto del desarrollo
de aplicaciones (web, distribuidas), como en el contexto del desarrollo de software de sistemas (sistemas operativos, controladores de dispositivos...) o de aplicaciones de uso transversal (paquetes omticos, navegadores, gestores de
correo...). En este sentido la implantacin de soluciones basadas en software
libre ha hecho realidad la demanda laboral en estos contextos tradicionalmente reservados a grandes corporaciones y a otros entornos geogrcos.
Con respecto al hardware, cada vez hay ms empresas instaladas en nuestro
territorio dedicadas a la investigacin en nuevas tecnologas que permiten desarrollar arquitecturas ms potentes y con menos consumo. Las salidas como
investigador en laboratorios de investigacin han pasado de ser una utopa a una
realidad hoy da. Tambin en el campo del hardware encontramos a los tcnicos
en integracin de sistemas, con tareas de diseo del sistema de una organizacin,
incluidas la conguracin y la instalacin de los sistemas operativos y de las
redes necesarias.

Editorial UOC

253

Bibliografa

Bibliografa

Captulo II. Arquitectura de los sistemas informticos


Cada uno de los siguientes libros sirve para profundizar en los temas de
arquitectura de computadores, de sistemas distribuidos y de redes, respectivamente. No olvidis tampoco consultar la informacin a la propia Internet, por
ejemplo a travs de wikipedia.
Stallings, W. (2006) Organizacin y arquitectura de computadores (7 ed.)
PrenticeHall.
Coulouris, G.; Dollimore, J.; Kindberg, T. (2001) Sistemas distribuidos.
Conceptos y diseo (3 ed.) Addison-Wesley.
Kurose, J. F.; Ross, K. W. (2003) Computer Networking: A Top-Down Approach
Featuring the Internet. Addison-Wesley.
Wikipedia http://www.wikipedia.org.

6LOHKDJXVWDGRHVWHFDStWXORSXHGHDGTXLULUHOUHVWRGHODREUD
HQODVSODWDIRUPDVKDELWXDOHV JRRJOH3OD\&DVDGHO/LEUR&DVDOLQL
/LEHUGUDFH/LEUR'DZVRQHUDHQXQIXWXURSUy[LPR$PD]RQHWF

Вам также может понравиться