PRINCIPIOS DE
COMPUTACION
Mario Daniel Aibarracín Ingeniero en Electrónica Universidad Tecnológica Nacional Profesor Titular de Principios de Computación Universidad Argentina Argen tina John F. Kennedy
A Patricia, Patricia, Roren Ro renda da y Nico Ni colás lás con todo mi amor.
Principos de Computación M arte D « n i*I Afc Afc»f »fT»c T»cl< l
____ ______ ____ __
Es prppiedsd - Oueds hecho e) depósito que marra la ley, IS B N :9 8 7 -4 3 -1 1 9 5 -í
E d itor M ario Daniel Albarradn Albarradn N in g u n ap a rta< M to n od e e s telib rop u e d eicr fo to c o p a d aore p ro d u c id ap o rc u a lq u ie rm e d io , s inasxprsüsu to rta dó nd e !a u to r.
Diserto de lapa: lapa: Claudio G. Albarra Alb arradn dn Imp reso en Argenti Argentina na
CONTENIDO Prólogo ....................... .......................... ........... ....................... ........................ ............ I 3 ................................... ........................ ................ .... ... Capítulo i. Conceptos fundamentales ............ ...... .......... ........ ................ ¡S i.
1.2 1.3
introducción........... ............ ...................... ................................... ......................... ........................ ............ ! S El H ard ar d w are ar e ......................... ..................................... ........................ ................. ..... — ...... ................20 El Softw So ftw are.................. ar e.............................. ......................... ......................... ........................ ......................... ................... ...... 22 Cuestionario................................................_...... ............ .... ..........25 .
.
.
C a p ítu ít u lo II. I I. Evolución Evolución históri histórica ca de las computadoras com putadoras............ ....................... ....................... ............ 27 2,! 2.2 2.3 2.4 2.4
Hechos Hechos y pers person onaj ajes es históricos histór icos........... ....................... ......................... ......................... .................... ........ 27 Evolución Evolución de la electrónica............. electrónica. ........................ ........................ ....................... ....................... ................44 ....44 Generaciones de computadoras................ computadoras.... ........................ ........................ ........................ .............. 46 Clasificación de las las computadoras actuales actu ales........................ .................................... ............... .. 48 .......... 52 Cuestionario ....... ...........................— ..... — ------- _— ..........5
.................................. .......... 53 C a p ítu ít u lo ¡H. Representación Representación de la informa informaci ción ón ...... ........................ .
3.1 3.2 3.3 3.4 3.5 3,5,1 3.5.2 3.5.3 3.5.4 3.6 3.7 3.7 3.8 3.8
.
Introducción ........ ......................................... ...... Los sistemas de numeración y su evolución ............... El sistema decimal.................... ................... Teorema fundamental de la numeración ..................... El sistema binario ......................................................
53 .... ............... 54 .................... 56 ............ .................... .............. 57 .................... .................... 58 ................... 59 ................... 60 Multiplicación binaria ......................... ..................................... .............. .. ........ ......... ;......... 6¡ División binaria ... .......... ......................... .................................... ................... ........................... 61 El sistema octal ------- ----------------------- ................... 62 E! sistema hexadecimal — ..................................... ____________ 62 ................... 64 Conversiones entre los sistemas de numeración ....
P R I N C I P I O S
.
.
.
....................
.
.....
.
....
----
O H
.
C O M P U T A C I O N
|
CO NTENIDO
_________________________________________________________ _
_
3.8. ¡ Conversión decimal-binario .............................................................. 64 3.8.2 3.8.3
Conversión binario-decimal.............................................................. 67 Conversión decimai-octal............................ .....................................68 3.8.4 Conversión octal-decimai................ ........... ........................... 69 3.8.5 Conversión decimal-hexadecimal...................................................... 70 3.8.6 Conversión hexadecimai-decimal.................. ......................... ....... 71 3.8.7 Conversión hexadecimal-binario .......................... ... .................... 72 3.8.8 Conversión binario-hexadecimal ..................... .................... ......... 73 3.8.9 Conversión octal-binario.................................................................. 74 3.8.10 Conversión binario-octal...................................................................75 3.8.11 Conversión octal-hexadecimal...................................... ................... 76 3.8.12 Conversión hexadecimai-octa!.................:...... .......... :................. 76 3.9 Representación de números enteros ................................................. 76 3.9.1 Módulo / “’^no.......................... ...'.................................................77 3.9.2 Complemento a I ... ......... ............ ......... ........ ....... ................... 78 3.9.3 Complemento a 2 ....................... ................................i................... 79 .
.......
.
.
.
.
.
.
.
.
3.9.4 3.9.5 3.9.6 3.10 3.11
.
.
.
.
.
Exceso a 2”"1...................................................................................... 81 Suma en complemento a I ............................. ......................... ..... 82 Suma en complemento a 2 ................. .............................................. 83 Representación en punto flotante......................................................85 Representación interna de datos; codificación alfanumérica............................................. ................ 87 Cuestionario......................................... ........................................... 90 .
.
.
.
Capítu lo IV. Arquitectura de la computadora ........ ............ ................... 9 1 .
.
............... ;............. 91 4.1 Introducción......... .......................... ....... 4.2 La memoria...................................................................... ............92 ..... .......... 4 21 Palabra de memoria :........ ................... 95 4.2.2 Componentes de la memoria principal.............................................. 96 4.3 La unidad cantral de proceso ................................. .............. ........... 97 4.3.1 Unidad de control................................................. ..... :.................. 99 4.3.2 Unidad aritmético lógica.................................................................. 100 4.5 El bus del sistema....... : ............................ ....... ...................... 102 .
.... .
.
.
.
.
....
.
.
.
C u e s t i o n a r i o ............... ........... .............................. ........... .
.
.
103
Capítulo V. Ejecución de instrucciones ................................. ....... ......... 105 .
.
.
5.1 Las instrucciones ..... ......................... ...........................................105 5.1.1 Instrucciones de tres operando* « ............... ....:........ ............ .... Z 105 5.1.2 Instrucciones de dos operandos .................. ......................... .'. 106 5.1.3 Instrucciones de un op'erando ...................1.............. .............. ! 06 ..
.
.
.
.....
.....
8
P R »N C I
P . I ¡O S • D E
C OM' P
UT A
C I O N
CONTENIDO- 1
5.1.4 ; 5.2 5.3 5.3 I 5.3.2 5.4 5.4.1 5.4.2 5.5
instrucciones sin operandos ............... ............... ;.......... ................. ¡|07 ¡Modos de direccionamiento ....... ..... ...... .......... ........................ ;;I08 Ciclo de instrucción ......... ........ ...... ................. ..................... ..... 109 Fase de búsqueda de una instrucción I 10 .... Fase de ejecución de una instrucción...........................................111 Carga y almacenamiento de datos. ...................... ................ .......... Carga del acumulador.................................................................114 Almacenamiento en memoria........... ............. . ........... .......... 115 Instrucciones de ruptura de secuencia ......................... 115 5.6 Instrucciones de entrada /salida...... ........................................... 115 Cuestionario .................. ......... .......... ..... ............................. I /6 .
.
.
.
.
.
.
.
.....
.
.
.....
.
..... ........
.
.
.
.
.
.
.
Cap ítulo V I. Memorias auxiliares ..................... .... ..............................1.17 .
.
..
6.1 Introducción....................... ............... ........ ............... .
.
.
......
.......... 117
.
6.2 6.2.1 6.2.2 6.2.3
Medios magnéticos..................................................................... 118 Soportes magnéticos .................... ......................................... 118 Grabación y lectura de medios magnéticos...................... ....... .......118 Cinta magnética......................................................................... 120
6.2.4 6.2.5
Disco magnético........................................................................ 120 Disco* rígidos.................................... ...... ....................... ......... , 122 Disquete...................... ......... .............................. ................... 125 Métodos de grabación magnética en discos ......................... 127 Disco óptico ........... .............................................. .... ................ .128 Disco compacto CD ROM ....... .... ......................... ........ .128 Discos de video digital-DVD ROM....... .............................. ......... ..129 Disco magnético óptico .......... ......¡.í ;,......... ................. ..... v 129 Cuestionario........ .... ............ ....... .................. .................. i 30
6.2.6 6.2.8 6.3 6.3.1 6.3.2 6.3.3
.
.
.
.
.
....
... .
7.5.2 7.5.3
.
.
.
.
.... .
.
.
....... .
.
CapítuloV!l..Unidades de entrada-salida
7,5.!
.
.
.
.
7.1 7.2 7.2.1 7.2.2 7.2.3 •7.3 7.4 , 7.5
.
.
....
.................
....
.; 131 C.á
: ; . ;• >Vf j !>. Introducción ........... .................................... ...... 131 El Monitor....,............... ......................................... ...... ;...... 132 Las pantallas de T R C ...................................................................134 Pantalla plana FPD ..... ....... ................... ........ .... .... ......... l 35 Controlador de video................................................................. 136 El Teclado .......... ...................... .............. ,...... ............................,138 El Mouse , ........ ............ ........ ......................... ...... .............. 1.38 Im p re s o ra s ................................................................. 139 Impresora térmica... . .. . . . . . . . . . . . ............. ............................ ¿39 Impresora de chorro de t i n t a .......:. j;40 impresora láser....... ................... ........................... ....... .%..... 141 ..............................................
.
.
.
...... .
.
.
.
.
.
.
.
....
.
.
...
P R I N C » P I
....
.
O S .
D Ej
C O M P U T A C I
.....
O N
rf)
114
|
CONTENIDO ____________________ __ _______________________________________________
7.6 Scanner...................... -...............................................................142 7.7 Plotter ................................... .......... -........................................142 7.8 Robots..................................................................... ......................143 Cuestionario. ........................... ................................................ M4 .
.
...
Cap ítulo VSI1. Sistemas operativo* ............. ............................................... 145 .
8.1
Introducción ............................. -................................................ 145
8.2 Evolución de los sistemas operativos............................................... 147 8.2.1 Lenguaje de control de trabajos....................................................... 148 8.2.2 Procesos off line y on line ............................................................... i 50 8.3 Multiprogramación ...................... ..................................................i 52 8.4 Sistemas distribuidos ....................................................................... 153 8.5 Multiprocesamiento....................... ................................................ 155 8.6 Sistemas operativos monousuarios Cuestionario.......................................’......................................... IS8 .
.
Capítulo IX . La programación de las computadoras................................... i 59 9.1 9.2 9.2.1 9.2.2 9.2.3 9.2.4
Introducción................................................................................ 159 Ciclo de vida del software............................................................... i 60 Etapas de análisis y diseño de programas..........................................160 Etapas de la implantación y explotación......... ........... -................ 162 Errores ............................ ...............................................................162 Documentación de ios programas.................................................... 163 9.3 Estructura de un programa............... ....... — ............................. 164 9.4 Lenguajes de programación..............................................................166 9.5 Clasificación de los lenguajes de programación................................. 167 .
.
.
9.5.1 Lenguaje de máquina....................................................................... 169 9.5.2 Lenguaje ensamblador.............................. ............................ — 169 .
9.5.3 Lenguajes de alto nivel..................................................................... 169 9.6 Traductores.............. ................................................................... 174 Cuestionario............................... ................................................. i 75 .
Cap ítulo X . Teleinformática................................................................... 177 10.1 10.2 10.3 ! 0.4 10.5 10.6 10
Introducción............ ...................................................................... 177 Componentes básicos.................................................................. ..178 Modos de transmisión..................................................................... 183 Medios de transmisión.................................................................... 186 Protocolos de comunicaciones..... ............. ..................................... i 90 Redes de área lo cal................... .................................................... 192 .
P R I N C I P I O S
.
O E
C O M P U T A C I O N
i
_____________ " ___________________________________________ ~ _____________ ~
! 0.6.1 10.6.2 i 0.7 10.8 10.8.1
CON TEN IDO
|
Topologías de re d .......................................................... ................ 192 Métodos de acceso en redes locales.......................................... 195 Red digital de servicios integrados ..„................ ............................ 196 Intern et.......................................................................................... 197 Servicios de Internet............................................... ....................... 199 Cuestionario..... ...................... ...... .................................... ......200 .
...
.
.
.
.
Capítulo X !. Inteligencia artificial.................................. ...... ........ ........ 201 .
.
.
.
M I Introducción.................................................................................... 201 i 1.2 La prueba de Turing......................................................................... 203 11.3 Razonamiento.................................. .............................................. 204 11.4 Una aplicación clásica: ajedrez..........................................................206 i 1.5 Arboles de búsqueda.......................................................................208 11.6 Redes neuronales artificiales................................................. ....... 212 11.6.1 Principio de funcionamiento............................................................ 212 11.6.2 Aplicación: reconocimiento de caracteres........................................214 11.7 Sistemas expertos............................................................................216 11.8 Lenguajes naturales......................................................................... 219 Cuestionario..................................... .............................................. 221 C apítu lo X II. Teoría de la computación.....................................................223 12.1
Introducción.......................................................... ..................... ...223 .
12.2 La máquina de Turing........................................................................224 12.3 Ejemplo de aplicación ...................................... ...............................226 i 2.4 Funciones computables....................................................................229 .............................. ............................................ 231 Cuestionario .
...... .
.
Bibliografía.......... :.......... ... ............... .... ... ................ .... .... ..... ... ....... 233/235
P R I N C I P I O S
D E
C O M P U T A C I O N
11
PROLOGO mmmaMmmmmmmmammBmmmmmmmmmmfímnmmmtmemmxzt i ir.■ iommi.enmamaamanmtmmmmgms^BtExmeaBsmmi
Ei objetivo principal de este libro es introducir al estudiante que está haciendo su primer acercamiento a las ciencias de !a computación,a las principios fundamen tales que conforman las distintas áreas del estudio de los sistemas de computación. El texto refleja también los cambios tecnológicos que se han producido a pasos agigantados, y que tienen influencia en ei presente y en el desarrollo futuro de las máquinas Se ha puesto especial preocupación en el aspecto pedagógico en cuanto al desa rrollo y encadenamiento de ios distintos temas tratados en la obra producto de la experiencia acumulada en el dictado de la materia. Sólo el proceso de construcción del conocimiento por parte del estudiante, permitirá asentar los conceptos pre sentados, que deberán complementarse con la resolución de los cuestionarios al final de cada capitulo y por las imprescindibles tareas de investigación, vinculadas a estos conceptos. Los contenidos del libro se distribuyen en doce capítulos de la siguiente manera: el primero introduce al lector en los principios generales de las ciencias dv* la com putación, por medio de la presentación de los conceptos y definiciones generales, esquematizando sus elementos constitutivos, así como el eos consiste en una rese ña histórica de los hechos y personajes que han sido precursores del estat'O actual de desarrollo de las computadoras. El capitulo 3 trata la relación entre los distintos sistemas de numeración y como ' es la representación interna de la información en una computadora, a partir de los distintos sistemas de codificación utilizados. El capitulo 4 abarca el estudio de la arquitectura interna de las computadoras y sus principios de funcionamiento. El 5 explica la forma en que se ejecutan las ins trucciones de un programa a nivel de la máquina. Dentro del capítulo 6 se presentan los distintos tipos de memorias auxiliares y la forma an que cada una de ellas almacena la información. El capítulo 7 trata el segundo, tipo de dispositivos periféricos: las. unidades de entrada/salida. _________ P
R
¡ N
C
I
P
l' o ' s "
D
E ri
C
O - M ' - ' P * Ú ! -i
Á d i Ó N
¡j
r WtOLOGO__________________________________________________ ~ I El capítulo 8 presenta la evolución histórica y la clasificación actual, de los distin tos tipos de sistemas operativos. Q capítulo 9 desarrolla el concepto de programación, con un estudio de esta disciplina y de ios lenguajes más ampliamente utilizados. En el capítulo 10 se exponen brevemente ios aspectos que relacionan las teleco municaciones y el proceso de datos: medios, equipos, protocolos utilizados, redes de área local e Internet. En el capítulo 11 se realiza una introducción a los principios de inteligencia artificial y su aplicación en redes neuronales y sistemas expertos. B capítulo 12 trata sobre los fundamentos de la Teoría de la computación y ei concepto de computabilidad a partir del análisis de una máquina de Turíng. Agradezco la colaboración recibida por parte de la Universidad Argentina John F. Kennedy, que me abrió sus aulas para seguir creciendo como docente y poder escribir esta obra. En particular a mi hermano Claudio que ha colaborado en el armado y la díagramacion.A la profesora Gloria Crippa que realizó la revisión del texto. Al Licenciado Jorge Bonapace por el apoyo brindado permanentemente. Por último quiero agradecer especialmente a quienes han sido alguna vez alumnos míos y de los que he aprendido tanto.
EÍ a ut o r
D E
C O M P U T A C I O N
f
CAPITULO I _______________ é 0 £ —
Conceptos fundamentales l.l INTRODUCCIÓN A lo largo de la historia el hombre ha necestado transmitir y tratar información de manera continua.Aún están en el recuerdo las señales de humo y los destellos con espejos que fueron utilizados hace ya bastantes años, y más recientemente los mensajes transmitidos a través de cables utilizando el código Morse o la propia voz por medio del teléfono. La humanidad no ha parado de crear máquinas y métodos para procesar la información. Con este fin surge la Informática, como una ciencia encargada del estudio y desarrollo de estas máquinas y métodos. La Informática nace de la idea de ayudar al hombre en aquellos trabajos rutina rios y repetitivos, generalmente de cálculo y de gestión, donde es frecuente la repe tición de tareas. La idea es que una máquina puede realizarlos mejor, aunque siem pre bajo ia supervisión del hombre. El término Informática se creó en Francia en el año ! 962 bajo la denominación In f o r m a t iq u e y procede de la contracción de las palabras Information autoMatíque. En los países anglosajones se le conoce con el nombre de C o m p u t e r Science.
La Informática se puede definir de muchas formas, y de hecho aparece en diver sas publicaciones con una gran variedad de definiciones, si bien todas ellas giran en torno a la misma idea. Nosotros vamos a utilizar la definición más extendida:
Informática es la ciencia que estudia el tratamiento racional de la
información a través de medios automáticos.
P R I N C I P I O S
D E
C O M P U T A C I O N
15
INTRODUCCION
Se dice que el medio es automático por ser máquinas las que realizan los traba jos 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. Dentro de la ciencia de la Informática se encuentran incluidas una serie de fun ciones de las que mencionamos a continuación las más importantes;';,'- \ • ’ J L *—^ >,
■El desarrollo de nuevas máquinas. •El desarrollo de de nuevos métodos de trabajo. •La construcción} de aplicaciones ¡informáticas. ; • •Mejorar los métodos y aplicaciones existentes.
—
- %— t
'*
Desde la aparición de las primeras máquinas de cálculo, no se ha parado la investigación para obtener máquinas cada* vez mas potentes, rápidas, péqueñas y baratas. Por otra parte, en paralelo con el desarrollo de estas máquinas, tampoco se detiene la investigación para conseguir huevos métodos de trabajo, novedosas formas'de explotación de las máquirias é innovadores’modos de compartir los recur La función de creación de aplicaciones informáticas se refiere al desarrollo de programas para qué’ las máquinas realicerPél trabajo para el que han sido creadas. ' 'Antes'de empezar a Hablar "dé los elémentór y detáites relacionados con el mundo dé la informática,' conviené'definir' stfs componentes mas importantes;-: 7 Desde el punto de vista informático, el Elementó físico utilizado para el trata miento de la información es la com putadora^ qué'püedé’ ser definido dé la sigúienté manera’(figuraT:F):;rs ',s - n-3 ''O iJ s .- m c í n * . i . n z ¿ ¡ r .q
-■Xt-c.rmZ:
'■'d:T.or.
a b n o í ís s - r j n o ; s! 3 b
•eo.,'-
•• j:, 9?cíib3 v; os ¿sinciá?c!sne
■/ -u ■
-C‘ "i
, v o
~iw?c*'v
.•;ovib ne Com putadora:, es una,i7iáquinarCO/npuesta de elementos físicos, , ••o en su mayoría de origep electrónico, capaz,de realizar una gran varié-;,^ ; dad detrabajos a gran velocidad y con gran precisión, siempre que.se le den las instrucciones adecuadas. Él conjunto de ordenado de instrucciones que se dan a una computadora para realizar un procesó determinado 'W'denoHiína'programa? míeñtras‘,í]'ue el conjun to de uno o varios programas más lá'documéntaclón córrés’pbndienté para realizar un determinado-trabajo se denomina aplicación inform ática (Figura 4.2);----
INTRODUCCION
Figura i.l Computadora.
Figura 1.2 Aplicación informática. P R I N C I P I O S
D E
C O M P U T A C I O N
17
|
INTRODUCCION
Hay distintas maneras de utilizar el término sistema. A menudo usamos esta palabra para expresarnos, como por ejemplo cuando nos referimos al “ sistema de evaluación en una materia” . Para los usuarios de computadoras un sistema es un conjunto de partes integradas con un objetivo común a cumplir. Podemos distinguir en esta definición tres características: 1.- Conjunto de partes: un sistema tiene más de un elemento. El volante es un elemento del sistema denominado automóvil. 2.- Partes integradas: debe existir una relación lógica entre las partes de un sistema. El freno y el acelerador trabajan integradamente en un automóvil. 3.- Lograr un objetivo: un sistema se diseña para alcanzar uno o más objetivos. Como una computadora es un conjunto de partes integradas que tiene el obje tivo común de ejecutar las instrucciones de un programa, esta dentro de la definición de sistema. El termino sistem a in form ático se utiliza para nombrar al conjunto de ele mentos necesarios (computadora, terminales, impresores, etc.) para la realización y explotación de aplicaciones informáticas (Figura 1.3).
Figura i.3 Sistema informático. Podemos decir que la computadora es una calculadora rápida que además pue de escoger, copiar, mover, comparar y realizar otras operaciones no aritméticas, utilizando los símbolos alfabéticos, numéricos y especiales.
I
INTR ODU CCIO N 1
La computadora utiliza estos símbolos siguiendo un conjunto ordenado de ins trucciones denominado programa. Al realizar la computadora labores programadas, las personas pueden destinar más tiempo a tareas creativas. De esta manera evita a los seres humanos las tareas rutinarias, permitiendo utilizar su tiempo de manera más efectiva. Es la computadora un sistema electrónico rápido que manipula datos, a los que procesa para obtener resultados que constituyen la información requerida. Para realizar, por ejemplo, operaciones básicas de suma o resta, el tiempo que necesita la computadora varía de unos cuantos microsegundos en las máquinas pequeñas hasta cerca de cien nanosegundos en las grandes. Esto significa que puede llegar a realizar millones de operaciones de suma y resta por segundo. Los datos a utilizar en las operaciones son entidades, la materia prima de la información. Los datos se representan por medio de símbolos. La información es el conocimiento producido como resultado del procesamien to de los datos. La inform ación es el elemento que hay que tratar y procesar cuando en una computadora ejecutamos un programa,y se define como todo aquello que permite adquirir cualquier tipo de conocimiento; por 'o tant^ eyisrrá información cuando se da a conocer algo que se desconoce. Los datos que maneja un programa son, en un principio, ¡nformaciones,no ela boradas y una vez procesados (ordenados, sumados, comparados, etc.) constituyen lo que se denomina información útil o simplemente resultados. Al conjunto de operaciones que se realizan sobre una información se le deno mina trata m iento de la inform ación. Estas operaciones siguen una división ló gica que se representa en la figura 1.4 . Figura 1.4 Tratamiento de la información ........ " ■ ' ..... T— ...
Tratamiento de la información
-
J
Entrada
— Recopilación de datos — Depuración de datos — Almacenamiento de datos
Proceso
— Aritmético — Lógico
Salida
P R I N C I P I O S
D E
— Obtención de resultados — Distribución de resultados C O M P U T A C I O N
1?
INTRODUCCION ____________ ~
___________ ______________
~~j
En términos generales se denomina entrada ai conjunto de operaciones cuya misión es tomar los datos dei exterior y enviarlos a la computadora: para ello en ocasiones es necesario realizar operaciones de depuración o va’idación de los mis mos. Estos datos deben quedar en la memoria de la computadora para su posterior tratamiento. Al conjunto de operaciones que se realizan sobre los datos de entrada para obtener los resultados se lo llama proceso o algoritm o, y consiste generalmente en una combinación adecuada de operaciones de origen aritmético y de compara ciones de tipo I ógico. Por ultimo, se denomina salida al conjunto de operaciones que proporcionan los resultados de un proceso a! usuario. Se engloban en la salida también aquellas operaciones que dan forma a ios resultados y ¡os distribuyen adecuadamente. El algoritmo necesario para la resolución de un problema queda definido cuan do una aplicación informática es analizada, de tal forma que posteriormente cada proceso se codifica en un lenguaje que sea reconocible por la máquina (directa o indirectamente), y tras una preparación final obtendremos una solución ejecutable por ¡a computadora. La automatización de un problema para que pueda ser desa rrollado por una computadora se representa en el Esquema 1.5. Figura 1.5 A u t o m a t iz a c ió n d e un p ro b le m a
i.2 EL HARDWARE El hardw are es el elemento fisico de un sistema informático, es decir, todos los materiales que lo componen, como la propia computadora, los dispositivos exter nos, los cables, los soportes de la información y en definitiva todos aquellos ele mentos que tienen entidad ffsica. 20
P R I N C I P I O S
D E
C O M P U T A C I O N
[ __________________________________________________ ___________________ INTRODUCCIÓN 1
La figura 1.6 representa los componentes elementales del hardware. Unidad Central de Proceso (CPU, Central Proccss Unit). Es el elemento prin cipal o centro neurálgico de una computadora y su misión consiste en controlar y realizar todas las operaciones llevadas a cabo en la computadora. Esta compuesta por: - Unidad de Control (CU, Control Unit). Es la parte encargada de gobernar al resto de las unidades, además de interpretar y ejecutar las instrucciones controlan do su secuencia. -Un idad Aritme tico- logica (ALU .Añthmetic-Logical Unit). Es la parte encarga da de realizar todas las operaciones elementales de tipo aritmético y de tipo lógico. Figura 1.6 El hardware
P R I N C I P I O S
D E
C O M P U T A C I O N
21
1
IN TR O DU CCIO N ________________________________________________________________________¡
Memoria Principal (main memory): es el elemento encargado de almacenar los programas a ejecutar, los datos a utilizar y los resultados obtenidos. Es impor tante decir aqui que para que un programa pueda ser ejecutado en una computado ra tiene que estar en memoria principal, asi como los datos que necesiten ser procesados en ese momento. Unidades de Entrada. También llamados periféricos de entrada, son los dispositivos encargados de introducir los datos y los programas desde el exterior a la memoria para su utilización. Estos dispositivos, además de recibir la información dei exterior, la preparan para que ia máquina pueda entenderla de forma correcta. Un ejemplo lo constituye el teclado. M em oria Auxiliar. Son ¡os dispositivos de almacenamiento masivo de infor mación que se utilizan para guardar datos y programas para su posterior utiliza ción. La característica principal de los soportes que manejan estos dispositivos es la de retener la información a lo largo del tiempo mientras se desee, recuperándola cuando sea requerida y sin que se pierda, aunque eí dispositivo quede desconecta do de la red eléctrica. También se denomina m em oria secundaria. Ejemplos: disquetes, discos duros, discos ópticos, cintas, etc. Unidades de Salida. Son aquellos dispositivos cuya misión es recoger y pro porcionar al exterior los resultados de ¡os procesos que se realicen en ia compu tadora.También se denominan pe riféricos de salida. Ejemplos: monitor, impre sora, etc. »
1.3 EL SOFTWARE El software es el conjunto de elementos lógicos necesarios para que se pue dan realizar las tareas encomendadas a la computadora. Se puede definir de la siguiente forma:
El software es la parte ¡ógica que dota a la computadora de capaci dad para realizar cualquier tipo de trabajos.
Tiene su origen en ideas y procesos desarrollados por e¡ usuario, plasmadas sobre un soporte determinado del hardware y bajo cuya dirección trabaja siempre la computadora. 22
p
r
i
n
c
i
p
i
o
s
o
c
c o r . ' ! :
u
t
a
c
i o
m
i______________________________________________________________________ INTR OD UC CION
En ios primeros años de la existencia de las computadoras, tuvo mayor peso específico el hardware que el software, puesto que se disponía de grandes compu tadoras, caras y complejas, que desarrollaban el trabajo definido por unos pocos y pequeños programas. En la actualidad, en un sistema informático tiene mayor peso específico el software que el hardware por ir adquiriendo día a día, el primero, una mayor importancia en todos los aspectos (costo, mantenimiento, etc.). El software, para estar presente en una computadora, debe almacenarse en un soporte físico. Estos soportes son los siguientes:
- La memoria principal. -Las memorias auxiliares. El software puede clasificarse como aparece representado en la figura 1.7.
Figura 1.7 Clasificación del software.
El softw are del sistem a es el conjunto de programas que la computado ra necesita para tener ¡a capacidad de trabajar. Estos programas en su conjunto configuran lo que se denomina el sistem a operativo (OS, Operating System). Una definición muy general de sistema operativo es la siguiente:
El sistema operativo es el soporte lógico que controla el funciona miento de la computadora ocultando los detalles del hardware y ha ciendo sencillo el uso de la misma.
p r i n c i p i o s
n ¡s
c o
m
p
u ?
a
c : o n
23
1
f~ INTRODUCCiON
_________________________ __ ___ _
_
La figura 1.8 representa ios componentes de un sistema operativo.
Figura !.8 Componentes de un sistema operativo.
jf Programas de control
Gestión de intormacíon Gestión de memoria Gestión de entrada y salida Gestión del procesador Gestión de trabajos
Sistema operativo
b
Programas utilitarios
El conjunto de programas de un sistema operativo cuya misión es controlar al equipo físico en todos sus aspectos.se denomina program as de control. Existen igualmente otros programas cuya misión es la de ayudar al usuario en algunos trabajos típicos, como el dar formato a disquetes, manejo de archivos, etc.; estos programas se denominan utilitarios. ES softw are de aplicación es el conjunto de programas que ha sido diseñado para que la computadora pueda desarrollar un trabajo. Pertenecen a este determi nado grupo los denominados paquetes de software, que consisten en un con junto de programas que nos permiten editar textos, guardar datos, sacar informes, hacer cálculos, comunicarnos con otros usuarios y algunos trabajos típicos en el uso de computadoras .Por otra parte,también pertenecen a este grupo los progra mas y aplicaciones creados para desarrollar un trabajo o función específica, entre ios que podemos citar una aplicación de liquidación de sueldos o un programa de facturación. Es muy útil representar los elementos que pertenecen al software por medio de un gráfico de círculos concéntricos envolviendo a los elementos pertenecientes al hardware, de tal forma que la máquina física que realmente estamos utilizando (hardware) se transforma en una máquina virtual (hardware+software) que es la 24
P R I N C I P I O S
D E
C O M P U T A C I O N
í
_______________________________ INTRODUCCION ____________ _ ______________ _ ____ _
j
que atiende las peticiones de cada usuario. Este gráfico de círculos concéntricos es el representado en la Figura 1.9.
Figura 1.9 máquina virtual .
C 3 u e s ile \ \ M r io
1. 2. 3. 4. 5. 6. 7. '
Comente brevemente los orígenes del término Informática. Defina con sus propias palabras la ciencia de la Informática. ¿Qué es una computadora?. ¿Qué diferencia hay entre un programa y una aplicación informática l . ¿Cuál es el significado del término sistema ? Represente un esquema de los componentes del hardware. Represente un esquema de los elementos que componen el software.
P R I N C I P I O S
D E
C O M P U T A C I O N
25
CAPITULO II
Evolución histórica de las computadoras 2.! HECHOS Y PERSONAJES HISTÓRICOS \
La informática es una ciencia que se ha tratado como tal desde hace pocos años. Como hemos comentado anteriormente, a ella se asocian una serie de hechos y descubrimientos anteriores que han servido para que hoy sea una de las denc¡?s a la que el hombre esta dedicando mayor atención e importancia. Desde varios siglos antes de nuestra era no ha parado la investigación dei hom bre en la busqueda de herramientas y métodos que nos ayuden en las tareas de cálculo y proceso de la información; por lo tanto, todos aquellos descubrimientos que poco a poco, a lo largo del tiempo, han llevado a! estado actual de la Informáti ca. tienen su parte correspondiente en el conjunto de elementos pertenecientes a la ciencia. Desde hace mucho tiempo el hombre ha tratado de liberarse de los trabajos manuales y repetitivos, generalmente de cálculo y proceso de la información; entre ellos están las operaciones de cálculo matemático y de redacción de informes. La palabra cálculo tiene sus orígenes en el término latino calculus, que significa piedra. Este término se utilizaba hace miles de años para denominar a unas peque ñas piedras que por medio de ranuras efectuadas en el suelo se usaban para contar. Esta especie de ábaco ha sido descubierto recientemente en excavaciones arqueo lógicas. A partir de este elemento de cálculo aparecieron en diversos lugares otros elementos similares denominados comunmente como marcadores de bolas o ábacos, término que proviene de la palabra fenicia abak. El más antiguo se remonta aproximadamente al año 3500 a.C.,y fue descubierto en el valle entre el Tigris y el Eufrates. Más tarde, hacia el año 2600 a.C., apareció el ábaco chino, que evolucionó rápidamente y se denominó finalmente Suan-Pan. De forma similar nació en Japón otro modelo de ábaco que se denominó Soroban (Figura 2.1). P R I N C I P I O S
D E
C O M P U T A C I O N
27
EVOLUCION HISTORICA DE LAS COMPUTADORAS
Figura 2,1 Abaco chino (Suan-Pan) y abacojapones (Soroban). El ábaco constituyó e! primer dispositivo manual de cálculo. Servía para repre sentar números en el sistema decimal y contar, permitiendo la realización de opera ciones aritméticas sencillas. Consta de un marco de madera dividido en dos partes; además, contiene una serie de varillas verticales que corresponden cada una a un dígito o cifra. En la parte inferior de cada varilla hay cinco discos denominados cuentas, que cuando están situados en reposo quedan desplazados hacia la parte de abajo. En su parte supe rior hay dos discos denominados quintas, que en situación de reposo quedan desplazados hacia arriba. Su funcionamiento se basa en contar unidades de tal forma que en cada unidad, al sumar uno.se desplaza un disco de su parte inferior hacia arriba; cuando los cinco discos están hacia arriba, aparece un estado inestable que hace que estos bajen haciendo esta misma operación con uno de sus discos de la parte superior; si ios dos discos de la parte superior se encuentran hacia abajo, se produce de nuevo un estado inestable en el que se suben estos dos discos, anadiendo una unidad en el dígito siguiente (varilla siguiente a la izquierda). Con este dispositivo se puede contar y calcular con un número de cifras que depende del número de varillas que posea. Supongamos un ábaco de i i varillas con el que podemos representar números enteros de hasta 12 dígitos decimales (hasta el número 159 999 999 999). El núme ro representado en el ábaco chino de la Figura 2.! es eM 10 345 678 900 (observese que en la única varilla en la que los dos discos de la parte de arriba pueden estar 28
P R I N C I P I O S
D E
C O M P U T A C I O N
r
EVOLUCION HISTORICA DE LAS COM PUTA DOR AS
hacia abajo es en ía de la izquierda); en el abaco japonés se encuentra representado el numero 126.
Por aquellos anos apareció un sistema numérico indoarábigo que se encuentra representado en la Figura 2.2, del que surgió ei sistema decimal. La utilización del abaco como instrumento de cálculo ha permanecido en Occi dente hasta el siglo XV7, en el que empezaron a inventarse otros dispositivos y herramientas de cálculo mas potentes que el ábaco. En los países orientales sigue utilizándose actualmente el ábaco, para muchas tareas sencillas, sin que se vea próximo su fin.
Figura 2.2 Sistema numérico indoarábigo. El matemático escocés joísn N apier (1550-1617), en un intento de simplificar las operaciones de multiplicación,división y exponenciación, inventó los logaritm os naturales o neperia nos a finales dei siglo XVI, construyendo en 1614 las prime ras tablas de los mismos. La facilidad de las operaciones a partir de los logaritmos, como es sabido, pro viene de la transformación de la multiplicación en una suma de los logaritmos de ios números a multiplicar,asi como ¡a transformación de ia división en una resta y la potenciación en un producto. El resultado que se obtiene al sumar, restar o multipli car los logaritmos de ios operandos nos proporciona el logaritmo dei resultado, con lo que para obtener éste será necesario utilizar las tablas correspondientes (búsqueda del antiiogaritmo). En consecuencia ideó un dispositivo basado en varillas cifradas que contenían números, y era capaz de multiplicar y dividir de forma automática.Tambien ideó un calculador con tarjetas que permitía multiplicar, recibiendo éstas el nombre de es P R I N C I P I O S
O E
C O M P U T A C I O N
29
|
j
EVO LUCION HISTO RICA DE LAS COMPU TA DOR AS
______________
|
tructu ras de N apier. Constituyó un dispositivo intermedio entre el ábaco y las
primeras calculadoras mecánicas. La Figura 2.3 nos muestra la configuración de estas estructuras.
Figura 2.3 John Napier y sus estructuras. Hacia el año 1623 el científico alemán W ilh e lm Schickard (1592-1635) ideó une. calculadora mecánica denominada reloj caicuiante, que funcionaba con rue das dentadas y era capaz de sumar y restar, pero no se pudo montar en aquella época, de tai forma que fue construida, según el diseño de su autor, a principios del siglo xx por ingenieros de IBM . Esta máquina, combinada con la de John Napier, permitía operaciones de multiplicación. Fue considerada como la primera máquina de calcular de origen mecánico. Algunos años después, en 1642, el matemático y filósofo francés Blalse Pascal ( 1623-1662) inventó la primera máquina automática de calcular completa a base de ruedas dentadas que simulaba e! funcionamiento de! ábaco. Esta máquina realizaba operaciones de suma y resta mostrando el resultado por una serie de ventanillas. En un principio se denominó pascalina, recibiendo posteriormente el nombre de m áquina aritm ética de Pascal. En la Figura 2.4 puede verse el aspecto exte rior de esta máquina. En 1650, Patridge, basándose en los descubrimientos de Napier, inventó la reg la de cálculo, pequeña regla deslizante sobre una base fija en la que figuraban diversas escalas para la realización de determinadas operaciones. Este dispositivo 30
P R I N C I P I O S
D E
C O M P U T A C I O N
¡
_______________________________ EVOLUCIO N HIST OR ICA DE LAS CO MP UT AD OR AS
i
de cálculo ha sido muy utilizado hasta los años setenta cuando las calculadoras electrónicas constituyeron su mejor sustituto. En la Figura 2.5 puede verse una regla de cálculo actual. Paralelamente a Pascal, en ! 666 el matemático inglés Samuel M oriand inventó otro aparato mecánico que realizaba operaciones de suma y resta: se denominó Máq uin a A ritm ética de Morian d y su funcionamiento y prestaciones se aseme jaban a los de la máquina de Pascal.
Figura 2.4 Blaise Pascal y su máquina aritmética.
Pocos años más tarde, en 1672, el filósofo y matemático alemán Go ttfrie d W ilh elm von Leibnitz ( 1646-1716) mejoró la máquina de Pascal construyendo su calculadora universal, capaz de sumar, restar, multiplicar, dividir y extraer raíces cuadradas, caracterizándose por hacer la multiplicación de forma directa, en vez de realizarla por sumas sucesivas, como la máquina de Pascal (Figura 2.6). Utilizando como modelo la calculadora universal de Leibnitz, el francés C harle sX avie rThom as (1785-1870) inventó una máquina que, además de fun cionar a la perfección, tuvo un gran éxito comercial. Esta máquina se denominó aritmómetro . P R I N C I P I O S
D E
C O M P U T A C I O N
31
|
EVOLU CION HISTORICA DE LAS COMPUTA DORAS
Figura 2.6 Gottfried W. von Leibnitz y su calculadora universal.
Figura 2.7 Joseph M.Jacquard y su telar. 32
P R I N C I P I O S
D E
C O M P U T A C I O N
EVOLUCION HISTORICA DE LAS COMPUTADORAS
En 1779 Mattieu Hahn diseñó y construyó una máquina de calcular capaz de realizar sumas, restas, multiplicaciones y divisiones. Ya en el siglo XIX, en el año 1805, el francés Joseph Marie jacquard (17521834), después de algunos intentos anteriores, construyó un telar automático que realizaba un control perfecto sobre las agujas tejedoras, utilizando tarjetas perfora das que contenían los datos para el control de las figuras y dibujos que había que tejer. Podemos considerar el telar de jacquard como la primera máquina mecá nica programada. La Figura2.7 muestra el telar y un autorretrato de Joseph M.Jacquard realizado por su propio dispositivo. El matemático inglés y profesor de la Universidad de Cambridge Charles Babbage (1792-1871) diseñó dos máquinas de calcular que rompían la línea gene ral de las máquinas de aquella época por su grado de complejidad.
Figura 2.8 Charles Babbage y su máquina de diferencias. P R I N C I P I O S
O ^
o o n / i o i i - r *
-i
"i
[
m l i i i > i i J i m « l f n W ^ H i t * »
• i K i l l H
E VO LU C IO N H IS TO R IC A DE LAS CO M PU TA D O R AS _____________________________________j
La primera de ellas, diseñada en 1822, fue la m áquina de diferencias, que se basaba en fundamentos mecánicos con ruedas dentadas; sus aplicaciones más im portantes fueron la resolución de funciones y la obtención de tablas de dichas funciones . Debido a las deficiencias tecnológicas de la época y también por el motivo de que a mitad de ia construcción Babbage ya estaba pensando en su se gunda máquina, esta primera no llegó a fabricarse. La Figura 2.8 nos muestra la máquina de diferencias que fue construida bastantes años después. Poco después, en 1833, Babbage diseñó su segunda máquina, denominada m á quina analítica, capaz de realizar todas las operaciones matemáticas y con posibi lidad de ser programada por medio de tarjetas de cartón perforado (similares a las tarjetas de Jacquard), siendo además capaz de almacenar en su interior una canti dad de cifras considerable. Con esta máquina, Babbage consiguió por primera vez en la historia definir los fundamentos teóricos de las computadoras actuales. Se ideó para la realización automática de tablas de logaritmos y funciones trigonométricas. Esta máquina, por los mismos motivos que su predecesora, no llegó a construirse, si bien años despues aparecieron algunas máquinas con su dise ño. Por esta máquina y su estructura, Babbage es considerado actualmente como el padre de ia Informática. El esquema utilizado para su diseño es el representado en lafigura 2.9, donde pueden verse unidades funcionales de control, cálculo, memoria y dispositivos de entrada y salida. Figura 2.9 Esquema de la máquina analítica de Babbage.
Ü ' l f f ' I I l ' l é t l l l ' l ' l t i l t I
ENTRADAS
O
MEMORIA
O
Ú
CALCULADOR
O
SALIDA
o
UNIDAD DE CONTROL
La hija del famoso poeta Lord Byron (1788-1824), Augusta Ada Byron, con desa de Lovelace, fue la primera persona que realizó programas para la máquina analítica de Babbage, de tal forma que ha sido considerada como la primera programadora de la historia. En la Figura 2.10 puede verse la máquina analítica y a su primera programadora,Augusta Ada. o o i M C ' O I O
I
S
D E
C O M P U T
A C I O N
[_' _________________________________ EVOLUCION HISTORICA DE LAS COMPU TAD ORA S
|
En 1854 el ingeniero sueco Pehr Georg e Scheutz (1785-1873), apoyado por el gobierno de su país, construyó una máquina diferencial similar a la de Babbage, denominada m áquina de tabular, que tuvo un gran éxito y se utilizó fundamen talmente para la realización de cálculos astronómicos y la confección de tablas para compañías de seguros . También en 1854 el matemático ingles George Boole (1815-1864) desarrolló la teoría del álgebra de Boole, que permitió a sus sucesores el desarrollo mate mático del álgebra binaria y con ella la representación de circuitos de conmutación y la aparición de la llamada “ Electrónica digital”. La Figura 2.11 nos muestra a George Boole y ejemplos de su álgebra. jr-'■ "*r,
Figura 2.10 Maquina analítica de Babbage y su programadora. P R I N C I P I O S
O H
o
I"! «/! O I I -r-
a
r-
“*«*<»»*!**
|
E V O L U C I O N H I S T O R I C A D E L AS C O M P U T A D O R A S
Figura 2.1I George Boole y su álgebra. Aproximadamente el año 1885 el norteamericano y funcionario de la oficina del censo de Estad os Unidos H erm án H ollerith ( ¡ 860-1929) vio cómo se tarda ban diez años en realizar el censo anual de su país y observó que la mayoria de las preguntas del censo tenían como respuesta un si o un no, lo que le hizo idear en 1886 una tarjeta perforada para contener la información de las personas censadas y una máquina capaz de leer y tabular dicha información. Construyó su máquina censadora o tabuladora que fue capaz de reducir el trabajo manual a la tercera parte, con lo que se tardó en realizar el censo de 1890 tan sólo tres años,perforándose un total de 56 millones de tarjetas. La Figura 2.12 muestra a Hermán Hollerith y su máquina tabuladora. En 1895 Hollerith incluyó en su máquina la operación de sumar con el fin de utilizarla para la contabilidad de los Ferrocarriles Centrales de Nueva York. Esto constituyó el primer intento de realización automática de una aplicación comercial, lo que hizo que el funcionario se introdujera en el mundo de los negocios de tal manera que, en 1896, fundó la empresa Tabulating Machines Company, la cual se fusionó con otras empresas en el año 1924 configurando la actual International Business Machines (IBM), cuyo primer presidente fueThomas J.Watson (padre). Este no estaba muy convencido de! futuro que podían tener estas máquinas, idea que no fue compartida por sus sucesores, entre los que podemos citar a su hijoThomas J. Watson.Ambos aparecen en la Figura 2.13. En 1887 el francés Léon B ollée (1870-1913), famoso por su gran afición al automovilismo, construyó una máquina de multiplicar en la que la multiplicación se realizaba directamente, sin utilizar el-procedimiento de sumas sucesivas. La nove dad consistió en que la máquina tenía internamente una tabla completa de multipli car. 36
P R I N C I P I O S
D E
C O M P U T A C I O N
____________________________________ 1 E V O L U C I O N H I S T O R IC A DE LA S C O M P U T A D O R A S
|
También a finales del siglo XIX un español residente en Estados Unidos, Ram ón Verea, construyó una máquina que realizaba la multiplicación directamente de for ma similar a la máquina de León Bollée.
Figura 2.. 12 Hermán Hollerith y su maquina tabuladora.
Figura 2.13 Thomas J.Watson padre (izquierda) e hijo. P R I N C I P I O S
D E
C O M P U T A C I O N
37
E V O L U C IO N H I S T O R I C A D E L A S C O M P U T A D O R A S
En i 893 el suizo O tto Ste ig er construyó la primera calculadora que tuvo éxito comercial;su nombre fue la Millo naria y se utilizó para los grandes negocios y en algunas aplicaciones de cálculo científico. A principios del siglo xx, en 19 10, jam es Power diseñó nuevas máquinas censadoras siguiendo la idea de Hollerith. Otro ingeniero español, Leonardo Torres Quevedo ( 1852-1936), construyó a principios del siglo xx, siguiendo la linea de Babbage, varias máquinas o autómatas teledirigidos, una máquina para jugar al ajedrez y una máquina calculadora. En 1914 diseñó en papel una máquina analítica, que al final no fue construida. En I936 el matemático ingles Alan M.Turing (I9I2-I954) desarrolló la teoría de una máquina capaz de resolver todo tipo de problemas con solución algorítmica, llegando a la construcción teórica de las máquinas deTuring. Una máquina de Turing es una forma de representar un,proceso a partir de su descripción (Figura 2.14).
. . u | j i É i ! d i l
Con los estudios de Alan M.Turing se inició la te oría m atem ática de la com putación, en la que se define un algoritmo como la representación formal y siste mática de un proceso; en ella se verifica que no todos los procesos son representabas. A partir de estos estudios se demostró la existencia de problemas sin solución algorítmica y se I legó a la siguiente conclusión;
> > ' • * i 1 • "
Un problema tiene solución algorítmica si existe una máquina de Turing para representarlo.
De estos estudios surgió la teoría de la computabilidad que engloba el aná lisis encaminado a encontrar formas de descripción y representación de procesos o algoritmos.
Alan M.Turing 38
P R I N C I P I O S
D E
C O M P U T A C I O N
EVOLUCION HISTORICA DE LAS COMPUTADORAS
Figura 2.14 El esquema de su máquina teórica.
En 1937 Howard H.A iken (1900-1973), de la Universidad de Harvard, desa rrolla la idea de Babbage junto con un equipo de científicos de su departamento e ingenieros de IBM. El resultado de sus estudios culminó en la construcción de una calculadora numérica basada en el uso de relés electromagnéticos, ruedas dentadas y embragues electromecánicos, configurando la prim era co m putadora elec tromecánica. Fue denominada Calculadora Automática de Secuencia Controlada (Automatic Sequence Controlled Calculator-ASCC), aunque su nombre más popular fue la Harvard Mark-I. Esta computadora se terminó de construir en i 944 y tenía elementos de entra da, memoria principal, unidad aritmética, unidad de control y elementos de salida. Utilizaba como soportes de entrada de datos tarjetas y cintas perforadas (Figura 2.15). Esta máquina fue la primera computadora electromecánica que se construyó y que funcionó, aunque se utilizó poco tiempo, pues la aparición de las computadoras electrónicas hizo que las de este tipo cayeran rápidamente en desuso. Tenia 16,6 metros de largo por 2,6 metros de alto, pesaba unas 70 toneladas y estaba constituida por 800 000 piezas móviles, teniendo su cableado una longitud de 800 000 metros. En la Figura 2.16 aparece el equipo que desarrolló esta máquina, donde podemos ver en el centro a Howard H.Aiken. Sumaba dos números en menos de un segundo y los multiplicaba en tres segun dos, dando las respuestas en tarjetas perforadas.Trabajaba con operandos de hasta P R I N C I P I O S
D E
C O M P U T A C I O N
39
|
EVOLUC ION HISTO RICA DE LAS COMPU TADO RAS
23 cifras decimales. Estaba preparada para el cálculo de tablas matemáticas y su velocidad era mucho mayor que la de las calculadoras de la época.
Figura 2.15 Vistas de la computadora Mark-K
Figura 2.16 Equipo que desarrolló la computadora Mark-I. 40
P R I N C I P I O S
D E
C O M P U T A C I O N
E V O L U C IO N H I S T O R I C A DE L AS C O M P U T A D O R A S
En 1938 el alemán Claude Shannon com enzó a aplicar la teoría del algebra de Boole en la representación de circuitos I ógicos. Publicó en 1948 la teoría mate mática de las comunicaciones y realizó diversos estudios sobre la teoría de la infor mación, donde aparecieron medidas de la cantidad de información como el bit (binary digit).
También en 1938 el físico norteamericano John V icen t Atanasoff, profesor de la Universidad de lowa, junto con su colaborador Clifford Berry construyeron una máquina electrónica que operaba en binario siguiendo la idea de Babbage. Fue ron los primeros que intentaron la construcción de una máquina totalmente elec trónica. Esta fue terminada en 1942 y se llamó ABC (Atanasoff Berry Computer), siendo considerada como la primera máquina de calcular digital. No tomó caracter de computadora, puesto que no existía la posibilidad de programarla. Se utilizó fundamentalmente para la resolución de ecuaciones lineales y diferenciales (Figura 2.17).
Figura 2.17 John V. Atanasoff y Clifford Berry. En 1940 Joh n W . M auchly y John Pre sper Eck ert, junto con científicos de la Universidad de Pensilvania, construyeron en la Escuela Moore de Ingeniería Eléctrica, a petición del Ministerio de Defensa de Estados Unidos, la prim era com putadora electró nica denominada E N IA C (Electronic NuméricaI Integrator and Calculator) construida a base de válvulas de vacío, que entró en funcionamien to en 1945. En ei equipo de construcción de esta computadora se encontraban J.V. Atanasoff y C. Berry, cuyos estudios y ensayos en su calculadora ABC fueron muy importantes para el proyecto ENIAC. La diferencia esencial entre la ABC y la ENIAC consistía en que esta última era programable y universal, es decir, podía P R I N C I P I O S
D E
C O M P U T A C I O N
41
E V O L U C I O N H I S T O R I C A D E LA S C O M P U T A D O R A S
ser aplicada a cualquier tipo de cálculos. Fue muy utilizada por el Ejército de Esta dos Unidos para el cálculo de la trayectoria de proyectiles por medio de tablas. Era mil veces más rápida que la MARK-I y realizaba la suma de dos números en dos diez milésimas de segundo, multiplicándolos eq milésimas de segundo.Te nía un volumen de aproximadamente I I I metros cúbicos, ocupaba una superficie de 160 metros cuadrados y su peso se aproximaba a las 30 toneladas; además poseía 17.468 válvulas de vacío, 50.000 conmutadores, 70.000 resistencias, 10.000 condensadores, 7.500 interruptores, 1.500 relés y un consumo entre 100.000 y 200 000 vatios. Este último dato hizo que al conectarse la ENIAC por primera vez, ¡as luces de una buena parte de la ciudad de Fíladelfia sufrieran un gran descenso en su iluminación, quedándose la ciudad casi a oscuras. Además, el equipo necesitaba ventilación y su mantenimiento era muy elevado,sobre todo debido a las válvulas. La Figura 2.18 mues tra la computadora ENIAC y el equipo que la construyó.
Figura 2.18 La computadora ENIAC y el equipo que la desarrolló. En 1944 el ingeniero y matemático John von Neu m an n (1903-1957), de ori gen húngaro y naturalizado norteamericano, desarrolla la idea de programa interno y describe el fundamento teórico de construcción de una computadora electrónica P R I N C I P I O S
D E
C O M P U T A C I O N
[___________________________________EVOLUCION HISTORICA DE LAS COMPUTADORAS
denominada modelo deVon Neumann. La idea deVon Neumann era la coexistencia en el tiempo de datos e instrucciones en la computadora y la posibilidad de ser programada, no estando las órdenes cableadas en los circuitos de la máquina. Publi có ei artículo “ Teo ría y técnicas de las com putadoras elec trón icas” que fue un intento de diseño de una computadora desde el punto de vista lógico. En 1952 se construyó esta máquina que se denominó EDVAC (Electronic Discrete Varia ble Automatic Computer) y fue una modificación de la ENIAC. Esta computadora utilizaba líneas de demora acústica de mercurio por donde circulaban señales eléc tricas sujetas a retardo y permitían la memorización de los datos. La Figura 2.19 muestra a John von Neumann y su computadora.
Figura 2.19 John von Neumann y la EDVAC. En 1949 Joh n W . Mauchly y John Presper Eckert, tras fundar su propia compañía, la Eckert-Mauchly Corporation, desarrollaron como primer proyecto una computadora binaria automática que se denominó BINAC (Binary Automatic Computer) cuya novedad consistió en la realización de determinadas transmisiones de señales internas en paralelo. Con esta máquina aparecieron los diodos semiconductores en las computadoras, asi como la utilización de las cintas magné ticas. Poco despues, en 1951, John W . M auchly construyó la primera computadora de serie puesta a la venta, esta fue la UNIVAC-I (Universal Automatic ComputerComputador Automático Universal), que también utilizaba cintas magnéticas (Figu ra 2.20). P R I N C I P I O S
D E
C O M P U T A C I O N
43
!
EVOLUCION HISTORICA DE LAS COMPUTADORAS ____________________________________ j
A partir de 1952 se construyen computadoras en serie, como las MANIAC-I, MANIAC-II y la UNIVAC-II (esta última con memoria de núcleos de ferrita), y con ellas se acaba la prehistoria de la Informática,dando paso a la era de las computado ras.
2.2 EVOLUCIÓN DE LA ELECTRÓNICA Desde que en 1951surgiera la UNIVAC-I, como primera computadora comer cial, hasta nuestros días en que existen multitud de modelos cada vez mas potentes, baratos y pequeños, casi todas las transformaciones han sido causadas por descu brimientos o avances en el campo de la electrónica o de lo que hoy en día se denomina microelectrónica.
Figura 2.20 La computadora UNIVAC-I. r>tr
C
O
M
P
U
T
A
C
I
O
N
i
EVOLUCION HISTORICA DE LAS COM PUTA DOR AS
]
Todo comenzó con la válvula de vacío y la construcción de dispositivos lógicos biestables. Un biestable es un dispositivo capaz de tener dos estados estables y poseer la propiedad de conmutar de uno a otro cuando así le sea ordenado. Por otra parte, la válvula puede hacer la función de un relé eléctrico, es decir, abrir o cerrar un circuito, y por otra, un elemento biestable nos permite retener un bit de información. Además, los progresos en la física del estado sól ido han sido los agentes de la gran evolución en la industria de las computadoras. Estos progresos se pueden esquematizar de la siguiente forma: Io En 1904 el inglés Flem ing inventó la válvula de vacío, que se utilizó como elemento de control para sustituir a los relés electromecánicos y para conformar dispositivos biestables. 2° En los años cincuenta, con el descubrimiento de los semiconductores, apare
cieron el diodo y el transisto r, este último inventado por W a lte r Bra ttain , John Barden y W .Shockley en los laboratorios BELL, en enero de l'947. Por este descubrimiento obtuvieron el premio Nobel. El transistor sustituyó a la válvula de vacío permitiendo la reducción de circuitos en tamaño y aumentando la fiabilidad de los equipos debido a sus mejores características. 3o Basándose en el transistor se construyeron circuitos capaces de realizar fun ciones lógicas,con lo que surgieron las compuertas lógicas y sus circuitos deriva dos. 4o Años más tarde comenzó la miniaturización con la construcción de los cir cuitos integrados, que consistían en la implementación de un circuito complejo en una pastilla que ocupaba un tamaño reducido. Con este elemento empezó la ciencia dei diseño I ógico de circuitos a baja escala de integración (SSI, Short Sede Integration), que permitía introducir en cada circuito alrededor de diez compuertas I ógicas. 5o Apareció a continuación la integración a mediana escala MSI (Médium Scale Integration), en la que se integraban en una sola pastilla de circuito integrado entre 100 y 1000 compuertas I ógicas. 6o Poco tiempo después se consiguió introducir en un mismo circuito entre 1000 y 10 000 compuertas I ógicas, con lo que se pasó a la integración a gran escala (LSI, Long Scale Integration). I o Cuando se superaron las 10 000 compuertas I ógicas por circuito se pasó a la P R I N C I P I O S
O
B
O O M p
II T a
f.
i o
m
i
EVOL UCIO N HI STO RIC A PE LAS CO M PU TA DO RA S____________________________________ j
muy alta escala de integración (VLSI, Very Long Scale Integration). 8° En 1971 apareció un circuito integrado denominado microprocesador, en el que se consiguió introducir todo el procesador de una computadora en un solo elemento (Figura 2.21).
2.3 GENERACIONES DE COMPUTADORAS Los cambios tecnológicos producidos han originado una clasificación de las com putadoras en generaciones, aunque hoy en dia no se tiene muy en cuenta esta clasificación en los últimos desarrollos, por la gran velocidad en que se presentan los nuevos descubrimientos. Las generaciones de computadoras son las siguientes:
Figura 2.21 Evolución de la electrónica.
■ Prim era generación (1940-1952). La constituyen todas aquellas computa doras diseñadas a base de válvulas de vacío como principal elemento de control y cuyo uso fundamental fue la realización de aplicaciones en los campos científico y militar. Utilizaban como lenguaje de programación ei lenguaje máquina y como úni cas memorias para conservar información las tarjetas perforadoras, la cinta perfo rada y las líneas de demora de mercurio.
EVOLUCION HISTORICA DE LAS COMPUTADORAS
•Segunda generación (1952-1964). Al sustituirse la válvula de vacío por el transistor, comenzó la llamada segunda generación de computadoras. En eila, las máquinas ganaron potencia y fiabilidad, perdiendo tamaño, consumo y precio, lo que las hacía mucho mas prácticas y accesibles. Los campos de aplicación en aquella época fueron, además del científico y militar, el administrativo y de gestión, es decir, las computadoras empezaron a utilizarse en empresas que se dedicaban a los nego cios. Comenzaron además a utilizarse los llamados lenguajes de programación evo lucionados, que hacían más sencilla la programación; entre ellos podemos citar el Ensamblador y algunos de los denominados de alto nivel, como Fortran, Cobol y Algol. Asimismo, comenzaron a utilizarse como memoria interna los núcleos de ferrita y el tambor magnético, y como memoria externa la cinta magnética y los tambores magnéticos. •Tercera generación ( 1964-1971). En esta generación el elemento más signi ficativo es el circuito integrado aparecido en 1964, que consistía en el encapsulamiento de una gran cantidad de componentes discretos (resistencias, condensadores.diodos y transistores), conformando uno o varios circuitos con una función determinada, sobre una pastilla de silicona o plástico. La miniaturización se extendió a todos los circuitos de la computadora, apareciendo las minicomputadoras. Se utilizaron tec nologías SSI y MSI. Asimismo, el software evolucionó de forma considerable con un gran desarrollo de los sistemas operativos, en los que se incluyó la multiprogramación, el tiempo real y el modo interactivo. Comenzaron a utilizarse las memorias de semiconductores y los discos magnéticos. •C uarta generación ( 1971-1981). En 1971aparece el microprocesador, con sistente en la integración de toda la UCP de una computadora en un solo circuito integrado. La tecnología utilizada es la LSI que permitió la fabricación de microcomputadoras y computadoras personales, así como las computadoras monopastilla. Se utilizó, además, el disquete (fioppy disk) como unidad de almacenamiento externo. Aparecieron una gran cantidad de lenguajes de progra mación de todo tipo y las redes de transmisión de datos (teleinformática) para la interconexión de computadoras. • Q uin ta generación (1981-actualidad). En 1981 los principales países pro ductores de nuevas tecnologías (fundamentalmente Estados Unidos y Japón) anun ciaron una nueva generación, cuyas características principales iban a ser: - Utilización de componentes a muy alta escala de integración (VLSI). - Computadoras con Inteligencia Artificial. - Utilización del lenguaje natural (lenguajes de quinta generación). - Interconexión entre todo tipo de computadoras, dispositivos y redes (redes integradas).
j
EV OLUCIO N HIS TORIC A DE LAS CO M PU TA D O RA S ___________________________________ I
- Integración de datos, imágenes y voz (entornos multimedia).- Etc....
2.4 CLASIFICACIÓN DE LAS COMPUTADORAS ACTUALES Las computadoras digitales, por su potencia de cálculo, capacidad de almacenamiento interno y número de periféricos que pueden soportar.se clasifican en cuatro grandes grupos: Supercomputadora (supercomputer) Computadora (mainframe) Minicomputadora (minicomputer) Microcomputadora (microcomputer)
•Supercom putadora. Es una máquina diseñada especialmente para cálculos que precisan una gran velocidad de proceso. Generalmente poseen un gran núme ro de procesadores que trabajan en paralelo, con lo que se consigue realizar billo nes de operaciones por segundo. Un ejemplo de estas computadoras es la Cray YMP de Cray Research Inc. (Figura 2.22).
CRAYY-MP 41?
P R I N C I P I O S
O E
C O M P U T A C I O N
EVOLUCION HISTORICA DE LAS COMPUTADORAS
Figura 2.22 Tipos de computadoras digitales. •Com putadora o mainframe. Es una máquina diseñada principalmente para dar servicio a grandes empresas y organizaciones. Su potencia de cálculo es inferior a la de las anteriores, cifrándose en la ejecución de varios millones de operaciones por segundo. Una de sus características principales es la de soportar un gran número de terminales o estaciones de trabajo. Además pueden intervenir en procesos distribuidos en los que se conectan dos o más computadoras en paralelo, de tal forma que se reparten todo ei trabajo a realizar. Un buen ejemplo de este tipo de P R I N C I P I
O S
D E
C O M P U T A C I O N
'0
; EVOLUCION HISTORICA DE LAS COMPUTADORAS _____________________________________ j
__
computadoras es la IBM 3090 de la International Business Machines, capaz de so portar aproximadamente 5000 terminales conectados (Figura 2.22). •Minicom putadora. Son máquinas de tipo medio, es decir, su capacidad de proceso es inferior a la de las anteriores y por tanto pueden controlar un menor numero de terminales. Dos ejemplos muy típicos de este tipo de computadoras son la VAX de Digital Equipment Corporation (D EC) y laAS/400 de IBM (Figura 2.22 ). •M icrocom putadora. Se trata de una máquina cuyo funcionamiento interno se basa en el uso de un microprocesador, y con el se consigue una serie de presta ciones, que en potencia, manejabilidad, portabilidad, precio, etc., cubren la gama más baja de necesidades en el mundo de la Informática. Hoy se puede decir que el mundo de la microinformática o el de las microcomputadoras es el más importante y también el más popular. Dentro de las microcomputadoras se pueden distinguir dos grupos importantes:
- Com putadora persona! (personal computer-PC). -Estación de trabajo (workstation).
•La com putadora persona! es una microcomputadora fácil de usar y con grandes prestaciones. Generalmente posee un solo puesto de trabajo, aunque pue de tener varios.Actualmente la mayor gama de equipos hardware y de aplicaciones de software que existen en el mercado pertenecen al grupo de computadoras personales (Figura 2.22 se pueda observar un equipo personal ¡Mac). •Una estación de trabajo es una microcomputadora de gran potencia que se utiliza para trabajos de ingeniería o similares y permite la conexión a través de una red con una computadora de mayor potencia. Dentro del grupo de computadoras personales existe una clasificación según el tamaño, prestaciones, precio, etc. Los tipos o variantes de computadoras persona les diferentes del modelo clásico son les siguientes: -Portátil o transportable. Se trata de una computadora de características físicas que permiten fácilmente su transporte de un sitio para otro sin perder nin guna de las cualidades de una computadora personal clásica (Figura 2.23). -Laptop. Consiste en una computadora personal portátil de pequeño tamaño, gran potencia y muy manejable en todos los sentidos. La característica principal es su peso que oscila entre I y 2 kilogramos (Figura 2.23). 50
P R I N C I P I O S
D E
C O M P U T A C I O N
EVOLUCION HISTORICA DE LAS COMPUTADORAS
Figura 2.23 Tipos de com putadoras personales.
-Notebook. Es una computadora personal similar al laptop, pero aún más peque ña, de menor peso y más especializada, es decir, esta preparada para realizar funcio nes de computadora personal, servir de ayuda a estudiantes ofreciéndoles una ca pacidad de cálculo rápido importante, ofrecer funciones comerciales de agenda muy evolucionadas, etc. (Figura 2.23). P R I N C I P I O S
D E
C O M P U T A C I O N
51
V
| EVOLUCION HISTORICA PE LAS COMPUTADORAS
j
-Pocket-PC o p alm top. Es una pequeña computadora personal de mano que
viene a ser la última versión de calculador* científica programable (Figura 2.23).
1. 2.
3. 4. 5.
6.
Realice un breve resurten esquematizado de la historia de las máquinas de cálculo. Realice un breve resumen esquematizado de !a historia de las primeras computadoras. ¿Qué avances en ¿I campo de la electrónica han hecho posible la gran evolución de las computadoras en ios últimos años? Esquematizar ¡o>períodos de tiempo, elementos constructivos y aplicaciones de ¡as computadoras en las cinco generaciones de las mismas. ¿Qué grandes jritpos H p computadoras digitales existen, atendiendo a su potencia de cálculo y capacidad de almacenamiento? Realice una clasificación de ¡as computadoras personales segun el tamaño, prestaciones, etc.
52 : P R I N C I P I O S
O r
C O M P U T A C I O N
CAPITULO III
Representación de la Información 3.1 INTRODUCCIÓN En la actualidad, y desde hace yá muchos años, ei hombre en su vida diaria se expresa, se comunica, almacena Información y la maneja, etc., desde ei punto de vista numérico mn el sistema decimal y desde el punto de vista alfabético con un determinado idioma. Asimismo, la computadora, debido a su construcción basada fundamentalmente en circuitos electrónicos digitales, lo hace desde ambos puntos de vista con el sistema binario, utilizando una serie de códigos que permiten su perfecto funcionamiento. Este es el motivo que nos obliga a transformar interna mente todos nuestros datos, tanto numéricos como alfanuméricos, a una represen tación binaria para que la máquina sea capaz de procesarlos. Como veremos más adelante, tanto el sistema decimal como el binario están basados en los mismos principios. En ambos, la representación de un número se efectúa por medio de cadenas de símbolos, ¡os cuales representan una determinada cantidad dependiendo de cada símbolo y la posición que ocupa dentro de la cadena con respecto al denominado punto decimal. Por cuestiones de índole técnica, ios circuitos electrónicos que conforman una computadora suelen estar capacitados, en la mayoría de los casos, para reconocer señales eléctricas de tipo digital; por lo tanto.se hace necesario que los método de codificación internos tengan su origen en el sistema binario, y con ellos se pueda representar todo tipo de informaciones y órdenes para que sean manejadas por !a computadora. En ¡os circuitos electrónicos, desde el punto de vista lógico, suele representarse la presencia de tensión en un punto de un circuito (respecto a masa) por medio de un i, correspondiendo el O a la ausencia de tensión. Si se hacen las consideraciones anteriores, se dice que se esta utilizando lógica positiva (utilizada en la mayoría de los casos). Por otro lado, si se asocia el O a la presencia de tensión y el ¡ a la P R I N C I P I O S
D E
C O M P U T A C I O N
»
T REPRESENTACION DE UV INFORMACION
ausencia de la misma, se dice que se utiliza lógica neg ativa. La Figura 3.1 repre senta los estados I y 0 utilizados en la lógica positiva,dondeV es la tensión y t el tiempo.
► t
Figura 3.1 Estados en ia lógica positiva. l i l É i i i i l i i w i m n i i m i n l n i L * » * ■
i
3.2. LOS SISTEMAS DE NUMERACIÓN Y SU EVOLUCIÓN Desde los comienzos de la historia, el hombre ha utilizado la escritura para mantener y transmitir información. La escritura va desde el antiguo jeroglífico egip cio, en el que ¿e utilizaban símbolos para la representación de palabras, hasta el alfabeto actual que utilizan la mayoría de los idiomas existentes (Figura 3.2).
é k i n ' H h H m Í ' * M t l i É i i l 1
< ¡x
0
m w
I
I O i
i l 1 l A l l l ! u l i M
& •
&
t
e
II I
O. i
o
Figura 3.2 jeroglífico egipcio Originalmente, el alfabeto como conjunto de símbolos se desarrolló en Grecia y posteriormente en Roma, y de él se deriva nuestro alfabeto actual. Uno de los primeros intentos para la conservación de datos numéricos en for ma de escritura fue el sistema de numeración indoarábigo, del que se derivaron los actuales sistemas de numeración, entre Sos que se encuentra el sistema decimal. En la Figura 3.3 se representan cronológicamente algunos de los sistemas de numeración que se han utilizado hasta nuestros días. 54 ' P R I N C I P I O S
D E
C O M P U T A C I O N
REPRESENTACION DE LA INFORMACION
II!
i H III
f !T
II! ü! lili l i l i II III III Sistema egipcio
Hit iil }||| II I
r T T T ?T H H M T Tf TTf
ITT T M T
H IT TTTf
n
TTW TTH
-<
Sistema babilónico
I 11 I I I
¡ II I
V
V I V I!
V IH V I I¡ i
X
Sistema romano inicial *
••
*'
........................ ..........
.
“ *
••••
------------
Sistema maya
—
=
—
\2? ¿ z
^
i
Jz
-}-
Sistema chino
Sistema indio
i
r
r í f l i v / 1 1 * Sistema árabe
i Z Z i V L 7
8 9•
Sistema español inicial
í
2 1 Í
4
6 1 8
9 »
Sistema italiano
1234
567890 Sistema actual
Figura 3.3 Evolución de los sistemas de numeración. P R I N C I P I O S
D E
C O M P U T A C I O N
55
L j
RE PR ES EN TA CION PE LA IN FOR M A C IO N __________________________ |
La denominación manera:
sistema de numeración
puede definirse de ia siguiente
Un sistema de numeración es el conjunto de símbolos y reglas que se utilizan para la representación de datos numéricos o cantidades. Un sistema de numeración se caracteriza fundamentalmente por su base, que es el número de símbolos distintos que utiliza, y además es el coeficiente que deter mina cuál es el valor de cada símbolo dependiendo de la posición que ocupe. Los sistemas de numeración actuales son sistemas posicionales en los que el valor relativo que representa cada símbolo o cifra de una determinada cantidad depende de su valor absoluto y de la posición relativa que ocupa dicha cifra con respecto a la coma decimal; el valor que proporciona cada posición esta íntima mente ligado ai valor de la base del sistema de numeración utilizado. En el presente texto utilizamos como representación de la coma decimal (,),que separa las partes entera y fraccionaria de un número, ei punto decimal (.) por estar este más generalizado en dicha representación en ambientes informáticos. En algunos casos utilizaremos la notación matemática de ia base para distinguir a que sistema de numeración nos estamos refiriendo.
3.3 EL SISTEMA DECiMAL Desde hace bastante tiempo, el hombre ha utilizado como sistema para contar el denominado sistem a décim a!, que derivó del sistema numérico indoarábigo; posiblemente se adoptó este sistema por contar con diez dedos en las manos. Ei sistema decimal es uno de los denominados posicionales, que utiliza un con junto de símbolos cuyo significado o valor depende de su posición relativa al punto decimal (.), que en caso de ausencia se supone colocado implícitamente a la dere cha, La Figura 3.4 representa las posiciones de las cifras de un número.
... caca.,... c
a c
.c 3 c a c ,...
c^dC.*...
Figura 3.4 Posiciones de las cifras de un número. 66
P R I N C I P I O S
D E
C O M P U T A C I O N
«(
REPRESENTACION DE LA INFO R M A CIO N
El sistema decimal utiliza la base 10, que corresponde al numero de símbolos que comprende para la representación de cantidades; estos símbolos (también de nominados cifras o dígitos) son: 0
!
2
3
4
5
6
7
8
9
Un determinado valor o cantidad, que denominaremos número decimal.se pue de expresar de la siguiente forma: n
N ° = X (digito)i * (base)' i=-m
donde: base = 10 i = posición respecto a la coma m = número de dígitos a la derecha de la coma n = número de dígitos a la izquierda de la coma menos ! dígito = cadr> uno de los que- compone el número Esta fórmula corresponde al denominado Teorem a Fundam ental de la N u m eración que veremos en el Apartado 3.4 y, por tanto, corresponde a ¡a represen tación: ...+X*
I04+ X,* I03+X2* I0J+X(* I0'+Xq* I0 °+ X * IO-'+X j* io-5+...
Por ejemplo, la interpretación de las representaciones de la cantidad 1958 será: I958l0 = I * 10J+9* l05+5* I0! +8* 10°
3.4TEOREMA FUNDAMENTAL DE LA NUMERACIÓN Se trata de un teorema que relaciona una cantidad expresada en cualquier siste ma de numeración con la misma cantidad expresada en el sistema decimal.' Supongamos una cantidad expresada en un sistema cuya base es 8 y representa mos por Xi cada uno de los dígitos que contiene dicha cantidad, donde el subíndice indica la posición del dígito con respecto a la coma decimal, posición que hacia ia izquierda de la coma se numera desde 0 en adelante y de I en I , y hacia la derecha se numera desde -1 y con incremento -I. P R I N C I P I O S
D E
C O M P U T A C I O N
57 VW-j
|
REPRESENTACION DE LA INFORM A CION
El Teorema Fundamental de la Numeración dice que el valor decimal de una cantidad expresada en otros sistemas de numeración, viene dado por ia fórmu la: ... +X4* B4+X,* Bj+X2* Bj+X * B'+Xo* B°+ X , * B'+ X
* B
*+ ...
donde él número en base B es ...X4X jX 2X ,X 0.X , X 2...
a) Supongamos la cantidad 201.1 expresada en el sistema de numeración de base 3 que utiliza ios dígitos 0,! y 2 para la representación de cantidades. ¿Cuál será la representación de 1a misma cantidad en el sistema decimal? 201.1, = 2 * 3J +0*3' + I *3 “ + I * 3 ' = 18 + 0+ I + 0.333 = I9.333l0 b) Supongamos la cantidad 5 i 6 expresada en ei sistema de numeración de base 7 que utiliza Sos dígitos 0 ,1,2,3,4,5 y ó para la representación de cantidades. ¿Cuál será la representación de la misma cantidad en el sistema decimal? 5I6 = 5 * 7 J + I *7' + 6 * 7 ° = 245 + 7 + 6 = 258l0 c) Supongamca ¡a cantidad 0.1 II expresada en el sistema de numeración de base 2 que utiliza los dígitos 0 y I para la representación de cantidades. ¿Cuál será la representación de la misma cantidad en el sistema decimal? 0.11i, = I * 2 ' + I * 2 1+ I * 2 3= 0.5 +0.25+ 0.125 = 0.875)0 El teorema aplicado a la inversa nos sirve para obtener ia representación de una cantidad decimal en cualquier otro sistema de numeración, por medio de divisiones sucesivas por ia base, como veremos en el Apartado 3.8.
3.5 EL SISTEMA BINARIO El sistem a b inario es el sistema de numeración que utilizan internamente los
circuitos digitales que configuran el hardware de las computadoras actuales; por ello será eí sistema al que prestaremos mayor atención y estudio. «
P H I N C I P I O S
D E
C O M P U T A C I O N
i_______________________________________________ REPRESENTACION DE L A INFORMACION
\
La base o numero de símbolos que utiliza el sistema binario es 2, siendo estos los siguientes: 0
y
1
Cada cifra o dígito de un número representado en este sistema se denomina bit (contracción de binary digit). Para la medida de cantidades de información representadas en binario se utili zan una serie de múltiplos del bit que poseen nombre propio; estos son los siguien tes; • Nibble . Es el conjunto de cuatro bits (1001). •B yte. Es el conjunto de ocho bits ( 10 1010 10). • Kiiobyte (Kb). Es el conjunto de 1024 bytes (1024 * 8 bits). • M egabyte (M b ). Es el conjunto de 1024 kilobytes (I024J * 8 bits). •G igabyte (G b ). Es el conjunto de 1024 megabytes (ÍG243* 8 bies). • Terabyte (Tb). Es el conjunto de 1024 gigabytes (1024'' * 8 bits). La razón por la que se utiliza el factor multiplicador 1024 en lugar de 1000, ccmc sucede en otras magnitudes físicas, es por ser el múltiplo de 2 mas próximo a 1000, cuestión importante desde el punto de vista electrónico. 2'°= 1024 El byte es ¡a unidad básica de medida de la información representada mediante este sistema.
3.5.1Suma binaria Es semejante a sumar en el sistema decimal, con la diferencia de que se manejan sólo 2 dígitos (0 y i),d e tal forma que cuando el resultado excede de los símbolos utilizados se agrega el exceso (denominado arrastre o acarreo) a la suma parcial siguiente hacia la izquierda. Las combinaciones posibles de suma en el sistema binario son las siguientes:
0 + 0=0
1 + 0=1
0 + 1=1
1 + 1 =10 ( representa el dos en binario)
P R I N C I P I O S
D E
C O M P U T A C I O N
59
í
REPRESENTACION DE LA INFO RM A CION
Sumar los números binarios i00! ¡0 (38) y lOi 10 (22).
+
I I 1 0 0 ! 10
38
I 0 ! I 0
22
I I I ! 00
60
3.5.2 Resta Binaria La resta binaria es simüar a !a decimal con la diferencia de tener solo dos dígitos y teniendo en cuenta que al realizar ias restas parciales entre dos dígitos de idénti cas posiciones, uno del minuendo y otro del sustraendo, si e! segundo excede a! primero, se sustrae una unidad de! dígito de más a la izquierda en el minyendo (si existe y vale I), convirtiéndose este ultimo en 0 y equivaliendo ia unidad extraída a I * 2 en el minuendo de resta parcial que estamos realizando. Si es 0 e! dígito siguiente a la izquierda, se busca en los sucesivos teniendo en cuenta que su valor se multiplica por 2 a cada desplazamiento a la derecha. Las combinaciones posibles de resta en el sistema binario son las siguientes:
0-0 =0
1-0=1
0 - ! = no se puede realizar
1-1=0
Restar los números binarios I i i i 00 (60) y i 0 i 0 i 0 (42). 02
60
P R I N C I P I O S
I ! I I 00 I0I0I0
60 .42
0 I 00 I 0
18
D E
C O M P U T A C I O N
!
__________________________________ REPRESENTACION DE LA INFO RM AC ION
1
3,5.3 Multiplicación binaria vVO La multiplicación binaria se realiza de forma similar a la multiplicación decimal salvo que ¡a suma fina! de los productos parciales se hace en binario. Las combina ciones posibles en el sistema binario son;
0*0=0
1*0=0
0*1=0
1*1=1
* Multiplicar los números binarios l i l i l í (63) por ¡01010 (42). l i l i l í ........................... 63 x I 0 I 0 I 0 ............................ 42 000000
. I I I I II +
l i l i l í I I I II I
I 0 I 0 0 I 0 I 0 I I 0........................ 2646
3.5.4 División binaria La división binaria, a! igual que ias operaciones anteriores, se realiza de forma similar a la división decimal salvo que las muitipücaciones y restas internas ai proce so de la división se hacen en binario.
Dividir los números binarios i00010 (34) y i ¡0 (6).
P R I N C I P I O S
D E
C O M P U T A C I O N
61
REPRESENTACION DE LA INFORMACION
000 i 0 I I !0 110 ' I0!0 1 0 1 ............... cociente { S ) ‘ IIP I 0 0...................................... resto ( 4 )
3.6 EL SISTEMA OCTAL Se trata de un sistema de numeración de base 8 que utiliza 8 símbolos para la representación de cantidades. Los símbolos utilizados son los siguientes: 0
I
' 2
3
4
5
6
7
Este sistema también es de ios llamados posicionales, de tal forma que cada una de sus cifras tiene como posición la relativa al punto decimal que, en caso de no aparecer como ya hemos indicado, se supone implícitamente a la derecha del nu mero.
¿Qué número decimal representa el número octal 4701 utilizando elTFN? 470 lfl= 4 * 8} + 7 * 8J+ 0 * 81+ I * 8°= 2048 +448 + 0 + I = 2497|0
3.7
EL SISTEMA HEXADECiMAL
Al igual que los anteriores, el sistema hexadecimai es un sistema posicional de base i 6 en ei que se utilizan dieciséis símbolos para la representación de cantida des. Estos símbolos son los siguientes: 01
2 3 4 5 6 7 8 9
A
B C D E F
Se asignan Sos siguientes valores absolutos (decimales) a los símbolos A, B, C, D, E A=I0 B=lI C=I2 «
m
P R I N C I P I O S
D=l 3 E=I4 F=I5 DE
C O MP U T A C I O N
REPRESENTACION DE LA INFOR MA CION
j
¿Qué número decimal representa el número hexadecimai 2CA utilizando el TFN> 2CA|4= 2 * I62+ C * 16' + A * I6 °= 2 * I62+ 12* ¡6' + 10* 16°= = 512+ 192+ i 0 = 714|0 En laTabla 3.1 se representan las equivalencias entre los 100 primeros números naturales de ios cuatro sistemas estudiados anteriormente. ------
HEXA-
HEXADECIMAL
|
00 01 02 0} 04 05 06 07 08 09 10 II 12 13 14 15 tó 57 18 19 20 • 2! 22 23 24 25 26 27 28 29 30 3í 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
BINARIO
OCTAL
D E C IM A l
000000 00000! 0000!0 0000u 000100 000101 000110 000! U 001000 00100! 001010 001QH 001100 001101
00 0! 02 03 04 05 06 07 10 11 12 13 14 15 16 17 20 2! 22 23 24 25 26 27 30 3! 32 33 34 35 36 37 40 41 42 43 44 45 46 47 50 5! 52 53 54 55 56 57 60 61 62
00 0! 02 03 04 05 06 07 08 09 OA 03 OC OD OE CF 10 1! 12 13 14 15 16 17 18 19 1A 18
ooi no
00! 11! OIOOCO OlOOO. 010010 010011 010100 OlOtOl 010110 0(01 1 011000 011001 011010
ouon
011100 311101 011110 0 U 1 1! 100000 10000! 100010 10001! 100100 100101
lOOt10 10011I
toiouo 10100! 101010 10(01! iOUOO t o i 101
tomo
101I 1I 110000 !10002 110010
D E C IM A L 051 052 053 054 055 056 05 7 058 059 060 061 062 063 064 065 066 067 068 069 070 07 ! 072 073 074 075 076 077 078 079 080 081 082 083 C-84 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100
ÍC
ID !£ IF 20 2! 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32
B IN A R IO 0110011
onoioo 011010! 0!10110 0110!11 0111000 O llIO O i 0111010
oinon
0111100 011110!
oumo
0 ! ! ) i 1i 1000000 10000011000010 ¡00001! IGOOlOü 100010! 1000110
¡ooom
iOOJOOO 1001001 lOOtOlG 100(01! 100t!00 1001101 ¡001150 iQ Ú l ll l 1010000 1010001 1010010 ¡010011 1010100 1010101 1010!10 ¡010 !i 1 ¡011000
lonooi iOltOlO 50!1011
iomoo tonioi 1011110 101 i 111
uooooo
1100001 1100010 N0001I 1100200
OCTAL 063 064 065 066 067 070 071 072 073 074 075 076 077 100 10! 102 103 11)4 105 106 107 110 ! 11 112 113 114 115 116 i 17 120 12! 122 123 124 125 126 127 130 131 132 133 134 135 136 137 140 141 142 143 144
DECIMAL 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46 42 48 49 4A 4B 4C 4D 4E 4P
50 51 s->
53 54 55 56 57 58 59 5A 5B 5C 5D SE 5F 60 6! 62 63 64
Tabla 3.1 Equivalencias entre los sistemas de numeración decimal, binario, octal y hexadecimai P R I N C I P I O S
D E
C O M P U T A C S O N
63
r
REPRESENTACION PE LA INFORMA CION
~
~~j
3.8 CONVERSIONES ENTRE LOS SISTEMAS DE NUMERACION Se denomina conversión entre números representados en distintos sistemas de numeración, a ia transformación de una determinada cantidad, expresada en uno de dichos sistemas de numeración, en su representación equivalente en el otro sistema. A continuación vamos a analizar todas las posibles conversiones que existen entre los sistemas de numeración estudiados (decimal, binario, octal y hexadecimal), teniendo en cuenta que hemos seleccionado aquellos métodos más utilizados y sencillos; por lo tanto, debemos considerar que existen muchos otros métodos de conversión que no vamos a estudiar.
3.8.1 Conversión decimal-binario Los métodos más conocidos para convertir un número decimal a su equivalente en binario son los siguientes: I. Divisiones sucesivas por 2. Este método se utiliza para convertir números decimales enteros a su respectivo número entero en binario. Se trata de dividir sucesivamente el número decimal y los sucesivos cocientes por 2, hasta que el cociente en una de las divisiones tome el valor 0. La unión de todos los restos obtenidos, escritos en orden inverso, nos proporciona el número inicial expresado en el sistema binario.
Convertir el número decimal 1994 a binario. 1994 [_2____ 0 997 l_2 ____ "V -
1
498
X * 0
___ 249 [_2____ 124 l_2 ___
'N r !
^
0
62| 2 0
M '.V-H&Vyí •<-4¿
P R I N C I P I O S
DE
3! l_2____ I 15 C O M P U T A C I O N
REPRESENTACION PE LA INFORMA CION
[
1
¡5 [_2 I 7 [_2 I 3 [_2 !
0
I994.0= l i l i 1001010.
2. M ultiplicaciones sucesivas por 2. Se utiliza para convertir una fracción decimal a su equivalente fracción en binario. Consiste en multiplicar dicha fracción por 2,obteniendo en la parte entera del resultado el primero de los dígitos binarios de la fracción que buscamos. A continuación repetimos el mismo proceso con la parte fraccionaria del resultado anterior, obteniendo en !a parte entera del nuevo resultado el segundo de ¡os dígitos buscados. Iteraremos sucesivamente de esta forma, hasta que desaparezca la parte fraccionaria de ¡os resultados parciales o hasta que tengamos los suficientes dígitos binarios que nos permitan no sobrepasar un determinado error. En una fracción-binaria, al igual que en una decimal, puede aparecer un conjunto de dígitos que se repitan periódicamente.
a) Convertir la fracción decimal 0.333 en fracción binaria. 0.333 * 2 = 0.666 0.666 * 2 = 1.332 0.332 * 2 = 0.664 0.664 * 2 = 1.328 0.328 * 2 = 0.656 0.656 *2 = 1.312 0.312*2 = 0.624 0.624 *2 =1.248 0.248 * 2 = 0.496 0. 496 * 2 = 0. 992
° -333| 0= 0. 0101010 10 0 112
0. 992*2 = 1. 984
0.984 * 2 =1.968
P R I N C I P I O S
con un error inferior a V 1
D E
C O M P U T A C I O N
65
r
R EP RE SE NT A CIO N PE L A IN F O R M A C I O N _________________________________________
b) Ejemplo de conversión de un número decimal con parte entera y fracciona aplicando ¡os dos métodos anteriores. Convertir ei número decimal 350.765625 su equivalente número binario. En primer lugar tomamos por separado la parte entera y la pasamos a binar 350 0
[_2
____
175 \_2
____
I
87 [_2____ I
43 j_2 I
____
21 1_2____ I
10 |_2 ___ 0
5 !_2____ I
2 l_2 0
____
I [_JZ____ I
0
350|O= 1010111 I02
En segundo lugar tomamos la parte fraccionaria y la pasamos a binario. 0.765625 * 2 = 1.53125 0.53125 *2 = 1.0625 0.625*2 = 0.125 0.125*2 = 0.25 0.25 * 2 = 0.5 0.5 * 2 = I 0.76562510= 0.11000 i 2
_________________________________________ RE PR ES EN TA CION DE L A IN F O R M A C IO N " ~|
Por consiguiente, el número decimal 350.765625 es el número binario:
350. 765625,0 = I 0 I 0 MI I 0 . 11000!,
3.8.2 Conversión binario-decimai Método de las sumas de tas potencias de 2. En este caso, se toma e! número binario a convertir y se suman las potencias de 2 correspondientes a las posiciones de todos sus dígitos cuyo valor es I.EI número decimal buscado es !a suma de dichas potencias. Podemos decir que este método es la aplicación directa del teorema fundamen ta! de !a numeración (TFN)
>em,j©í
a) Convertir el numero binario 10 10 i I a decimal.
Número: Potencia de 2: Suma de potencias:
I 0 I 0 I 3216 8 4 2 32 +8 + 2 + I = 4J IG
b) Convertir el número binario l H . 11 í a decimal. I 4
+
I 2 +
P R I N C I P
I . I I I I + 0.5 + 0.25+ O.Í25 = 7,875l0
I O S
D E
C O M
P U T A C I O N
67
[
REPRESENTACION PE LA INFORMACION
3.8.3 Conversión decimai-octal i. M étodo de ias divisiones sucesivas por 8.Se utiiiza para convertir núme ros decimales enteros a octal y consiste en dividir el número y los sucesivos co cientes obtenidos por 8 hasta llegar a una división cuyo cociente sea 0. El numere octal buscado es el compuesto por todos los restos obtenidos, escritos en order inyerso a su obtención. Como puede observarse, este método es similar al métodc de conversión de decimal a binario de las divisiones por 2.
'(Syenvpíe Convertir el número decimal 500 a octal. 500 1 8 — 20 4
62 ! 3 6
7 ¡ 8 7
0
Por ¡o tanto, 500|0= 7648 2. M étodo de ías m ultiplicaciones sucesivas por 8, Se utiliza para pasar ; octal una fracción decimal. Se toma ia fracción decimal y se multiplica por 8, obte niendo en la parte entera del resultado el primer dígito de la fracción octal resul tante, y se repite el proceso con ia parte decima! del resultado para obtener e segundo dígito y sucesivos. El proceso termina cuando desaparece la parte fraccionaria de! resultado o dicha parte fraccionaria es inferior a! error máxime que deseamos obtener S im p le a) Convertir la fracción decimal 0.140625 en fracción octa!. 0 . 140625 * 8 = I .¡25 0.125*8= I Por consiguiente, 0.I40625)0 = 0.1 18 69. P R I N C I P I O S
D E
C O M P U T A C I O N
REPRESENTACION PE LA INFOR MA CION
c
]
Combinando los dos métodos anteriores se pueden convertir números decima les con parte entera y decimal a su equivalente número octal. b) Convertir el número decimal 25.4 a octal. Convertiremos separadamente las partes entera y decimal: 25
| 8
1
3 3
I 8 0
25|0= 31, 0.4 * 8 = 3.2 0.2 * 8 = 1.6 0.6 * 8 - 4.8 0.3 * 8 = 6.4 0.4 * 8 = 3.2 0.2 * 8 = 1.6 0.410= 0.3I46S
El resultado es 25.4|0= 31.3! 46s
3,8.4 Conversión octal-decimal Existen varios métodos, siendo el mas generalizado el indicado por elTFN que hace la conversión de forma directa por medio de la fórmula.
a) Convertir el número octal 764 a decimal.
|
REPRESENTACION DE LA INFORM A CION _______________
b) Convertir el numero octal 222.3 a decimal. 222.3, = 2 * 8l + 2 * 8' + 2 * 8o + 3 * 8'1= = 128 + 16 + 2 + 0.375 = I46.37510
3.8.5 Conversión decimal-hexadecimai I. M étodo de las divisiones sucesivas por 16. Sirve para convertir números decimales enteros a hexadecimal. Se divide el numero decimal y ios cocientes suce sivos por 16 hasta obtener un cociente igual a 0. El numero hexadecimal buscado será ei compuesto por todos los restos obtenidos en orden inverso a su obten ción.
Convertir el número decimal 1994 a tiexadecimal. 1994 I ‘6 10 !24
j 16
12
7
I 16
7
0
Por lo tanto, I994|fl = 7CA|4
2.
M étodo de ias m ultiplicacion es sucesivas po r 16. Este método convier
te números decimales fraccionarios a su correspondiente fracción hexadecimal. U fracción decimal se multiplica por 16, obteniendo en la parte entera del resultado e primer dígito de la fracción hexadecimal buscada, y se repite el proceso con I; parte fraccionaria de este resultado. El proceso se acaba cuando lasarte fraccionari; desaparece o hemos obtenido un número de dígitos suficiente que nos permita nc sobrepasar el máximo error que deseemos obtener. 70
P R I N C I P I O S
D E
C O M P U T A C I O N
REPRESENTACION DE LA INFOR MA CION
j
a) Convertir la fracción decimal 0.06640625 en fracción hexadecimai. 0.06640625 *16 =1.0625 0.0625 * ¡6= 1.0 Tendremos por lo tanto, 0.0664062510= 0.11|S Combinando ios dos métodos anteriores podemos convertir números decima les con parte entera y fraccionaria a hexadecimai.
b) Convertir el numero decimal 25.4 a hexadecimai.
Convertimos por separado las partes entera y decimal del número. 25 |___ 16 9
L_ü o
0.4* 16 = 6.4 0.4 * 16 = 6.4 El resultado es: 25.4,0= 19.6(t
3.8.6 Conversión hexadecimaJ-decimal Existen varios métodos, siendo el más utilizado el que nos ofrece el TFN que nos da el resultado por aplicación directa de la fórmula.
P R I N C I P I O S
D E
C O M P U T A C I O N
71
\ REPRESENTACION DE LA INFO RM A CION
a) Convertir el número hexadecimal 3E8 a decimal. 3E8|é= 3 * I6J + E * 16' + 8 * 16° = = 3 * I62+ 14 * 16' + 8 * 16° = = 768 + 224 + 8 =IOOO¡0 b) Convertir el número hexadecimal A3.1 a decimal. A3.I16= A * I61+ 3 * 16° + I * 16 * = = 10* 16' + 3* 16° + I * 16-' = = 160 + 3 + 0.0625 = 163.0625l0
3.8.7 Conversión hexadecimal-binario Para convertir un número hexadecimal a binario se sustituye cada dígito hexadecimal por su representación binaria con cuatro dígitos según la Tabla 3.2.
a) Convertir el número hexadecimal 2BC a binario.
2 = 0010
B = 1011 C = I 100
Luego: 2BC|4= 101011 1100.
72
P R I N C I P I O S
D E
C O M P U T A C I O N
REPRESENTACION DE LA INFO RM A CIO N
Tabla 3.2 Equivalencia hexadecimal-binario DIGITO HEXA0ECIMAL
DIGITOS BINARIOS
0 1 2 3 4
0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 uoo 1101 1110 1111
5 6 7 8 9 A B C D E F
b) Convertir e! número hexadecimai 7BA3.BC a binario 7 = 01 11
B = 101 I
B = ION
C = 1100
A = 1010
3 = 0011
Luego:7 BA3.B C|4 = 11I 101 I 101 000 I 1.101 I I l 2
3.8,8 Conversión binario-hexadecima! Para convertir números binarios a hexadecimales se realiza un proceso distinto al anterior. Se agrupan los dígitos binarios de 4 en 4 a partir de! punto decimal hacia la izquierda y hacia la derecha, sustituyendo cada cuarteto por su correspondiente dígito hexadecimai. Al ser esta conversión inmediata y sencilla, la codificación de programas en. lenguaje de máquina, empleada en los primeros tiempos de la Informática, se hacia utilizando el sistema hexadecimai en lugar del binario, que es el utilizado por la computadora. P R I N C I P I O S
D E
C O M P U T A C I O N
73
j
REPRESENTACION DE LA INFO RM A CION
♦
'S i m p l e
a) Convertir eí número binario 100101100 a hexadecimal. 0001 _v-~
00 10
1 10 0 " V
Por lo tanto: 100101100,= I2C,6
b) Convertir el número binario I 100101001000.1011011a hexadecimal. 0 00 1 i
1001 ~ V 9~
010 0
1000
ION
v 7~
0110 “ V
Luego tendremos: I 10010 1001000.1011011 = 1948.B6
3.8.9. Conversión octal-binario Para convertir un número octa! a binario se sustituye cada dígito octal por sus correspondientes tres dígitos binarios según te Tabla 3.3. Tabla 3.3 Equivalencia octal-binario
74
P R I N C I P I O S
D E
C O M P U T A C I O N
REPRESENTACION DE LA INFORMACION
a) Convertir e! número octal i 274 a binario. 001 -Vj—
010 "~'V7~
I!I
¡00
Por lo tanto: >2740= 10101 I I ! 002
b) Convertir el número octal 75643.57 a binario.
III
10!
110
100
01!
-y~-
• 101
III
^
~ 'V 5~
Luego tendremos:75643.57. = I I I I 0 I I I 0 I 000 1I . I 0 I I I I
3.8. i 0 Conversión binario-ocíai Para convertir un número binario a octal se realiza un proceso distinto al ante rior. Se agrupan los dígitos binarios de 3 en 3 a partir de! punto decimal hacia la izquierda y hacia la derecha, sustituyendo cada trío de dígitos binarios por su equi valente dígito octal.
a) Convertir el número binario 1010! 11100 en octal. 001
010
I 2 Luego tendremos: 1010 1I I 1002 = 1274g P F I I N C I P I O S
D E
II!
¡00
7
4
C O M P U T A C I O N
75
f REPRESEN TA CIO N PE LA I N F O R M A C I O N ____________________________
b) Convertir el número binario I 10010 1001000.10 1f011 en octal.
001
100
101
00!
0 00
*101
101
100
Portante: ! !00101001000.10 1101 \ = 14510.554^
3.8.1 i Conversión octal-hexadecimal Esta conversión realiza un paso intermedio utilizando el sistema binario. Primero se convierte el número octal en binario y este se pasa a hexadecimal.
3.8.12 Conversión hexadecimai-octal Esta conversión, al igual que la anterior, realiza un paso intermedio utilizando el sistema binario. Se convierte el número hexadecimal en binario y este en octal.
3.9 REPRESENTACIÓN DE NÚMEROS ENTEROS Las computadoras digitales utilizan cuatro métodos para la representación in terna de números enteros positivos y negativos; estos son los siguientes:
Módulo y signo. ✓ Complemento a I. ✓ Complemento a 2. \/ Exceso a la 2"‘'.
En estas representaciones de números se utiliza el sistema binario y se considera, como realmente ocurre, qué cenemos un número limitado de bits para cada dato numérico (generalmente ia cantidad de bits coincide con io que se denomina palabra de la computadora). Este número de bits disponibles io representamos por n. 76
P R I N C I P I O S
D E
C O M P U T A C I O N
REPRESENTACION DE LA INFORM ACION
1
También se pueden representar mediante estos métodos, números reales, como veremos más adelante.
3.9. i Módulo y signo En este sistema de representación, el bit que está situado más a la izquierda representa el signo, y su valor será 0 para el signo + y I para el signo -. El resto de bits (n-l) representan ei módulo del número. Suponemos en principio que los números no poseen parte decimai, por io que la coma se supone implícita a la derecha. Por ejemplo, supongamos que disponemos de 8 bits (n = 8) y queremos repre sentar los números 10 y -10. Veamos cuales son sus representaciones: 10
000 I 0 I 0 A módulo
signo
luego: -10
000 I 0 I 0 signo -
* módulo
Se denomina rango de representación en un método determinado al con junto de números representares en el mismo. Para un móduio y signo el rango de representación es, para n bits:
-2"-' + I < X
< 2"*1- I
Para el caso de n = 8 bits, el rango de representación es: -127 < X < 127
P R I N C I P I O S
D E
C O M P U T A C I O N
77
REPRESENTACION DE LA INFORMACION
Para computadoras de 16 bits, el rango de representación es: -32767 < X < 32767 Para computadoras de 32 bits, el rango de representación es: -2147483647 < X
< 2147483647
La ventaja que presenta este sistema frente a otros es !a de poseer rango simé trico (igual cantidad de números positivos que negativos), mientras que su mayor inconveniente es el de poseer dos representaciones para el número 0. En el caso de n = 8 bits, el 0 tiene las siguientes representaciones: 00000000 10000000
+0 -0
3.9.2Complemento a I Este sistema de representación utiliza el bit de más a la izquierda para el signo, correspondiendo el 0 para el signo + y el I para el signo Para los números posi tivos, los n-l bits de la derecha representan el módulo . El negativo de un número positivo se obtiene complementando todos sus dígitos (cambiando ceros por unos y viceversa) incluido el bit de signo. Vamos, por ejemplo, la representación en complemento a 1de los números 10 y -10 para el caso de n = 8 bits.
10:
0 000 i 0 10
Número -10 se complementa su positivo (10) ,
-10:
I
.
I I I 0I 0 I
Para complemento a I el rango de representación es: -2"-' + I < ......... .. 7 6
V P R I
..... ... .
.............. ......... -
..
N C I P I
O S
X < 2"*' * i .................... .......... DE
.
.... . - -M ....- ..... . . .... — ,
C O M P U T A C I O N
REPRESENTACION DE LA INFORMACION
Para el caso de n = 8 bits, tendremos: -127 < X < 127 En computadoras de 16 bits tendremos: -32767 < X < 32767 En computadoras de 32 bits, ei rango será: -2147483647 < X
< 2147483647
Este sistema de representación posee la ventaja de tener rango simétrico y la desventaja de tener dos representaciones para el valor 0. En el caso de n = 8 bits, estos valores son: +0
00000000
-0
11 1111 11
3.9,3 Complemento a 2 (C-2) Este sistema de representación utiliza el bit de más a la izquierda para el signo, correspondiendo el 0 para el signo + y el I para el signo - . En el caso de los números positivos, los n-l bits de la derecha representan ei módulo . El negativo de un número se obtiene en dos pasos: * Primer paso: Se complementa el número positivo en todos sus bits (cambian do ceros por unos y viceversa), incluido el bit de signo, es decir, se realiza el comple mento a I . •Segundo paso: Al resultado obtenido anteriormente se le suma I (en binario), despreciando ei ultimo acarreo si existe. Veamos la representación en complemento a 2 de los números 10 y -!0 en el caso de 8 bits. P R I N C I P I O S
D E
C O M P U T A C I O N
79
REPRESENTACION DE LA INFORMA CION
000 I 0 I 0
10:
i módulo
signo
- 10:
Primer paso:
I I I0 I0 I
Segundo paso:
I I I0 I0 I +I I
I I I0 I I 0
signo -
módulo
El rango de representación en este caso es asimétrico, lo que representa su mayor inconveniente, y viene dado por ia fórmula: -2"-' < X
< 2"-' - I
Para el caso de n = 8 bits, tendremos: -128 < X < 127 En computadoras de 16 bits tendremos: -32768 < X < 32767 En computadoras de 32 bits, el rango será: -2147483648 < X < 2147483647
80
P R I N C I P I O S
DE
C O M P U T A C I O N
^
í
í
REPRESENTACION OE LA INFO RM ACIO N
La principa! ventaja es la de tener una única representación para el número 0. Veámosla para el caso de n = 8 bits: +0
0
00 00 00 0
Primer paso:
I
1 II 11 1 1
Segundo paso:
I
1 1 i I I ¡1 +1
0
00 00 00 0
-0
Se deprecia
módulo
3.9.4 Exceso a 2"'1 Este método de representación no utiliza ningún bit para el signo, con lo cual todos los bits representan un módulo o valor. Este valor se corresponde con el número representado más el exceso, que para n bits viene dado por 2"*'. Por ejemplo, para n = 8 bits el exceso es de 28'1 = 27= 128, con lo cual ei número 10 vendrá representado por 10 + 128 = 138 (en binario): para el caso de! número -10 tendremos -10 + 128 = 118 (en binario). Veamos cuales son sus representaciones: 10:
100 0 10 10
-10:
0 1 1 10 1 10
En este caso, el 0 tiene una única representación que, para n = 8 bits, se corresponde Número 0 (0 + 128): P R I N C I P I
O S
1 00 0 00 0 0 D E
C O M P U T A C I O N
81
|
REPRESENTACION PE LA INFORMACION
Ei rango de representación en exceso a 2"'1es asimétrico, io que representa un pequeño inconveniente, y viene dado por: -2n-' < X
< 2 - I
Para ei caso de n = 8 bits tendremos: -128
3,9.5 Suma en complemento a ! En ia aritmética de complemento a l.dos números se suman de igual forma que en binario, teniendo en cuenta que si aparece acarreo en la suma parcial de los bits de mas a la izquierda, este acarreo se suma al resultado.
S je m p lo a) Sumar tos números 10 y -3 en complemento a I para n = 8 bits. Las represen taciones de los números 10 y -3 en C-l son:
10: -3:
82
0 0 00 I 0 I 0 I I I I II 00
P R I N C I P I O S
D E
C O M P U T A C I O N
REPRESENTACION DE LA INFORMACION
j
Por lo tanto: 0000 10 10 ............................... 10 + 1 I 1 I I I 0 0 ...........................+ (-3) acarreo —
---
> 10 0 0 0 0 1 10
0 0 0 00 1 i I .................................7 b) Sumar ios números 100/27 en complemento a I para n = 8 bits.
Las representaciones de los números 100 y 27 en O I son: 100 27
0 I I 00 I 00 00 0 I I 0 I 1
Por lo tanto: 0 1 10 0 10 0 ..............................100 +0 0 0 1 I 0. 1 1 0 II
I II
I
...... .. ... I .............
.
.
.
+ 27 127
3.9.6 Suma sn complemento a 2 En la aritmética de complemento a 2, dos números se suman de igual forma que en complemento a I , con la única diferencia de que se desprecia el último acarreo en caso de existir.
a) Sumar los números 10 y -3 en complemento a 2 para n = 3 bits. Las representaciones de los números 10 y -3 en Ca2 son:
!0 -3
000 0 I 0 I 0 I I I I I I0 I
P R I N C I P I O S
D E
C O M P U T A C I O N
83
REPRESENTACION DE LA INFORMACION
Por lo tanto: 0 0 0 0 I 0 I 0 ................................ 10 + 1 í i I I I 0 I ............................. +(-3) I 00000 I I I ................................. 7 El acarreo se desprecia b)Sumar los números 100 y 27 en complemento a 2 para n = 8 bits.
Las representaciones de los números 100 y 27 en C-2 son:
100 27
0 I I 0 0 I 00 0 00 I I 0 I I
Por lo tanto: 0 1 10 0 10 0 ........................... 100 +0001 101 I ............................... +27 0 I I I I I ! I
127
Conviene tener presente que para un número determinado de bits, la suma en Cal y en Ca2 producirá desbordamiento (resultado no representable o fuera de rango) cuando, siendo los dos sumandos del mismo signo,el resultado aparezca con el signo contrario al de los sumandos.
Bit de signo -
error de desbordamiento
v. ¡
84
P R I N C I P I O S
D E
C O M P U T A C I O N I
REPRESENTACION DE LA INFO RM AC ION
[
Al utilizar la computadora métodos de representación interna de datos basa dos en el sistema binario, es conveniente tener presente que en una máquina parti cular disponemos de un número determinado de bits para la representación de un número {generalmente una palabra de 16, 32 o 64 bits); esto hace que los números reales sufran un determinado truncamiento en su parte decimal,También se pre sentan problemas a! utilizar el punto flotante, como veremos mas adelante, debido a que no todos los números tienen representación exacta; por tanto, estos se re presentan de forma aproximada, con lo que aparecen pequeños errores de repre sentación. A esto se le denomina precisión finita de la información numérica. Podemos definir el término palabra como la cantidad de bits con la que una computadora esta capacitada para realizar operaciones internas. Esta cantidad que da definida para cada computadora desde el diseño por su propio fabricante, siendo en la actualidad los tamaños mas extendidos los de 16, 32 y 64 bits.
3.10 REPRESENTACION EN PUNTO FLOTANTE La representación en punto flotante se utiliza para representar números reales o enteros muy grandes o muy pequeños. Esto genera una disminución en el grado de precisión de los números represen tados. Para representar se utiliza la notación científica o exponencial matemática en la que una cantidad tiene el siguiente formato: Número = mantisa * base exs>on"!,;* En su forma normalizada, la mantisa no tiene parte entera y el primer dígito significativo después de la coma o punto decimal debe ser distinto de cero a excep ción de la representación del cero.
a) Representar el número 478.6(0. 478.6 = 0.4786* I03 b) Representar el número 0.00058210: 0.000582 = 0.582* ¡0 :! P R I N C I P I O S
D E
C O
M P U T A C I O N
- 85
1
REPRESENTACION DE LA INFORMA CION
Existen muchas formas de representar un número en punto flotante , pero !as nás utilizadas son las de precisión simple (con 32 bits) y precisión dobie (con 64 iits): Vecisión simple: SIGNO
EXPONENTE
30
3!
MANTISA
23
22
32 bits Precisión doble: SIGNO
63
MANTISA
EXPONEN TE
62
55
54
64 bits El exponente se representa en excpso 128, siendo siempre un número entero. La mantisa es un número real con el punto decimal implícito a la izquierda de sus bits y se puede representar en módulo y signo, en complemento a I o en complemento a 2. E! signo adopta ia forma convencional: i negativo y 0 positivo.
Representar en formato de punto flotante precisión simple el número 12: I2|0 = I 1002 se convierte el número a binario 11002= 0.1100 * I0 l00se cambia a la notación normalizada (en decimal = 0.75*2'’) 0.1100 * 10100= 0. i 100 * I O10000100se excede el exponente en 128 0000 I 00
Signo
I 100 0000 000 0 0000 00 00 000
Exponente
Mantisa 32 bits
U
P R I N C I P I O S
D E
C O M P U T A C I O N
«
t
r
REPRESENTACION DE LA INFOR MA CION
L..
|
3.11REPRESENTACIÓN INTERNA DE DATOS: CODIFICACION ALFANUMERICA Los datos e informaciones que se manejan internamente en un sistema informático se pueden representar, según sus características, de las siguientes formas: A Códigos aifanu m ériccs Una computadora puede trabajar internamente con un conjunto de caracteres que nos permitirán manejar datos, informaciones, instrucciones, órdenes de con trol, etc. Este conjunto de caracteres podemos subdmdirio en los siguientes gru pos: A Caracteres alfabéticos. •Letras mayúsculas. Son ¡as letras de la A a la Z (sin la Ñ). •Letras minúsculas. Son las letras de la a a la z (sin la ñ). A Cifras decimales. Son los números 0, 1,2,3,4,5,6,7,8 y 9. A Caracteres especiales. •Caracteres. Son el punto (.), la coma (,),el punto y coma (;), el asterisco (*), etc. •Ordenes de control. Son NUL, CR.ACK, etc. En general, cada caracter se maneja internamente en una computadora por medio de un conjunto de 8 bits mediante un sistema de codificación binario que denomi naremos código de caracteres. Cada computadora tiene su código de caracteres definidos por el fabricante, si bien la mayoría de ellos adaptan a sus equipos códigos estándar de los ya estableci dos. En estos códigos se representa cada caracter por medio de un byte (8 bits), con lo cual todo tipo de informaciones pueden ser utilizadas internamente.forman do cadenas de bytes sucesivos que representaran cadenas de caracteres para que la máquina las maneje e interprete. Con e! nacimiento de los lengua; 2S do programación de alto nivel comenzaron a utilizarse códigos de 7 bits Un ejemplo muy utilizado de este tipo de códigos es el ASCII (American Standard Code for information Interchange) de 7 bits . P R
I N C I P I O S
D E
C O M P U
T A C I O N
87
1 REPRESENTACION DE LA INFORMACION
Hoy día los códigos más utilizados son ¡os de 8 bits.de los cuales los más cono cidos son el EBCDIC (Extended Binary Coded Decimal Interchange Code) y el ASCII extendido. La Tabla 3.4 representa el código ASCII extendido a 8 bits y la Tabla 3.5 representa el código EBCDIC. Tabla 3.4 Código ASCII extendido 7854 3210 83CG G5S1 seio «¡11 0¡00 «101 0111 0111 1060 1061 1010 1011 1100 1101 1110 1111 ÍÍTS
0000 00C1 0010 0011 0100
DLE SP SOH DCi i STX DC2 •• ETX DC 3 # EOT D C 4 s NUL
0101 EN Q 0110 A C K 01) 1 1000 SS 1001 1010 i G il VT 1100 1101 CR U10 SO
NAK SYN
BEL ETB
3 4
%
S
&
6
(
7 8
c D E F G H
HT ) 9 I LF SUB • J ESC + K FF FS < L GS M N RS > US SI / O
1111
EM
't
NUL SOH STX ETX EQT
p
P
R s
a b c
T U
d c
u
8
w
i
y z ( 1
tn n 0
)
Q
V w
X Y Z
[ \ J »
-
f
h i k 1
q r s
i V
X
D EL
Nu il (carácter nulo). Start of heading (comienzo de
EN0
cabecera).
ACK
Ac kn ow ledg e (reconocimiento de
BEL
Bell (señal audible, timbre o alar-
BS DC4
Bu ckspace (retroceso).
LF VT FF CR SO SI DLE DCI DC2 0C 3
Start o f texl (comienzo de lexlo). En d o f te xl (final de texto). End o f tra ns mission (fin de trans-
transmisión).
misión). ción horizontal). Une feed (avance de línea) Vertical tabulation (tabulación vertical). Forrr, fe e d (avance de página). Carriage return (retomo de carro). Shift out (quitar despiazador de bits). Shift in (poner despiazador de bits). Da ta link escape (escape de enlace de datos). De vice co ntro l 1 (control de dispositivo i) . Dev ice co ntro l 2 (control de dispositivo 2). De vice co ntro l 3 (control de dispositivo 3).
P R I N C I P I O S
Enquir y (petición de transmisión).
H ori zo nta l ta b u lit io n ( T a b u l a -
HT
88
CAN
0 e 1 A 2 B
NAX
ma).
Dev ice con tr ol 4 icontrol de dispositivo 4).
Neg alive ac kn ow le dg e (transmisión negativa).
SYN ETB CAN EM SUB ESC FS GS BS US DEL
D E
Synchror.oas idle (espera síncrona). End o f tr ans m is si on bl oc k (fin bloque de transmisión). Cancel (Cancelar). End o f méd ium (final del medio). Substitute (sustitución). Es cap e (escape). File se pa ra to r (separador de archivos). Group separator (separador de grupos). Re cor d se par at or (separador de registros). ~Ur.it se par ator (separador de unidades). Delele (borrar).
C O M P U T A C I O N
c
REPRESENTACION DE LA INFORMACION Tabia 3.5 Código EBCDIC BITS 7654 3210 0000 0000 0001 0010 0011 0100 0101 0110 0111 1000 100! 1010 1011 i 100 1101 U10 (111
NUL SOH STX ETX PF HT LC DE L
0001
0016 0011
DLE DS DC I SOS DC2 FS SYN DC3 RES BYP PN NL LF RS BS EOB uc IL ESC EOT
0100 SP
0101
&
0110 0111
a b c
d e f
CAN
RL F
SMM
EM CC
\
SM
c
VT FF CR SO
ÍF S IG S 1RS
D C4 ENQ N A K ACK
S!
IU S
BEL
SUB
< í -
1
)
s • % ) > 7
P R I N C I P I O S
g h i
D E
1010
-
1011
1100
[
1101
1110
1111
)
\
0 I 2
A B
J K
n' V o w
D E F
M
P q r
G H 1
j
k
s
1
t
m
u
X
y z
c
L
N O P
Q R
S T
U V w X
Y Z
3
4
5
6 7 8 9
# $ *
CC IFS IGS IRS IUS OS SOS FS BYP LF EOB ESC SM ENQ ACK BEL SYN PN RS UC EOT DC4 NAK SUB SP
NUL Nuil. Start o f heading . SOH Start o f Text. STX End o fT ext ETX Punch Off. PF Horizo ntal Tabulalion . HT Lo wer Case. LC Dele ie. DEL Reserve Une Feed. RLF Starf o f Manual Message. SMM Vertical Tabula (ion. VT Form Feed. FF Carriage R etum. CR Sh'tfi Out. SO Shift //«. Si Data Lin k Escape. OLE Device Control 1. DCI DC2 De vice Control 2. Device Control 3. 0C3 RES Restore. NL New Line, BS Backspace. IL Idle. CAN Cancel. EM End o f Médium.
i
1000 1001
Cursor Control. ¡mer chan te File Separator. ¡nterchange Group Separator. Interchan ge Rec or d Separa tor. ¡nterchange Unil Separator. Digit Selee t. Start o f Signtftcance. Field Separator. Bxpass. Line Feed. End o f Black. Escape Set Mode. Enquiry. Ackno wledg e. Bell. Synckronous lule. Punch On. Read er Stop. Upper Case. End o f Transmission. Device Co ntrol 4. Nega tive Ack no wledg e. Substitute. Space.
C O M P U T A C I O N
69
REPRESENTACION DE LA INFORMACION
C3v4esfcía7vartc I. 1 3. 4.
¿En qué sistema deben basarse los códigos internos que nos permiten utilizar y manejar datos en una computadora? ¿Por qué motivo? Explique brevemente que es un sistema de numeración. Comente brevemente ías características y diferencias de los sistemas binario, decimal, octai y hexadecimal. Complete ei siguiente cuadro: BINARIO
OCTAL
DECIMAL
HEXADECIMAL
1011.00111 732,154 925,326 2F4.AC8
5. 4 7. & 9.
10
Para que sirve !a fórmula ofrecida por elTFN ? Enuncie los múltiplos y equivalencias que posee el dígito binario (bit). ¿Qué es una conversión entre dos sistemas de numeración? . ¿Qué códigos binarios utiliza una computadora para la representación de números? Realice en complemento al y en complemento a 2 las siguientes operaciones utilizando un formato de un byte: a) 63-45 b) 45-63 c) 45+63 d) -45-63 ¿Qué códigos binarios utiliza una computadora para la representación de caracteres?
CAPITULO IV
Arquitectura del computador 4J INTRODUCCION El elemento hardware de un sistema básico de proceso de datos se puede es tructurar en tres partes claramente diferenciadas en cuanto a sus funciones: la unidad central de proceso, la memoria central y las unidades de entrada/salida o periféricos. Algunos autores consideran la memoria principal como una parte rñas de ia unidad central de proceso debido a su proximidad física y a su fuerte ¡nterreiación; no obstante, para su estudio conviene separarlas por sus características y funciones bien diferentes. Se completa el esquema básico de una computadora con el bus del sistema y los controladores. Estos últimos son procesadores especializados en las operaciones de entrada^salida y el bus es un canal de comunicación entre todas las unidades (Figura 4.1).
UCr
Mr
X UCP: Unidad central da proceso MC: Memoria principal
BUS DEL SISTEMA
C: Controlador
Figura 4.1Unidades funcionales. P R I N C I P I O S
D G
C O M P U T A C I O N
91
(
[ ARQUITECTURA DEL COMPUTADOR
4.2 LA MEMORIA La memoria principa!, es la unidad donde están almacenadas las instrucciones y los datos necesarios para poder realizar un determinado proceso. Esta constituida por multitud de ceidas o posiciones de memoria, numeradas de forma conse cutiva, capaces de retener, mientras la computadora este conectada, la información depositada en eila. Cada posición contiene una cantidad fija de bits, constante a lo iargo de !a me moria denominada longitud de posición. Cada posición tiene una dirección que la identifica. Para 2" posiciones se necesi tan n dígitos de direccionamiento para poder darle una dirección distinta a cada una. La dirección permite localizar las distintas posiciones de la misma manera que ¡as casas de una ciudad tienen direcciones para ser localizadas. En ei siguiente ejemplo vemos cómo estaría organizada una memoria de 65535 posiciones (Figura 4.2).
0000 0001 0002 0003 0004
5 F 3 A A 6 0 9 3 C —' " 'Z 5 B Q 8 2 7
y
2n = 65536 = 21S
=64k
■
FFFD FFFE FFFF
n = 16
Figura 4.2 Organización de la memoria. En el ejemplo anterior los valores binarios están escritos en hexadecimai. Existe una diferencia importante entre la dirección de una posición y el conteni do. En nuestro ejemplo tenemos una longitud de posición de 8 bits (2 dígitos hexadecimales) y 16 "bits de direccionamiento (4 d^itoi hexadecimales). Volviendo al ejemplo de la figuraremos que para la dirección 0001 ei contenido almacenado es 3A, el cual representara un dato o una instrucción. 92
P R I N C I P t O S
D E
C O M P U T A C I O N
1
1
t
La capacidad de ia memoria principal esta dada por !a cantidad de posiciones multiplicada por ia longitud de las mismas expresadas en bits o en bytes.
_______________________________________ ARQUITECTURA DEL COMPUTADOR
]
En el ejempio de la figura 4.2 la capacidad será de 65536 x 8 bits lo cuai equivale a 64k bytes. No hay que confundir ios términos ceida o posición de memoria con ei de palabra de computadora, ya que esta ultima es la cantidad de información que puede introducirse o extraerse de ia memoria centrai de una sola vez (simultánea mente). Ei tamaño habitual de ¡a palabra de las computadoras actuaies sueie ser de I 6, 32 o 64 bits. La memoria central tiene asociados dos registros para ia realización de operaciones de lectura o escritura y un dispositivo encargado de seleccionar una celda de memoria en cada operación de acceso a ia misma: •Registro de dirección de memoria (RDM). •Registro de intercambio de memoria (RIM). •Decodificador Je memoria (DECO ). •Registro de Dirección de Memoria (RDM).Antes de la realización de una operación de lectura o escritura se ha de colocar en este registro la dirección de la celda que se va a utilizar en la operación, bien para grabar en ella o para extraer de la misma el dato correspondiente.
P R I N C I P I O S
D E
C O M P U T A C I O N
93
ARQUITECTURA DEL COMPUTADOR •R egistro de Intercam bio de M em oria (RIM). S¡ se trata de una operación le lectura de memoria, este registro es el que recibe el dato de la memoria señála
lo por el RDM para su envío por medio del bus del sistema a la unidad que lo equiere. Si se trata de una operación de escritura en memoria, la información que lay que grabar, procedente de cualquiera unidad funcional.es depositada por medio ie! bus en el RIM para que desde el se transfiera a la posición de memoria indicada >or el RDM. • Decodificador de M em oria (DECO). Este dispositivo se activa cada vez
que se produce una orden de lectura o escritura, conectando la celda de memoria, cuya dirección figura en ei RDM, con ei RIM y posibilitando la transferencia de los datos en un sentido o en otro. La unidad de información mínima manejable por una computadora es el conjun to de 8 bits o byte. La capacidad de la memoria o cantidad máxima de información que es capaz de almacenar se mide en múltiplos de esta unidad (como ya se comen tó en el Capitulo 3): Kilobyte = Megabyte = Gigabyte = Terabyte =
1.024 bytes 1.024 Kbytes 1.024 Mbytes i .024 Gbytes
£r una computadora personal a la memoria principal se ie suele denominar RAM (Randorr. Access Memory) y las capacidades actualmente en el mercado varían de forma considerable. Estas capacidades van aumentándose día a día de forma vertiginosa debido principalmente al abaratamiento constante de ios chips de me moria, ai aumento de la velocidad de acceso y a la creación de nuevos sistemas operativos capaces de manejar memorias de capacidad cada vez mayor. Por otra parte, aunque ia capacidad reai de ¡a memoria centra! es reducida, se ha conseguida que, desde el punto de vista de su funcionamiento, esta capacidad sea mucho mayor que la real, prácticamente ilimitada, mediante lo que se denomina memoria virtual. Esta memoria virtual usa la memoria secundaria para expandir la memoria principal mediante un procedimiento llamado paginación consistente en transferir trozos o paginas de la memoria secundaria a la central cuando son necesarios e intercambiarlos por otros según las necesidades de cada momento. De esta forma se consigue que toda la información almacenada en la memoria secundaria este a disposición de la UCP como si residiera en la memoria principal y que se puedan procesar programas cuyo tamaño excede de ia capacidad real de la memoria principal. 94
P R I N C I P I O S
D E
C O M P U T A C I O N
ARQUITECT URA DEL DEL COMPUTADOR
\
4.2. .2. ¡ Pala Palabr braa de memoria memoria La capacidad de almacenamiento de una posición es una característica física de ia computadora. Los fabricantes han utilizado distintos enfoques de diseño. Cuando analizamos la representación de la información vimos que un carácter en código ASCII o EBCDIC tenia una longitud de un byte. Uno de los métodos utilizados consiste en que la memoria principal almacene un numero fijo de caracteres en cada posición. Estos caracteres se tratan como una sola entidad, ¡a cual se denomina palabra de memoria. Las maquinas diseñadas para almacenar un numero fijo de caracteres en cada posición posición se denominan de “ direccionamiento por palabra” palabra” o de almacenamiento almacenamiento de longitud de palabra fija. Otro método es el que organiza la memoria de forma tal que cada posición almacene un solo carácter. Esta Estass máquinas máquinas se se denominan de “ direccionam direcciona m iento por cara ca ract ctee r” o almacenamiento de longitud de palabra variable. En la figura a continuación se puede apreciar la diferencia entre palabra fija y palabra variable (Figura 4.4).
1- PA PALAB LABR RA FI J A
2- PA PALAB LABR RA VARI ABLE
MEMO EMORIA RIA PR IN CIPA CI PA L
MEMOR EMORIA IA PRIN CIPAL CIP AL
001A
001A
P
ooia
£
ooic
»
001D
e
001E
z
001F
s
0020
2
0021
5
0Q22
0
—— —
PERE PE REZ Z
O O I B --------- S 250 pa la br as de lo ng it ud fija de ocho caracteres cada una
p a l a b r a d e c i n co c a r a c t e r e s que ocupa cinco p o s i c i o n e s d e memoria
p a l a b r a d e c u a tro caracteres que ocupa cua tro posiciones de memoria
Figura 4.4 Palabra fija y palabra variable P R I N C I P I O S
D E
C O M P U T
A C I O N
95
L
a r Q u ’T ’ T E C T U « A d e l c o m pu p u t a d o r _________ _ _______________ __________ _________ _________ j
Las computadoras de palabra variable utilizan en forma más eficiente !a memo ria disponible, pues colocan un caracter por posición. En una computadora de palabra fija, si esta es de, por ejemplo, ocho caracteres y se necesita almacenar una palabra de cuatro caracteres, s« desperdiciara la mitad de la posición. Las máquinas de palabra fija son más rápidas para realizar cálculos, pues pueden sumar dos palabras en una sola operación. Por ejemplo, para sumar dos números de ocho dígitos en una máquina de palabra fija de ocho caracteres se necesitaría una sola operación, mientras que en una máquina de palabra variable, al tener que sumar un dígito en cada operación de maquina, se necesitan ocho operaciones. Las computadoras grandes y modernas utilizan palabra fija, lo que ¡es da grandes velocidades de cálculo. Las computadoras personales son maquinas de palabra variable.
4.2.2 Componentes de !a memoria principa! Todas ¡as computadoras que se fabrican en ¡a actualidad utilizan semiconductores a base de silicio. Los elementos semiconductores de la memoria principa! son pequeños circui tos integrados integrados a base de pastillas pastillas de silicio. A estas componente componentess de almacenamiento almacenamiento se la* denomina memorias de acceso aleatorio o RAM (Random Access Memory) debido a que puede elegirse a! azar cualesquiera de las posiciones de la pastilla y emplearse para almacenar y leer ios datos e instrucciones en forma directa. El número de bits que se pueden almacenar en una pastilla de silicio se ha cuadruplicado cada tres anos; esto trajo aparejado una reducción a la mitad dei costo por bit en el mismo periodo. En !a actualidad las pastillas llegan a almacenar 256 Kbytes, 1Megabyte e incluso se están desarrollando capacidades que ¡legan a 64 Megabytes. Para tener una idea aproximada aproximada de esto, esto, en entraría trarían n 15 000 transisto tran sistores res en ia punta punta de un cabello cabello huma huma no. Además de la memoria principal, las computadoras actuales cuentan con ele mentos de almacenamiento especializado. Así se utiliza utiliza una una memoria de alta velocidad velocidad llamada llamada memoria memoria CA C A C H E que es es más rápida y cara comparándola con la memoria principal. La memoria C A C H E almacena almacena temporalmente datos datos e instrucci instrucciones ones con alta alta probabilidad de utilizarse muchas veces durante el procesamiento. 96 .
P R I N C I P I O S
D E
C O M P U T A C I O N I
O H P U T A D O R 1 [____ [______ ____ ____ ____ ____ ____ _____ _____ ____ ____ ____ ____ ____ ____ ____ _____ _____ ____ ____ ____ ____ ____ ____ ____ ____ _____ _____A __A R Q U IT E C T U R A D E L C
Antiguamente la memoria CACHE se utilizaba sólo en equipos grandes, pero en la actualidad se emplea también en las computadoras personales. La memoria CACHE actúa como memoria intermedia entre la unidad de con trol de la unidad central de proceso y la memoria principal. Las funciones fundamentales de la computadora se llevan a cabo mediante cir cuitos permanentes. Estos circuitos operan en base a instrucciones de programas especiales llamados microprogramas, pues operan a nivel de la máquina. Los microprogramas se conservan en general dentro de pastillas de almacenamiento llamadas memorias de sólo lectura ROM (Read Only Memory). A diferencia de las RAM, que pierden la información cuando se interrumpe la corriente, las pastillas ROM conservan siempre la información almacenada. La ROM no aceptara la introducción de datos o instrucciones por parte de los usuarios de la computadora. El tipo más sencillo de pastilla ROM viene incluido en la computadora desde su fabricación como parte del sistema y no puede ser modi ficado ni alterado por ¡os usuario;. En resumen, la memoria principal está compuesta por dos ciases de memorias-, de acceso directo: RAM y ROM. La RAM RAM es una una memoria memoria de escritura-lectura escritura-lectura cuyas cuyas posiciones posiciones pueden pueden ser ser escr escri i tas y leidas cuantas veces se quiera por el usuario. La ROM es una memoria de sólo lectura cuyas posiciones fueron escritas por el fabricante. Así a nivel del usuario lo más importante es la capacidad de RAM disponibles, pues es el lugar de trabajo real desde el punto de vísta de las aplicaciones.
4,3 LA UNIDAD CEN CENTRAL TRAL DE PROCESO La unidad central de proceso (UCP) o procesador central es el verdadero cere bro de la computadora. Su misión consiste en controlar y coordinar o realizar todas las operaciones del sistema. Para ello extrae, una a una, las instrucciones dei programa que se tiene alojado en la memoria central, las analiza y emite las órdenes necesarias para su completa realización. P R I N C I P I
OS
DE
C O M P U T A C I O N
97¿
•' -•i*V*3 *3 Í
f
a r q u it e c t u r a
d el
c o m pu t a d o r
Físicamente esta formada por circuitos de naturaleza electrónica que en una microcomputadora se encuentran integrados en una pastilla o chip denominada microprocesador (Figura 4.5).
Figura 4.5 Microprocesador. En la actualidad ¡os microp mic roproc rocesa esado dores res mas mas cono conocid cidos os son la la familia pentium de Intel y el power pe de Motorola, usados en las computadoras personales de IBM y Macintosh, respectivamente. La unidad central de proceso esta compuesta por las dos siguientes unidades: •La unidad de control (UC). •La unidad aritmético-lógica (UAL).
___
_
También incorpora un cierto numero de registros rápidos (pequeñas unidades de memoria) de propósito especial que son utiiizados internamente por la misma. En la Figura 4.6 aparece una placa base de microcomputadora en la que esta ubicada la UCP.
Figura 4.6 Placa base de una microcomputadora. 93
P R I N C I P I O S
D E
C O M P U T A C I O N
A R Q U I T E C T U R A D EL C O M P U T A D O R
4.3.1 Unidad de controi (UC) Es el centro nervioso de la computadora, ya aue desde ella se controlan y go biernan todas las operaciones. Para realizar su función, consta de ios siguientes elementos (Figura 4.7): •C ontador de p rogram a (CP), contiene la dirección de la posición de me moria donde se encuentra almacenada la siguiente instrucción a ejecutar.AI iniciar la ejecución de un programa toma la dirección de su primera instrucción Incrementa su vaior en uno. de forma automatica, cada vez que se concluye una instrucción, salvo si la instrucción que se esta ejecutando es de salto o de ruptura de secuencia, en cuyo caso el CP tomara la dirección de la instrucción que se tenga que ejecutar a continuación; esta dirección esta en la propia instrucción en curso. •Registro de instrucción (Rl). Contiene ¡a instrucción que se esta ejecutan do en cada momento. Esta instrucción llevara consigo el código de operación (C O ) y en su caso los operandos o las direcciones de memoria de los mismos. • D ecodiíicador (D). Se encarga de extraer el código de operación de la ins trucción en curso (que esta en ei Rl), lo analiza y emite las señales necesarias al resto de elementos para su ejecución a través del secuenciador. •Reloj (R). Proporciona una sucesión de impulsos eléctricos o ciclos a interva los constantes (frecuencia constante), que marcan los instantes en que han de co menzar les distintos pasos de que consta cada instrucción. El microprocesador pentium de Intel utiliza una frecuencia de reloj de 500MHz (megahertz), es decir, 500 millones de pulsos de reloj por segundo. •Secuenciador (S). En este dispositivo se generan órdenes muy elementales (microórdenes) que, sincronizadas por los impulsas del reloj, hacen que se vaya ejecutando poco a poco la instrucción que esta cargada en ei Rl.
P R I N C I P I O S
D e
C O M P U T A C I O N
99
|
ARQ UITECTU RA DEL COMPUTADOR
4.3.2 Unidad aritmetico-iogica (UAL) Esta unidad es la encargada de realizar las operaciones elementales de tipo arit mético (sumas, restas, productos y divisiones) y de tipo lógico (comparaciones). Para comunicarse con las otras unidades funcionales utiliza el denominado bus de datos y para realizar su función necesita de los siguientes registros asociados (Figu ra 4.8).
• Reg istro de entrada (REN). En ellos se almacenan los datos u operandos que intervienen en una instrucción antes de la realización de la operación en la UAL
ACUMULADOR
I UNIOAÜ ARITMETICA LOGICA
RPE *
\ \
/
i n /
MICROÓROENES
L-
j !
A
=
*
\ \
s
s
REN 2
P.EM i
T
T 1
1
BUS
Figura 4.8 Unidad aritmetico-iogica. También se emplean para el almacenamiento de resultados intermedios o fina les de las operaciones respectivas. * Registro acum ulador (RA).Almacena los resultados de las operaciones Ne vadas a cabo por la U A L Esta conectado con los registros de entrada para realimentación en el caso de operaciones encadenadas. Asimismo, tiene una co nexión directa ai bus de datos para el envío de los resultados a la memoria principal o a la unidad de control. 100
P R I N C I P I O S
D E
C O M P U T A C I O N
[___________________________________________________AR Q U IT E C T U R A D E L C O M P U T A D O R
j
• Registro de palabra de estado (RPE).Aimacena un conjunto de bits indica dores en los que se deja constancia de algunas condiciones que se dieron en la ultima operación realizada por la UAL y que habrán de ser tenidas en cuenta en operaciones posteriores.
4.4 VELOCIDAD DE LA COMPUTADORA En cada ejecución de una instrucción la unidad de control ordena a las unidades que intervienen que hacer y cuando hacerlo. Por ser la computadora un sistema secuencia!, (as órdenes dadas deben coinci dir con una serie de referencias temporales dadas por impulsos eléctricos enviados por el reloj interno o temporizador que tiene la unidad central de proceso. Estos impulsos eléctricos son enviados por millones a intervalos regulares cada segundo (Figura 4.9),
HELOJINTERNO
SECUENCIADOR
-- -- - .........
Figura 4.9 Impulsos eléctricos Las órdenes se interpretan y ejecutan en intervalos apropiados, ios cuales duran un numero especifico de estos impulsos.Asi la frecuencia de reloi esta relacionada con el numero de impulsos producidos por segundo. Esta frecuencia se mide en Megahertz (Mhz) donde mega significa “ millón” y hertz indica ciclos o impulsos binarios por segundo (Figura 4.10). Una mayor frecuencia de reloj no significa necesariamente más velocidad. De pende de la tecnología empleada. La velocidad de una computadora esta dada por la cantidad de instrucciones que se pueden ejecutar por unidad de tiempo y la unidad es el MIPS (millones de instrucciones por segundo). En la actualidad los pentium lil corren a 600 Mhz y llegarán a pasar los 700 Mhz. La '■'ersión más económica celeror corre a 500 Mhz y treparán a 600 Mhz. El athlon de AMD de similares características que el pentium 111funciona arriba de los 600 Mhz. P R I N C I P I O S
D E
C O M P U T A C I O N
¡C]
j A R Q U I T E C T U R A D E L C O M P U T A DO R ENERGIA (Impulsos eléctricas binarias)
f
TIEMPO
Figura 4.I0
impulsos binarios.
Los procesadores de 64 bits como el merced de Inte! corre a 800 Mhz al igual que el maje de Sun Microsystem, especialmente diseñados para imagen y sonido.
4.5 EL BUS DEL SISTEMA Se denomina bus del sistema al conjunto de circuitos encargados de la conexión y comunicación entre la U CP y el resto de unidades de la computadora (Figura 4.I I).
UCP
MP
Trm f ‘Tn r if
BUS 0E CONTROL (Btdireccional) BUS 0E ERECCIONES (Unidireccional) BUS DE DATOS (Bidireccionat)
Figura 4. i f Bus del sistema. Para eiio utiliza un conjunto de variar lineas eléctricas que permiten la transmi sión de los datos en paralelo. Un bus transfiere simultáneamente una cantidad de bits entre dos unidades cualquiera. !f!2
P
R I N C I P I O S
D E
C O M P U T A C I O N
A R Q U I T E C T U R A DfcL C O M P U T A D O R
j
Además de las líneas del bus de datos, consta de otras líneas especializadas en las funciones que se indican a continuación: •bus de controí. Mediante ellas se transmiten las órdenes procedentes de la unidad de control a las oti"as unidades. •bus de direcciones. Contienen la dirección del destino a! que van dirigidos los datos que se están transmitiendo por las lineas de datos.
------------------------------------------- Oue5¿ta>v<3rt3
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Dibuje el esquema de las unidades funcionales de una computadora. ¿De qué se compone una unidad central de proceso? ¿Cuál es la función de la unidad de control? ¿Cuál es la función de la unidad aritmético-lógica? ¿Cuá! es la función de la memoria principal ? ;Cüá! e~ h mir'ón dei reíoj interno de una computadora? ¿Que es una palabra de memoria? ¿Cómo esta compuesto el bus dei sistema? ¿Dónde figura la dirección de la siguiente instrucción que hay que ejecutar en la unidad central de proceso? ¿Para qué sirven los indicadores de estado? ¿Cuál es la misión del secuenciador?
P R I N C I P I O S
D E
C O M P U T A C I O N 1 0 3
CAPITULO V
Ejecución de instrucciones 5.1 LAS INSTRUCCIONES Las instrucciones que es capaz de ejecutar ia UCP se denominan instruccio nes de m áquina. E¡ lenguaje que se utiliza para su codificación es e! lenguaje de máquina y, de acuerdo con su función, se clasifican como sigue: •Instrucciones de cálculo (aritmético y lógico) * instrucciones de transferencia de datos •Instrucciones de ruptura de secuencia * Etcétera. Una segunda clasificación de las instrucciones de máquina hace referencia a su formato y a! número de operandos que intervienen en ella', teniendo en cuenta que todas tienen en primer lugar lo que llamamos código de operación (CO), que indica que operación se debe realizar por el procesador y, además, ¡os operandos, relativos a los datos, que son necesarios para realizar su misión.
5.1.1 instrucciones de tres operandos También se denominan instrucciones de tres direcciones. Constan en pri mer lugar de código de operación al que siguen tres operandos, de los cuales los dos primeros son las direcciones de los argumentos que hay que operar y el terce ro es la dirección donde se deoositara el resultado. Este formato de instrucción e* el más cómodo de trabajar pero es e! que precisa mayor número de bits (Figura 5.1). P R I N C I P I O S
D E
C O M P U T A C I O N
¡05
EJECUCION DE INSTRUCCIONES
Figura 5.1instrucción de tres operandos.
5.1.2 Instrucciones de dos operandos Contiene eí código de operación y dos operandos.de los que uno de ellos actúa, además, como receptor del resultado de la operación.También se denominan ins trucciones de dos direcciones (Figura 5.2).
A c u m u lad o
ry Registro de instrucción C ó d ig o op e ra ci ón
UAL
O p e n .r 'd o 1 ¡ O p e ra n d o 2
yv REN 1 --
1—
REN 2
Figura 5.2 instrucción de dos operandos.
5.I.3 Instrucciones de un operando También denominadas instrucciones de una dirección, se utilizan general mente en máquinas cuya arquitectura funciona con filosofía de acum ulador. 106
P R I N C I P I O S
D E
C O M P U T A C I O N
i L t
£)ECUCIOH DE iNSTRUCCIONES
El acumulador de ¡a UAL contiene previamente el primer argumento de la ope ración, e! segundo es e! contenido en 1a propia instrucción, / después de ser opera dos ambos por ¡a UAL, el resultado queda depositado de nuevo en el acumulador (Figura 5.3).
Figura 5.3 Instrucción de un operando.
3.5.4 instrucciones sin operandos También denominadas instrucciones sin dirección, se utilizan generalmente en computadoras cuya arquitectura tiene filosofía de piia. Una piia esta formada por datos almacenados en orden consecutivo en la me moria, existiendo un registro especial, denominado puntero de piia, que nos indi ca la dirección del ultimo dato introducido en ella. Cuando se saca un dato de la misma, el puntero de la pila decrece apuntando al dato que esta a continuación en la pila, hacia lo que llamaremos fondo de la misma y que será aquel dato que se introdujo en primer lugar. Cuando se trata de introducir un dato en ella, el puntero toma la dirección de memoria siguiente en orden ascendente y se introduce en dicha dirección. Estas instrucciones sólo llevan código de operación, de tal forma que cuando se trata de una operación de cálculo, se sacan los operandos de la pila (previamente introducidos) y el resultado se introduce en ella (Figura 5.4). Una computadora en su lenguaje de máquina puede tener instrucciones de varios de los tipos expuestos según sea su arquitectura.
P R I N C I P I O S
D E
C O M P U T A C I O N
107
1
I
EJECU CION OH INSTRUC CIONES ¡ Acumulador
-
-
----------------------
R mslrucción Código operación
Direcc. Resull. Operando 2 Operando 1
REN 1
i
i
¡|
Pila
' T Puniera de U — Pila
R£N2
i
Figura 5.4 instrucción sin operando.
5.2 MODOS DE DIRECCIONAMIENTO E! modo de direccionamíento de una instrucción es e¡ método que se utiliza en la misma para indicar la posición de memoria en que esta situado el dato o datos que constituyen los operandos intervinientes en la instrucción. Los principales mo dos de direccionamiento utilizados en los lenguajes maquina actuales son ¡os si guientes: Direccionamiento Direccionamiento Direccionamiento •o Direccionamiento
inmediato directo indirecto relativo
• D irec cio nam ien to inm ediato. En este modo el dato que hay que utilizar forma parte de !a propia instrucción, .no siendo necesario ningún acceso a memoria para la realización de la misma (Figura 5.5).
DATO
CODIGO DE OPERACION Figura 5.5 instrucción con direccionamiento inmediato.
• D irec cio nam ien to directo. En este caso la instrucción contiene la direc ción de Ja posición de memoria donde se encuentra almacenado el dato. Esto hace necesario un acceso a memoria para trasladar el dato hasta la unidau ai ¡tméticológica o hasta ¡a unidad designada por la instrucción (Fig. 5.6) 1G8
P R I N C I P I O S
D E
C O M P U T A C I O N
E J EC U C IO N D E I N S T R U C C I O N ES
!
MC Código de operación
Dirección N i
^ —*. N Dato
Figura 5.6 Instrucción con direccionamiento directo.
• Direccio na m iento indirecto . En este caso la dirección contenida en la ins trucción no es la del dato implicado sino la de una posición de memoria que contie ne la dirección de ese dato, esta posición se denomina dirección intermedia e impli ca en las instrucciones que utilizan este método de direccionamiento la necesidad de un ciclo de memoria mas para acceder al dato (Figura 5.7).
Figura 5.8 Instrucción con direccionamiento relativo. • Direccio na m iento relativo. En el la dirección de memoria principal donde se encuentra el dato.se consigue sumando la dirección contenida en la propia instruc ción con una magnitud fija contenida en un registro auxiliar. De esta manera se posi bilita el acceso a un conjunto de posiciones determinadas, normalmente consecuti vas, a partir de una posición considerada como dirección de referencia (Figura 5.8).
5.3 CICLO DE INSTRUCCIÓN Para que un programa pueda ser ejecutado por una computadora, este ha de estar almacenado en la memoria principal. La unidad central de proceso tomará una a una sus instrucciones e irá realizando las tareas correspondientes. P R I N C I P I O S
D E
C O M P U T A C I O N
109
i
]
e jg C U C IO N P £ iN S T K U C C iO N E S __________________________'
________________________
Denominamos cicio de instrucción al conjunto de acciones que se llevan a cabo en ia realización de una instrucción. Se compone de las dos siguientes fases: ■z»
♦Fase de búsqueda. En esta fase se transfiere la instrucción que corresponde ejecutar desde la memoria principal a la unidad de control. • Fase d e ejecución. Consiste en la realización de todas las acciones que permiten la ejecución de la instrucción.
5.3.1 Fase de búsqueda de una instrucción Supongamos, para su estudio, un ejemplo de instrucción aritmética de suma con tres direcciones y direccionamiento directo: es decir, la instrucción contiene el código de operación correspondiente a la suma, los dos sumandos están en las direcciones de memoria correspondientes a ¡os dos primeros operandos y el resul tado ha de quedar en la irección indicada por el tercer operando. SUMAR 027 958 959 Sumar los contenidos de las posiciones de memoria 027 y 958, almacenando el resultado en la posición 959). Código de operación (CO): SUMAR. Dirección del primer operando (OP!):027. Dirección del segundo operando (OP2): 958. Dirección del resultado (GP3): 959. En la fase de búsqueda de la instrucción se realizan ¡os siguientes pasos: 1. La unidad de control (U C ) envía una microorden para que el contenido dei registro contador de programa (CP) que contiene ia dirección de ¡a siguiente ins trucción (instrucción que corresponde procesar) sea transferido a) registro de di rección de memoria (RDM). 2. La posición de memoria que figura en el registro de dirección de memoria (RDM) es utilizada por el decodificador de memoria para transferir su contenido (instrucción) a! registro de intercambio de memoria (RIM). 3. Se transfiere la instrucción desdeei registro de intercambio de memoria (RIM) ai registro de instrucción (Ri). 110
P
R
I
N
C
I
P
I
O
S
D E
C
O
M
P
U
T
A
C
I
O
N
____________ EjECUCION DE INSTRUCC IONES [____________________________________________
1
4.A continuación ei decodificador procede a interpretar la instrucción que aca ba de llegar al registro de instrucción (Rl),en este caso SUMAR,quedando dispues to para la activación de la UAL e informando ai secuenciador. El registro contador de programa (CP) se autoincrementa (utilizando la unidad aritmético-lógica) con un valor I (o n en el caso de que sea esta la longitud de la palabra de memoria), de tal forma que quede apuntando a la siguiente instrucción situada consecutivamente en memoria. Si la instrucción en ejecución es de ruptura de secuencia, ei contador de programa (CP) se cargara con la dirección que corres ponda. La Figura 5.9 ilustra la fase de búsqueda de nuestra instrucción.
5.3.2 Fase de ejecución de una instrucción La fase de ejecución se realiza en los siguientes pasos, teniendo en cuenta que si la instrucción no hubiese necesitado operandos, no se ejecutarían los pasos I a 6 ni el 8. 1. Se transfiere la dirección del primer operando desde el registro de instruc ción (Rl) ai registro de dirección de memoria (RDM). 2. E! decodificador extrae de la memoria dicho dato depositándolo en el regis tro de intercambio de memoria (RiM). 3. Se lleva este operando de'de el registro de intercambio de memoria (RiM) ai registro de entrada I (R E Ñ I) de ¡a unidad aritmético-lógica (UAL). 4. Se transfiere la dirección del segundo operando desde el registro de instruc ción (Rl) al registro de dirección de memoria (RDM). 5. El decodificador extrae de la memoria dicho dato depositándolo en el regis tro de intercambio de memoria (RiM). 6. Se lleva este operando desde el registro de intercambio de memoria (RiM) al registro de entrada 2 (REN2) de la unidad aritmético-lógica (UAL). 7. E! secuenciador envía una microorden a la unidad aritmetico-iógica (UAL) para que se ejecute la operación de que se trate. El resultado de la operación queda almacenado en el registro acumulador (RA). P R I N C I P I O S
D E
C O M P U T A C I O N
111
E J E C U C I O N
TJ 3J
P £
Z
n
o w O m o o s T3
c >
n o
z
V X
z o
o Cfl
Unidad de control
Unidad aritmético-lógica
I N S T R U C C I O N E S _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
j
O m O o 5
o c H >
n o
z
j _ _ _ _ _ _
E J E C U C I O N D E I N S T R U C C I O N E S
r
E JE C U C ÍO N D 6 IN S TR U CC IO N E S ___________________ ___ ______________ _ ___
_ _ _
’_______ j
8. Este resultado es enviado desde el registro acumulador (RA) al registro de intercambio de memoria (R!M). 9. Se transfiere desde el registro de instrucción (Rl) al registro de dirección de memoria (RDM) la dirección donde ha de almacenarse el resultado en la memoria. 10. Se transfiere el resultado desde el registro de intercambio de memoria (RIM) a la dirección de memoria indicada en el registro de dirección de memoria (RDM). La Figura 5.10 ilustra la fase de ejecución descripta.
5.4 CARGA Y ALMACENAMIENTO DE DATOS Una de las operaciones que más se realiza internamente en una computadora es Sa de transferencia de datos entre e! acumulador de la UAL y ia memoria principal. Esto es debido a que ei acumulador realiza un papel importante en ia mayoría de las instrucciones.
5.4.1 Carga del acumulador Se conoce como carga del acumulador a la operación de llevar un dato desde la memoria al registró de intercambio de memoria (RIM) y desde este al acumulador.
Supongamos una instrucción de i 6 bits de los que los cuatro bits de la izquierda indican el código de operación y los 12 restantes la dirección de memoria del dato relacionado con el acumulador, la instrucción de cargar en el acumulador el conte nido de memoria de la posición 17 seria (suponiendo como código de operación para carga en ei acumulador 0¡0I): 0 10 1 0 0 0 0 0 0 0 1 0 0 0 1 La transferencia de datos se hará de forma similar a la expuesta en ei punto 5.3, cuyo proceso lógico se deja como ejercicio para el lector.
1
_________ _____________ __ _____________________ EJECUCiON PE INSTRUCC IONES
]
5.4.2 Almacenamiento en memoria Esta operación consiste en la transferencia de un dato desde el acumulador de ia UAL a !a memoria principal.
------------------------------------------------ <2yevw.j9Ío
Suponiendo que el código de operación de almacenar en memoria desde el acumulador es 01 I 1,1a instrucción de almacenar en la posición 17 será: 0 111
0000 00 0I 0 0 0 I
Igualmente su análisis se deja como ejercicio.
5.5 INSTRUCCIONES DE RUPTURA DE SECUENCIA Como ya se indicó anteriormente, algunas veces es necesario alterar el orden de ejecución secuencial o correlativo que las instrucciones tienen en memoria, consiguiéndose ciclos y decisiones en la ejecución de! programa. Para ello se utili zan fas instrucciones de ruptura dé secuencia, también denominadas de bifurca ción o salto. Estas instrucciones son de dos tipos:. •Instrucciones de salto incondicional. Cuando ¡a unidad de control (UC) se encuentra con una instrucción de este tipo, reemplaza la dirección que tiene ei registro contador de programa (CP) por la dirección que viene en la propia instruc ción. •Instrucciones de salto condicional. En este caso la dirección contenida en el contador de programa (CP) sólo es reemplazada por la dirección de la instruc ción si se cumple alguna condición indicada en la instrucción) determinada por el correspondiente indicador de estado (bit de! registro de estado).
5.6 INSTRUCCIONES DE ENTRADA / SALIDA Son aquellas cuya misión es introducir datos desde dispositivos extemos a la memoria de ia computadora y viceversa, así como enviar órdenes a dichos disposi tivos. P R I N C I P I O S
D H
C O M P U T A C I O N
US
r
E jE C U C IO N DE IN S T R U C C I O N E S
Deben especificar las siguientes informaciones: •Tipo de instrucción (entrada o saiida). •Operación a realizar. •Dispositivo externo que interviene. •En su caso dirección de memoria. Estas instrucciones normalmente no ¡as procesa la UCP sino que solamente las inician y activan los dispositivos necesarios, transfiriendo a continuación el control de la misma al controlador correspondientes, e¡ cual se encarga de su completa realización. Mientras tanto la UCP puede ejecutar las instrucciones de otro proce so, minimizando ei tiempo de espera. Una vez que ei controlador ha concluido la ejecución de la instrucción, avisa a la UCP. mediante lo que se denomina una inte rrupción, para que esta pueda continuar con ei proceso que estaba realizando.
I.
¿Cuál es la composición de una instrucción de lenguaje máquina y cuales son sus diferentes tipos? 2 ¿Que diferencia existe entre el direccionamiento directo y el relativo? 3. ¿Que tipo de instrucciones realiza la UAL? 4 Explique el cicio de una instrucción para una instrucción de almacenamienti en memoria 5. Explique ei cicio de una instrucción para una instrucción de salto condicion;
116
P R I N C I P I O S
D E
C O M P U T A C I O N
CAPITULO VI
.
y
Memorias Auxiliares 6.1 INTRODUCCION Como se estudió en e! Capítulo 4, el núcleo principal de una computadora es la Unidad Central de Proceso; ahora bien, para el funcionamiento de esta es necssario que los datos, programas e informaciones organizados en archivos, estén sopor tados en un elemento físico al que la propia computadora tenga acceso; estos ele mentos son las denominadas m em orias auxiliares, asimismo es necesario dispo ner de dispositivos conectados a la computadora capaces de leer en estas memo rias y escribirlas según se trate de realizar operaciones de lectura o escritura. Podemos definir una memoria auxiliar de muchas formas, siendo una de las mas comúnmente utilizadas la siguiente: Una memoria auxiliar es un medio físico que permite almacenar datos de forma que una computadora pueda manejarlos o proporcionarlos a las personas de ma nera inteligible. Podemos destacar el objetivo que deben cumplir las memorias auxiliares: * Permitir ei almacenamiento de la información necesaria para ser procesada o que interesa guardar durante un cierto periodo de tiempo. Es necesario recordar que los datos en la memoria principal desaparecen al cortar la energía eléctrica y que su capacidad es relativamente limitada. Las memorias auxiliares pueden clasificar por su naturaleza física en: •Magnéticas. Son los qm codifican y mantienen la información en algún medio magnetizable.
P R I N C I P I O S
D E
C O M P U T A C I O N
117
[
H E H O B ’. A S A U X I L I A R E S ___________________ _____ _____________________ ______
• O pticas . Utilizan corno medio para soportar !a información al gún elemento tratable mediante fenómenos ópticos. • O tro s sopo rtes. Son aquellos cuya naturaleza no se ajusta a los anteriores y su misión generalmente se limita a la mera presentación de resultados de un proceso (papel, etc.).
6.2 MEDIOS MAGNÉTICOS Los medios magnéticos son ios que se basan en ias propiedades magnéticas de algunos materiales para el registro de la información. Comenzaron a utilizarse a partir de la aparición de memorias a base de núcleos de ferrita (utilizadas como memoria central). Mas tarde surgieron otros medios magnéticos mas apropiados para el almacenamiento masivo debido fundamentalmente a la densidad de graba ción que permitían y por ellos a ia importante reducción dei tamaño dei soporte. La mayoría de estos medios son utilizados como elementos de almacenamiento masivo de información en los sistemas informáticos.
6.2.1 Soportes magnéticos Los soportes magnéticos son elementos físicos compuestos por una base de plástico o metal (aluminio) recubierta de una fina capa de material magnético (nor malmente óxido de hierro) donde se registra ia información en puntos magnetizables que se configuran se
6.2.2 Grabación y lectura de medios magnéticos Las memorias magnéticas se graban y leen medíante técnicas análogas a las usa.1 1 8
P R I N C I P I O S
D E
C O M P U T A C I O N
I
_____________________________________ _ _ ____________________ M E M O R IA S A U X I L I A R E S
]
dgs para las cintas de audio corrientes. Esto es,usando cabezas que describen pistas sobre una superficie magnetizable, a la que alteran mediante campos magnéticos, para grabar una sucesión de señales que equivalen a unos y ceros. La escritura tiene lugar de la siguiente manera: Al circular corriente por una bobina (Figura 6.1) se genera un campo magnético alrededor de un núcleo de material magnético que constituye la cabeza. Dicho campo puede ser norte-sur o viceversa, según el sentido de circulación de la co rriente.
Figura ó.! Grab ación de la sup erficie m agnética En ¡a cabeza existe una estrecha ranura, en cuyas proximidades el campo citado magnetiza una pequeña región de la superficie magnética de la pista, escribiendo asi los dato:. El campo hace que ¡as micropartícula; del material magnetizable de ia pista (imanes microscópicos) se orienten en uno u otro sentido, al pasar bajo ia cabeza, grabando así un"ce'o” o un “uno” , según sea el sentido del campo existente en ¡a cabeza. La gra^ción destruye el contenido anterior del medio magnético, reemplazán dolo por nueva información. En la lectura, debido a las regiones que quedaron magnetizadas en la pista, se inducen pulsos de tensión en la bobina de la cabeza. De este modo, los bits almace nados en forma magnética pueden leerse tantas veces como se desee, dado que la lectura no altera el estado magnético de la pista; no es destructiva. La densidad de grabación es la cantidad de bits almacenados por unidad de longitud (centímetro o pulgada). P R I N C I P I O S
D E
C O M P U T A C I O N
119
(
(
M E M O R IA S A U X I l lA R e s
6.2.3 Cinta magnética La cinta magnética es un soporte de información continuo de acceso secuencia!, constituido por una base de material plástico recubierta en una de sus caras por una fina capa de material magnético, en la que los caracteres se registran formando combinaciones de puntos magnetizados sobre pistas paralelas a! eje longitudinal de la cinta; en cada columna perpendicular a dicho eje se registra un caracter. Sus principales características son su resistencia mecánica, la homogeneidad magnética, una fuerte resistencia a los agentes físicos y la gran capacidad de almacenamiento, que esta relacionada directamente con la longitud de ia cinta y la densidad de grabación. La Figura 6.2 nos muestra la composición de una cinta mag nética. En la actualidad se utilizan principalmente en tarjetas de crédito, identificación, etc. CAPA DE OXIDO MAGNETIZABLE
PLASTICO
Figura 6,2 Cinta magnética
6.2.4 Disco magnético El disco magnético es una memoria auxiliar de acceso directo, es decir.se puede acceder a una determinada información sin necesidad Je pasar por toda la informa ción anterior. Pensemos en un disco musical, donde basta situarse en la canción elegida para acceder con pocas búsquedas a la misma. Un disco presenta una analogía en cuanto a la posibilidad de acceder fácilmente ai lugar donde la información será escrita o leída. No presenta un solo surco visible, en espiral, sino un conjunto de pistas m ag nética s concé ntricas, divididas en sectores (Figura 6.3). Antes de grabar información en un disco se lo debe fo rm ate ar mediante un programa provisto por ei fabricante,que escribe la dirección de cada sector, deján dolo listo para ser escrito en su campo de datos. Esta forma de iniciar un disco se denomina formateo por software ("soft sectored”). O tra característica de ios discos a¡> que presentan un directorio de los archi vos y programas que contiene cada uno, así como información referente a cada archivo (nombre, fecha de grabación, ubicación, etc.) o programa. 120
P R I N C I P I O S
D E
C O M P U T A C I O N
M E M O R IA S A U X I L I A R E S
DETALLE DE UNA PISTA Numero de pisa
de sector
CRC
INFORMACION
CRC
Figura 6.3 Distribución de pistas y sectores de un disco. Generalmente el directorio esta en una pista de rápido acceso, como la cero. Se ---- crea cuando se va a grabar la información en el disco, y es el sistema operativo el encargado de ordenar su grabación y actualización. En un disco se puede tanto grabar o leer registros de un archivo a los que se quiere acceder directamente sin seguir ningún orden (“archivo de acceso directo”) o también siguiendo un orden secuencia!, por clave ascendente(“ archivo secuenciai” ). Los datos provenientes de la memoria principa!, se almacenan en una memoria intermedia (buffer) que tiene el controlador del disco, y de esta se graban bit por bit en serie en el sector de la pista donde deben almacenarse. Se denomina registro físico a la cantidad de información que se transfiere a un sector en una operación de entrada-salida. Un registro físico puede contener uno o varios registros lógicos ( unidades de información con entidad propia que constituyen un archivo). Un sector contiene, además de la información que guarda o guardará, una direc ción que permite localizarlo. Esta se compone del número de pista y del número de sector y se encuentra al principio del sector. A la dirección le sigue ei código de redundancia cíclica o CRC, luego ¡a informa ción y por último nuevamente ei CRC. Esta doble grabación del CRC, permite detectar errores de grabación o de . lectura y por consiguiente verificar la corrección de los mismos. Para tal fin, el controlador de disco a medida que va escribiendo la secuencia de bits en el sector P R I N C I P I O S
D E
C O M P U T A C I O N
121
j
|~ MEMOR IAS AUXILIARES ____________ ___ __________________________________
~1
.provenientes del buffer supone que los mismos son coeficientes de un poiinomio,y efectúa una división binaria por ios coeficientes de otro polinomio especificado. E! resto de la división es el CRC. En e! momento de ia lectura de un sector , a medida que el controlador va recibiendo . desde la cabeza hacia el buffer , los bits de la dirección, efectúa nueva mente ei cociente citado y verifica que el resto sea igual al CRC de la dirección leída. Si ello no ocurre, el sistema intentará arreglar el error existente. De no ser factibie dará la indicación correspondiente. Lo mismo ocurre con el C RC que sigue la información correspondiente. Dada la alta densidad de grabación, suelen ser frecuentes ios errores de lectura en ios discos, encargándose el sistema operativo de requerir varias lecturas, hasta obtener una correcta. Los discos magnéticos se clasifican en discos rígidos y discos flexibles o dísquetes.
6.2.5 Discos rígidos Los discos rígidos consisten en un disco de aluminio de 3I,: de puigadas de diámetro recubierto de una película de óxido magnetizable. También se los denomina discos duros y se organizan en unidades compuestas por varios discos. Las unidades están cerradas herméticamente y presurizadas para protegerlas del polvo y otros cuerpos extraños. El ancho de las pistas está en fundón de la vida útil que deban tener, ya que una pista demasiado delgada ¡os hace más proclives a fallas y relecturas. Una solución de compromiso son anchos de unos 20 micrones, lo que equivale a una densidad de -400 pistas por centímetro de radio. La figura 6.4 nos muestra esquemáticamenre la composición de un disco rígido. PISTA
CAPA DE OXIDO MAGNETZABLE
SOPORTE DE A L UMIN IO
Figura 6.4 Disco rígido 122
P R I N C I P I O S
D E
C O M P U T A C I O N
¡ ______________________________ _________________________________H tM ORIA S AUXILIARES
1
Una unidad de disco consta de un eje central al que van adheridos varios discos.
En este caso las caras exteriores no suelen ser magnetizables, es decir, ia cara superior del disco de arriba y la cara inferior del disco de abajo no se utilizan. En este tipo de soporte se denomina ciündro al conjunto de pistas de todos los discos que ocupan una misma posición (todas las que tienen igual diámetro). Las unidades que se utilizan para ei manejo Ce los discos rígidos, están com puestas por ios siguientes elementos: - Un dispositivo de arrastre que mantiene los discos en continuo movimiento y a velocidad constante (de 4000rprn a 7200 rpm). - Un peine formado por un conjunto de brazos y cabezas de lectura/escritura (una por cara magnetizable) capaz de moverse radialmente sobre la superficie de los discos. En algunos casos de unidades rápidas de discos existe mas de una cabeza por cara magnetizable para que el tiempo de acceso a !a información sea menor (estos casos son los típicos de utilización de disco como memoria virtual de una computadora). El tiempo de acceso a una información de un disco rígido es relativamente pe queño. Este se descompone en: tiempo de posicionamiento del peine (tiempo de búsqueda =3 a 10 ms), tiempo de selección de la cabeza de lectura/escritura (casi despreciable, en el orden de los mi^r^'-ígun^os) y tiempo de espera de rotación hasta que la información pase por debajo de la cabeza (tiempo de latencia =1 a lOms). El tiempo de acceso total aproximado es de 20 milisegundos. La Figura 6.5 nos muestra un detalle de una unidad de disco rígido, así como un esquema de sus componentes.
CABEZAS DE LECTURA/ESCRITURA
Figura 6.5 Detalles y esquema de una unidad de disco rígido o duro. P R I N C I P I O S
D E
C O M P U T A C I O N
123
(
£
(
í
M E M O R I A S A U X IL I A R E S
Cuando ¡os discos giran, ias cabezas flotan sobre ¡a pista a leer o escribir. Pe efecto aerodinámico, al girar los discos a unas 4000rpm la velocidad tangencial d la masa de aire desplazada es de alrededor de 200 kiiómett^s por hora, haciend que los brazos con las cabezas permanezcan suspendidas a unos pocos microne de la pista, lo suficiente para grabar o leer !a información. Esta es la razón por la cual los discos rígidos deben permanecer girando con: tantemente, aún cuando no se grabe o lea información.También en forma perm: nente el aire se filtra y recircula. Como las cabezas están muy cerca de !as caras de los discos, cualquier mov miento brusco de la computadora podría cíañarios. Por este motivo el peine defc desplazar las cabezas a una zona segura de estacionamiento de las mismas, cuand no se está utilizando la computadora (autoparking). Un disco rígido esta organizado en cuatro zonas: ✓ Reg istro de arranque: está ubicado en el primer sector de la pista cero € la cara cero;sobre él se almacena un programa (boot-strap),encargado de busc: parte del sistema operativo y llevarlo a la memoria principal. ✓ FA T (F ile A llo catio nTable) : !a tabla de ubicación de archivos se encuet tra en el sector 2 a continuación de! sector de arranque y graba la ubicación c cada archivo y el estado de cada sector. Los archivos se dividen en partes c tamaño fijo y se almacenan en el disco en sectores que no necesariamente se contiguos. El sistema operativo localiza estas partes de cada archivo valiéndose c la FAT. La FAT se almacena en la memoria principal para acelerar ei acceso a los arch vos. Esto en discos grandes genera un inconveniente pues ocuparía mucha mem< ria, para evitarlo el sistema operativo agrupa ios sectores contiguos en cluster cargando en memoria principa! ei estado de los dusters con el consiguiente ahon de la misma. Los archivos fragmentados causan efectos secundarios indeseabli 124
P R I N C i P I O S
D E
C O M P U T A C I O r *
|
____________________ ________________________________________ MEMORIAS AU XIL IA RES _
|
pues tomará más tiempo cargarlos y grabarlos. Por este motivo se recomienda utilizar programas defragmentadores para reordenar los archivos en ei disco. D irecto rio raíz: es la zona del disco que contiene la información relativa a los archivos que están almacenados en el disco: nombre del archivo, extensión (indica el tipo de archivo), atributo (si es de lectura, si está oculto, si esta protegido, etc..), fecha de creación, hora de creación, dirección del primer cluster, longitud en bytes. ✓ A rea de alm acen am ien to de inform ación: es el lugar dónde se almace nan los archivos.
6.2.6 Disquete El disquete es una memoria auxiliar de acceso directo que consiste en un disco con una base de plástico(mylar) recubierto de una fina capa de material magnetizable y con el mismo sistema de grabación y lectura que los anteriores. El disquete, también denominado disco flexible o f loppy-disk, esta protegido por una funda de plástico en ¡a que aparecen tres orificios o ventanas: una para el arrastre del disco, otra para el sincronismo 7 una última para la lectura y grabación de la información. Asimismo, posee una o más aberturas para protección contra escritura y borrado o para definir la densidad de grabación,y una etiqueta,donde se representa algún indicativo o ¡dentificador del disquete y de su contenido. La Figura 6.6 nos muestra la composición de los disquetes de 3inpulgadas. Protección ventana l/e
alta densidad
escritura y borrado
Figura 6.6 Composición de un disquete. P R I N C I P I O S
D E
C O M P U T A C I O N
125
r
1
M E M O R I A S A U X I L IA R E S
El tamaño de disquete más util'rzado es el de 31/2 , medida que se corresponde ai diámetro dei disco y, además, van encapsuiados en una funda de plástico duro para daries mayor resistencia. E! número de pistas está limitado, en virtud de que ei materia! plástico que las soporta, no se expande en forma homogénea. La capacidad de almacenamiento es de 1,44 Mbytes y está compuesto por 80 pistas por cara y 18 sectores por pista, donde cada sector por pista almacena 512 bytes. Las unidades de entrada salida para discos flexibles son de composición similar a las de discos rígidos, pero de tamaño más reducido. Reciben tam bién el nom bre de disqueteras. En este caso los disquetes siempre son intercambiables para aumentar la capacidad de almacenamiento. Estas unidades llevan un juego de dos cabezas de lectura/escritura que se mueven de forma radial a lo largo del disquete por la zona magnetizable. El disposi tivo de giro del disco, a diferencia respecto al caso anterior, no gira permanente mente, sino sólo cuando realiza operaciones de lectura/escritura (a 300 rpm). Ei tiempo de acceso a una información en un disquete es relativamente pequeño y se mide igualmente descomponiéndose en: tiempo de posicionamiento del peíne (búsqueda = lOOms), dempo de selección de la cabeza de lectura/escritura (casi despreciable) y tiempo de espera de rotación hasta que la información pase por debajo de la cabeza(!atencia = iOOms). En estas unidades el tiempo de acceso es mayor que en las anteriores (aproximadamente 200 miüsegundos) por girar el dis co a menor velocidad y ser necesario un periodo de arranque y frenado dei mismo. Ei disco flexible debe protegerse del polvo y de ¡as temperaturas elevadas, que pueden causar su deformación. Así se evitarán posibles errores en la lectura de la ¡nformación.Tampoco debe tocarse la ventana de escritura-lectura. La Figura 6.7 nos muestra una unidad de disquete y un detalle interno de la misma.
figura 6.7 detalle interno de una unidad de disco flexible. 126
P R I N C I P I O S
D E
C O M P U T A C I O N
¡ _________________ I__________ ______________________________________ M E M O RIA S A U X I L IA R E S
I
6.2.8 MÉTODOS DE GRABACIÓN MAGNÉTICA EN DISCOS El método más simple es ei de FM (codificación en densidad simple, en frecuencia modulada), ideado por IBM, se basa en la grabación de pulsos de sincronismo seguida por un señal de datos. Esta es un pulso si el dato es “ I" o su ausencia si el mismo vate“ 0". Dado que el tiempo entre dos señales consecutivas depende de que el dato sea “ i” o “ 0*‘ , 1a frecuencia de aparición de ios pulsos será variable, lo cual dio origen a ia denominación FM. Una segunda técnica se denomina M FM ( codificación en doble densidad, en modulación de frecuencia modificada) y permite duplicar la densidad de la grabación, ya que no requiere pulsos de sincronismo en todos ios campos. Consiste en generar un pulso si e! bit es I y un pulso al comenzar el campo de! bit de información si este y el anterior son ceros. El código MMFM o M*FM( modulación de frecuencia doblemente modi ficada) es una modificación de! MFM, con menos exigencias de calidad para ei medio y ¡as cabezas a costa de circuitos de detección más complejos, pues usa menos pulsos de sincronismo o sea menos cambios de flujo para lograr doble densidad, que e! FM. Se graba un pulso de dato en ei centra de la celda cuando hay un i y un puiso de sincronismo a! comienzo de un bit de.información si éste y ei anterior valen 0 y si no se ha dado esta situación en los bits anteriores. En la figura 6.8 se observan ¡as tres codificaciones descriptas. Se puede aumentar ia densidad de grabación asociando a cada grupo de 4 bits un grupo de 5 bits. Con esta codificación denominada GC R (grabación en gru pos codificados) nunca se van a tener más de dos ceros consecutivos, evitando ia perdida de sincronismo de! cabezal. Limitando la cantidad de ceros consecutivos se puede mejorar aún más la dsn400 hs
información a grabar
Figura 6.8 codificación de la información en discos
P R I N C I P I O S
D E
C O M P U T A C I O N
127
I M E M O R I A S A U X I LIA S E S ________________________________________________________________________
sidad de grabación. Esta técnica se denomina RLL(longitud de barrido limita da) y es ía que se utiliza en los discos rígidos y en los disquetes de 3,/2-
6.3 DISCO OPTICO 6.3.1 Disco Compacto-CDROM El disco óptico,también denominado disco compacto (Compact Disk-CD), apa rece como consecuencia de su alta difusión en e! mundo de la música y !a imagen, donde recibe el nombre de compoct-disk o video-disk,y se utiliza en este ámbito para el registro de señales analógicas digitalizadas, tanto musicales como de video, con una alta calidad y densidad de grabación. Por lo tanto, y debida a sus características, el disco óptico configura un soporte de información de alta densidad y por ello de alta capacidad de almacenamiento de datos sensiblemente superior a !a de los dis cos rígidos y que puede oscilar entre varios cientos de megabytes y un gigabyte por cara del disco (comúnmente 680 Mbytes). Con la aparición de los discos ópticos, que se están imponiendo poco a poco como elemento de almacenamiento en disco del futuro, tenemos unidades para la lectura y escritura de los mismos; estos utilizan una técnica avanzada de grabación y lectura donde se analizan ¡as reflexiones de determinadas lo ngitud-Je o.-.da sobre una superficie por medio de un haz luminoso producido por un rayo láser. La información se registra, en el caso más general, en una superficie donde se generan minúsculas perforaciones denominadas pitsyzonas planas denominadas fíats, capaces de ser detectadas mediante la incisión sobre ellas de un rayo láser que será reflejado de distinta forma si existe o no dicha perforación. Los pits tienen una profundidad de una décima de micrón y un diámetro de casi 0,8 micrones. A diferencia de los discos magnéticos, el disco óptico tiene una sola pista en esoiral de aproximadamente 5 km de largo, pero la información está organizada como si en realidad tuviera pistas concéntricas independientes entre si. La cara dei disco está protegida por una capa de plástico. Estos soportes son de sólo lectura, por lo que reciben el nombre de C DRO M (Compact Disk-Read Gn ly M em ory).
Figura 6.9 Disco óptico. 128
P R I N C I P I O S
D E
C O M P U T A C I O N
|
i__ ___________________ ____ _______ __ ________
M E M OR IA S A U X » U A « Í S
La Figura 6.9 nos muestra una forma de registro sobre un disco óptico y su forma actual de presentación, que, como puede observarse, es similar a la de los disquetes magnéticos de 3l/2pulgadas. Una característica importante es ¡a velocidad a la que se transfieren los bits: las primeras unidades transferían a una velocidad de 150.000 bits por segundo y se las designaba como IX . Luego aparecieron unidades de doble velocidad y se las desig nó 2X (300.000 bits por segundo). En la actualidad es muy común encontrar unida des con velocidades por encima de 33X. El tiempo de acceso de la información es lento comparado con una unidad de disco rígido (de 100 a 300 ms).
6.3.2 Discos de video digital- DVD ROM Las nuevas tecnologías permitieron aumentar la capacidad de almacenamiento al reducir el tamaño de los pits a ia mitad y por consiguiente la separación entre ellos. De esta forma se logró aumentar la densidad de grabación en ia misma super ficie. A estos discos se los denomina DVD-ROM (Digital Video Disk), y para po der leer la información grabada necesitan un láser de menor grosor . Los discos pueden ser de una o dos caras y a su vez cada cara tener una o dos capas, permitiendo capacidades desde 4,7 Gigibytes en los oe una cara y una capa ( 133 minutos de sonido y video de alta calidad) hasta lograr almacenamientos de 17 Gigabytes en los de doble cara y doble capa (pasando por capacidades intermedias de 8,5 y 9,4 Gigabytes). Para almacenar video se utiliza la técnica MPEG-2 (Motion Pictures Experts Group), que consiste en considerar el video como una sucesión de cuadros de imagen e identificar que partes del video no varían a! pasar de un cuadro a otro y almacenar solo la información que describe las diferencias evitando almacenar todo el cuadro. El audio se almacena utilizando las técnicas MPEG-2 y Dolby Digital, que ade más de los dos canales que reproducen sonido estéreo, incorporan canales inde pendientes entre sí
6.3.3 DiSCO MAGNÉTICO-ÓPTICO Son de lectura y grabación y se denominan Magneto-Optícal Disk Rewritable aun que se los conoce más popularmente como unidades Z IP o Super Disk. Se utilizan para el registro masivo de información y en presentaciones multimedia donde es necesario registrar un gran número de imágenes y sonidos con unas grandes exigencias de memoria. Combinan las tecnologías óptica y magnética. Para grabar la información se calienta con un láser una pequeña área dei plástico que cubre el disco, quedando P R I N C I P I O S
D E
C O M P U T A C I O N
129
|
¡
M E M O R I AS A U X i L iA P J E S ___ _ _________ ______________
expuestas las partículas ferro magnéticas que están debajo. Una cabeza magnética las orienta en una u otra dirección almacenándose un uno o un cero pero en un espacio más reducido que en la grabación magnética convencional. De esta manera se logra una mayor densidad de grabación. Cuando la cabeza cambia la orientación de las partículas, algunas de estas son alineadas de forma tal que reflejan ia luz del láser y otras son orientadas de modo de no reflejarlo. Para leer la información se enfoca sobre ia superficie, un haz de menor intensidad.Al ir pasando la pista bajo el láser, algunos puntos reflejan la luz y otros no, generándose la secuencia de unos y ceros que la computadora recono ce como datos. Pueden almacenar capacidades de 100 o 120 Mbytes y giran a 3000rpm lo que permite un tiempo de acceso a la información simiiar al de las unidades de disco rígido más lentas (30 ms). En la figura 6. 10 se puede observar el proceso de grabación de un disco magnético-óptico
Figura 6.10 grabación en un disco magnético-óptico
1. Defina e! término soporte de información. 2. Enuncie los tipos dé soportes de información que existen según su naturaleza. 3. Explique el principio de grabación y lectura de un medio magnético. 4. ¿Cómo está organizada !a información en un disco magnético? 5. Explique el concepto de CRC. 6. Explique el concepto de cilindro para una unidad de disco rígido. 7. ¿Qué contiene la FAT? 8. ¿Cómo es el principio de grabación de un CDROM? 9. ¿Qué diferencia hay entre un pit y un fíat? 10 ¿En qué se basa ei principio de grabación de un DVD? ¡30
P R I N C I P I O S
D E
C O M P U T A C I O N
CAPITULO VII —
msmmm
—nu
wmm mm mm m m m m m m rn m m m m m m m m s a
Unidades de entrada - salida 7.1 INTRODUCCIÓN La función de las unidades de entrada-saiida es servir de medio de comunica ción eficaz enere e! usuario y la computadora.de forma que los datos de salida sean comprensibles a las personas y los datos de entrada !o sean a ia computadora. Por su parte, las unidades de entrada/salida se clasifican por las funciones que pueden realizar en los siguientes grupos: • Unidades de e ntrada. Son aquellos dispositivos cuya misión es la de intro ducir datos en la memoria principal de la computadora para su tratamiento: tecla do, mouse .scanners, etc. • Un.dades de salida. Son las que realizan ia función de extraer datos de la memoria principal hacia e¡ exterior. •Unidades de entrada y salida. Realizan ambas funciones, permiten ia intro ducción de datos en la memoria principal y pueden extraerlos de la misma. Otra clasificación importante de estas unidades, referente a la localización de las mismas con respecto a ¡a Unidad Central de Proceso en donde están conectadas, es la siguiente: • Unidades o p eriférico s locales. Son aquellos que se encuentran situados en las proximidades de la computadora sin sobrepasar unos límites máximos. •Unidad es o perifé ricos remotos. Su ubicación esta distante de la computa dora, conectándose a la misma por medio de una red de telecomunicaciones. P R I N C I P I O S
D E
C O M P U T A C I O N
131
t. i UNIDA DES DE ENTRAD A - SALIDA
7.2 EL MONITOR Una imagen de computadora no es continua, sino que se forma en la retina dei usuario por ia superposición de miles de puntos denominados pixels. La imagen se forma por la activación selectiva de un conjunto de puntos de pantalla o subpuntos(dot pitch), denominados luminóforos que emiten tres colores básicos: rojo, verde y azul. Esto significa que en un monitor coior, un punto de imagen o pixel estará for mado por al menos tres puntos de pantalla o luminóforos. En la figura 7.1 se puede observar ia relación entre el pixel y los puntos de pantalla. Selección de columna ( X )
Punto d e imagen (-pixel-
Selección de fila (Y )
Punto de pantalla (subpunto) Rojo
§§ Verde
V // Azul
Figura 7.1 Por ejemplo cuando ia pantalla se utiliza para visualizar textos, se considera dividida en celdas,en cada una de las cuales puede ir un carácter. Cada celda contie ne una matriz de puntos de imagen: por ejemplo una celda de 12 filas y 10 columnas que contienen caracteres de 9 por 7 puntos como la figura 7.2
Figura 7.2 132
P R I N C I P I O S
D E
C O M P U T A C I O N
\
_
r __________________
____________________________UNID ADES DE EN TR ADA -S AL ID A
1
Generalmente se dispone de 1920 celdas sobre una pantalla organizadas en 25 filas por 80 columnas. La resolución va a estar dada por e! número de pixels por celda por ío que no depende del tamaño de la pantalla. Existen pantallas de muchos tipos y con diferentes resoluciones, entre las que destacamos la monocromática y las de color de baja y alta resolución. A veces las pantallas se distinguen por la tarjeta que las controla y que esta relacionada direc tamente con su resolución (pantalla CGA, EGA,VGA, SVGA, etc.). En la figura 7.3 se pueden apreciar ejemplos de resolución. Sistemas monocromáticos: A d a p t a d o r M D A
(M o n o c h o m e D is p la y A d a p te r )
Textos:
25 ■80 celdas de 9 •14 pi
A d a p t a d o r H G C
(H e r c u le s
Textos: Gráficos:
G r a p h ic s C a r d )
igual que MDA 720 -348 pi
Sistemas color/monocromos: A d a p t a d o r C G A
( C o lo r G r a p h ic s A d a p te r )
Textos: Gráficos:
A d a p a d o r E G A
25 •80 celdas de 8 •8 pi , 320 •200 pi; 4 colores 640 •200 monocromo
(E n h a n c e d
Textos: Gráficos: A d a p t a d o r V G A
25 •80 celdas de 8 •14 puntos 640 •350 pi; 16 colores
( V id e o
G r a p h ic s A r r a y )
Textos: Gráficos:
A d a p t a d o r X G A
25 ■30 de 9 ■16 pi 640 •480 pi; 16 colores 320 •200 pi; 256 colores
(E x te n d e d
Gráficos: A d a p t a d o r S V G A
G r a p h ic s A r r a y )
1024 •768 pi con 256 colores ( S u p e r V id e o G r a p h ic s A r r a y )
Textos: Gráficos:
25 •80 celdas de 9 •16 pi 1024 • 786 pi; 256 colores
A d a p t a d o r M a c i n t o s h
S U M
G r a p h ic s A d a p te r )
3 /2 0 0 (m o d . 2 6 0 )
T V d e a lta d e f in i c ió n
1 152- 882 pi con 256 colores 1600 •
1280 p i.
1280 •
1024; 2 2 * colores
Figura 7.3 P R I N C I P I O S
D E
C O M P U T A C I O N
133
___ _______________]
_ _______________________ r UNiDA DES PE ENTRADA - 5A U PA ______________
Un monitor está constituido por dos partes : la pantalla y el controlador de video.
7.2.1 Las pantallas deTRC Son unidades compuestas por un tubo de rayos catódicos (Cotodic RayTubeCRT) como elemento visual de salida de datos . La pantalla consiste en un sistema de representación mediante configuracio nes de puntos luminosos denominados pixels. La imagen de ia pantalla se forma al incidir un haz de electrones sobre la super ficie interna de la pantalla que está recubierta de un material fosforescente. De acuerdo al material utilizado se tienen distintas persistencias de imagen y colores. Los colores usuales en una pantalla monocromática son el blanco y negro. En ios monitores color, estos puntos luminosos son el resultado de la combina ción de tres haces de electrones que impactan internamente sobre la pantalla gene rando tres colores baseiazul, rojo y verde^ a partir de estos el resto de los colores (RGB:red-green-b!ue). El haz de electrones barre la superficie interna de la pantalla, de izquierda a derecha y de arriba hacia abajo. Para lograr el barrido se colocan externamente al tubo unas bobinas magnéticas denominadas deflectoras que crean dos campos magnéticos perpendiculares, en direcciones x e y. La figura 7.4 muestra un esquema simplificado de una pantalla TRC En los monitores color con tecnología tr initrón hay un solo haz de electrones que con ayuda de una máscara con ranuras, incide selectivamente en los luminóforos de cada color. Cristal externo Haces tía eíectro* tes (rojo, verde, azuí)
{protector)
Bobinas deflectoras
Conectares
Cagones de electrones
Figura 7.4 pantalla TR¿! 134
P R I N C I P I
O S
D E
C O M P U T A C I O N
j__________________________________________________________________ U N IQ A O fc S D E £N f HA D A - S A L I D A
i
7.2.2 Pantalla plana FPD Las pantallas planas FPD (fíat paned displays) 'on ligeras delgadas y de bajo consumo de energía lo que las hace preferibles en la construcción de computado ras portátiles. Están compuestas por dos cristales planos unidos a presión entre los cuales se ubican los elementos activos. Utilizan un esquema matricial para seleccionar los elementos de imagen. Un juego de electrodos se sitúa en forma horizontal y otro en forma vertical confor mando las filas y columnas,y entre ellos se colocan los emisores o reguladores del paso de luz. Los puntos de cruce de los electrodos definen los puntos de pantalla (dot pitch).
Una pantalla VGA color tiene una matriz de 640 por 480 puntos, lo que multi plicada por tres, ya que cada punto de imagen necesita tres puntos de pantalla, genera una pantalla de 921.600 puntos de pantalla (dot pitch). La figura 7.5 ejemplifica una pantalla de cristal líquido.
Figura 7.5 corte de una pantalla de cristal líquido. P R I N C I P I O S i
D E
C O M P U T A C I O N
135
!
U N I D A D E S D E E N T R A D A - S A L I D A __________________________
7.2.3 Controlador de video Los monitores de video activan ios puntos de pantalia en forma periódica y durante un corto intervalo de tiempo. La actualización periódica de los puntos de pantalla se denomina refresco e implica el barrido de la misma de izquierda a dere cha y de arriba hacia abajo. La frecuencia de barrido o refresco suele ser de : Fb = SO, 60,70, o 90 Hz, El usuario no nota el parpadeo a esta frecuencia pues el ojo humano percibe como continuas las imágenes pulsantes de más de 25 Hz. Las pantallas tienen una pequeña memoria de video local, denominada buffer de pantalla, que almacena toda la información reflejada en ella y la mantiene mien tras no venga información nueva o aparezca una orden de borrado. La memoria de video contiene una copia digital de la imagen de pantalla, la cual es leída permanentemente para que se mantenga refrescada en ia pantalla Cada palabra de la memoria se corresponde con una celda de la pantalla, por consiguien te la memoria de video tendrá tantas posiciones como celdas de pantalla. Por ejemplo en el modo texto cada palabra de memoria puede almacenar el código ASCII del carácter a imprimir, un bit de atributo (si es intermitente o no), el color de fondo (3 bits) y el primer piano(4 bits). El controlador de vid eo se encarga de robe-nar todo el proceso . La salida de la memoria se ¡leva sobre una memoria ROM generadora de carac teres, que contiene una tabla con la representación de cada carácter en términos de punto de imagen. Cuando el código de un determinado carácter direcciona ia memoria ROM, a la salida de esta aparece en binario el valor de la intensidad lumi nosa que configura el carácter. La figura 7.6 muestra el esquema simplificado de un controlador de video.
/ Figura 7.6 controlador de video monocromático en modo texto
136
P R I N C I P I O S
D E
C O M P U T A C I O N
L __________ _________________ ________________________ UN IDA DE S DE E N TR A D A - SA L ID A
1
En el caso de los monitores gráficos cada posición de la memoria buffer almace na la información de cada punto de imagen. Por ejemplo en un monitor color para controlar 256 colores, se utilizarán 8 bits por lo que cada palabra tendrá una longitud de 24 bits (8 bits/color por 3 colores = 24 bits). La memoria ROM será ahora una tabla de colores y contiene para este caso las mezclas correspondientes a cada color de la “ paleta” . A esta memoria se la denomina LUT ( look up table). Para nuestro ejemplo la LUT deberá tener 8 entradas y 24 salidas. Estas señales se transforman para actuar sobre las entradas de la pantalla por medio de unos conversores digitales analógicos y amplificadores como muestra la figura 7.7
A
SUS DE LA COMPUTADORA I n t e n s i d a d
Cok# de paleta
Memoria de imagen V
A
V
O/A -Í+-[a > Mapa de colores (LUT)
a.
d /a~ ]t H
D/A
R o j o
X>
+}£>
A z u l
-J
■§ ■«ntenskjad I C o O
Seña l de barrido horizontal Señal da barrico vertical
P ro ce sa dor o C opro ces ador o Acelera dor Gráfica C o n t ro l a d o r d e
v i d e o g r á f ic o - c o l o r
Figura 7.7 controlador gráfico de video color Los controladores gráficos avanzados contienen un procesador acelerador de gráficos que realiza funcione primitivas de dibujo tales como: zoom de la imagen, rellenado y giro de figuras, etc.. Hay procesadores de tres dimensiones (3D), en ios que ¡a memoria de pantalla almacena la profundidad del punto de imagen. Los controladores disponen, además, de un dispositivo eco (echo) por ei que todos ¡os datos que se introducen por el teclado son reflejados automáticamente en la pantalla. Otro dispositivo, denominado enrollamiento o scroll, permite visualizar mas datos de ios que caben en la pantalla, eliminando la línea superior y desplazando !as restantes un lugar hacia arriba, con lo que queda libre la línea inferior.
,
U N I D A D E S O t E N T R A R A - S A L I D A __________ _____________________ _ _________ _ __
1
'
7.3 ELTECLADO
i
E¡ teclado es un dispositivo que permite la comunicación entre e! usuario y ia computadora. Dispone de un conjunto de teclas agrupadas en cuatro bloques denominados alfabético, numérico, de control y teclas de función, de tal forma que pulsando cada una de ellas se transfiere su codificación a. la computadora. Existen algunas teclas que actúan como desplazadores de bits y nos permiten ampliar el conjunto de caracteres y órdenes que podemos enviar a la computadora desde el teclado (mayúsculas, control, alterna, etc,).También hay que destacar que las teclas de función no tienen una designación de funciones definidas, de forma que en cada aplicación pueden ser utilizadas para lo que se requiera. Ej teclado mas utilizado es el tipo QWERTY con un conjunto de IQ4 teclas físicas; desde el punto de vista lógico se puede convertir en una gran variedad de teclados (teclado americano, ingles, español, etc.) a través de programas de configu ración de! teclado. Asimismo, ei teclado lleva una memoria local denominada bufifer del teclado que nos permite almacenar una serie de lineas escritas en el mismo. La Figura 7.8 nos muestra dos tipos diferentes de teclado,
f ;
¡ i
f (
7.4 EL MOÜSE Ei mouse es una unidad de entrada constituida por una pequeña caja de aristas redondeadas de forma mas o menos ergonómica para su adaptación a la mano, con una o varias teclas de control en su parte superior y una bola en su parte inferior. Este dispositivo se maneja con una sola mano, de forma que su movimiento sobre una superficie piaña permite en ciertas aplicaciones tener un movimiento sinónimo en ei cursor de la parra!1- {a veces se sustituye este por una flecha, mano o cualquier otra figura similar); las órdenes correspondientes se activan a! pulsar una de las tecias de la parte superior. Su utilización en el mundo de la microinformática se 13Í
P R I N C I P I O S
D E
C O M P U T A C I O N
(
1 i (
í
<
U N I D A D E S DE E N T R A D A - S A U D A
ha extendido tanto que cualquier configuración de computadora personal lo inclu ye de forma habitual. La gran ventaja que presenta este dispositivo es la de permitir el trabajo con aquellas aplicaciones que incluyen el uso Gel mouse, de forma que no se desvia la vista de la pantalla. La Figura 7.9 nos muestra dos de ios múltiples modelos de mouse que existen actualmente en el mercado.
Figura 7.9 Mouse.
7.5IMPRESORAS Las impresoras son unidades de salida de datos soportados en papel. Permiten la obtención de listados impresos tanto de archivos como de resultados de los procesos, de forma legible por las personas. Las impresoras emplean técnicas basadas en fenómenos térmicos, electromticos y químicos, así como la utilización de tinta líquida y el rayo láser. Las impresoras más utilizadas son las siguientes:
7.5.1 Impresora térmica Esta impresora se basa en una de matriz de puntos, de punzones, que calientan el papel. El papel utilizado para la impresión es sensible al calor, se colorea ai calentarse(unos 200°). Su funcionamiento se base en d calentamiento de los pun zones al tiempo que la cabeza tiene un movimiento de oscilación circular que reco rre todo e¡ espacio de cada caracter. El gran inconveniente de estas impresoras es el precio del papel sensible ai calor. Existen impresoras térmicas de líneas y de caracteres, dependiendo de la forma y cantidad de sus cabezas. La velocidad de estas impresoras esta alrededor de ¡os 2000 cps. En la Figura 7.10 puede verse un esquema del mecanismo de impresión térmica. P R I N C I P I O S
D E
C O M P U T A C I O N
139
A D E S D E E N T R A D A - S A L ID A Cabeza de impresión térmica
ira 7.10 Mecanismo de impresión térmica.
7.5.2 Impresora de chorro de tinta c
a impresora utiliza tinta liquida que sale por una boquilla en forma de gotitas. se carga eléctricamente y esta guiada hacia el papel por medio de piacas de £V «ice.,
Gotitas de tinta
pgpel
’ura 7 . 1 I
P R I N C I P I O S
D E
C O M P U T A C I O N
_______________________U N I D A D E S D E E N T R A D A - S A L I D A ~ ]
7.5.3 Impresora láser La impresora láser utiliza un mecanismo de impresión xerográfico con una fuente de luz producida por un rayo láser. Este carga eléctricamente una superfi cie fotoconductora a la que se adhiere un polvo especial (toner) que al fundirse por la aplicación de calor forma los caracteres deseados. Actualmente este tipo de impresoras han irrumpido fuertemente en el mercado debido a su relación calidad/precio. Pertenecen al grupo de impresoras de paginas. En impresoras pe queñas se mide la velocidad en paginas por minutos y las velocidades van desde 4 a 500 ppm. En estas impresoras el tipo de letra puede venir definido en la misma o ser configurado por programa, de tal forma que admiten una gran varie dad de tipos y tamaños. La Figura 7.12 muestra de forma esquemática el mecanismo de impresión de una láser y su aspecto exterior.
Figura 7.12 Impresora láser y su mecanismo de impresión. P R I N C I P I O S
D E
C O M P U T A C I O N
141
i UNI DA DES DE ENTRADA - SALIDA
7.6 SCANNER Un scanner es una unidad de entrada de datos cuya misión es ¡a de digitalizar gráficos, textos,fotografías, etc., para su posterior proceso mediante una computa dora. Hoy día esta adquiriendo mucho auge en el manejo de imágenes y sonido con una computadora en los que se denominan entornos multimedia, y, por tanto, se esta utilizando mucho este tipo de dispositivos. El sistema considera a una página, fotografía, etc, dividida en celdas, que son iluminadas por una fuente de luz. Esta luz se refleja en cada ceida, y una mana de sensores electrónicos convierte la luz reflejada en una carga eléctrica, que será digitalizada, conformando la imagen almacenable y procesable por la computadora. Cuanto más celdas se divide ia imagen, mayor resolución tiene el scanner. Los scanners color disponen de tres tipos de sensores o filtros, sensibies a tres colores básicos: rojo, verde y azul. Con ¡a superposición de !as tres imágenes que se forman con cada uno de los tipos de sensores se puede construir la imagen en color. La Figura 7.13 nos muestra un scanner.
7.7PLOTTER Los trazadores gráficos o plotters son dispositivos capaces de realizar, como salida de un proceso, un gráfico o dibujo. La impresión puede hacerse de tal forma que el trazo puede tener uno o varios grosores y en uno o varios colores, utilizan do como elementos de escritura las plumas de dibujo o la técnica del chorro de tinta. Existen multitud de modelos de distintas características capaces de realizar di bujos, desde los formatos más pequeños (DIN A6) hasta formatos industriales de 142
P R I N C I P I O S
D E
C O M P U T A C I O N
UNIDADES DE ENTRADA - SALIDA
gran tamaño (DIN AO), pasando por los formatos típicos y habituales (DIN A4 y A3). La Figura 7.14 nos muestra un p/otter de color capaz de dibujar pianos en formatos hasta DIN AO.
Figura 7.14 plotter
7.8 ROBOTS Los robots son unidades de salida y. a veces, también de entrada, a través de sensores que disponen de un complemento mecánico capaz de realizar acciones físicas (movimientos) a partir de las órdenes que le da la computadora. La robótica es en la actualidad uno de los campos más desarrollados en la cien cia de las computadoras; esta en la industria, en la investigación, en la realización de trabajos peligrosos, etc. La Figura 7.15 nos muestra un brazo robot realizando un trabajo de soldadura. P R I N C I P I O S
DE£
C O M P U T A C I O N
143
DES DE ENTRADA - SALIDA
a 7.15 Brazo robot.
V # C w e s iío w o r ío Qué es un pixel? Cuái es la diferencia entre un punto de imagen y un punto de pantalla? ixplique el principio de funcionamiento de unTRC. En qué consiste ia tecnología trinitrón? -Qué información contiene ia memoria buffer de pantalla? ;A qué se denomina LUT? ¿En cuantos bloques y con qué características se agrupan las teclas que forman un teclado? ¿Cuái es la diferencia entre una impresora térmica y una de chorro de tinta? ¿Cómo es ei principio de funcionamiento de una impresora láser? ¿Cómo es ei principio de funcionamiento de un scanner?
Sistemas operativos 8.1 ÍNTRODUCCiÓN Vamos a estudiar e! software básico de! sistema creado por ia firma constructo ra para sus computadoras, o por una empresa de software, al que desde ahora vamos 3 denominar sistema operativo. Un sistema operativo es, en principio, el soporte lógico que controla el funcio namiento del equipo físico o hardware haciendo que el trabajo con la computadora sea sencillo. Desde este punto de vista podemos definirlo de la siguiente manera: Un sistema operativo es un conjunto de programas y funciones que controlan el funcionamiento dei hardware ocultando sus detalles, ofre ciendo ai usuario una vía sencilla y flexible de acceso a la com putadora. Por otra parte, una computadora es una máquina que posee un conjunto de elementos que denominaremos recursos, que deben ser racionalmente distribui dos y utilizados para obtener de ellos el mejor rendimiento. Estos recursos son ios siguientes: •Ei procesador. Como sabemos, es el lugar donde se ejecutan las instrucciones y por ello deben controlarse los programas que se ejecuten y su secuenciamiento. •La memoria principal. Todo programa que se ejecute en una computadora, así como todo dato que se desee procesar, debe residir en la memoria principal, por lo tanto, es necesario regular su uso y ocupación. •La entrada/salida.Todo programa, en general, necesita realizar operaciones de entrada/salida sobre sus unidades periféricas para el control y direccionamiento de las mismas. P R
N C I P
i O S
D E
C O M P U T A C I O N
¡45
[
_________] SI ST EM A S O P E R A T IV O S _________________________________________________________
* La información. Los datos, sus tipos, tamaños y métodos de representación tienen que estar perfectamente controlados para evitar operaciones erróneas o falsas interpretaciones. Desde el punto de vista del conrol de los recursos de una computadora pode mos establecer la siguiente definición: Un sistema operativo es el administrador de ios recursos ofrecidos por ei hardware para alcanzar un eficaz rendimiento de los mismos. La Figura 8 .1 nos muestra una magen donde se refleja la función de! sistema operativo como un eficaz gestor de los recursos de una computadora.
Figura 8.1 El sistema operativo como gestor de recursos. 146
P R I N C I P I O S
D E
C O M P U T A C I O N
SISTEMAS OPERATIVOS
8=2 EVOLUCIÓN DE LOS SISTEMAS OPERATIVOS La evolución de los sistemas operativos ha sido una consecuencia de ios avances producidos en el hardware de las computadoras, desde las primeras que se cons truyeron hasta la gran variedad de ellas que existen hoy en día. Las máquinas de los años cuarenta y cincuenta no eran muy flexibles ni eficien tes. La ejecución de un programa necesitaba de una gran preparación de! equipo* colocar las tarjetas perforadas en la lectora de tarjetas,ajustar los interruptores de la máquina, etc. Por esta razón, !a ejecución de cada programa(ilamada también trabajo) se manejaba como una entidad independiente. Cuando varios programadores tenían que compartir !a máquina, los diversos usuarios debían anotarse en una lista para reservar horas de trabajo específico con la máquina. Durante el pe ríodo asignado a un programador, la máquina estaba por completo bajo el control de ese programador, y ia sesión casi siempre comenzaba con la preparación del programa, seguida de cortos períodos de ejecución del programa, y a veces termi naba con un esfuerzo para finalizar pues comenzaba el turno del siguiente progra mador (figura 8.2).
J O B S
SOLO 1 TR AB AJO TIEMPO DE A C C E S O L IM IT AD O COMPUTADORA
m
IMPRESORA
CONSOLA
LECTOR DE TARJETAS
USUARIO
Figura 8.2 sistema de asignación por tiempo Los sistemas operativos se iniciaron como sistemas para simplificar los prepa rativos de los programas y para agilizar las transiciones entre trabajos. Uno de los primeros avances en este sentido fue separar a los programadores del equipo para eliminar el tránsito físico de ia entrada y salida de personas de la habitación en que se encontraba la computadora. Con este fin, se contrataba a un operador que se P R I N C I P I O S
D E
C O M P U T A C I O N
147
í
SIS TE M AS O P ERA TIV O S__________________________________ ____________ __ ______________ ^
encargara de la operación de la máquina.Todo ei que deseara ejecutar un programa tenía que entregarlo al operador junto con las especificaciones y volver más tarde a buscar los resultados. E! operador cargaba entonces estos materiales en el almacenamiento auxiliar de la máquina, donde el sistema operativo podía obtener acceso a ellos para ejecutarlos. Éste fue ei principio del proceso en lotes (ba tch Processing), que se refiere a la ejecución de trabajos reuniéndolos primero con sus datos asociados para formar un solo lote en almacenamiento y ejecutándolos después sin más interacción con ei usuario(f¡gura 8.3).
CONSOLA
m
i— a
b
COMPUTADORA 5
?
IMPRESORA
TRABAJOS
RESULTADOS
•
i
■ f> p.7-
L EC T O R D E T A R J E T A S
i
'W , ’ -t
r-S. Figura 8.3 Sistema de asignación por operador
USUARIOS
Para agilizar más la operación se diseñaron sistemas operativos que permitían al operador insertar trabajos en el almacenamiento auxiliar conforme le eran entre gados. Asi, en un momento dado podía haber varios trabajos esperando para su ejecución, Cada vez que terminaba el trabajo que se estaba ejecutando, el sistema operativo escogía automáticamente otro trabajo de acuerdo a un proceso de se lección y lo iniciaba. Al proceso de almacenamiento de trabajos en espera para ser ejecutados se ¡o llamó coia de trabajos. Una cola es un conjunto de trabajos organizados en una estructura FIFO (first input first output), primero en entrar .primero en salir.
8.2.1Lenguaje de control de trabajos En los primeros procesos en lotes, cualquier especificación particular de un programa, se tenia que comunicar al operador, porque ei programador no estaba presente en el momento de la ejecución del programa. Esto complicaba la tarea del 148
P R I N C I
P I O
S
D E
C O M P U T A C I O N
í
______________________________________________________ ________S IS T E M A S O P E R A T I V O S
]
operador que tenía que asociar ias indicaciones en e! momento de ejecución reai de ios programas, pues en una cola de trabajos, el sistema operativo determinaba ef instante de comienzo de ejecución de un programa. El trabajo que realizaba el operador era bastante repetitivo y podía ser automa* tizado. Apareció la denominada secuencia automática de trabajos consistente en intercalar, entre las tarjetas de un programa y otro, una serie de tarjetas de control con instrucciones. ES programa que controlaba el secuenciamiento de ¡os trabajos se denominó m onitor y constituyó e) primer sistema operativo. Este programa permanecía constantemente en memoria por ío que se lo ¡lamó residente. En el momento de encender ¡a computadora se daba control al programa moni tor, éste a su vez daba control al primer trabajo y cuando terminaba su ejecución tomaba el control de nuevo, dando paso al segundo de los trabajos, y así sucesiva mente. El programa monitor contenía las siguientes partes: O El secuenciador automático de trabajos. O El intérprete de ias tarjetas de control. O Los controladores de entrada/salida. Para que el monitor supiera qué programa debía ejecutar y qué datos iba a tratar.se diseño un sistema de codificador!, llamado lenguaje de control de tra bajos - JC L ( job control language), que hacía posible aimacenar ias indicaciones especiales con el trabajo en la cola. Se añadía al paquete de tarjetas de control que contenía el programa y los datos, un conjunto de tarjetas de control con las indicaciones necesarias para que el mo nitor controlase la situación en cada instante ( lenguaje de control de trabajos). Las tarjetas de control se diferenciaban del resto por ei caracter perforado en su primera columna(por ejemplo $); este caracter variaba de un sistema a otro. En ¡a Figura 8.4 puede apreciarse un programa escrito en lenguaje FORTPvAN junto con sus datos e intercaladas las mencionadas tarjetas de control. / $£no . . parFet pro^rpa- --.^ /Tmw / $loao r / ^ Z r^ P ro y a m » F O R T R A N ^ /ÍTORTRAÑ l! 'i-' rl / NIOB IO 429764’ i
/ ■
P ro fl rm * FOR TRAN
t é Ü a i:# iU ; íll.- ¿L-'
—
--- -----
--
Ir
___
Figura 8.4 Tarjetas de control. P R I N C I P I O S
D E
C O M P U T A C I O N
149
□
C Z SIS TE M AS O P E H A T I V O S _____ ________ ________________________
8.2.2 Procesos off line y on line Resueito el problema de la automatización en ia ejecución de los trabajos, el tiempo ocioso dei procesador era importante. La diferencia de velocidad entre ei procesador y los periféricos para la realiza ción de operaciones de entradaysalida hacen que el tiempo libre de espera del procesador sea excesivamente grande, y por ello surgieron métodos para minimi zarlo. Aparecen los procesos on-line y off-line que consisten en conectar directamente los dispositivos lentos a la computadora (on-line) o hacerlo a través de dispositivos más rápidos (off-line). La Figura 8.5 nos muestra este tipo de procesos donde pode mos ver cómo se recogen datos de una lectora de tarjetas y se envían a una impre sora desde una unidad de cinta cuya velocidad es superior a las anteriores (proceso off-line).
LECTORA DE TARJETAS
PROCESOON-LINE
UnnE.iT COMPUTADORA
IMPRESORA
LECTORA DE TARJETAS
-Q ~
UNIDADES DE CINTA
UNIDADES DECINTA
IMPRESORA
Figura 8.5 Procesos on-line y off-line.
Otras técnicas para mejorar el rendimiento son: Buffering: consiste en el almacenamiento de datos procedentes de los periféricos, en memorias intermedias (buffer), donde mientras el procesador reali za operaciones con los datos recibidos.se vuelve a cargar el buffer en forma simuf- tánea. 150
P R I N C I P I O S
D E
C O M P U T A C I O N
SISTEMAS OPERATIVO S
1
«*' Spool (simultaneous perifhera! operation on line): ¡as técnicas de spooling permiten que la salida de un programa se escriba en un buffer y posterior mente sea ¡levada a un disco magnético en espera de poder ser enviada a una impresora o cualquier otro periférico de salida que en ese momento pueda estar ocupado, (ver Figura 8.6). El procesador puede estar realizando un trabajo mientras se imprimen, por ejemplo los resuitadbs de un proceso anterior. Un sistema spool es en este caso una cola de archivos en espera de que llegue su turno para ser impresos conforme a una organización de tipo FIFO. Cada dispositivo de entrada- salida tiene su propio sistema spool. Acceso directo a memoria (DMA-Direct Memory Access): en esta técnica se aprovecha los momentos en que e¡ procesador no utiliza la memoria durante ei ciclo ejecución de una instrucción, para la realización de algunas opera ciones de lectura/escritura en la memoria por parte del controlador de entradasalida. Buffering Buffer
Terminal
Buffers
Impresora
Spooling
Terminal
Figura 8.6 Buffering y spooling P R I N C I P I O S
D E
C O M P U T A C I O N I
151
r
SISTEMAS O
P E R A
T I V
O
S ___________________
8.3 MULTIPROGRAMACIÓN Para mejorar aun más el rendimiento en los sistemas informáticos, se desaroüa en ¡a década del setenta la multiprogramación consistente en la ejecución simul tánea, en un mismo procesador, de varios programas a >avez. Para ello existen las modalidades de proceso por lotes (batch), el tiemp o co mp artido (time sharing) y el tiem po rea! (real tíme) en el que, a través de políticas de asignación, se ejecu tan varios programas intercalando ia ejecución de sus instrucciones en el procesa dor. En general los sistemas operativos suelen tener simultáneamente las tres y es el usuario el que elige ei modo de trabajar. Entre los sistemas operativos que trabajan de esta forma podemos mencionar: el MVS de IBM, el VMS de DEC y el UNIX. E! proceso por lotes (batch): consiste en ir solicitando ia ejecución de procesos que no precisan interacción con el usuario (no conversacionales) y estas peticiones van situándose en una cota del tipo FIFO, siendo el sistema operativo el que da entrada a un conjunto de ellos para su ejecución. Tiempo compartido (time sharirigJrLws procesos actuales son en su mayoría interactivos o conversacionales y necesitan un determinado dialogo con ei usuario. Por ello aparece el tiempo compartido, consistente en un conjunto de terminales que están continuamente solicitando atención del procesador, siendo el sistema operativo quien va asignando dicha atención entre los distintos usuarios. El trabajo se organiza por sesiones , durante las cuales el usuario cree tener a su disposición todos los recursos de la computadora, aunque existan otros usuarios con sus sesiones activadas simultáneamer.»'-!. Los sistemas de tiempo compartido se caracterizan por ofrecer tiempos de respuestas cortos de! orden de los segun dos. Un sistema de peticiones de usuarios denominado polling se encarga de inte rrogar secuencialmente las mismas. Si varios programas se ejecutan simultáneamente, es necesario limitar la posibi lidad de que se interfieran unos con otros (interbioqueos) en todas las fases del sistema operativo, incluyendo la planificación de los procesos, el almacenamiento en disco y la administración de la memoria. La Figura 8.7 nos muestra un esquema de tiempo compartido. *•* Tiem po real (real t¡m e):el tiempo real es la posibilidad que tienen deter minados procesos en un sistema multiprogramado de obtener respuestas dei pro cesador en un tiempo muy pequeño (milisegundos). Se lo utiliza generalmente en aplicaciones dedicadas a sistemas de control con 152
P R I N C I P I O S
D E
C O M P U T A C I O N
S I S TE M A S O P E R A T I V O S
/
*r.
-d
)
COMPUTADORA
\
TERMINALES
Figura 8.7 Multiprogramación en tiempo compartido. sensores como elementos de entrada, donde es necesaria una respuesta rápida sobre el sistema a controlar. Los sistemas que controlan experimentos científicos, sistemas médicos de visualización, sistemas de control industrial, sistemas de arma mentos y algunos sistemas gráficos son sistemas en tiempo real. Un sistema trabaja en tiempo real si el tiempo de respuesta permite controlar y regular el medio sobre el que opera. La información debe estar permanentemente actualizada. El sistema debe per manecer ia mayor parte del tiempo inactivo para poder atender rápidamente cual quier evento de entrada. Por !o general no hay ningún tipo de almacenamiento secundario o es limitado, y en su lugar los datos se almacenan en memoria a corto plazo o en memoria ROM.
8.4 SISTEMAS DISTRIBUIDOS Las ultimas innovaciones en los sistemas operativos aparecidas todas ellas a partir de ia década de los ochenta no buscaron aumentar el rendimiento en la utilización del procesador, sino aumentar la seguridad,la velocidad de proceso y las prestaciones que pueden ofrecerse ai usuario. Una nueva tendencia de los sistemas operativos, se basa en la conexión en paralelo varias computadoras distribuyendo los cálculos en tre varios procesadores. Existen dos esquemas básicos para la construcción de estos sistemas: P R I N C I P I O S
D E
C O M P U T A C I O N
153
j
f
S I S T E M A S O P E R A T IV O S '
1, Los procesadores comparten ¡a memoria y un reloj, y ia comunicación se lleva a cabo a través de la memoria compartida. 2. Los procesadores no comparten la memoria ni el reloj, pues cada uno cuenta con su propia memoria local. Los procesadores se comunican a través de distintas líneas de comunicación, como canales de alta velocidad o líneas telefónicas.A estos sistemas se los conoce como sistemas distribuidos, y en ellos los procesadores pueden variar en cuanto a tamaño y función. Pueden incluir pequeños microprocesadores, estaciones de trabajo, minicomputadoras, y grandes sistemas de computación de propósito general. Para referirse a estos procesadores se usan varios nombres, como instalaciones, nodos, computadoras, etc.., según el contexto que se mencionen. Existen varias razones para construir sistemas distribuidos: «»" Com partim ie nto de recursos: si varias instalaciones con distintas capaci dades, están conectadas entre sí, entonces un usuario puede utilizar en una instala ción los recursos disponibles en otra. Por ejemplo, en la instalación A se puede utilizar una impresora láser sólo disponible en ía instalación S. Al mismo tiempo, en B es posible tener acceso aun archivo que reside en A, En general, el compartimien to de recursos en un sistema distribuido ofrece ios mecanismos para compartir archivos en instalaciones remotas, procesar información en una base de datos dis tribuida, imprimir archivos en instalaciones remotas, utilizar dispositivos remotos de hardware especializado, como procesadores de arreglos de alta velocidad, y llevar a cabo otras operaciones. Aceleració n de los cálculos: sí un cálculo determinado puede dividirse en varios subcáculos que se ejecuten concurrentemente, un sistema distribuido per mitiría distribuir ios cálculos entre las diversas Instalaciones y también ejecutarlos concurrentemente. Además, si en un momento dado una instalación está sobrecar gada con trabajos, algunos de ellos pueden pasarse a otras instalaciones con poca carga. A este movimiento de trabajos se lo llama compartimiento de cargas. «r Contabilidad: si falla una instalación de un sistema distribuido, las restantes pueden, potencialmente, continuar operando. Si el sistema se compone de varias instalaciones autónomas de gran tamaño (es decir computadoras de propósito ge neral), ¡a falla de una no debe afectar a las demás. Si por otra parte, ei sistema está compuesto por varias máquinas pequeñas, cada una es responsable de alguna fun ción del sistema ( como ¡a entrada-salida de caracteres de las terminales o el siste ma de archivos), entonces un soio error puede detener el funcionamiento de todo el sistema. En general.si hay suficiente redundancia en el sistema ( tanto en hardware como en datos), el sistema puede continuar su operación, incluso cuando fallen algunas de las instalaciones.
SISTEMAS OPERATIVOS
Comunicación: Existen varias situaciones más donde los programas de un sistema necesitan intercambiar datos entre sí. Un ejemplo son los sistemas de ven tanas, ya que con frecuencia se comparten datos o se transfieren entre ventanas. Cuando varias instalaciones están conectadas entre sí por una red de comunicacio nes, los procesos en las distintas instalaciones tienen la oportunidad de intercam biar información. Los usuarios pueden iniciar transferencias de archivos o comuni carse entre ellos por medio de correo electrónico. Un usuario puede enviar correo a otro usuario de la misma o de alguna otra instalación. El correo es texto que el sistema operativo no interpreta. La Figura 8.8 nos muestra un esquema de sistema distribuido.
SISTEMA 2
Figura 8.8 Sistema distribuido.
8.5 MULTÍPRQCESAMÍENTO Para aumentar la velocidad de proceso existe el muítiprocesamienfco, consis tente en computadoras que poseen más de un procesador, con lo que el sistema operativo controla e! reparto de trabajo entre ios distintos procesadores, aumen tando el número de instrucciones que la máquina puede ejecutar por unidad de tiempo. Esto permite la ejecución simultánea de dos o más programas, pero a dife rencia de la multiprogramación, ejecutando varias instrucciones a ia vez. Uno de los problemas actuales en el proceso de datos ha sido la aparición de aplicaciones que manejan tal canJdad de información, que un solo procesador no es capaz de procesarla en el tiempo requerido. Por ejemplo los sistemas expertos P R I N C I P I O S
D E
C O M P U T A C I O N
155
\
T E M A S O P E R A T I V O S _____ _ _________ ____________ ______ ________________ _____________ j
acterizan por tener una cantidad de datos muy grande y necesitan tiempos de esta pequeños; además, los algoritmos que manejan estos datos son compliy realizan muchas operaciones para llegar al resultado, i hizo necesario la descomposición de algoritmos en subalgoritmos más sende manera que cada uno pueda tratar un subconjunto de los datos con cierta endencia de los otros. Ai final se juntan ios datos, obteniendo ei resultado ie todo el proceso. Los subalgoritmos pueden trabajar en paralelo, tratando uno su parte de información al mismo tiempo. >s multiprocesadores satisfacen el procesamiento de varios algoritmos en formultánea con un ahorro importante en ei tiempo de ejecución. Los sistemas itivos para multiprocesadores son complejos por que tienen que administrar s procesadores de manera que la carga y ia distribución de trabajos debe íizar al máximo todo el proceso completo.
8.6 SISTEMAS OPERATIVOS COMERCIALES i la actualidad, y especialmente respecto a las computadoras personales, se e a diseñar sistemas operativos portables o compatibles para facilitar la inteón entre las mismas. principales sistemas operativos utilizados en computadoras personales son guientes:
d s
& DOS. <& Windows 98.
Windows NT & OS/2. <0 Sistema operativo Macintosh. & Unix. & Linux. r DOS I sistema operativo DOS (Disk Operating System) o MS-DOS fue diseñado por osoft para las computadoras personales IBM, extendiéndose a todas las denotdas PC
P R I N C I P I O S
D E
C O M P U T
A C I O N
|
SISTEMAS OPERA TIVOS ___________ ________________ ___________ ___________ __________ __________ _________ __________ ___________ __________ ________ ___ SISTEMAS
j
» W indows 98 Para Para palia paliarr los los inconvenientes inconvenientes del del DO D O S, Microso Microsoft ft ha ha desarr desarroll ollado ado W in d o w s , un sistema operativo de entorno gráfico, diseñado para una arquitectura con microprocesadores microprocesadores de 32 bits, que permite ejecutar ejecut ar varios programas programas a la la vez (multitarea), compartir datos entre los programas (intercambio dinámico de datos) y acceso a una mayor memoria principal (Figura 8.9). Tiene tecnología tecnología plug plug and play que permite perm ite instalar instalar fácilmente fácilmente e! sistema o agre gar nuevos nuevos dispositivos de hardware hard ware.. * Windows 98 es una actualización de su antecesor ei Windows 95. W indows NT El Windows NT(NewTechnology) se utiliza en redes y servidores de alto nivel. Es multitarea. Cada Cada aplicación aplicación de 32 bits corr co rree por su cuenta cada una en una máquina virtual con sus propios espacios de memoria.
Figura 8. 8.9 sistem sistem a o pe rativo Windows, * QS/ QS/2 El OS/2 (Operating System/2) es un sistema operativo, diseñado por Microsoft e IBM para su suss equipos personale perso naless PS/2 PS/2.. Esta pensad pensado o para para equipos equipos de arqu arquite itect ctur uraa de 32 bits, de gran potencia y facilita ia conexión en red. Sus principales inconve nientes son el costo más elevado de los equipos y las pocas aplicaciones desarrolla das. Sistema operativo Macintosh Es un sistema que sólo funciona en equipos Macintosh, de Apple Computer, nionern en la utilización de un entorno operativo práfico, incluyendo el uso de P R I N C I P I O S
D E
C O M P U T A C I O N
157
SÜTEMAS o p e r a t i v o s
ventanas (windows), menús desplegables y ei mouse. Este sistema presenta las venta ja jas de de su su facil acilid idad ad de de us uso, la ca calida idad de los los gráfi gráficos cos,, es multitar multitarea ea y tiene tiene cap capacida idad de comunicación comunicación entre entre los program programas. as. Sin embargo, embargo, debido debido a que no es compatible, su extensión en el mercado es limitada.
Í
Unix Desarrollado Desarrollado por AT&T AT& T para ara minicomputadoras, con el objet o bjetivo ivo de la portab portabilidad ilidad a cualquier equipo, no tiene limitación en cuanto a memoria principal, puede reali zar multitareas y puede ser compartido por varios usuarios a la vez (sistema multiusuario). También dispone de buenas capacidades para su uso en red. Por contra, su repertorio de software de aplicaciones es muy limitado, no dispone de un entorno operativo gráfico estándar y existen distintas versiones en el mercado, ¡o que va en contra de su portabilidad. >•' Li Lin u x Una gran desventaja de Unix es su costo lo que complica su utilización en com putadoras personales. Linus Torvalds de la Universidad de Helsinki de Finlandia desarrolló el núcleo de este sistema que se conocería como Linux. Al igu igual que que Unix, es multitarea multitarea y multius multiusuario uario y sop s opor orta ta la interfaz gráfica gráfica desarrollada desarrollada por por el MIT ( Massach Massachuse usetts tts Institute Institu te of of Technology), Technology), el x W indow ind owss System. No es un sistema comercial sino más bien es de laboratorio lo que abarata ios costos, pero tiene la dificul dificultad tad de de la falta de sop s opor orte te técn té cnic ico o y la insegu insegurid ridad. ad.
O u c s t ío m ir L o w
-¿Qué es un sistema operativo? -¿Qué recursos debe administrar un sistema operativo? -¿Cuál es la característica principal del JCL? -¿En qué consiste la secuencia automática de trabajos? -¿Cuál es la diferencia entre los conceptos de buffering y spooling? -¿A qué se llama DMA? -¿Cuál es la diferencia entre multiprogramación y multiprocesamiento? -Clasifique y explique los tipos de multiprogramación. -¿A qué denomina sistema distribuido? -Realice un cuadro comparativo con las principales características de los sistemas operativos comerciales.
158
P R I N C I P I O S
D E
C O M P U T A C I O N
CAPITULO IX
- H i .H . H . in in i . i
......................
.
*
La programación de computadoras 9.1 INTRODUCCIÓN Los problemas o tareas que se plantean diariamente, por ejemplo en el ámbito de la empresa, ya sean de gestión, técnicos, matemáticos, etc., pueden ser resueltos mediante el uso de la capacidad intelectual . La utilización de la computadora para la realización automática de una tarea aporta grandes ventajas, como la rapidez de ejecución y ¡a fiabilidad de los resulta dos obtenidos. Muchos problemas implican complicados cálculos, así como el manejo de gran des cantidades de datos. En el primer caso, la posibilidad de equivocarse es grande y en el segundo el trabajo se convierte en tedioso y rutinario. Mediante el uso de la computadora se eliminan estos inconvenientes debido a las capacidades de la má quina, basadas en las siguientes características: • Rapid Rapidez ez • Precis Precisión ión • Memoria Memoria Sin embargo, la computadora por sí sola no podría resolver ni el más sencillo problema que se nos pueda ocurrir. Es preciso, para que pueda hacerlo, detallarle en su lenguaje todos los pasos que ha de llevar a cabo para la resolución de! problema. Esta Esta descripción descripción es es el p r o g ra m a y su objetivo es dirigir dirigir el funcionamie funcion amiento nto de la máquina.
P R I N C I P I O S
D E
C O M P U T A C I O N
¡ 59
j
LA L A P R O G R A M A C I O N P E C O M P U T A D O R A S
__________ _______________ ________ ___
' i
9.2 CICLO ICLO DE VIDA DEL SOFTW SO FTWAR AREE Desde el planteamiento de un problema o tarea hasta que se tiene el corres pondiente pon diente pr p r o g r a m a para su realización realización por medio medio de ¡a computadora, instal instalado ado en la misma y en funcionamiento mientras sea de utilidad, se sigue una serie de etapas que en conjunto denominamos ciclo de vida de! software. Cada una de las etapas, que tiene un objetivo bien determinado, se llevará a cabo cuando se ha terminado completamente la anterior, es decir, se han de abordar de forma estric tamente secuencia!. Las etapas de que consta el ciclo de vida del software pueden agruparse en dos bloques, según el esquema de la Figura 9.1.
9.2.1 .2.1 Et Etapas apas de análisis análisis y diseño de de progra programas mas Es de destacar que la realización de estas etapas no necesita el uso de la compu tadora. No obstante, desde hace algún tiempo se utiliza ésta como apoyo mediante las denominadas herramientas CASE (ComputerAided Software Engineering). Análisis. Consiste en el estudio detallado del problema con el fin de obtener una serie de documentos (especificaciones) en los que quede totalmente definido el proceso de ¡a automatización. Consta principalmente de: -
- Análisis previo. -Análisis funcional. - Análisis orgánico. • P r o g ra m a c ión ió n . Consiste Consiste en la re reali alizaci zación ón del del a lgo lg o ritm ri tm o del probl problema ema plan lan teado. Esta Esta solución se dis diseña eña util utiliza izando ndo un una notaci notación ón intermed intermedia ia (pse (p seu u d o c ó d igo ig o ), sin tener en cuenta necesariamente el lenguaje de programación que se va a utilizar en la siguiente etapa. En esta etapa es donde tiene cabida fundamentalmente ia actividad del progra mador y la utilización de técnicas adecuadas de diseño como la programación estruc est ruc turad tur ad a y el el diseño diseño modular. • C o d ific if icaa c ión ió n . Escritura en un len lengu guaj ajee de de progr programac amación ión de alto nivei nivei de de los los algoritmos obtenidos en la etapa anterior.
16G 16G
P R I N C I P I O S
D E
C O M P U T A C I O N
<*•
c
LA PROGRAMACION DE COM PUTADO RAS
¡
RESULTADO
\
PROBLEMA ANALISIS
ESPECIFICACIONES
ANALISIS Y DISEÑO
PROGRAMACION
ALGORITMO
/S^C CODIFICACION
c
\
PROGRAMA
EDICION
PROGRAMA FUENTE
COMPILACION
PROGRAMA OBJETO
IMPLANTACION Y EXPLOTACION
ENLACE (LINK)
FROGRAMA EJECUTABS t
PRUEBA DE EJECUCION CION
b
APLICACION EXPLOTACION Y MANTENIMIENTO
/
Figura 9.1Cicio de vida del software. P R I N C I P I O S
D E
C O M P U T A C I O N
161
r
L A P R O G R AM A C IO N DE C O M P U TA D O R AS
9.2.2 Etapas de la implantación y explotación Para la implantación y explotación de programas se deben seguir los pasos que se describen a continuación: •Edición. En esta fase se transcribe el programa a la computadora,grabándose el mismo en la memoria auxiliar por medio de un editor de programas o procesa dor de textos.A este programa almacenado en ia computadora y escrito en lengua je de alto nivel se le denomina programa fuente. •C om pilación. Consiste en obtener el programa objeto, codificado en lenguaje máquina, a partir del programa fuente. Esta tarea se realiza de forma automática mediante el compilador del lenguaje, el cual, además de efectuar la traducción, incluye un análisis sintáctico del programa, detectando posibles errores en su escritura y posibilitando ¡a corrección de los mismos. •Eniace (iinkage). En esta fase se incluyen determinadas rutinas internas de ia librería del lenguaje que sean necesarias en el programa, y si ¡a aplicación consta de varios programas o módulos se enlazan todos ellos, obteniéndose lo que denomi namos programa ejecutable. •Prueba de ejecución. El programa ejecutable obtenido en la etapa anterior se somete a un juego de datos de prueba capaz de detectar ias posibles incorreccio nes en su funcionamiento. •Expiotació n y m an tenim iento. Una vez comprobada la corrección del pro grama y realizada su instalación en el sistema informático, ia aplicación queda a disposición de ios usuarios, que la utilizarán h?sta tanto se decida abandonarla o cambiarla por otra. Es lo que denominamos explotación de la aplicación. Paralelamente al uso de la aplicación se realiza el mantenimiento de la misma, que consiste en su evaluación periódica por parte del personal informático, así como la inclusión de las adaptaciones y modificaciones necesarias para mantenerla actualizada.
9.2.3 Errores La presencia de errores, surgidos en alguna de las etapas antes descritas, suele ser inevitable. Por ello es muy importante saber detectarlos y corregirlos para asegurar ia calidad del producto final. Un programa en explotación pi'ede contener errores que no han sido detectados y que pueden dar lugar a consecuencias impre visibles.
[ ____________________________________ LA PROGRAMACION DE COMPUTADORAS?-? ',
En el momento en que se encuentra un error hay que proceder a estudiar sus causas y regresar a la etapa correspondiente en que puede ser corregido. Según la etapa en que se detectan, los errores se clasifican de la siguiente mane ra: •De. compilación. También denominados errores sintácticos, son los más fáciles de encontrar y corregir. Se producen por e! incumplimiento de las reglas sintácticas del lenguaje y son detectados por el programa compilador indicando el lugar en que se encuentran y la clase de error. • De ejecución. Se detectan durante la ejecución del programa por la parada anormal del mismo, y suelen provenir de ia realización de operaciones no permiti das. Se producen o no, dependiendo de los datos de entrada empleados: por ello, para encontrarlos, es necesaria la prueba de programa con un conjunto de datos de ensayo lo suficientemente amplio que abarque la mayoría de casos y posibilidades de ejecución. • De lógica. Se dice que un programa tiene un error de lógica si produce resultados que no son correctos. Para detectarlos hay que realizar un número suficiente de ejecuciones con diferentes datos de prueba y comprobar los resuda dos obtenidos. • De especificación. Son los más difíciles de corregir, pues corresponden a incorrecciones sobrevenidas en ia etapa del análisis, por lo que hay que modificar gran parte del trabajo realizado.
9.2.4 Documentación de ios programas Constituida por todos ios documentos que se elaboran en cada una de las eta pas del análisis y diseño, es muy impctante para facilitar su mantenimiento y obte ner un mayor rendimiento. Denominamos documentación interna al contenido del propio programa fuen te. Debe incluir ios comentarios explicativos suficientes que posibiliten su com prensión y actualización. Asimismo, se debe utiüzar un código autodocumentado, es decir, debe ser escrito de una forma clara y legible. t: , i¡
La documenta ción externa la forman el resto de documentos que se acompañan con el programa sin formar parte de el. Entre ellos deben figurar los siguien tes: P R I N C I P I O S
1(
DE
C O M P U T A C I
O N
1 6 3
r
L A P R O G R AM A C IO N P E C O M P U T A D O R A S ____ '
~
_______________________
•Especificaciones dei análisis. •Descripción del diseño. • Descripción de las versiones, si las hubiere. •Descripción de archivos y estructuras de datos. •Descripción del programa principa! y subpcogramas. •Manual.de mantenimiento. •Manual de explotación.
9.3 ESTRUCTURA DE UN PROGRAMA En general, un programa consiste en una secuencia de instrucciones que ha de procesar ia computadora con el objetivo de obtener unos resultados o datos de salida a partir de unos datos iniciales o detos de entrada (Figura 9.2).
■■■....-.............. "1
1f i l i l í
I T
'
n i*
%
Figura 9.2 Proceso de elaboración. Desde un punto de vista funcional, un programa se estructura en tres partes: 1. Entrada de datos, Esta formada por todas las instrucciones que toman los datos objeto de! programa desde un dispositivo externo (unidad de entrada) depo sitándolos en la memoria principal de la computadora, incluyendo ia depuración o validación de los mismos. 2. Proceso. Conjunto de instrucciones que resuelven el problema a partir de os datos que han sido introducidos, dejando ios resultados en la memoria principal. :! dispositivo físico encargado de llevar a cabo esta tarea es la unidad centro! del jroceso. 3. Salid* de resultados. La constituyen !as instrucciones qi¡e hacen que los latos resultantes deí proceso sean proporcionados al exterior por medio de algún lispositivo (unidad de salida). 164
P R I N C I P I O S
D E
C O M P U T A C I O N
'
i
t_______ ________ '
_____ ___________i- A P R O G R A M A C I O N D E C O M P U T A D O RA S
i
Estos tres componentes de todo programa (Figura 9.3) no aparecen separada mente, sino que lo normal es encontrar las instrucciones pertenecientes a cada uno de los tres grupos mezcladas entre si, pues, en multitud de ocasiones, es nece sario realizar operaciones de entrada después de iniciada la fase de proceso, y, asimismo, se proporcionan algunos resultados antes de terminado el mismo.
(JATOS
RESULTADOS
MEMORIA PRINCIPAL 1
ENTRADA
PROCESO
SALIDA
i !
Figura 9.3 Estructura de un programa Desde el punto de vísta de la descripción, es decir, de la manera eo ~ue h a y que indicar a la computadora lo que tiene que hacer, un programa gene¡ límente se compone de dos bloques (Figura 9.4): 1. Descripción de objetos. En el cual se declaran los objetos que intervienen en el programa: variables, constantes, tablas, archivos, etc., indicando su nombre, tipo, tamaño y demás características que necesite conocer el procesador. 2. Descrip ció n del a lgoritm o. Serie de instrucciones o acciones que I proce sador ha de realizar en el mismo orden en que se describen, si bien esc orden puede ser alterado con las instrucciones de control de secuencia.
PROGRAMA
OBJETOS
i
INSTRUCCIONES
Figura 9.4 Esquema de un programa. P R I N C I P I O S
D E
C O M P U T A C I O N
165
r
LA P R OG R A M AC I O N P E CO M P UT A D OR A S
_ _
'
________________
9.4 LENGUAJES DE PROGRAMACIÓN El desarrollo de las capacidades del hardware ha experimentado un auge desme surado en ios úitimos años, pero ei aprovechamiento de estas posibilidades no es óptimo si no se dispone del software adecuado. Con este fin se han diseñado diver sos lenguajes de programación, unos de propósito genera!, es decir, para todo tipo de aplicaciones, / otros de aplicación particular en alguno de ios campos dei ámbito informático. Un lenguaje de programación es una notación para escribir programas, a través de los cuales podemos comunicarnos con el hardware y dar así ias órdenes adecua das para la realización de un determinado proceso. Un lenguaje esta definido por una gramática o conjunto de reglas que se aplican a un olfabeto constituido por el conjunto de símbolos utilizados. Los distintos niveles de programación existentes nos permiten acceder al hardware, de tal forma que, según utilicemos un nivel u otro, así tendremos que utilizar un determinado lenguaje ligado a sus correspondientes traductores. En el esquema de ¡a Figura 9,5 se representan los distintos niveles de acceso a la máquina, teniendo en cuenta que por el único que se accede a! hardware directamente es / ma q u in a VIRrUAL
LENG UAJES DE LA QUINTA GESE3SA CÍ0S
) LENGUAJES DE ALTO IUVEL
MAQUINA VIRTUA L
1 MAQUINA VIRTUA L
*
NIVEL DEL SISTEM A OPERATIVO
\ MAQUINA VIRTUA L
}
NIVEL DE LENGUAJE ENSAMBLADOR
1 MAQUINA REAL
NIVEL DE LENGUAJE MAQUINA
! MAQUINA REAL
'
/
NIVEL DE MtCROPROGRAMACKM
Figura 9.5 Niveles de programación. 166
P R I N C I P I O S
D E
C O M P U T A C I O N
/
|
__________________________________ LA PROGRAMACION DE COM PUTA DOR AS 1
por el dei lenguaje máquina; por el resto accedemos a una máquina virtual que considera el lenguaje dei nivel en que estemos como su lenguaje de máquina.
9.5 CLASIFICACION DE LOS LENGUAJES DE PROGRAMACIÓN Una primera clasificación, atendiendo a su proximidad al lenguaje de la máquina o a! lenguaje de las personas (lenguaje natural), establece los tres siguientes grupos:
•Lenguajes de bajo nivel (máquina). •Lenguajes intermedios (ensambladores). •Lenguajes de alto nive! (evolucionados). En cuanto a los lenguajes de alto nivel, existen varios cientos de ellos, siendo bastante difícil establecer una clasificación general de los mismos, y? oue en cual quiera que se realice habrá lenguajes que pertenezcan a más de uno de los grupos establecidos. Una clasificación muy extendida, atendiendo a la forma de trabajar de los programas y a la filosofía con que fueron concebidos, es la siguiente:
•Lenguajes imperativos. Utilizan instrucciones como unidad de trabajo de ios programas (COBO L, PASCAL, C,ADA). •Lenguajes declarativos. Los programas se construyen mediante descripcio nes de funciones o expresiones lógicas (LISP, PROLOG). c Lenguajes orientados a objetos. El diseño de ¡os programas se basa má! en tos datos y su estructura. La unidad de proceso es el objeto y en el se incfuyer los datos (variables) y ias operaciones que actúan sobre ellos (SMALLTALK, C++) • Lenguajes orientados al problem a. Diseñados para problemas específi eos, principalmente de gestión, suelen ser generadores de aplicaciones. •Lenguajes naturales. Están desarrollándose nuevos lenguajes con el princi pal objetivo de aproximar e! diseño y construcción de programas a! lenguaje de la personas. P R I N C I P I O S
l
D E
C O M P U T A C I O N
167
f
LA PROGRAM ACION DE COM PUTADORAS
________ _ _ _________
1
Por otro lado, se puede establecer una clasificación atendiendo al desarrollo de los lenguajes desde la aparición de las computadoras, que sigue un cierto paralelis mo con las generaciones establecidas en la evolución de las mismas:
• Prim era generación. Lenguajes de máquina y ensambladores.
•
S eg u n d a ge ne ra ció n . Primeros lenguajes de alto nivel imperativos
(FORTRAN. CO BO L).
•
T ercera generación. Lenguajes de alto nivel imperativos. Son los más utiliza
dos y siguen vigentes en la actualidad (ALGOL 68, PL/I. PASCAL, MODULA).
•
C ua rta generación. Orientados básicamente a ¡as aplicaciones de gestión y
al manejo de bases de datos (NATURAL, SQL).
•
Q uinta generación. Orientados a ia inteligencia artificial y ai procesa».licito
del lenguaje natural (LISP, PROLOG). En la Figura 9.6 se representan cronológicamente los principales lenguajes de programación de alto nivel y sus relaciones de precedencia.
APL
Figura 9.6 Lenguajes de programación de alto nivel. 168
P R I N C I P I O S
D E
C O M P U T A C I O N
cz
LA PROGRAMACION DE COM PUTADO RAS
9.5.! Lenguaje de máquina El lenguaje de máquina es el único que entiende directamente la computadora. Utiliza ei sistema binario, que consta de los dos únicos símbolos 0 y I, denominados bits (abreviatura inglesa de dígitos binarios). Fue el primer lenguaje utilizado en la programación de computadoras, pero dejó de utilizarse por su dificultad y compli cación, siendo sustituido por otros lenguajes mas fáciles de aprender y utilizar, que además reducen la posibilidad de cometer errores. Generalmente, en la codificación de los programas, se empleaba el sistema hexadecimal para simplificar el trabajo de escritura.
9.5.2 Lenguaje ensamblador El lenguaje ensamblador es el primer intento de sustituir el lenguaje de máquina por otro más similar a ¡os utilizados por las personas. En este lenguaje cada instruc ción equivale a una instrucción en lenguaje de máquina, utilizando para su escritura códigos nemotécnicos en lugar de cadenas de bits. Este lenguaje presenta la mayoría de los inconvenientes del lenguaje de máquina: -Cada modelo de computadora tiene un lenguaje ensamblador propio diferente del de los demás, por lo cual un programa sólo puede utilizarse en la máqoina para la que se programó. - El programador ha de conocer perfectamente el hardware del equipo, ya que maneja directamente las posiciones de memoria, registros del procesador y demás elementos físicos. - Todas las instrucciones son elementales, es decir, en e¡ programa se deben describir con el máximo detalle todas las operaciones que se han de efectuar en ia máquina para la realización de cualquier proceso. Por otro lado, tanto el lenguaje de máquina como ei ensamblador presentan ia ventaja de tener mínima ocupación de memoria y mínimo tiempo de ejecución en comparación con el resultado de la compilación del programa equivalente escrito en otros lenguajes.
9.5.3 Lenguajes de alto nive! Los lenguajes de alto nivel, también denominados lenguajes evolucionados, sur gen con posterioridad a los anteriores, con los siguientes objetivos, entre otros: P R I N C I P I O S
D E
C O M P U T A C I O N
169
f ?
j
L A P R O G R A M A C IO N DE C O M P U T A D O R A S
]
1. Lograr independencia de la máquina,pudiendo utilizar un mismo programa en diferentes equipos con la única condición de disponer de un programa traductor o compilador, que es suministrado por el fabricante, para obtener el programa ejecutable en lenguaje binario de la máquina que se trate. Además, no se necesita conocer el hardware especifico de dicha máquina. 2.Aproximarse al lenguaje natural .para que el programa se pueda escribir y leer de una forma más sencilla, eliminando muchas de las posibilidades de cometer erro res que se daban en el lenguaje de máquina,ya que se utilizan palabras (en inglés) en lugar de cadenas de símbolos sin ningún significado aparente. 3. Incluir rutinas de uso frecuente, como las de entrada/salida, funciones mate máticas, manejo de tablas, etc.,que figuran en una especie de librería del lenguaje.de manera que se puedan utilizar siempre que se quiera sin necesidad de programarlas cada vez. Se puede decir que e! principal problema que presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen actualmente en uso, además de las diferentes versiones o dialectos que se han desarrollado de algunos de ellos. A continuación se presentan brevemente varios de los más conocidos y utiliza dos. • FORTRAN Abreviatura de FORmuiaTRANsiator (traductor de fórmulas),fue definido alrede dor del año 1955 en Estados Unidos por IBM. Es el más antiguo de ¡os lenguajes de aito nivel. Antes de él todos los programas se escribían en lenguaje ensamblador o en lenguaje de máquina. Es un lenguaje especializado en aplicaciones técnicas y científicas. Se caracteriza por su potencia en los cálculos matemáticos, pero esta limitado en las aplicaciones de gestión, manejo de archivos, tratamiento de cadenas de caracteres y edición de informes. A lo largo de su existencia han aparecido diferentes versiones, entre las que destaca la adoptada en 1966 por el ANSI (American National Standards Institute), en la que se definieron nuevas reglas del lenguaje y se logró la independencia dei mismo con respecto a la máquina, es decir, comenzó la portabilidad del lenguaje. Esta versión se denominó FORTRAN IV o FORTRAN 66. En 1977 apareció una nueva versión más evolucionada que se llamó FORTRAN V o FORTRAN 77. Esta reflejada en el documento ANS X3.91978:Programming Language FORTRAN y define dos niveles de lenguaje denominados FORTRAN 77 completo y FORTRAN 77 básico, siendo el segundo un subconjunto del primero. Incluye, además, instruccio nes para el manejo de cadenas de caracteres y de archivos, así como otras para la utilización de técnicas de programación estructurada. Estas características hacen que el lenguaje también sea válido para determinadas aplicaciones de gestión. La 170
P R I N C I P I O S
D E
C O M P U T A C I O N
[ _________________________________ __________ LA PROGRAMACION DE COMPUT ADOK AS
¡
ultima normalización del lenguaje, FORTRAN 90, se encuentra en e! documento ANS X 3 .198-1991 en la que se incluyen características como la recursividad, trata miento paralelo de tablas y uso de memoria dinámica.
•COBOL Es el lenguaje más utilizado en las aplicaciones de gestión. Creado en 1960 por un comité denominado CODASYL (COnference on DAta SYstems Languages), patrocinado por el Depar tamento de Defensa de Estados Unidos, a fin de disponer de un lenguaje universal para aplicaciones comerciales, como expresa su nombre (COmmon Business Oriented Longuage).
A lo largo de su existencia ha sufrido diversas actualizaciones. Su primer estándar fue aprobado por el ANSI en 1968. Posteriormente, en 1974, se adopta la norma ANS X3.23-1974, que ha perdurado hasta su ultima versión, CO BO L ANS-35, que facilita el diseño estructurado de los programas. Sus características más destacables son las siguientes: se asemeja al lenguaje natural (inglés), es autodocumentado y ofrece grandes facilidades en ei manejo de archivos, así como en la edición de informes escritos. Entre sus inconvenientes están sus rígidas reglas de formatos de escritura, la necesidad de escribir todos los elementos ai máximo detalle, la extensión excesiva en sus sentencias, e incluso duplicación en algunos casos, y la inexistencia de funcio nes matemáticas. No obstante, se puede afirmar que en la actualidad continua siendo el lenguaje más utilizado en las aplicaciones de gestión.
•PUI Fue creado a comienzos de los anos sesenta por IBM para ser usado en sus equipos del sistema 360. Inspirándose en ios lenguajes ALGOL, C O BO L y FORTRAN se desarrolló el PL/I (Programming Language/I) tomando las mejores características de ¡os anteriores y añadiendo algunas nuevas, con el objetivo de obtener un lengua je lo más general posible en cuanto a su implementación, útil para aplicaciones técnico-científicas, comerciales, de proceso de textos, de bases de datos y de pro gramación de sistemas. Entre sus novedades esta su gran libertad en el formato de escritura de los programas; soporta la programación estructurada y diseño modular. No obstante, no ha superado a sus progenitores en sus aplicaciones específicas, debido en parte a su amplitud y, por elio, al tamaño de su compilador que hasta ahora sólo se podía instalar en grandes equipos.
P R I N C I P I O S
D E
C O M P U T A C I O N
¡7]
i
__ ________ ]
L A P R O G R A M A C I O N DE C O M P U T A D O R A S _____ _ ____ ________
,¿~>;-*sí ¡u ■• •* BASIC
•'.( »>*
:
,*■ ■■ . -■-i-»
jvf-' " ‘ ’•
*i»>=3
Ei lenguaje BASIC fue diseñado por los profesores John G. Kemeny y Thomas E. Kurtz, del Darcmouth College (Estados Unidos), en 1965, con el objetivo principal de proporcionar a los principiantes un lengu*je fácil de aprender, como se indica en su nombre Begirwer’s A!l-purpose Symbolic
° Ia ¡dea del diseñador ora proporcionar ün lenguaje adecua do para la er¿ñanza de ¡os conceptos y técnicas de programación, con el tiempo ha llegado ?ier un lenguaje ampliamente utilizado en todo tipo de aplicaciones, que r osee grades facilidades para la programación de sistemas y diseño gráfico. Apo^a los conceptos de tipo de datos, programación estructural y diseño descerante, entre otros, además de haberse convertido en predecesor de otros ¡engM¡es mas modernos, como MODULA-2 y ADA. •C
.
..... .-f iv
<
.. .
' ., .
Este lenguaje fue creado en i 972 por Dennis Ritchíe a partir del trabajo elabo rado por su cotega He losaboratorios BelITelephone, Ken Thompson. Estos habían diseñado con anteiiorid?! el sistema operativo U N IX ,y su intención al desarrollar el lenguaje C fue la de c*isegu¡r un lenguaje idóneo para la programación de siste mas que fuese indepemente de la máquina, con el cual escribir su sistema UN IX . Aunque, como acacmos de decir, fue diseñado inicialmente para !a programa ción de sistemas, postriormente su uso se ha extendido a aplicaciones técnicocientíficas, de bases d«dtos, de proceso de textos, etc. 172
P
R
1 N C f* t o S
D E
C O M P U T A C I O N
f
___________ _________________________LA PROGRAMACION PE CO MPUTADOR AS 1
La utilización óptima de este ¡enguaje se consigue dentro de su entorno natura!, que es el sistema operativo UNIX, y entre sus características destaca e! uso de programación estructurada para resolver tareas de bajo nivel, así como la amplia librería de rutinas de que dispone.
•MODULA-2 El lenguaje MODULA fue diseñado en 1977 bajo ia dirección de Nicklaus W irth , creador también de! lenguaje PASCAL, con la intención de incluir las necesidades de la programación de sistemas y dar respuesta a las criticas recibidas respecto de las carencias del lenguaje PASCAL. En 1979 se realiza una nueva versión que pasa a denominarse MODULA-2 y que perdura en la actualidad. Además de incluir las características de su predecesor, este nuevo lenguaje in corpora las principales carencias de aquel, como la posibilidad de compilación sepa rada, creación de librerías, programación concurrente, mejora el manejo de cade nas de caracteres, los procedimientos de entrada/salida y ¡a gestión de la memoria, etc. Además, posee grandes facilidades para la programación de sistemas. También, debido a sus cualidades didácticas, ha sido ampliamente aceptado por ia comunidad universitaria como herramienta idónea para la enseñanza de ¡a pro gramación. •ADA Es el último intento de obtener un único ¡enguaje para todo tipo de aplicaciones, e incluye ¡os últimos avances en técnicas de programación. Su diseño fue encargado por el Departamento de Defensa de Estados Unidos a ia empresa Honeyweil-Búí! después de una selección rigurosa entre varias propuestas realizadas sojre una serie de requerimientos del ¡enguaje y de haber evaluado negativamente veintitrés lenguajes existentes. De estos, se seleccionaron como base para la creación dei nuevo lenguaje el PASCAL, el ALGO L y el PL/L La estandarización del ¡enguaje se publicó en 1983 con el nombre de ADA, en honor de la considerada primera pro gramados de la historia, Augusta Ada Byron, condesa de Lovelace. Entre ¡as características de! lenguaje se encuentran ¡a compilación separada, los tipos abstractos de datos, programación concurrente, programación estructurada, libertad de formatos de escritura, etc. Como principal inconveniente .presenta su gran extensión.
P R I N C I P I O S
D E
C O M P U T A C I O N
173
|
LA PROGR AMACION DE COMPUTADORAS
]
9.6 TRADUCTORES Los programas traductores son metaprogramas que toman como entrada un programa escrito en lenguaje simbó I ico alejado de la máquina denominado pro grama fuente y proporcionan como salida otro programa equivalente escrito en un lenguaje comprensible por el hardware de la computadora denominado pro gram a objeto. En algunos casos, un programa objeto necesita antes de su ejecu ción una pequeña preparación y la inclusión de rutinas del propio lenguaje. Esta preparación ia realiza un programa que complementa al traductor, denominado montador, produciéndose finalmente un programa listo para ser ejecutado que se denomina program a ejecutable. En la Figura 9.7 podemos ver el esquema gene ral del proceso de traducción de un programa fuente a un programa ejecutable.
□
ptoMMMFuorrt
PMMRAMAOCjnO
TRADUCTOR
MOTADO*
PC OCM MX OS JETS
PDOCftAMA UCCUTUU
Figura 9.7 proceso de traducción. Existen tres tipos de programas traductores: los ensamblado! es, los compiladores y los intérpretes. • Program as ensambladores. Son programas traductores que transforman
programas fuente escritos en lenguajes simbólicos de bajo nivel (denominados len guajes ensambladores o assemblers), en programas objeto, escritos en lenguaje de máquina y ejecutables directamente por el hardware de la computadora. La traducción de! programa de usuario se efectúa de forma que cada instrucción en lenguaje fuente se transforma en una única instrucción en lenguaje objeto. Se puede decir que el lenguaje ensamblador es una simplificación simbólica del lenguaje de máquina y el programa ensamblador es su traductor. Actualmente existen varios tipos de ensambladores: ensamblador cruzado (cross assembler), macroensamblador (macroassembler), microensamblador (microassembler) y ensambladores de una o más pasadas. * Pro gram as com piladores. Son programas traductores encargados de trans¡ 74
P R I N C I P I O S
O E
C O M P U T A C I O N
[ ____________________________________________LA P R O G R AM AC IO N DE C O M P U TA D O R A S
[
formar programas fuente escritos en lenguaje simbólico de alto nivel en progra mas objeto escritos en lenguaje de máquina. La traducción no suele ser directa, apareciendo un paso intermedio situado en un nivel similar ai de ensamblador. Una característica fundamenta! de este tipo de traductores es que se realiza ía traduc ción completa, y en e! casc de no existir errores se pasa a la creación del 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 ei programa objeto. • Pro gram a interprete. En estos programas intérpretes la traducción se rea liza de forma que después de transformar una instrucción del programa fuente en una o varias instrucciones en lenguaje de máquina no esperan a traducir la siguiente instrucción, sino que inmediatamente la ejecutan.
I. 2 3. 4. 5. 6. 7. 8. 9.
¿En qué consiste un programa de computadora? Enumere las etapas dei proceso de automatización de un problema. ;En qué fase se introduce el programa en la computadora? ¿Cómo se detectan los errores de lógica? ¿En qué consiste la documentación de un programa? ¿Qué diferencia existe entre un algoritmo y un programa? Describa los distintos niveles de programación. ¿Qué diferencia existe entre el lenguaje de máquina y el lenguaje ensamblador? Realice un cuadro comparativo entre los distintos lenguajes de acuerdo a sus características. 10. ¿Cuál es la diferencia entre un intérprete y u t compilador en cuanto a su ejecución y sus ventajas comparativas?
P R I N C I P I O S
D E
C O M P U T A C I O N
¡75
CAPITULO X
Teleinformótica ¡0.1 INTRODUCCION Una de las principales características de la sociedad actual es la importancia que ha adquirido ei controí y el manejo de ía información. El término sociedad de lo información describe acabadamente este fenómeno. El almacenamiento, el manejo y la distribución de grandes cantidades de infor mación son algo habituales en nuestros días, favorecido por el desarrollo de las denominadas nuevas tecnologías de la información. La Informática ha facilitado este hecho, pero sucede, cada vez más, que la infor mación que se obtiene o produce en un lugar, se precisa en otro lugar distinto, a veces muy lejano. Es normal que los datos implicados en un determinado proceso haya que obte nerlos de distintos orígenes, físicamente dispersos. La sociedad actual exige, ade más, disponer de estos datos con rapidez y fiabilidad. Son ejemplos corrientes de ello la reserva de pasajes de avión desde una agencia de turismo o e¡ manejo de una cuenta corriente desde un cajero automático de una sucursal bancaria. Ante este probíema de distancia entre el lugar de producción de datos y el lugar de tratamiento, la obtención de información distante o e¡ compartimiento de datos por sujetos ubicados en distintos lugares,ha surgido una nueva técnica que utiliza y fusiona ia informática y las Telecomunicaciones, a la cual se denomina Teleinformática. Mediante esta técnica se pueden interconectar a distancia computadoras, termi nales y otros equipos, wsando para eüo aigún medio adecuado de comunicación, como por ejemplo iíneas telefónicas, cables coaxiales, microondas, etc. Los problemas que se plantean para la puesta en funcionamiento de lo que llamaremos sistema teleinformático son muchos y complejos, incluyendo los si guientes: P R í N C I P i O S
D t £
C O MP U T A C I O Mi i 1 »
1 T E LE IN F O R M A TIC A ____________________________ ___________ ___ ___________
|
• La transformación de la información digital que viaja internamente por la computadora en una ciase de señal, analógica o digital, adecuada a los circuitos utilizados en la transmisión. •La utilización óptima de las líneas de telecomunicaciones, transmitiendo gran des cantidades de datos simultáneamente. •La eliminación o mimmízación de los errores que puedan producirse por rui dos e interferencias, así como la protección contra ¡a perdida o atenuación de la señal que se produce al ser enviada a grandes distancias. •La conmutación de circuitos y de mensajes necesaria en una red para estable cer diferentes orígenes y destinos. • La compatibilidad entre los equipos y medios de comunicación, tanto a nivel físico como I ógico, etc. Todos estos problemas se van resolviendo de una manera cada vez más satisfac toria y en pocos años se han producido avances vertiginosos en esta técnica que tiende a implantarse en todos los niveles de nuestra sociedad.
SE D E N O M IN A T E L E IF O R M A T IC A A L A T É C N I C A Q U E E S T U D IA L A T R A N S M IS IÓ N Y E L P R O C E S A M I EN T O D E D AT OS E N T R E E Q U IP O S D E C O M P U T A C IÓ N U B IC A D O S A DISTANCIA.
i 0.2 C O M P O N E N T E S B Á S IC O S
La comunicación es el traspaso de mensajes entre dos entes. El esquema básico para establecerla se compone de una fuente de datos o emisor, un destinatario de los mismos o receptor y un camino de unión entre ambos o canal.
Un cuarto elemento es el código de lenguaje común entre ambos. Un grupo de unos y ceros (bits) tiene sentido cuando está definido por un código que pueda ser entendido tanto por el emisor como por el receptor. A¡ conjunto de equipos, medios de comunicación y software utilizados para ia realización de una determinada aplicación teleinformática se le denomina sistema teleinformático.
Un sistema teleinformático básico consta de un termina! remoto (emisor) des de el cual se envían los datos a una compu tadora central o host (receptor), a través de una línea de transm isión para su proceso y posterior recepción de resultados (Figura 10.1). 178
P R I N C I P I O S
D E
C O M P U T A C I O N
TELEINFQ3MAT1CA
TERMINAL REMOTO
LINEA OE TELECOMUNICACION
]
CENTRAL (HOST)
Figura 10.1Sistema teleínformático básico.
Al medio físico empieado para la transmisión de datos se le denomina red de teleco m unicaciones. A través de ella se envían los datos en forma de señal analógica (ondas sinusoidales) o en forma de señal digital, dependiendo del tipo de medio y de la tecnología utilizados. Hasta fechas recientes se utilizaba seña! analógica exclusivamente, ya que la se ñal digital se amortigua y se pierde a grandes distancias, pero actualmente se ha conseguido eliminar este proolema y aprovechar las grandes ventajas que apo¡ ca ia transmisión digital. En cualquier caso es necesario intercalar entre el equipo y ia red un dispositivo que transforme la señal digital que utiliza el primero en ia clase de señal que se envía por la red, así como realizar la transformación inversa cuando se recibe la señal desde ia red. Estos dispositivos se denominan módem o adaptadores, según ia clase de transformación que realizan. Los m ódem, contracción de. mcdulador-demodulador, transforman ¡a señal digital en analógica y viceversa mediante algún tipo de modulación (Figura 10.2).También se ocupan de controlar la calidad de la comunicación detectando y en algunos casos corrigiendo los errores que se producen. Pueden ser internos o externos, según su ubicación respecto del terminal.
I. .. .i*——^ 7 * M0DEM
_________ SEÑAL ANALOGICA
Figura 10.2 Transformación digital-analógica. P R I N C I P
I O S
D E
C O M P U T A C I O N
179
r
T EL EIN F O W H AT IC A
____ ~ _______________________________
|
(
Un módem genera una señal analógica llamada portadora, compatible con las líneas telefónicas. Ei módem alterará alguna de las características de esta señal en correspondencia con los cambios de la seña! digital. En otras palabras , cada vez que la seña! digital cambia de estado ei módem aíterará la portadora de alguna manera. Este proceso es llamado modulación. El módem puede variar la amplitud (AM), la frecuencia (FM ), o la fase de la portadora (PM) como se observa en la figura 10.3.
,(
ISO P R I N C I P I O S
D E
C O M P U T A C I O N
TELEINFOBMATICA
ÍI--.........-............. -.....................
-..........
•
Figure 10.3 Modulado;! de lu señal portadora de información Los adaptadores, a diferencia de los módem, no varían la forma de la. señal sino solamente ¡a magnitud de esta para adaptarla convenientemente al tipo de línea utilizada . Los F EP s (íront-end processors) son dispositivos especializados en la ges tión de comunicaciones nara las computadoras centrales permitiendo de esta for ma, que estas se concentren en tareas de procesamiento. Sin los FEPs se debería dedicar una cantidad considerable de tiempo y memoria de computadora a tareas específicas de comunicación como ser accesos a la red detección de errores. Los FEPs son computadoras programables, por io que pueden ser reprogramadas para tratar la operación de los programas de aplicación localizados en la computadora central. (Figura 10.4). Se denomina canal de comunicación al enlace que se establece entre un equipo emisor y un equipo receptor, permitiendo la transmisión de datos. Para optimizar el uso de ias lineas de telecomunicaciones, permitiendo que flu yan por ellas varios canales de comunicaciones.se utilizan dos tipos de dispositivos: los m ultiplexores y ios concen tradores. La diferencia entre ambos consiste en que los segundos gestionan la transmisión de varios canales y ios multiplexores sólo son capaces de unir y, en su caso, separar las diferentes señales P R Í N C I P I O S
D E
C O M P U T A C I O N
i gi
1
f
TELEINFORHATICA
/
_______ ^
-ífr r - i-
/
□
a
HOST
LJ
\
FRONTEHO
ífrrtiRED
MOOEM
MODEM TERMINAL
Figura ! 0.4 Conexión de un FEP
i
♦ MULTIPLEXQR
H i 1 . . ♦ MULTIPLEXOR
HOST
MODEM TERMINAL
Figura 10.5 Transmisión con multiplexores y concentradores. La conexión entra equipos puede ser: / Punto a punto: Consiste en una conexión fija, reservada en exclusividad, entre dos computadoras. Ello tiene e! inconveniente de un mayor costo, pero apor182
P R I N C I P I O S
D E
C O M P U T A C I O N
T E t -E I N F Q H M A T I C A i ____________________ ____________________ ¡ ta diversas garantías como son mayor seguridad y fiabilidad, y altas velocidades de transmisión. Esta es la forma de conexión más utilizada hasta ahora si se desea disponer de las ventajas expuestas. Por ejemplo, un terminal bancario esta conectado a su com putadora central de esta forma en la mayoría de los casos(Figura 10.4). __
/ M ultip unto: En ella se conectan varios terminales a una computadora cen tral por medio de una sola línea de teleproceso, utilizando para ello un dispositivo concentrador de comunicaciones (Figura 10.5). Puede suceder que el concentrador no este ubicado próximo a algunos termi nales, con lo cual se tiene una red mixta, ya que la parte de ¡a misma comprendida entre al terminal y el concentrador es punto a punto. Se suele utilizar esta red, por ejemplo, en aquellas oficinas bancarias que dispo nen de varios terminales conectados a una computadora centrar remota. / Red m ultipunto serie. Es una variación de la anterior, en la cual los termi nales no se conectan a un concentrador de comunicaciones, sino entre eilos for mando un lazo . La velocid ad de transm isión corresponde a la cantidad de información que se transmite por una línea de telecomunicaciones en la unidad de tiempo. Se mide en diferentes magnitudes: • Baudios: número de estados de señal transmitidos por unidad de tiempo. •Bits por segundo (bps): número de bits de información que se envían cada segun do. • Caracteres por segundo (cps): número de caracteres o bytes que se: envían por segundo. Si se utilizan dos estados de señal (representando los dos bits de información 0 y I). coincide el valor medido en baudios y bps.
10.3 MODOS DE TRANSMISION En el interior de la computadora, e incluso con algunos periféricos próximos, la transmisión de información se realiza en paralelo, es decir, se transmite simultá neamente una palabra de información, utilizando para ello tantos hilos de comuni cación como bits componen la palabra. En cambio, en las transmisiones a larga distancia no es rentable ni fiable la utilización de este sistema, ya que aumenta considerablemente la complejidad y ei costo dei equipamiento; por ello se utiliza ¡a transmisión en serie, enviándose un bit tras otro mediante un único circuito (Figu ra 10.6). P R I N C I P I O S
D E
C O M P U T A C I O N
183
f
T E U E IN F O W M A T IC A
PARALELO
lililí í M w ec épt o » 8
•
SERIE • > s v s > > J> .v• • • • ;%
' \ vV-Vvv'Vlv
EMISOR
0 iii# • -
1 0* 10 1 1
■ * ' ,*
sv
•
RFCEPlOR
¡m »
M U * V x
'/
.7.
■ .
\v '. ‘
V - ;
o \ .
Figura I0.6'rransmisión en serie y paralelo.
Se denomina sincronización al proceso mediante eí cual el equipo receptor conoce el instante exacto en que debe medir ¡a magnitud de la seña! para identifi car la información transmitida. Existen dos modos básicos de transmisión de datos:
•Transmisión asincrónica Envía la información byte a byte, en cualquier momento. Cada uno de ellos va precedido de un bit de arranque (bit de START) y seguido de uno de parada (bit de STOP) para ser identificados por eí reccptor (Figura ¡0.7). Las velocidades de transmisión permitidas de este modo son muy bajas, inferio res a ! 200 bps (bits por segundo). ÍS4
P R I N C I P I O S
D E
C O M P U T A C I O N
TELEINFOHHATICA
STAR
STOP
STAR
Figura 10.7Transmisió Transmisión n asincrón asincrónica. ica. * Transmisión sincrónica Eí emisor y el receptor disponen de sendos relojes sincronizados por medio de los cuales controlan la duración constante de cada byte transmitido. Estos se envían de una una forma forma continuada continuada agrupados en en bloques de información información (Figur (Figuraa 10.8). De este modo se puede tener cualquier velocidad de transmisión por alta que sea. En la actualidad se transmite por encima de los S0.000 bps. SEÑAL DE RELOJ
SEÑAL ENVIADA
Figura 10.8Transmisión sincrónic sincrónica. a. Según el sentido del flujo de la información existen tres formas de transmisión: •Simptex La transmisión de datos se realiza en un único sentido, desde una estaci6n emi sora a una estación receptora, que generalmente corresponden a un terminal como origen y una computadora central como destino, o bien una computadora como origen y una una impresora o monit mo nitor or como destino destino (Figura (Figu ra 10.9 10.9). ). Este modo de transmisión es ei menos utilizado. \ RECEPTOR MODEM
Figura 10.9Transmisión Transmisión simplex. P R I N C I P I O S
D E
C O M P U T A C I O N
135
j
i
_________ ______ ___ TELEINFOBMATICA ______
•Sem iduplex o half-duplex Se denomina asi al modo de transmisión en el que el envío de datos se realiza en ambos sentidos pero no simultáneamente. Por tanto, los equipos conectados de este modo son ambos emisor y receptor, aunque en cada momento realizan una sola de estas funciones, alternando e! sentido de la comunicación cada vez que sea necesario (Figura 10.10). Es la manera más utilizada por permitir comunicación en ambos sentidos a un costo reducido.
RECEPTOR 0 EMISOR
1 !*
M00EK
Ó
4«i Figura 10.10Transmisión semiduplex. •Dúplex o full-duplex Mediante este modo se establece la comunicación de datos a través de la línea de teleproceso en ambos sentidos simultáneamente, io que permite una mayor agilización de las operaciones de recepción de datos y envío de resultados (Figura 10.11). A pesar de ser el más eficiente, no es el más utilizado, debido al coste superior que implica el uso de equipos y redes de telecomunicación más complejos.
EMISOR MOOtM
~Z. l«t>
RECEPTOR Y EMISOR MODEM
Figura 10. i i Transmis Transmisión ión dupiex. dupiex.
10.4 MEDiOS DE TRANSMISIÓN La información circuía por la computadora en forma de señal digital, esto es, codificada, utilizando un alfabeto de dos símbolos que corresponden a dos intensi dades diferentes de corriente eléctrica. Esta forma de transmitir información se ha 166
P R I N C I P I O S
D E
C O M P U T A C I O N
c
TELEINFORMATICA
mostrado inadecuada para el caso de comunicaciones agrandes distancias,utilizán dose para ello ia señal analógica o una señal digital de diferentes características. Por tanto, no sólo se han diseñado medios de transmisión especializados sino que ade más se han podido utilizar ¡os medios ya existentes en telefonía y telegrafía. Actualmente los medios físicos mas utilizados en transmisión de datos son los siguientes: • P a r tren tr en zad za d o. Empl Emplea eado doss asi asimi mism smo o en en com comun uniicaci acion ones es tele telefó fóni nica cas, s, cons consis iste ten n en dos o cuatro hilos conductores recubiertos de material aislante y trenzados a fin de disminuir las posibles interferencias. Existen dos tipos: - STP ST P (shielded (shielded twisted pair): dos pare paress de conductores conductores trenzados trenzados y cada cada par recubierto por una pantalla metálica. Se utiliza en grandes distancias, altas velocida des de transmisión y en ámbitos donde con mucha interferencia. - U T P (unshiel (unshielded ded twisted pair): genera generalme lment ntee compu compuest esto o por cuatro pares pares de conductores trenzados, sin apantallamiento; de menor costo que el anterior. En distancias que no no superen superen los 100 metros metros pueden alcanzar velocidad velocid ades es de 150 Mbps. La Figura Figura 10.1 10.12 2 muestr muestraa distin distinto toss tipos de par trenzado.
Figura ! 0 .12 Par Par trenzado. trenzado. • C ab le coax co axil il.. Form Formaados dos por un condu conduct ctor or cent centra rall de cobr cobree y otro cil cilindric ndrico o exterior (maila de hilos o lamina de aluminio). El cable esta recubierto de material aislante PVC(cloruro de polivinilo), ocupando también otro aislante(poiietileno), el
<=#=€1355
Figura 10.13 Cable coaxil. V
<
P R I N C I P I O S
D E
C O M P U T A C I O N
187
r
T E L E I N F O B M A T I C A __________________ ______________ ______________________ _______________ _____________ ______
—¡
espacio espacio entre entre el cilindro cond co nduc ucto torr y e! e! conducto cond uctorr central (Figur (Figuraa 10 .13) .13).. Este sistema reduce enormemente las interferencias, permite transmitir a altas frecuencias y su capacidad o ancho de banda es bastante grande(500 Mbps en dis tancias de hasta ! km), con lo cual un cable coaxil puede soporta sop ortarr un elevado núme núme ro de canales de información. • M icro o n d as. as . La La inf infor orma maci ción ón se tran transmi smite te por el el aír aíree me media diant ntee on onda dass electro electro magnéticas.Tiene ia ventaja de que no se necesita un enlace físico y que e! ancho de banda del aire es prácticamente ilimitado. No obstante es necesario un eniace vi sual entre los puntos emisor y receptor, por lo cual, debido a ia curvatura de la tierra, su separación máxima ronda los 50 km, salvo que se instalen repetidores intermedios que reciban la señal desde el emisor y la retransmitan hacia el receptor (Figura 10.14).
* V ía s a té lite li te . Consiste Consiste en la utilizac utilización, ión, como repetidor repetidor,, en un un enlace enlace por po r microondas, de un satélite artificial geoestacionario, lo que permite alcanzar gran des distancias al salvar e! problema que representa la curvatura de la tierra, aunque presenta el inconveniente de que los cambios atmosféricos pueden afectar a la transmisión (Figura 10.15). * Fibra óptica. Se utiliza como medio físico la fibra de vidrio y como señal la luz, normalmente emitida mediante un emisor de rayos láser, lográndose alcanzar grandes distancias sin apenas perdidas.Tiene la ventaja de que la comunicación no es afectada por el ruido y las radiaciones,y entre sus inconvenientes figura su eleva do costo y que las conexiones requieren un complejo proceso de soldadura (Figura 10.16). Pueden alcanzar velocidades de 2 Gbps.
\U
P R I N C I P I O S
D E
C O M P U T A C I O N
TELEiNFORMATICA ~ 1
rI V>. " "sVA
......
4b *
Ü1
% .
Figura 10.15 Transmisión vía satélite
REVESTIMIENTO
CUBIERTA
NUCLEO
HP/ESTIMIENTO
, RAY0S LUMINOSOS
CbdíEnTA
Figura ! 0.16 Fibra óptica.
P
R i N C
¡ P ! O
S
D E
C O M P U T A C I O N
189
j
T S L E IN F O R M A T I C A
10.5 P R O T O C O L O S D E C O M U N IC A C I O N E S
Para posibilitar ia interconexión de diferentes equipos informáticos a través de ias distintas redes de comunicaciones, obteniéndose lo que se denomina sistemas abiertos, ha sido necesario establecer una serie de convenciones que afectan a los requerimientos físicos y a los procedimientos a seguir. Para ello, diversos organis mos internacionales se han encargado de dictar las normas necesarias, principal mente la ISO (International Standard Organizaron) a escala mundial y el CCITT (Consultive Committee for Internationa!Telephone andTekgraph) en e! ámbito europeo. Antes de sus normalizaciones, cada fabricante establecía sus propias normas o protocolos, lo que impedía ia comunicación entre equipos de diferentes fabricantes y ei uso de redes ajenas. Definimos como protocolo de comunicaciones a! conjunto de normas y proce dimientos que regulan la transmisión de datos desde un equipo de usuario a otro, en forma parcial o total. Para el establecimiento de las normas que afectan a gran cantidad de elementos implicados en ia comunicación, se ha decidido dividir el problema en otros más pequeños, determinándose una serie de subconjuntos denominados niveles de la comunicación. Cada nivel contempla una parte de los elementos afectados. Sus re querimientos y convenciones se abordan de forma independiente, io que permite que las modificaciones en un nivel no afecten a los restantes. En general, al conjunto de niveles establecidos junto con sus protocolos se de nomina arquitectura de la red. La organización ÍSO ha definido la normalización de comunicaciones entre equi pos informáticos estableciendo, en su publicación de 1984, ISO: Reference Model o f upen System interconnection, siete niveles en cuanto a su arquitectura (Figura i 0. i 7). •Nivel físico: describe las características mecánicas, eléctricas y funcionales de la transmisión y recepción de la información cuando se utiliza un medio de transmi sión específico. •Nivel de enlace: define los procedimientos para acceder ai medio de transmi sión y los protocolos para transferir la información. • Nivel de red: controla la conmutación de enlaces en ios casos en que sean posibles distintos caminos para conectar entre sí a dos nodos de la red. • Nivel de transporte: controla la comunicación entre dos nodos de una red, ocultando a ios niveles superiores los detalles específicos de ¡a red a través de la cual se transmite información. •Nivel de sesión: es el encargado de sincronizar los diálogos, permitiendo a los usuarios establecer una sesión. • Nivel de presentación: se encarga de adaptar la información enviada por el nodo transmisor, para que pueda ser representada en el formato requerido por ei nodo receptor.
TELEINFORMATtCA
( (
P R I N C I P I O S
D E
C O M P U T A C I O N
191
1
i
t e l e in f o r m a t ic a
"
______________________________
______________________ i
_
• Nivel de aplicación: brinda servicios al usuario, haciendo de interface entre éste y el sistema de comunicaciones. Incluye funciones de seguridad, correo elec trónico, etc
10.6 REDES DE ÁREA LOCAL Denominamos red de transmisión de datos, ai conjunto de computadoras interconectadas con el objetivo de intercambiar información, compartiendo ¡os recursos de hardware y de software. Las redes de área local, redes locales o simplemente LAN (Local Area Network) son las instaladas en un área geográfica limitada, como puede ser el interior de una empresa u organismo, con el objetivo de satisfacer las necesidades informáticas, integrando todos los equipos denominados nodos o estaciones de la red, para aprovechar al máximo sus capacidades de proceso y almacenamiento. Los componentes de una red LAN son: •Las estaciones de trabajo o nodos. * El servidor o nodo central. •El medio de conexión.
Las características principales están dadas por: * La topología. * La técnica de transmisión de datos. •El protocolo utilizado.
! 0.6.1 TOPOLOGÍAS DE RED Denominamos topología de una red a la estructura utilizada en la distribución de los equipos conectados a la misma. Las principales topologías para redes locales son: estrella, anillo y bus. • Red en estrella. Todos los equipos están conectados mediante líneas inde-pendientes a un nodo central encargado de realizar el control de las comunicaciones y la gestión de los recursos de la red (Figura 10.8). Cuando una estación desea transmitir, solicita conexión al nodo central, especi ficando ¡a dirección del destino. _________________________________________________________________________ _ _____________________ I _______ 192
P R I N C I P I O S
D E
C O M P U T A C I O N
lv I
■ ■ ■■. ■ T R g N fO IIMáBICA r ^ El nodo central se encarga de establecer la comunicación entre el nodo emisor y ei nodo receptor, transmitiéndose el mensaje. Ventajas: - toda la comunicación está bajo el control del nodo central. - es de fácil mantenimiento. - se pueden agregar nodos de manera sencilla. Desventajas: - si falla el nodo central, se detiene toda la red. - dos nodos no pueden comunicarse sin pasar por el nodo centra!. - la comunicación entre muchos nodos en forma simultánea, puede saturar al nodo central-
Figura 10.8 Red en estrella.
• Red en anillo. Consiste en un lazo cerrado, al cual están conectados todos los nodos (Figura 10.9). No necesita control centralizado; este está distribuido en cada estación de la red, por lo cual cada nodo debe ser inteligente para manejar su conexión a la misma. P R I N C I P I O
S
D E
C O M P U T A C I O N
193
| T EU E IN FO RM A T IC A _____________________________________________________________________ j
Ventajas: - usa una sola línea de comunicaciones. - es fácil identificar la falla en un nodo ya que el mensaje no se transmite al siguiente nodo. - ai ser nodos inteligentes, se pueden ampliar las distancias entre los mismos. Desventajas: - la caída de una línea detiene toda la red. - ia información debe viajar por todo el anillo.
Figura 10.9 Red en anillo. • Red en bus. La comunicación queda establecida entre todas las estaciones por medio de una iín ea bus bidireccíona! que ias recorre (Figura 10.! 0).Cuando una estación transmite una señal, la misma se propaga a ambos lados del emisor, hasta ¡legar a ¡os puntos extremos donde es absorbida. Ventajas: - no resulta complicado agregar o quitar nodos de la red. - se adapta fácilmente a! ámbito físico donde se la utüiza. 194
P R I N C I P I O S
D E
C O M P U T A C I O N
TELEfNFORMATICA
Desventajas; - una falla en el medio de comunicación afecta toda la red - las fallas son difíciles de detectar.
Figura 10.10 Red en bus
¡0.6.2 MÉTODOS DE ACCESO EN REDES LOCALES Las redes ¡ocales utilizan un canal de comunicación común que conecta se distintos nodos. Sólo uno de elios puede transmitir en cada momento, por ¡o que e necesario establecer aí^ún método que permita el mejor aprovechamiento del c; nal, distribuyendo su i.t lización de una manera racional. Eí factor más característico de una red íocai es su protocolo de control a acceso al medio. De él dependen los parámetros básicos del funcionamiento de red como son el rendimiento, la fiabilidad y la gestión de ¡a red. Los métodos más utilizados son: poüing, token pass y el CSMA/CD * Polling (sondeo) Hay un nodo central que gestiona el control del resto de ios nodos para qt, puedan acceder a la red, de forma que el nodo que desee transmitir, debe espér; autorización para poder hacerlo. Ei nodo de control va preguntando al resto de ic nodos si tienen que transmitir y en consecuencia va otorgando los permisos pa¡ hacerlo. Presenta el inconveniente que si falla eí nodo encargado de la gestión, la re queda fuera de servicio. P R I N C I P I O S
D E
C O M P U T A C I O N
1?¡
I
TELEtNFOIWATICÁ _________________ _ ______ _
_ _
_ ________
Se utiliza generalmente en topologías tipo estrella. •Token pass
Ei método de paso de testigo (Token Pass) se utiliza sobre todo en redes con topología en anillo (token ring) y en menor medida en redes en bus. Consiste este método en la utilización de un paquete de información especial, el testigo, compuesto por un patrón de bits que cada nodo recibe dei anterior y retransmite ai siguiente, indicándole de este modo que ia red esta iibre para acce der. Cuando un nodo desea transmitir tiene que esperar que ¡e ¡legue ei testigo, a continuación coloca su paquete de información junto con la dirección dei nodo destinatario y ei mismo testigo, y lo transmite a la red. Cuando es recibido por ei destinatario, este, después de copiar su contenido, lo devuelve a! emisor con una indicación de que lo ha recibido, y, finalmente, cuando llega al emisor y este com prueba la correcta recepción, retira la información y vuelve a poner en circulación el testigo. •CSMA/CD
Este método, denominado de acceso múltiple con detección de portadora y de colisiones o CSMA/CD (Carrier csnse Múltiple AccessICollisicn Deten), fcrma parte del grupo de ios denominados de colisión y contienda, es el más perfeccionado de ellos y el más habitual en redes con topología en bus. Cada nodo de la red que desea acceder a la misma, primero escucha para detectar si hay otra transmisión en proceso. Si es así, espera un período de tiempo aleatorio antes de volver a intentarlo. Cuando ei medio está libre, accede a la red y espera un tiempo para recibir de! nodo receptor, la confirmación de que se recibió ei mensaje. Si dos o más nodos intentan acceder a! mismo tiempo, se produce una colisión y la señal se deteriora haciéndose irreconocible, no recibiéndose confirma ción del nodo receptor .Por ello,cada nodo que ha iniciado una transmisión conti nua escuchando la red para comprobar si se ha producido una colisión, en cuyo caso cesa inmediatamente de transmitir y espera de nuevo un tiempo aleatorio hasta volver a intentarlo.
10.7 RED DIGITAL DE SERVICIOS INTEGRADOS De acuerdo con la definición que da el CCITT, una red digital de servicios inte grados (R.DSI) es una red evolucionada de la de telefonía integrada digital que, proporcionando una conectividad digital extremo a extremo, da soporte a una amplia gama de servicios a Sos cuales los usuarios tienen acceso a través de un conjunto ¡imitado de interfaces normalizadas de propósito general. 196
P R I N C I P I O S
D E
C O M P U T A C I O N I
T EL E I N F O R M A T I C A ~ 1 .1
Son redes de área extensa o WAN (WtdeArca NetWork), ya que están abiertas a la comunicación de cualquier usuario El objetivo principal de las RDSi es poner a disposición del usuario la capacidad de acceder fácilmente, integrar y compartir información de todo tipo: voz, sonido, texto, imagen, datos y video, sin limitaciones geográficas o tecnológicas. Los servicios proporcionados por esta red se agrupan en tres categorías: porta dores, teieservicios y suplementarios (Figura 10.1i). Servicios portadores •Telefonía digital •Transmisión digital de datos
Telasanrícws •Videote* •Correo electrónico •Facsímil •Conmutación de circuitos da datos •Conmutación de paquetes de datos •Frane Heplay
Servidos supl em entari os •Llamada abreviada •Identificación de llamada •Conferencia
Figura 10.1I Servicios RDSI. Los servicios portadores son los que proporcionan la capacidad necesaria para la transmisión de señales entre puntos de terminación de red definidos, los teieservicios comprenden fundamentalmente los servicios de valor añadido, y ios servicios suplementarios se ofrecen como complemento a los anteriores y depen dientes de ellos.
10.8 INTERNET internet es básicamente una red de datos que se transmiten a través de las líneas telefónicas.(Figura 10.12) En la actualidad tiene cerca de 400 millones de usuarios en todo e! planeta. Nace en la década del ‘60 cuando se sientan las bases de ARPANET, una pequeña P R I N C I P I O S
D E
C O M P U T A C I O N
f
T EL E IN F O R M A T IC A
red destinada al uso compartido de computadoras entre investigadores de cuatro universidades de Estados Unidos. Viajar por Internet es gratis y sólo hay que pagar el costo de la comunicación telefónica, ya que fue concebida con un criterio anticomercial. A principio de los anos 90 se transformó en el primer correo electrónico masi vo y desde entonces crece a un ritmo del i 5% anual. Internet es interactiva y esta pensada para transmitir imagen, voz y datos. En la red puede encontrarse información de toda clase: desde música a literatu ra, pasando por ecología, física, etc. No todos los usuarios pueden acceder fácil mente a INTERNET,pues para alcanzar la velocidad de comunicaciones requerida, la PC debe estar conectada a una central telefónica con fibra óptica, ya que los otros medios son lentos y, por consiguiente, muy costosos. En la actualidad la gran mayoría de las regiones no posee todavía centrales tele fónicas digitales. internet permite conectar desde computadoras personales hasta redes de área ¡ocal, para esto utiliza el protocolo TCP/IP (Transfer Control Protocol/lnternet Protocol), incluido en el sistema operativo UNIX, donde la información se transmi te en cantidades discretas denominadas paquetes, que contienen la dirección del destino. Para acceder a Internet se requiere una computadora, un módem, una línea telefónica y una empresa proveedora del servicio de conexión a Internet.
Figura 10.12 Internet la autopista de información 19fi
P R I N C I P I O S
D E
C O M P U T A C I O N
______________________ _____________ ________T EL EIN FO RM ATIC A _
1
10.8.1 SERVICIOS DE INTERNET Internet ofrece un conjunto de servicios entre los que podemos mencionar: •Correo electrónico (Electronic Maii o E-maii): es ei medio para enviar cartas y mensajes a otras personas. Cada usuario está identificado con una direc ción electrónica compuesta de la siguiente manera: [email protected]ón.tipo.país Donde usuario es el nombre que se autoasigna el usuario dei servicio, se rv i dor es el nombre que la empresa le da a la computadora que opera como servi dor de Internet. Org anización es la identificación de la empresa. El tipo identifica la actividad de la organización y país corresponde a! país al cual pertenece. Por ejemplo rodriguez@pc i .eldan.com.ar: ro dríg uez es el usuario, pe 1 es la computadora dentro de la empresa eidan , com la actividad comercial, ar en Argentina. • Teinet: permite la conexión remota con cualquier computadora de !a red. Utiliza el protocolo TCP/IP. Para comunicarse se pide permiso de acceso al usuario a partir de una palabra clave. •News: son grupos de personas que intercambian información o noticias (news) sobre distintas áreas temáticas. Existen unas 10.000 áreas temáticas disponibles. Cualquier usuario de ia red (usernet) puede participar en los grupos de discusión (newsgroup) . Cada vez que un usuario accede puede leer los mensajes existentes y dejar los suyos. • C hat: a través de el servicio de chat (charla), podemos comunicarnos con personas de todo el mundo en tiempo reai, dialogando a través de la pantalla y el teclado. •W o rld W id e W eb : también llamada www o web, consiste en documentos en formato hipertexto (sistema que permite saltar de un punto a otro mediante pala bras de enlace) y que soporta multimedia (combinación de audio, imágenes, video y texto) para poder presentar y visualizar páginas de información mediante el lengua je HTML ( nyper text markup language). Funciona bajo un modelo cliente/servidor donde una aplicación hace peticiones de información y un servidor las resuelve y envía. P R I N C I P I O S
D E
C O M P U T A C I O N
199
T E l E I N F O R M A T i C A ________________________ _ _______ _ __________________________________________ j
Para acceder a páginas web se requiere de direcciones electrónicas done figure el servidor (en genera! ei nombre es www o web), el directorio y el archivo: http:/ /www . directorio.archivo http ( hyper text transfer protoco!) es el nombre del protocolo utilizado. Para poder acceder a la web se requiere de programas exploradores que facili tan la navegación por Internet: netscape navigator, internet explorer, etc. * F T P : corresponde a las siglas de FiieTransfer Protocol.un protocolo de trans ferencia de archivos. Permite recibir (dowload) y enviar (upioad) archivos de todos los servidores conectados a la red. Este servicio corresponde al modelo cliente/ servidor, donde por medio del programa cliente nos podemos comunicar con el programa de gestión de archivos dei servidor . La transferencia de archivos se hace en modo ASCII para archivos de texto y en modo binario para otro tipo de archi vos. * G opher:al igual que el FTP, permite acceder a información distribuida dentro de internet. Se diferencia en que dispone de menúes y de textos que describen el contenido de los archivos.
t 2. 3. 4. 5. & 7. & 9. 10. 11. 12. 13. 14.
200
¿Cómo define un sistema teleinformático? ¿Qué es un módem? ¿Cuáles son los componentes que intervienen en la transmisión de datos a distancia? ¿Qué dispositivo se encarga de gestionar ia comunicación entre una computadora y sus terminales remotos? ¿En que se diferencia un multiplexor de un concentrador? ¿Cómo se denominan los bits que delimitan un byte transmitido en forma asincrónica? ¿Cómo se realiza la transmisión sincrónica? ¿En que consiste la transmisión full-duplex? Realice un cuadro comparativo con ias características de los medios de transmisión. ¿Que es un protocolo de comunicaciones y cómo está organizado? ¿Cómo se clasifican las redes locales de transmisión de datos de acuerdo a su topología? ¿Cuáles son los principales métodos de acceso en redes locales? ¿Qué es la RDSI? Realice un cuadro con las características principales de los servicios brindados por Internet. P R I N C I P I O S
D E
C O M P U T A C I O N
CAPITULO XI
Inteligencia artificial II.! INTRODUCCIÓN El objetivo principal de los especialistas en computación es desarrollar máquinas que se comuniquen con sus entornos a través de mecanismos humanos y procedan inteligentemente sin la intervención humana. Para que esto suceda se necesita que la máquina entienda o perciba, las entradas recibidas y pueda sacar conclusiones a partir de algún proceso de razonamiento. La percepción y el. razonamiento forman parte de lo que llamamos sentido co mún, algo natural para la mente humana pero difícil de lograr en una máquina. El área de la ciencia que estudia estos comportamientos para su desarrollo es la in te ligencia artificial. Analizando los resultados obtenidos en los últimos tiempos, se puede inferir que todavía está bastante atrasada con respecto a las expectativas planteadas hace treinta años, lo cual no significa que no se hayan alcanzado logros importantes. A lo largo de este capítulo trataremos de analizar algunos principios de la inte ligencia artificial en el contexto dei diseño de máquinas que resuelvan problemas y que posean capacidades elementales de percepción y razonamiento. El principal objetivo dei área de la inteligencia artificial es la cons trucción de máquinas capaces de avanzar en s abientes no controla dos sin ia dependencia del respaldo humano para el beneficio de la humanidad. Para poder comenzar el análisis dei tema-debemos primero hacer una distinción entre las propiedades de las computadoras actuales y ia mente humana. Las computadoras están diseñadas para efectuar con rapidez y exactitud tareas perfectamente definidas, ío cuai hacen muy bien, pero no poseen sentido común. P R I N C I P I O S
D E
C O M P U T A C I O N
201
|
INTELIGENCIA ARTIFICIAL
________________________________________
1
Cuando una computadora se encuentra frente a una situación no prevista opor tunamente por el programador,seguramente el rendimiento de !a máquina no será el misma La mente humana.es capaz de entender y nzonar a pesar de encontrarse muchas veces saturada por cálculos complejos. Una máquina puede trabajar “ me jor” que una persona al calcular soluciones a problemas de matemática, la mente humana entenderá mejor el problema y estará en condiciones de analizar los resul tados. HUMANOS
¿y-
'
* CHEfflVDAD . juic io
ki trá • YELOCtDAD
• EXACTITUD • ATENCIÓN ALOS a (ENTES
COMPUTADORAS
■mi
i-CSífl-'éi:
Figura 11. i Inteligencia artificial = hombre + computadoras. Sin lugar a duda, si pretendemos construir computadoras que puedan resolver situaciones imprevistas, las máquinas deberán tener comportamientos más aproxi mados a la mente humana en el sentido que deben tener o en su defecto simular, la capacidad de razonar. Los investigadores y especialistas en inteligencia artificial, han incorporado a sus grupos de trabajo a psicólogos para tratar de entender mejor la mente humana y de esta forma poder encontrar principios que se puedan aplicar en el diseño de máquinas y programas. Una dificultad que se ha encontrado es la diferencia de objetivos entre especia listas en computación y psicólogos, pues mientras los primeros tratan de construir máquinas más flexibles, los segundos buscan aprender más sobre la mente humana. Los estudios de fos especialistas en computación están orientados al rend i m iento ftnai.lo* c*«» los psicólogos están más intensados en entender los proce sos de la inteligencia natural, donde el desarrollo de programas inteligentes es algo secundario frente a ios procesos de comprensión del razonamiento y comporta miento humano. 202
P R I N C I P I O S
D E
C O M P U T A C I O N
ü (■
I
~ ____________________7NTELICENCIA ARTIFICIAL
1
i
Ef enfoque de los psicólogos está más orie ntado hacia la sim ulación. Los dos enfoques son valederos y contribuyen significativamente al campo de la inteligencia artificial. El desarrollo de programas inteligentes es motivo permanente de discusión y análisis: ¿Cuándo un programa tiene inteligencia? El problema de determinar si un programa tiene o no inteligencia surge en la dificultad de distinguir entre la apariencia de inteligencia y su existencia real. La inteligencia es una capacidad interior cuya existencia sólo puede determinarse en forma indirecta desde ei exterior en un entorno dialógico: estímulo y reacción.
! 1.2 PRUEBA DETURING A lanTurin g reconoció ia naturaleza engañosa de ia inteligencia al elaborar una prueba que permitía detectar la inteligencia de una máquina. La prueba consistía en una persona (interrogador) que se comunicaba con un sujeto de prueba a partir de un sistema mecanográfico desconociendo si el sujeto era una persona o una má quina. En este ccntextc s5 declarará inteligente a una máquina si la persona que interroga es incapaz de distinguirla de una persona. Hasta la fecha ninguna máquina logró pasar la prueba, aunque se han logrado resultados sorprendentes. Uno de los casos más notorios corresponde al programa “ doctor “ .desarrolla do por Joseph Weizenbaum a mediados de los años sesenta. El programa repre sentaba a un analista de la escuela rogeriana (el paciente guía la conversación con el analista durante la sesión terapéutica), realizando una entrevista psicológica. La computadora desempeñaba el papel de analista y el usuario hacía i?s veces de
P R I N C I P I O S
D E
C O M P U T A C I O N
203
)r
IN T E L I G E N C I A A R T I F IC I A L ________________ _________________ _________
j
A nivel interno, lo único que hacía el programa “ doctor” , era reestructurar las oraciones enunciadas por el paciente y las enviaba a la pantalla. Por ejemplo: - Me siento cansado hoy —paciente - ¿Por qué crees que te sientes cansado hoy?- “ doctor” Si “ doctor" no podía reconvertir el enunciado, respondía “ ¡Qué interesante!" o “ Continúa". El objetivo deWeizenbaum era a partir de “ doctor” estudiar la comunicación mediante lenguajes naturales. La psicoterapia desempeñaba en este caso un pape! secundario al ofrecer un entorno de funcionamiento para el funcionamiento del programa.
! 1.3 RAZONAMIENTO El desarrollo de programas inteligentes implica facultar a una máquina para: •tomar decisiones •sacar conclusiones •realizar actividades elementales de razonamíehto El desarrollo de capacidades de razonam iento dentro de una máquina es tema de la investigación actual por lo que todavía existe un alto grado de contro versia acerca de cuál debe ser la técnica o la teoría correcta que debe seguirse. Para nuestros objetivos analizaremos el tema en el contexto de los sistemas de produc ción. Un sistema de producción consta de tres componentes: 1. Conjunto de estados: cada estado es una situación que podría presentarse en ei entorno de ¡a aplicación. El estado del que se parte se denomina estado inicia! y el estado deseado es ei estado objetivo o configuración de! problema resuelto. 2. Conjunto de producciones: una producción es una operación que puede realiza rse en el entorno de la aplicación para pasar de un estado a otro, loda producción puede estar asociada a condiciones previas; es decir que pu-cü*. haber condiciones presentes en el entorno antes de que se pueda aplicar una pro ducción. 204
P R I N C I P I O S
D E
C O M P U T A C I O N
¡
[ _______________________________________________ _ ______________IN TE LIG EN C IA AR TI NC1AL ~1
3. Sistema de control: es ia lógica que resue lve el pro blem a de pa sa r del estado inicial al estado objetivo. En cada paso del proceso, e! sistema de con trol debe decidir cuál de las producciones cuyas precondiciones se satisfacen, debe aplicarse a continuación. Vamos a analizar uri problema clásico de rompecabezas: Supongamos que tenemos un rompecabezas de 8 piezas cuadradas, numeradas de I a 8, montadas dentro de un marco cuadrado en el que caben 9 piezas (3 por fila). Las piezas se encuentran desordenadas, constituyendo nuestro estado inicial(figura I 1.3 a) y queremos ordenarlas como indica la figura I ¡,3.b.E! rom pecabezas resuelco es el estado objetivo.
Figura ! 1.3. a.Rompecabezas sin resolver. b Rompecabezas resuelto. Las producciones en nuestro ejemplo son los movimientos a los que debe mos someter a las piezas.con la previa condición de que ti lugar vacío debe estar al lado de la pieza a mover.Como existen varias producciones aplicables o movimien tos posibles, el sistem a de control es ei que debe dec'dir que pieza mover. Desde el punto de vista de los sistemas de producción, la tarea de crear una máquina inteligente consiste en implantar el sistema de control como un programa almacenado en la máquina. Este programa examina el estado actual del sistema objetivo, identifica una secuencia de producciones que conduce a! estado objetivo y ejecuta dicha secuencia. De esta manera el sistema de control construye un algoritmo que permite «¡solver el problema inicia! empleai.üc piodsiccionei ccruo bloques de construcción. El impedimento principal para ei diseño de una máquina es la elaboración de! programa de control. P R I N C I P I O S
D E
C O M P U T A C I O N
205
r
IN T E L IG E N C IA A R T I F IC IA L __________ ___________________ ____ _ ______ ___ _______ ________ J
Una forma útil de representado conceptualizar,todos los estados,producciones y condiciones previas de un sistema de producción es ei grafo de estados. El grafo desde un punto de vista matemático está compuesto por: •Nodos: conjunto de posiciones. •Arcos: flechas que conectan los nodos. Un grafo de estados es un conjunto de nodos que representan los estados del sistema conectados por arcos que representan las producciones que causan el movimiento de un estado a otro. Dos nodos pueden estar conectados por un arco en el grafo de estados si y solo si existe una producción que pueda servir para llevar el sistema del estado que está en el origen dei arco al estado que está en el destino dei arco. Las condiciones previas se representan con la ausencia de arcos entre ciertos nodos. En términos de grafo de estados, el problema a resolver por ei sistema de con trol es encontrar una secuencia de arcos que conduzca del estado inicial a! estado objetivo, porque esta secuencia de arcos representa una secuencia de produccio nes que resuelve el problema original. Este tipo de representaciones puede aplicarse a cualquier sistema de produc ción, de manera que el planteo de los problemas en términos sistemas de produc ción constituye una estrategia uniforme aplicable di proceso de resolución de pro blemas. En otras palabras, independientemente de la aplicación, el sistema de con trol requerido siempre se reduce al problema de hallar un camino por un grafo de estados. Para nuestro ejemplo clásico del rompecabezas podríamos representar el pro blema con un grafo de estados. Si bien ia extensión de! mismo hace difícil represen tarlo en el texto en su totalidad, podemos ap-eciar una parte de! mismo en ¡a figura I ¡.4. En términos de grafo de estados, el sistema de controí debe encontrar la se cuencia de arcos que conforma el camino entre el estado inicial y el estado objeti vo. Esta secuencia de arcos es el sistema de producciones que resuelve el problema original'. El sistema de control requerido siempre se reduce al problema de hallar un camino por un grafo de estados, independientemente de la aplicación.
11.4 UNA APLICACIÓN CLÁSICA: AJEDREZ Fl juego de ajedrez constituye un rlásiro de1•ssrudia *»i o! Srf-i de ia inteligencia artificial. Su complejidad moderada en un entorno bien definido, ofrece un entorno ideal para ¡a experimentación de teorías a partir de la práctica de una disciplina 206
P R I N C I P I O S
D E
C O M P U T A C I O N
INTELIGEN CIA ARTIFICIAL
/
J
|1 2 ¡4 5 3 !7 8 6
/
1 2 3 r* 4 0 7 5 8
2 3 5 si- ! V [7 r- 8
x
i 21 3| 4 5 | 6 : 7 18 n i
Figura I ! .4 Representación parcial del grafo de estados relacionada íntegramente con e! inteiecto y ei razonamiento,cualidades propias de los seres humanos. En el ajedrez los estados son las configuraciones posibles del tablero, las pro ducciones son los movimientos de las piezas y el sistema de control está represen tado por los jugadores ya sean estos máquinas o personas. El nodo inicial de! grafo d¿ estados representa al tablero con las p'^zas en sus posiciones iniciales. De este nodo parten arcos que conducen a las configuraciones del tablero que pueden alcanzarse después de la primera jugada de una partida; a su vez, de estos nodos parten arcos a todas las configuraciones alcanzables con la
Figura 11.5 Ajedrez; hombre vs máquina. P R I N C I P I O S
D e
C O M P U T A C I O N
207
j
IN TELIGEN CIA ARTIF IC IA L ________________________ ______ '
_ _______ ~]
_ _
siguiente jugada y así sucesivamente. A partir de esta consideración podemos infe rir que un juego de ajedrez consiste en dos jugadores, cada uno de los cuales trata de encaminarse a través de un enorme grafo de estados hacia un nodo objetivo que ha elegido(figura ! 1.5).
11.5 ÁRBOLES DE BÚSQUEDA Encontrar la secuencia apropiada de producciones en un sistema de producción siempre puede formularse en términos de encontrar un camino a través de un grafo de estados. Esto significa que cualquier conocimiento que se obtenga sobre cómo hallar caminos a través de grafos tiene aplicación inmediata a una gran canti dad de problemas. Al diseñar sistemas de control desde ei punto de vista del grafo de estados estaremos trabajando para resolver muchas aplicaciones al mismo tiem po, por lo tanto, nos centraremos al considerar los sistemas de control, en recorrer los grafos y en como los caminos recorridos se convierten en soluciones a nuestro problema. La tarea del sistema de control requiere de un algoritmo para buscar dentro del grafo de estados, que lleve del nodo inicial al nodo objetivo. La estrategia utilizada, es la construcción de un árbol de búsqueda, en el que el nodo raíz es ei estado inicial, / los nodos sucesores obtenidos a partir de este, son los estados a los que se llega aplicando una producción. Cada arco entre dos nodos de un árbol de bús queda representa ia aplicación de una sola producción y cada camino desde ia raíz hasta una hoja del árbol de búsqueda representa un camino entre los estados co rrespondientes del grafo de estados. En la figura I 1.6 se puede observar el árbol de búsqueda para nuestro ejemplo dei rompecabezas. El estado objetivo aparece en el último nive! del árbol de búsqueda; como esto representa la terminación de la búsqueda, ei sistema de control no necesita cons truir más niveles del árbol una vez que se llega a este punto.AI llegar a este nodo, el sistema de control finaliza la el procedimiento de búsqueda y comienza a cons truir la secuencia de instrucciones necesarias para resolver el problema dei am biente externo. Esto significa recorrer el árbol de búsqueda desde el nodo objetivo ai nodo raíz, aimacenando en una pila las producciones representadas por cada arco que se encuentre en el camino. Ei sistema de control resolverá ei problema del ambiente externo, ejecutando las instrucciones conforme las va tomando de la pila. La figura 11.7 muestra una parte de ¡a pila de producciones para nuestro ejemplo de rompecabezas. El tamaño del grafo de estados puede impedir su almacenamiento en la memo ria de ia máquina, por lo que ei sistema de controi almacena el árbol de búsqueda a 206
P R I N C I P I O S
D E
C O M P U T A C I O N
(
Figura I i .6 Árbol de búsqueda del rompecabezas. P R I N C I P I O S
D E
C O M P U T A C I O N
209
f
I N T E L I G E N C I A A R T I F IC IC I A L
TOPE DE LA PILA
’ ; M UV tH
U \ m t U J \ a f i LA
U tM tU M A ftf:
SUBIR SU BIR LA PIEZA PIEZ A 2 MOVER LA PIEZ PIEZA A 5 A LA IZQUIERDA IZQUIERDA SUBiR SU BiR LA FICHA 6 Figura I 1.7 Pila Pila de produccione produccioness medida que lo va creando. Existen técnicas que permiten controlar el tamaño del árbol y mejorar de esta forma la eficiencia: * Profundidad: la construcción del árbol de búsqueda se hace siguiendo cami nos verticales en lugar de horizontales, siguiendo los caminos más prometedores a mayores profundidades. Se debe desarrollar entonces, una medida cuantitativa que permita al programa determinar cuál de diversos estados se considera más cercano ai estado objetivo.A. esta medida se la conoce como heurística. • E lim in a c ión ió n d e redundan redu ndancia.'»: cia.'»: no es necesari necesario o que un mis mismo mo estado estado te tenga múltiples ocurrencias en el árbol, porque la ocurrencia de un nodo en el árbol de búsqueda indica que ei proceso ha descubierto un camino en el grafo de estados que conduce a ese nodo y de poco sirve conservar registros de varías formas de llegar al mismo estado. Debemos modificar nuestro procedimiento de búsqueda de modo de conservar en el árbol registros de un camino a cada nodo. Volviendo a nuestro ejemplo del rompecabezas para poder diseñar una heurística debemos identificar las características que nosotros como personas, tendríamos en cuenta par* decidir la opción de movimiento. Para trasladar esta técnica a un programa,debemos desarrollar una medida cuan titativ titativaa (heu (heurís rístic tica), a), que permita decidir decid ir cuá cuáll es el estado más más cercano al al estado objetivo. Con este fin asignaremos a cada estado del rompecabezas un coeficiente heurístico que surge como resultado de sumar ia cantidad de posiciones que cada pieza debería debería moverse overse para ocupar el el luga lugarr indicado en el estado objetivo. objetivo. El número obtenido por el método descripto, será una estimación del número de movimientos que habría que hacer desde ese estado, para llegar al estado obje tivo. tivo. Pot Pot ejemplo ejemplo para el esiado inicia! inicia! el coefic co efici?n i?nte te heiií h eiií Lcico Lcic o es 5, 5, por por q u e las piezas 2,3 y 6 están a una posición de sus lugares correctos, mientras que la pieza 5 está es tá a dos dos fugares, resu result ltan ando do:: I + ! + I + 2 = 5. 210
P R I N C I P I O S
D E
C O M P U T A C I O N
I N T E L IG I G E N C I A A R T I F IC IC I A L
Siguiendo este criterio el árbol de búsqueda se reduce notablemente pues no desarrollaremos aquellas ramas que tengan para el mismo nivel de opción, un coefi ciente ciente he heuríst urístico ico mayor mayor.. En la figura I 1.8 1.8 podem podemos os apreciar apreciar como queda el el árbol árbo l de búsqueda de la la figura figura 11.6 11.6,, luego de aplicar nues n uestro tro método método heurístico; heurístico; entre entre pa réntesis figuran los coeficientes obtenidos para cada estado.
ESTADO INICIAL
(41
15)
ESTADO OBJETIVO
Figura 11.8 11.8Arbo rb ol de búsqueda búsqueda a parti pa rtirr de la heurística P R I N C I P I O S
D E
C O M P U T A C I O N
211
I N T E L I G E N C I A A R T I FI FIC I A L
11.6 REDES NEURONALES ARTIFICIALES 11,6.1 Pri Principi ncipio o de de funci funcionami onamient ento o Gran cantidad de problemas en ei campo de !a inteligencia artificial no ha en contrado respuesta con las computadoras actuales. Los procesadores que ejecutan secuencias únicas de instrucciones, no pueden percibir y razonar de la misma ma nera que lo hace el multiproc multiprocesado esadorr que constitu con stituye ye Ja mente mente humana humana.. Este es el motivo por el cual los investigadores de! área, recurren a máquinas con arquitectu ras muídprocesadoras, como !a red neurona! artificia!. Las redes neuronales se construyen a partir de muchos procesadores indivi duales, siguiendo e! modelo de las redes de neuronas en ¡os sistemas biológicos vivos. Cada ada unidad unidad de proc proces eso o es un dispositivo dispositivo simp simple le que genera genera un I o un 0 a la saiida, dependiendo de si la entrada efectiva de esa unidad excede un cierto valor umbra!. umbra!. Dicha Dicha en entra tradá dá es la la suma suma de ¡as entradas entradas reales, reales, com como indica indica ¡a figura I 1.9, .9, en dond dondee las salidas de tres tres unidades unidades de proceso proceso:: x., x2y x2y x3, sirven sirven como como entradas de otra unidad. Las entrada entradass de esta nueva unidad unidad se asocian a valores valores ¡¡amados ¡¡amados pes pesos os:y :yrr y2,yr ,y r
SALIDA
Figura Figura I 1.9 Activi Activida dad d inter in terna na en una una un unida idad d de proceso proceso.. La entrada entrada efect efectiv ivaa será: será:
x r y, + x r y2+ y2 + x 3.y3 .y 3
Si esta esta suma supera e! valo va lorr umbral de la unidad, produ producirá cirá un I a la salid salida, a, caso contrario generará un 0. En !a figura 11.! 0, tenemo tenemoss una uni unida dad d de proces pro ceso o con tres entradas y un valor umbraí igual a 1.5. Los Los pesos pesos son:-2,3 son:-2,3 y -¡ , respectiva respectivamen mente te para para cada entrada. Si Si ¡a unidad unidad recibe com como entradas entradas I , i y 0, 0, la entrada efectiva será: l.(-2)+ 1.3 + !.(-!) = 0. 212
P R I N C I P I O S
D E
C O M P U T A C I O N
______ _________ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ______ ___ IN T E L i G E N C l A A R T IF I C I A l
Si las las entradas recibidas son 0, I y i, la entrada entrada efectiva será: 0.(0.(-2) 2) + 1.3 + I. (-1) = 2 que supera el valor valor del umbral, umbral, por por lo que la salida salida generada es I.
Figura 11.10 .10 Unidad Unidad de proce proceso so típica típica Los pesos positivos producen un efecto de excitación sobre ia unidad recepto ra, mientras que pesos negativos inhiben la misma. La magnitud real del peso controla ei grado permitido a la entrada, para excitar o inhibir la unidad receptora. De esta forma ajustando el valor de los pesos en toda la red neurona! artificial, podremos programarla para que responda a diferentes entradas de manara predeterminada. En el ejemplo de la figura I l .l !, !, observam observamos os en el el caso A, una red re d neuron neuronal al programada para generar generar un I , si las las entradas entradas son distintas distintas y un un 0, 0, si ias entr entrad adas as son iguales. Si cambiamos el valor de los pesos como podemos apreciar en e! caso B, ¡a salida salida será I cuando sus sus dos entradas valen I y 0 para cualquier cualquier otr o tro o par de valores.
Figura Figura I i . i i Ejemplos de redes neuronales. P R I N C I P I O S
D E
C O M P U T A C I O N
213
|
j
INTÉLIC .^ClAARTIflCiAL
_____________________________
1
i 1.6.2 Apiicación: Reconocimiento de caracteres Consideremos el problema de poder distinguir entre las letras C y T de la figura ! 1.12, independientemente de su orientación por parte de una red diseñada para ta! efecto.
Figura i i. i2 Letras a reconocer. Lo primero que tenemos que hacer es identificar todos los patrones posibles de ambas letras como muestra la figura I 1.13.
Figura i 1.13 Patrones de orientación Cada pixel (cuadrado) del campo de visión, esta conectado a un detector que genera un i si está cubierto por la letra y un 0 si no lo está. Las salidas de los detectores serán los valores de entrada de nuestra red neuronal artificial. La red tiene dos tipos de unidades de proceso: * El primer tipo abarca una superficie de 3 por 3 pixeies del campo de visión por lo que tendrá 9 entradas, asociadas a los detectores respectivos como muestra la figura I 1.14. El umbral es de O.S y el peso de las 8 entradas asociadas a los pixeies 214
P R I N C I P I O S
D E
C O M P U T A C I O N
i
_______________
__ _____ ______________ _______________I N T E L IG E N C IA
A R T IF IC IA L ___ |
externos de - I. El peso de la entrada asociada al pixe! central es 2. Cada unidad producirá un I a la salida en los casos en que reciba un solo I de los nueve detec tores o a lo sumo dos si uno de estos, corresponde a! detector del pixel centrai del área de 3 por 3.
Figura 11.14 Unidades de proceso sobre el campo de visión. • El segundo tipo es una única unidad de proceso, con una entrada por cada salida de las unidades del primer tipo. El umbral es de 0.5 y el peso para todas las entradas es I . De esta forma generará un I cuando por lo menos una entrada sea I . Si una parte de la letra C cubre el pixel centra! de cualquier área de 3 por 3, podemos asumir que a! menos deberá cubrir dos o nías pixeles adicionales.Todas ias unidades de proceso de primer tipo generarán una salida 0, por lo que la unidad de segundo jipo también produce un 0 Si la letra en el campo de visión es unaT, siempre se excederá el umbral gene rando un I la unidad de primer tipo y haciendo en consecuencia que la unidad de proceso de segundo tipo entregue un I . En la figura I 1.15, observamos una letra T que cubre con su parte inferior el pixel central del área de 3 por 3. La unidad de proceso que cubre la misma tendrá una entrada efectiva de i: 2 del pixel central y -Idel otro pixel cubierto.Al exce derse de esta forma el umbral de la unidad, tendremos un I sobre la salida de la misma. La capacidad de procesar imágenes de la mente humana es muy superior a la de P R I N C I P I O S
D E
C O M P U T A C I O N
215
r
IN T E L I G E N C I A A R T IF IC IA L UNIDAD DE PR OC ESO
)
ESTE CUADRO PRODU CE UNA ENTRADA EFECTIVA DE 2
ESTE CUADRADO PRODUCE UNA ENTRAD A EFECTIVA DE -1
Figura II. 15 Ejemplo de detección de la letraT. las redes neuronales artificiales, pero las investigaciones realizadas hasta la fecha, han constituido avances considerables en el área. La cantidad de unidades a utilizar, los tipos de ¡as mismas y el patrón de co nexión entre unidades son ¡as variables más importantes sobre las cua!es se está trabajando. Programar una red neuronal artificial consiste en asignar los pesos apropiados a ¡as entradas de ¡as unidades de proceso del sistema. La técnica más utilizada se basa en aplicar entradas de muestra a la red y ajustar los pesos con pequeños incremen tos hasta que ¡a salida real se aproxime a ¡a teóricamente deseada. Repitiendo ei proceso cada vez se requerirán menos ajustes.
II.7 SISTEMAS EXPERTOS Los sistemas expertos se emplean para ejecutar una variedad muy complicada de tareas que en ei pasado solamente podían llevarse a cabo por un número limita do de personas expertas, intensamente entrenadas. A través de la aplicación de las técnicas de inteligencia artificial, ¡os sistemas expertos captan ei conocimiento bá sico que permite a una persona desempeñarse como un experto frente a proble mas complicados. La característica más poderosa de los sistemas expertos, que los diferencia de las aplicaciones tradicionales de la computación, es la capacidad que poseen para enfrentar problemas que constituyen complejos ae¡ mundo reai, por medio de la aplicación de procesos que reflejan e! razonamiento y la percepción humana. 216
P R I N C I P I O
S
D E
C O M P U T A C I O N
IN T E L IG E N C I A A R T I F IC I A L
i
Los sistemas expertos se emplean en la actualidad en una amplia variedad de aplicaciones que comprenden acciones de: Planificación Diagnóstico Diseño «*' Control Capacitación ^ Interpretación ■* Etc. En !a medida que surgen nuevos avances tecnológicos en la arquitectura de las computadoras, y se perfeccionan las técnicas de inteligencia artificial, los sistemas expertos se están aproximando aceleradamente al comportamiento .humano en muchas áreas. El desarrollo de sistemas expertos permite ofrecer mayores potencialidades tecnológicas realimentando nuestro conocimiento del procese del pensamiento humano. Un sistema-experto es una aplicación informática que soluciona problemas complejos, simulando el proceso del razonamiento huma no mediante la aplicación específica de conocimientos. Un sistema experto está compuesto por: Amplio conocimiento específico a partir del campo de interés. Aplicación de técnicas de búsqueda. Soporte para el análisis heurístico. ** Habilidad para inferir nuevos’ conocimientos a partir de co nocimientos ya existentes. «" Procesamiento de símbolos. >•“ Capacidad para explicar su propio razonamiento. Los sistemas expertos emplean una gran variedad de arquitecturas específicas, ya que estas deben ser flexibles para responder a una aplicación determinada. Si bien existen diferencias significativas entre una arquitectura y otra, en general tieP R I N C I P I O S
D E
C O M P U T A C I O N
217
j
INTELIGENCIA A RTIFICIAL
nen muchos componentes en común. La figura I i . 16, muestra una arquitectura con los componentes típicos.
USUARIO
m,EXFMDELViSU«0
Figura I i. 16 Arquitectura típíca de un sistema experto. El usuario de uri sistema txpe; t i puede ¿sta» irali&jando cri cuatro modos distintos:
218
P R I N C I P I O S
D E
C O M P U T A C I O N
INTELIGENC IA ART IFICIAL
i
•Verficador. intenta comprobar la validez del sistema. •Tutor: modifica ei conocimiento presente en el sistema. ■Alumno: se capacita en el área específica mediante el sistema. •Cliente: aplica el sistema a tareas reales. La interfaz del usuario traduce la información entre el usuario y el sistema. El núcleo principal de un sistema experto es el sistema de almacenamiento de conocimientos; está compuesto por la base de conocim ientos disponibles y el m oto r de in ferencia, que representa la capacidad para responder ante situacio nes cambiantes a partir de inferir nueves conocimientos a partir de los existentes. En áreas complejas el conocimiento crece y se modifica constantemente por lo que habrá que desarrollar los medios para la actualización de co nocim ien tos. El sistema debe acceder a un registro de los conocimientos que se emplearon en el procesamiento y traducirlo a una forma aceptable para el usuario. Además de lograr una conclusión cuando enfrenta un problema complejo, un sistema experto debe generar los medios para la explicación del razonamiento que conduce a dicha conclusión. En la actualidad el número de áreas en las que se han encontrado aplicaciones para los sistemas expertos está aumentando con celeridad. Esta expansión se po tencia en el hecho de que un sistema experto se puede dividir en un componente de razonamiento y un componente de conocimientos. Al separar ¡a base de cono cimientos de un sistema experto existente, nos queda un conjunto de rutinas de razonamiento con alta probabilidad de poder..,, aplicar en otras situaciones. Así podemos construir sistemas expertos nuevos en otras áreas, con soio agregar una nueva base de conocimientos a un sistema de razonamiento ya existente.
! ¡.8 LENGUAJES NATURALES El desarrollo de computadoras capaces de entender un lenguaje natural (idio ma), se ha convertido en una de las áreas de investigación más importantes dentro del campo de la inteligencia artificial. El problema principal ^ p rcccso de Icrtgiípjes naturales ec que hs personas no respetan reglas estrictas cuando hablan. Descubrir el significado de un enunciado en un lenguaje natural requiere varios niveles de análisis. P R I
N C I P I O S
D E
C O M P U T A C I O N
219
r INTELIGENCIA ARTIFICIAL _________ ___________________________'
^
|
•Sintáctico; reconocer el sujeto del predicado e identificar el papel gramatical de cada palabra. •Semántico: identificar la función semántica de cada palabra en el enunciado. •Contextual: comprender ei enunciado en el contexto del mismo. La figura 11.17, describe el proceso de análisis y traducción del lenguaje natural. ENTRADA DEL USUARIO
3
ANAlKAOOftSEMANTtCO Interpreta el significado del enunciado
ezn
S
ses o o c o.
GENERADOR OE CODIGO Traduce el enunciada a proposiciones de aplicación en lenguaje de máquina
¡ ;
RESPUESTA DE LA COMPUTADORA
Figura 11.17 Traducción de lenguaje natural a lenguaje de máquina. 220
P R I N C I P I O S
D E
C O M P U T A C I O N
.
¡
.(
INTE LIGEN CIA ARTIFICIAL
1. 2. 3. 4. 5. 6.
¿Qué entiende por inteligencia artificial? ¿Cuál es la diferencia entre el enfoque orientado al rendimiento y el orientado a la simulación? ¿En qué consiste la prueba deTuring? ¿Cuáles son ios componentes de un sistema de producción?. Explique sus características? ¿Para qué se utiliza un grafo? Halle el árbol de búsqueda para el rompecabezas de la figura 11.3, considerando: 13 Estado inicial 4 2 8 765
7. 8. 9. 10.
'•
t
12 3 Estado objetivo 4 5 6 78
¿Cómo está construida una red neurona!? Ajuste los pesos de ias 3 entradas y el valor umbralde una unidad de proceso, si la salida es I cuando por lo menos dos entradas valen I. Describa la arquitectura de un sistema experto. ¿Cuáles son y en qué consisten los niveles de análisis de un lenguaje natural?
P R I N C I P I O S
DE
C O M P U T A C I O N
2 2 1
T I ' T I
CAPÍTULO XII
Teoría de la computación 12.1 INTRODUCCIÓN Los estudios sobre ia teoría de ia computación están orientados, a la capacidad de encontrar !a representación adecuada para la descripción de un problema. El término matemático que define esta capacidad es !a cornputabüidad. El lenguaje nos permite describir aspectos de la realidad a partir de combinacio nes de símbolos que representan nuestro pensamiento. E! concepto de realidad lo construimos a partir de procesos psicológicos, que requieren asociaciones'entre Tos elementos y conceptos que forman él lenguaje. Para representar un problema debe existir interacción ida y vuelta entre la des cripción que hace el emisor del mismo y la representación de ¡a descripción por parte dei receptor. E¡ conocimiento será transmisible cuando se complete el ciclo descripción -representación. Si se piensa ia computadora como una máquina calculadora eficiente y rápida, no se encuentra relación con el concepto planteado anteriormente. La com putad ora no es soiam ente un a calculadora de aita com plejidad ya que se basa en un concepto m atem ático su perior-.
Vamos a demostrar que existen procesos que pueden ser descriptos con mucha precisión, pero que no pueden ser representados. Esto nos lleva nuevamente a la idea principa! de la teoría de la computabilidad: un problema es computable cuan do sa puede representar la descripción de un pr-jceso. Esto significa que no todos los procesos son com putables. En I936,el matemático inglés Alan M ath¡sonT uring(l9 12-1954) desarrolló la P R I N C I P I O S
D E
C O M P U T A C I O N .
223
I
T Í O R I A D E L A C O M P U T A C IO N
teoría de una máquina capaz de resolver todo tipo de problemas con solución algorítmica, llegando a la construcción teórica de las máquinas de Turing.
12.2 LA MÁQUINA DE TURING Una máquina de Turing es una forma de representar un proceso a partir de su descripción. Con ¡os estudios de Alan M.Turíng se inició la teoría matemática de la computa ción, en la que se define un alg oritm o com o ia representación form al y siste m ática de un proceso; en ella se verifica que no todos los procesos son representables. A partir de estos estudios se demostró la existencia de problemas sin solución algorítmica y se llegó a la siguiente conclusión: Un problema tiene solución algorítmica si existe una máquina de Turing para representarlo. De estos estudios surgió la teoría de la computabilidad que engloba el análisis encaminado a encontrar formas de descripción y representación de procesos o algoritmos. Los algoritmos son ¡a forma de operar de las descripciones,y define a! conjunto ordenado y finito de operaciones que permiten hallar la solución de un problema. La palabra algoritmo proviene del árabe al-jwarizmi, apodo dado al matemático Mohamed ben Musa(c.825). Aunque es frecuente pensar en ¡as máquinas de Turing como dispositivos elec trónicos,Turing las concibió como una persona que hacía cálculos con lápiz y papel. E! modelo matemático de la máquina de Turing está compuesta por ¡os siguien tes elementos: * Una cinta de longitud infinita dividida en celdas, donde cada celda contiene un símbolo. * Un conjunto finito de símbolos predefinido. * Una unidad de control que puede leer y escribir símbolos en ¡as celdas, utili zando una cabeza de escritura/lectura. En cualquier momento durante su operación, la máquina deTuring debe estar en un estado. Un estado es una configuración digital de la máquina, por lo que no se pueden tcne.- estados intermedios. Los procesos se codifican a partir de los símbolos y se escriben uno a uno en ¡as celdas. En la figura 12.1 se puede apreciar un esquema de la máquina deTuring 224
P R I N C I P I O S
D E
C O M P U T A C I O N
TEORIA DE LA COMPUTACION~~]
CINTA
Figura 12.1 Esquema de una máquina deTuring Un cálculo de una máquina de Turing consiste en un conjunto de pasos que realiza la unidad de control. La unidad de control de la máquina apunta la cabeza de escritura/lectura a la primer celda, lee el símbolo descripto por el proceso y adopta un estado inicial. El cálculo concluye cuando la máquina alcanza el estado final. Durante el cálculo la máquina genera tres acciones: 1. Pasa a un nuevo estado (puede ser igual ai anterior). 2. Escribe un nuevo símbolo en reemplazo del leído (puede ser el mismo). 3. Desplaza la cabeza de escritura/lectura de la unidad de control, una celda hacia la derecha o hacia la izquierda. Al ser de naturaleza conceptuadlas máquinas deTuring se pueden implantar de variadas maneras. Por ejemplo ias computadoras actuales son máquinas deTuring, con la única diferencia que estas tienen memoria infinita (cinta ilimitada), frente a ia memoria finita de aquellas. Podemos equiparar la unidad central de proceso de una computadora, a la uni dad de control de la máquina deTuring. Esto no es por czsualidad.ya que el objetivo deTuring era diseñar una máquina que interpretara los procesos de cómputo. Las máquinas deTuring son útiles como herramientas para investigar las limita ciones de ias computadoras actuales y de los procesos algorítmicos. Se puede concluir que la máquina se puede programar para que se com porte.de manera que pueda representar la descripción de un proceso previamente codifica do en la cinta Ei conjunto de celdas escritas será la solución encontrada. Es necesario definir el estado final para que la máquina, cuando llegue a este se detenga, dando por finalizada la computación del proceso. P R I N C I P I
O S
D E
C O M P U T A C I O N
225
f
TEORIA. DE LA COM PUTACIO N
12.3 EJEMPLO DE APLICACIÓN Analizaremos el siguiente ejemplo de una máquina de Turing, cuyos símbolos son 0,1 y #, como muestra la figura 12.2.
0
#
I
#
UNIDAD DE CONTROL
Figura 12.2 Estado inicial Cada cadena de símbolos binarios almacenados en ia cinta estará separada por numerales. El valor representado en la figura 12.2 es el 5 y el objetivo de nuestra máquina es incrementar en uno este valor. El estado inicial de la cabeza de escritu ra/lectura, será a la derecha del 5, sobre el numeral delimitador. Los estados que tiene la máquina son: COMIENZO, SUMA, ACARREO, NO ACARREO, DESBORD E, RETO RN O y FIN. Las acciones llevadas a cabo en cada LStado están representadas en la tabla de ia figura 12.3, Estado aciuai
COMIENZO SUMA SUMA SUMA ACARREO ACARREO ACARREO NO ACARREO NO ACARREO NO ACARREO DESBORDE RETORNO RETORNO RETORNO
Valor actual
Valor a escribir
Desplazamiento
#
#
0 1
1 0
#
#
0 1 0 1
1 0 1 0 1
#
#
ignorar 0 1
#
0 1
IZQUIERDA IZQUIERDA IZQUIERDA DERECHA IZQUIERDA IZQUIERDA IZQUIERDA IZQUIERDA IZQUIERDA DERECHA DERECHA DERECHA DERECHA
#
N U LO
#
«
Figura 12.3 Máquina deTuring que incrementa en uno
Estado nuevo
SUMA NO ACARREO ACARREO FIN NO ACARREO ACARREO DESBORDE NO ACARREO NO ACARREO RETORNO RETORNO RETORNO RETORNO FIN
TEORIA DE LA COMPUTACION
De acuerdo con la tabla, en el estado de COMIENZO debemos: * Escribir un # en la celda actual (no se modifica el símbolo pues ya tenia un #). * Desplazar la cabeza de escritura/lectura una posición hacia la izquierda. * Pasar ai estado de SUMA. La figura 12.4 describe el resultado de esta operación.
0
#
#
UNIDAD DE CONTROL
Figura i 2.4 estado de SUMA. Para continuar, la tabla indica que cuando estamos en el estado SUMA y la celda contiene un i. debemos escribir un 0, desplazarnos una posición a la izquierda y pasar al estado de ACARREO. La figura 12.5 muestra la situación.
#
0
o
#
1
UNIDAD DE CONTROL
Figura 12.5 estado de ACARREO. A continuación, en el estado de ACARREO y cu.tndo la celda contiene un 0, debemos escribir un I , desplazarnos una posición a la izquierda y pasar al estado de NO ACARREO . Luego de esto, la situación será como indica la figura 12.6. #
1
1
0
#
UNIDAD DE CONTROL
Figura I2.6 estado de NO ACARREO. P R I N C I P I O S
D E
C O M P U T A C I O N
227
j
T EO R IA DE LA C O M PUTA C IO N
_ _ _ __________ _ _ _ ________________ _ ___ J
____
En este estado la tabla indica cambiar el ! por otro I , desplazarnos una posición a la izquierda y permanecer en el estado de N O ACARREO. La figura 12.7 nos muestra el resultado.
0
#
#
UNIDAD DE CONTROL
Figura 12.7 estado NO ACARREO. La tabla nos dice ahora que volvamos a escribir el # en la celda actual, nos desplacemos una posición a !a derecha y pasemos al estado de RETORNO. Al al canzar el estado de RETORNO este nos lleva de acuerdo a la tabla a regresar pasando celda por celda a la condición que indica la figura 12.8. 0
#
UNIDAD DE CONTROL
Figura 12.8 estado de RETORNO. En este estado la tabla indica volver a escribir el # de ia celda actual y pasar al estado de FIN. Por lo tanto la máquina quedará en la configuración indicada en la figura 12.9, donde se observa el valor 6 logrado a partir del incremento en uno.
í
0
#
m
UNIDAD DE 1 CONTROL,;*
Figura 12.9 estado de FIN. 228
P R I N C I P I O S
D E
C O M P U T A C I O N
[ _________ _________________ _ ______________________
TE ORIA DE LA COM PUTA CION
12,4 FUNGONES COMPUTABLES Las máquinas de Turing nos permiten medir la potencia de computo, lo que implica que podemos investigar la potencia de cualquier máquina algorítmica. Matemáticamente los valores de entrada y los valores de salida obtenidos por ¡a máquina deTuring, son los conjuntos que forman el dominio y el codominio de una función respectivamente. En una función, un elemento del dominio está asociado a un solo elemento del codominio como se observa en la figura 12.10.
DOMINIO
CODOMINIO
Figura 12.10 Función f(x) = x2. La tabla del ejemplo de aplicación analizado en el punto anterior para la máqui na de Turing también puede representarse como una función entre el dominio: estado actúa! y contenido de la celda actual;y el codominio: estado nuevo, símbolo a grabar y desplazamiento. Podemos considerar que es una máquina que acepta un valor de entrada y entrega un valor de salida, característica propia de una función. Definimos nuestra función como incremento: í(x) = x + I . En la figura 12.! I tenemos la tabia que describe ía función irscrennento para valores comprendidos entre 0 y 7, lo que significa que siempre tendremos una entrada de 3 bits. P R I N C I P I O S
D E
C O M P U T A C I O N
229
]
j TEORIA DE LA COMPUTACION ___ Figura 12.11 Tabla de la función incremento ENTRADA
SALIDA 001 010 01 ¡ ¡00 101 110 11 ! 1000 (desborde)
003 001 0¡0 011 100 101 110 1¡ 1
.....................-
. --------- ----
Una función es computable, si existe una manera de calcular la salida de la fun ción. Existe una cantidad muy grande de funciones, lo que permite afirmar desde un punto de vista matemático, que siempre habrá funciones que no son computables. Esto sigim'ica que hay funciones que no se pueden tabular como nuestro ejemplo y tampoco pueden representarse por ningún método algorítmico. En consecuencia, ninguna computadora podrá calcular sus valores de salida. En ei ejemplo, nuestra máquina deTuring puede calcular valores de salida para la función incremento, escribiendo en la cinta los valores de entrada en sistema binario, haciendo funcionar la máquina hasta que alcance el estado de FIN y realizando la lectura de la salida sobre la cinta. Podemos afirmar que nuestra función incremento es cc.v.putable en una máquina deTuring. Una función es computable, si es posible diseñar una máquina deTuring que para cualquier entrada de la función, calcule la salida correspondiente. No existe ningún proceso algorítmico que calcule una función que no sea com putable en una máquina de Turing. Una función no computable será por lo tanto una función no computable en una máquina deTuring. Las capacidades de computo de las computadoras, tienen ¡imites que ¡a tecno logía no puede superar, ya que sólo pueden resolver problemas con soluciones algorítmicas. La inteligencia natural del ser humano, abarca mucho más que la resolución de problemas de este tipo. 230
P R I N C I P I O S
D E
C O M P U T A C I O N
í TEOP.IA DE LA COM PUTA CION ~ |
J^ ^ p (3 u 9 3 t L o Y u n 'í a
1. 2. 3. 4.
Explique detalladamente el concepto de computabilidad. ¿Cómo está compuesta una máquina deTuring? ¿Qué acciones puede realizar una máquina deTuring? Aplique la máquina deTuring del punto 12.3 para el siguiente estado inicial:
1 UNIDAD DE CONTROL
5.
¿Cuándo una función es computable?
P R I N C I P I O S
D E
C O M P U T A C I O N
231
BIBLIOGRAFIA
B)B LiO G RA flÁ~^-«-
[
Albarracín Mario-Alcalde Eduardo-Garcia Miguel: “ Introducción a la Informáti ca", McGraw Hill.l 996. Albarracin Mario-Ginzburg Mario:“ !ntroducción a la Informática", Serie Didácti ca, 1992. Albarracin Mario-Ginzburg Mario:“ Funcionamiento y Programación de ¡as Com putadoras” , Reverté, 1989. Black Uyiess: "Redes de Computadoras", Macrobit, 1992. Brey Barry: "Los Microprocesadores Intel”, Prentice Hall, 1995. Brookshear j.Glenn:“ Introducción a las Ciencias de la Computación” ,Addison Wesley, 1995. Brookshear j.Glenn:“ Teoría de I? Computación”,Addison Wesley, 1993. Levine Guillermo: “ Estructuras Fundamentales de la Computación” , McGraw Hill, 1997. Morris Mano M.:“Arquitectura de Computadoras", Prentice Hall, 1994, Norton Peter;“introducción a !a Computación”, McGraw Hill, i 995. Patterson Davió-Hennessy John: "Organización y Diseño de Computadores” , McGraw Hill, 1995. Prieto-Uoris-Torres:“ ¡ntroducción a la Informática”, McGraw Hill, 1996. Roiston David W.: "Inteligencia Artificial y Sistemas Expertos” , McGraw Hill, 1990. P R I N C I P I O S
D E
C O M P U T A C I O N
235
D
1 BIBLIO GRAFIA
Sanders Donald H.:“ Informática Presente y Futuro” , McGraw HUI, 1995. Silberschatz-Peterson-Galvin:”S¡stemas Operativos, Conceptos Fundamentales”, Addison Wesley, 1994. StallingWilliam: “Sistemas Operativos” , Prentice Hall, 1995. Tanenbaum Andrew:“ Redes de Ordenadores” , Prentice Hall, 1991. Tanenbaum Andrew: “Sistemas Operativos Modernos” , Prentice Hall, 1992.
236
P R I N C I P I O S
D E
C O M P U T A C I O N