opo

Download Opo

If you can't read please download the document

Upload: sandra-sanchis-quiles

Post on 09-Aug-2015

18 views

Category:

Documents


3 download

TRANSCRIPT

Tema 01 - Representacin y Comunicacin de la Informacin

ndice1. Introduccin 2. A qu nos referimos cuando hablamos de Informacin? 1. Definicin de Informacin 2. La Informacin a lo largo de la Historia 1. Edad Media 2. Edad Moderna 3. Siglo XX 4. Siglo XXI 3. Tipos de Informacin 1. Magnitudes 2. Textos 3. Imgenes 4. Seales 4. La Informacin Digital 3. Representacin Digital de la Informacin 1. Sistemas de numeracin (posicionales, no posicionales) 1. Cambios de sistemas de numeracin 1. Paso de base b a decimal 2. Paso de un decimal a cualquier base 3. Paso de base b a base c 2. El sistema binario 1. El BIT (del ingls Binary digiIT, Dgito Binario) 2. Nombre de los grupos de bits 3. Mltiplos del BYTE 4. Operaciones en binario (aritmticas, lgicas) 3. El sistema octal 4. El sistema hexadecimal 2. Conversin de la informacin al formato digital 1. Cuantificacin 2. Margen de error 3. Codificacin 3. Extraccin de la informacin desde el formato digital 4. Datos binarios 1. Magnitudes 1. Enteros 2. Decimales 3. Reales 2. Smbolos y Textos 3. Imgenes 4. Audio 5. Video 5. Redundancia en las codificaciones binarias 1. Clculo de la redundancia R 2. Deteccin de errores 4. Comunicacin de la informacin 1. Caractersticas generles de la comunicacin 2. Sistemas de transmisin

3.

4. 5. 6.

7. 8.

1. Segn sistema de transmisin (por lnea, por radio) 2. Segn la direccionalidad de la transmisin (Simplex, Semi-duplex, Fullduplex) 3. Segn la forma de sincronizacin (Asncrona, Sncrona) 4. Segn la naturaleza de la seal (Analgicas, Digitales) Problemas de transmisin 1. Distorsin 2. Atenuacin prdidas de potencia 3. Alteracin de la temporizacin 4. Ruido Codificacin de lnea analgica Cifrado digital Compresin digital 1. Comprensin lossless (sin perdida) 1. Compresores estadsticos 2. Compresores basados en diccionario o sustitucionales 3. Compresores hbridos o de dos fases 2. Comprensin lossy (con perdida) 1. Codificacin diferencial 2. Compresin basada en transformadas 3. Cuantizacin de vectores 4. Compresin fractal 5. Tcnicas de compresin de imgenes en movimiento (interframe) Velocidades de transmisin digital Elementos de un sistema de comunicacin digital

1.IntroduccinEl trmino Informtica proviene del francs Informatique, acuado por el ingeniero Philippe Dreyfus en 1962, acrnimo de las palabras information y automatique. La informtica es el conjunto de conocimientos cientficos y de tcnicas que hacen posible el tratamiento automtico de la informacin por medio de dispositivos electrnicos y sistemas computacionales. As pues, aunque la informtica tiene su primer origen en los primitivos intentos de lograr una mquina capaz de realizar automticamente operaciones de clculo, y aunque en trminos relativos es una disciplina reciente (naciente en los aos 60 del pasado siglo XX), su realidad actual es muy distinta, siendo ahora herramienta imprescindible en todos los campos de las ciencias, en cualquier actividad comercial, y siendo caracterstica de la sociedad moderna en los pases industrializados, donde se ha acuado el concepto de sociedad de la informacin, que ha permitido el mayor grado de intercomunicacin global entre todos los puntos del planeta.

2.A qu nos referimos cuando hablamos de Informacin?1. Definicin de InformacinDenominamos informacin a todo conocimiento comprensible y aprehensible para el ser humano, susceptible de ser expresado en un lenguaje apropiado y de ser transferido a otros seres humanos, para ser compartido y utilizado.

2. La Informacin a lo largo de la Historia3. En la Edad Media el almacenamiento, acceso y uso limitado de la informacin se realizaba en las bibliotecas de los monasterios. 4. En la Edad Moderna, con el nacimiento de la imprenta (Gutenberg), los libros empiezan a fabricarse en serie y surgen los primeros peridicos. 5. En el siglo XX, irrumpe la radio, la televisin e Internet 6. Hoy en da, ya en el siglo XXI, se habla de la sociedad de la informacin, que ha permitido el mayor desarrollo social y tecnolgico en la historia de la humanidad, y se basa en la globalizacin del acceso a los enormes volmenes de informacin existentes en medios cada vez ms complejos, con capacidades ascendentes de almacenamiento y en soportes cada vez ms reducidos.

7. Tipos de Informacin 8. MagnitudesSon valores numricos (cuantitativos) expresados en una determinada unidad de medida.

9. TextosSon agrupaciones de smbolos especiales que son directamente interpretables en el modo humano de expresarse por escrito. Cada smbolo es distinguible y legible por separado, y se compone de smbolos elementales formantes de la comunicacin verbal llamados caracteres (letras y nmeros, tambin denominados caracteres alfanumricos). Se llama alfabeto al conjunto bsico de smbolos diferentes que componen todas las palabras formantes del texto.

10.ImgenesEs el tipo de informacin que emula a la capacidad humana de la visin. Son percibidas directamente como representacin del mundo real y su valor de informacin ser mayor cuanto ms lo sea su tamao, y la precisin con que la imagen representa el objeto real. Esto se expresa con los conceptos de fiabilidad similitud entre la imagen y el objeto representado, y de resolucin precisin empleada para la representacin.

11.SealesSon el tipo de informacin ligada a la variacin de caractersticas fsicas, que se va percibiendo de forma continuada con el paso del tiempo, como puede ser una sucesin ms menos continua de sonidos y/ imgenes. Valores como frecuencia de llegada de las seales, calidad de las mismas, precisin de las mismas son criterios para considerar el valor informativo de las seales.

12.La Informacin DigitalComo hemos dicho, los dos conceptos claves de la informacin son: 13.poder ser expresada de la manera ms adecuada, para que pueda ser mantenida y aumentada sistemticamente 14.y poder ser comunicada de forma eficaz a cualquier lugar donde se necesita, y en el momento en que se precisa

Para conseguir estos dos objetivos, se han inventado y desarrollado sucesivamente nuevas herramientas para el tratamiento y la transmisin de la informacin. Estas herramientas se basan en la informacin digital, que utiliza slo dos smbolos, el 0 y el 1, para cualquier tipo de dato. Cualquier tipo de informacin es susceptible de ser convertida en digital, para su tratamiento y transmisin, y ser recuperada posteriormente con sus caractersticas originales.

3.Representacin Digital de la InformacinEl fenmeno que convierte cualquier tipo de informacin en digital se denomina codificacin y al proceso inverso decodificacin. Para tener claro los conceptos de codificacin y decodificacin de la informacin, hay que conocer primeramente como funciona el sistema de numeracin binario. Por ello entraremos brevemente en el estudio de sistemas de numeracin.

1. Sistemas de numeracinSistema para expresar grficamente los nmeros. Existen sistemas posicionales donde el valor depende de la posicin (por ejemplo la numeracin decimal) y otros no posicionales (sistema romano) donde el valor es independiente de la posicin. 1. Cambios de sistemas de numeracin1. Paso de base b a decimal

Para p cifras enteras, q cifras decimales y siendo b la base: N(b = np-1bp-1 + np-2bp-2 + ... + n1b1 + n0b0 + n1b-1 + n2b-2 + ... + nqb-q = N(10 Ejemplo: 1234(5 = 194(10 (p = 4, q = 0, b = 5) N(5 = n4-154-1 + n4-254-2 + ... + n151 + n0b0 + n15-1 + n25-2 + ... + n05-0 = N(10 N(5 = n353 + n252 + n151 + n050 + n15-1 + n25-2 + ... + n05-0 = N(10 N(5 = 153 + 252 + 351 + 450 = N(10 N(5 = 1125 + 225 + 35 + 41 = N(10 N(5 = 125 + 50 + 15 + 4 = N(10 1234(5 = 194(102. Paso de un decimal a cualquier base

Se divide el nmero decimal por la base hasta que se obtenga un cociente menor que la base, luego se recoge el ltimo cociente y los restos obtenidos en orden inverso. Ejemplo: 1234(10 = 14414(5 1234 / 5 = 246 | resto 4 246 / 5 = 49 | resto 1 49 / 5 = 9 | resto 4

9 / 5 = 1 | resto 4 1 / 5 = 0 | resto 1 1234(10 = 14414(53. Paso de base b a base c

Se pasar de base b a base decimal y luego de base decimal a base c. 2. El sistema binario El sistema de numeracin de base dos, se conoce como sistema binario y utiliza los smbolos 0 y 1 que correxponden con un BIT (del ingls Binary digiIT, Dgito Binario).1. Nombre de los grupos de bits, dependiendo de su longitud

2. 3. 4. 5. 6.

4 bits nibble 8 bits byte / octeto 16 bits media palabra 32 bits palabra 64 bits doble palabra

7. Mltiplos del BYTE

8. 10241 bytes KiloByte KB 9. 10242 bytes MegaByte MB (1024 KB) 10.10243 bytes GigaByte GB (1024 MB) 11.10244 bytes TeraByte TB (1024 GB) 12.10245 bytes PetaByte PB (1024 TB)13. Operaciones en binario1. Operaciones aritmticas

2. Suma 0+0=0 0+1=1 1+0=1 1 + 1 = 0 (y acarreo 1) 3. Resta 0-0=0 0 - 1 = 1 (y acarreo 1) 1-0=1 1-1=0 4. Multiplicacin 00=0 01=0 10=0 11=15. Operaciones lgicas

6. AND 0 and 0 = 0 0 and 1 = 0 1 and 0 = 0 1 and 1 = 1

7. OR 0 or 0 = 0 0 or 1 = 1 1 or 0 = 1 1 or 1 = 1 8. XOR 0 xor 0 = 0 0 xor 1 = 1 1 xor 0 = 1 1 xor 1 = 0 3. El sistema octal El sistema octal utiliza 8 smbolos {0,1,2,3,4,5,6,7}, la ventaja de este sistema es la facilidad para pasar un nmero octal a binario y viceversa. 000(2 = 0(8 001(2 = 1(8 010(2 = 2(8 011(2 = 3(8 100(2 = 4(8 101(2 = 5(8 110(2 = 6(8 111(2 = 7(8 Ejemplo: 1234(8 = 1 2 3 4 = 001 010 011 100 = 001010011100(2 4. El sistema hexadecimal El sistema hexadecimal utiliza 16 smbolos {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F} y ofrece la misma ventaja que el sistema octal. 0000(2 = 0(16 0001(2 = 1(16 0010(2 = 2(16 0011(2 = 3(16 0100(2 = 4(16 0101(2 = 5(16 0110(2 = 6(16 0111(2 = 7(16 1000(2 = 8(16 1001(2 = 9(16 1010(2 = A(16 1011(2 = B(16 1100(2 = C(16 1101(2 = D(16 1110(2 = E(16

1111(2 = F(16 Ejemplo: 1234(8 = 1 2 3 4 = 0001 0010 0011 0100 = 0001001000110100(2

2. Conversin de la informacin al formato digital1. Cuantificacin La informacin en general es denominada analgica por su naturaleza continua, presentndose en un rango continuo de valores. El primer paso para convertirla al formato digital, es asumir un valor fijo para todos los valores analgicos comprendidos dentro de un determinado intervalo, y este valor suele ser el valor central del intervalo considerado. Otras variedades de este proceso pueden ser establecidas, eligiendo intervalos de distinta longitud, ms pequeos en aquellos rangos de valores donde es necesaria mayor precisin. 2. Margen de error El error cometido como diferencia entre el valor efectivo, y el valor central asumido para su representacin est limitado por la mitad de la anchura del intervalo. Es por lo tanto predecible y controlable. El nivel de estos errores se puede reducir adecuadamente, y en todo caso, por debajo del umbral de percepcin del ser humano. La informacin es objeto del conocimiento humano, y es percibida con unos rganos sensoriales, que son dispositivos analgicos, basados en reacciones fsicas y qumicas. Su precisin no es infinita, lo que hace que no sean distinguibles pequeas diferencias entre seales analgicas antes y despus del procesamiento digital. 3. Codificacin Una vez reducido el rango continuo a un conjunto de valores discretos, el siguiente proceso es codificar numricamente estos valores, obteniendo el conjunto de los valores numricos digitales, en el cdigo binario adecuado.

3. Extraccin de la informacin desde el formato digitalLos valores binarios obtenidos contienen toda la informacin que contena su forma analgica, de manera que se puede volver a recuperar sta, si se han observado las debidas precauciones en los procesos anteriormente explicados.

4. Datos binarios1. Magnitudes1. Enteros

Cuantificados en binario natural, ms codificacin del signo.2. Decimales

Codificando por separado los nmeros a ambos lados de la coma, y su posicin.

3. Reales

Codificando la expresin denominada coma flotante, con una base decimal, y un exponente entero. 2. Smbolos y Textos Los textos son la expresin del lenguaje humano escrito, y se representan codificando por separado cada uno de los smbolos (caracteres) que lo componen, que pueden ser letras del un alfabeto, cifras numerales sin correspondencia con su valor numrico, signos de puntuacin, caracteres especiales, y caracteres de control, y alineacin. La codificacin se realiza mediante los cdigos ASCII (American Standar Code for Information Interchange) y EBCDIC (Extended Binary Code Decimal Interchange Code), especialmente el primero. Cualquier informacin digital binaria se puede agrupar en bloques, e interpretarse directamente como un conjunto de caracteres, en este caso se dice que se tratan como ficheros de texto. 3. Imgenes Se codifican como datos el tamao de la imagen, la posicin de cada elemento de la imagen en las dos dimensiones, generalmente llamado pxel, y los valores que definen su color. Hay multitud de formatos que guardan dicha informacin (JPG, GIF, PNG, DWG, TIFF, ectera), algunos de ellos permiten la compresin de la informacin a base de perder cierta clidad de la imagen. Los algoritmos de compresin tienen en cuenta ciertos parmetros de la visin humana para que esta perdida de informacn no sea visible a simple vista. 4. Audio Hay multitud de formatos que guardan dicha informacin (CDA, WMA, ACC, MP3, OGG, ectera), algunos de ellos permiten la compresin de la informacin a base de perder cierta clidad del sonido. Los algoritmos de compresin tienen en cuenta ciertos parmetros del oido humano para que esta perdida de informacn no sea perceptible. 5. Video Se consideran imgenes en movimiento, lo que equivale a una sucesin de imgenes a un ritmo suficiente para crear la percepcin de movimiento. Se codifican de la misma forma, es decir, como imgenes sucesivas codificadas. Se les sueleadir sonido, lo que se consigue incluyendo la informacin sonora intercalada dentro del formato del video. Los formatos de video ms conocidos son VCD, SVCD, AVI, DVD. La compresin de la informacin est implcita.

5. Redundancia en las codificaciones binarias1. Clculo de la redundancia R R = 1 - (In / It) , siendo: 2. In = cantidad de informacin utilizada por el cdigo 3. It = cantidad de informacin total

Por ejemplo el cdigo BCD usa 4 bits para representa 10 smbolos distintos: R = 1 - (10 / 24) = 1 - (10 / 16) = 1 - 0.625 = 0.375 = 37.5 % de redundancia. Un cdigo poco redundante es el que aprovecha al mximo todas las posibilidades que tiene para representar la informacin. 4. Deteccin de errores A veces es interesante que un cdigo sea redundante para facilitar la deteccin de errores e incluso repararlo. El bit de paridad (par o impar) es un ejemplo de redundancia para detectar errores. El inconveniente que tiene es que no es capaz de detectar un cambio en ms de un bit. Hay otros tipos de mtodos capaces de corregir dichos fallos, uno de estos fallos consiste en aadir un bit de paridad vertical por cada grupo de bytes, cada uno de los cuales lleva su propio bit de paridad. Si el error fuera mltiple este se podr detectar pero no corregir. Existen mtodos ms efectivos como son los cdigos de Hamming que son capaces de detectar errores mltiples y corregir errores sencillos utilizando en proporcin menos bits de paridad. Estos cdigos consisten en aadir varios bits de paridad colocados en las posiciones que son potencia de 2, de forma que cada uno proteja a varios bits del dato. Estos cdigos son cada vez ms utilizados en las memorias. Si lo que se pretende es la deteccin de errores en las comunicaciones serie, existen cdigos especiales ya que los errores producidos suelen afectar a varios bits consecutivos. Estos cdigos llamados polinomiales o de redundancia cclica (CRC) consisten en aadir a cada bloque un residuo (mdulo) con respecto a un valor concreto representado por un polinomio. Los cdigos de Huffman presentan la particularidad de emplear cdigos de longitud variable, de manera que el nmero de bits utilizados para codificar un carcter va a depender de la frecuencia de utilizacin. Otro cdigo corrector, el 2 entre 3, consiste en enviar la informacin por triplicado de forma que si dos de los tres bytes enviados son iguales podemos desechar el tercero.

4.Comunicacin de la informacin1. Caractersticas generles de la comunicacinLa comunicacin es el intercambio de informacin entre dos o ms entes. El emisor es el ente que enva dicha informacin a travs de un canal de comunicacin y el receptor es el ente que la recibe.

2. Sistemas de transmisin3. Segn sistema de transmisin: 1. Por lnea: cable de par trenzado, coaxial, fibra ptica. 2. Por radio: ondas terrestres y ondas va satlite. 4. Segn la direccionalidad de la transmisin: 1. Simplex: la comunicacin se efecta en un solo sentido. 2. Semi-duplex: existe comunicacin en ambos sentidos pero no simultneamente.

3. Full-duplex: hay comunicacin en ambos sentidos de manera simultnea. 5. Segn la forma de sincronizacin: 1. Asncrona: la emisin y la recepcin de la informacin no se realizan al unsono. 2. Sncrona: la emisin y la recepcin de la informacin se realizan prticamente a la vez. 6. Segn la naturaleza de la seal: 1. Analgicos: seal que toma valores continuos en el tiempo. 2. Digitales: seal que toma un nmero finito de valores (si slo toma 2 se llaman seal digital binaria).

7. Problemas de transmisinLos problemas asociados a la transmisin estn relacionados con la naturaleza del medio fsico de transporte, que no tiene una respuesta digital, sino que tiene propiedades fsicas intensivas y extensivas (inercia, resistencia al cambio, elasticidad, interaccin de desgaste con las seales que lo atraviesan?) cuyo efecto en conjunto es la degradacin de la seal transmitida, que llega alterada al punto de recepcin. Los problemas asociados a la transmisin de seales, se pueden enunciar como: 1. Distorsin Consiste, en alteraciones de la forma de la seal, debidos las caractersticas del medio. 2. Atenuacin prdidas de potencia Consiste en la prdida del nivel de la seal, debido al desgaste. 3. Alteracin de la temporizacin Causados por retardos, y tiempos de transmisin diferentes para distintas formas de seales. 4. Ruido Son las seales no deseadas que acompaan a la seal enviada, y que aparecen en recepcin debido a su paso por el medio, y que en ocasiones pueden ocultarla, y, en todo caso dificultar su deteccin.

8. Codificacin de lnea analgicaAunque estamos hablando de informacin de tipo digital, los medios de transmisin utilizados tienen una caracterstica, y un comportamiento analgico, determinado por el transporte fsico de las seales que contienen la informacin, por lo tanto, las seales que se transmiten por el medio son analgicas, aunque transportando secuencias de smbolos digitales. Es necesario pues, una nueva adaptacin al medio analgico que se denomina codificacin de lnea, que consiste en generar, para cada smbolo binario, una seal que se adapte a las caractersticas del medio y que conserve el carcter digital, que va a ser transmitida alternativamente por la lnea. Esta adaptacin analgica permite adems evitar las principales causas de prdida de calidad que afectan a las seales analgicas, especialmente la distorsin variacin de forma de la seal.

9. Cifrado digitalPuesto que la transmisin utiliza un medio comn fsico, la informacin contenida en las seales puede ser accesible por otros, para ser leda, para ser alterada, ambas situaciones son altamente peligrosas. Las caractersticas de la informacin digital permite un proceso de codificacindecodificacin completamente digital, que haga ininteligible la informacin ante cualquier acceso a ella de sistemas que no conozcan el tipo de codificacin sus parmetros.

10.Compresin digitalCon el fin de reducir el tamao de los datos a transmitir, y aumentar asi la velocidad de transmisin, existen algoritmos de compresin de la informacin. 1. Comprensin lossless (sin perdida)1. Compresores estadsticos

2. Compresores del tipo Huffman o Shannon-Fano Longitud codificacin inversamente proporcional a la probabilidad de aparicin del mensaje. 3. Compresores aritmticos Compresor tambin basado en la probabilidad de aparicin de un mensaje, pero en este caso para la representacin se utiliza un nmero en coma flotante. 4. Compresores predictivos Pretenden predecir el siguiente mensaje a transmitir partiendo del conocimiento que se tiene de los mensajes enviados hasta el momento.5. Compresores basados en diccionario o sustitucionales

6. Compresin RLE Compresor de los menos eficaces pero de los ms sencillos. Se basa en la sustitucin de caracteres repetidos por un carcter ms el nmero de repeticiones. 7. Compresores Lempel-Ziv (LZ) 1. LZ78 Esta tcnica consiste en la elaboracin dinmica de un diccionario donde se irn almacenando las cadenas aparecidas hasta el momento y a las que se le irn asignando identificadores, de forma que si aparece una cadena que ya est en eldiccionario, se enviar su identificador. Uno de los problemas de este mtodo es el delimitar el crecimiento infinito del diccionario. 2. LZ77 Este mtodo guarda un registro de caracteres enviados, pero no construyen un diccionario propiamente dicho, sino que mantienen una "historia (o ventana)" de la entrada y un "buffer de adelantamiento". Este mtodo de comprensin es utilizado en la mayora de los compresores actuales, por ejemplo, hacen uso de l PKZIP, RAR, ARJ, etc.

8. Compresores hbridos o de dos fases

Los compresores actuales utilizan ambos mtodos (estadsticos y sustitucionales) para comprimir de manera ms ptima. 2. Comprensin lossy (con perdida) Se utiliza sobre todo para la codificacin de archivos multimedia, dnde no es tan importante que la informacin recibida sea exacta y s es muy importante la capacidad de comprensin.1. Codificacin diferencial

La secuencia de valores son representados como la diferencia con respecto a un valor previo.2. Compresin basada en transformadas

Se basa en la representacin de la imagen muestreada en trminos de contenido de frecuencias de la imagen.3. Cuantizacin de vectores

Divisin de la imagen en rectngulos de tamao fijo y se basa en la utilizacin de un libro de cdigos que se crea previamente, a raiz de las estadsticas de un grupo de imgenes de prueba que son similares en contenido a la imagen que se va a comprimir.4. Compresin fractal

Similar a la anterior tcnica, pero en vez de seleccionar el bloque del libro ms parecido, se puede aplicar una transformacin geomtrica a los bloques del libro de cdigos para hacerlos coincidir mejor con el bloque de pixels que est siendo evaluando.5. Tcnicas de compresin de imgenes en movimiento (interframe)

La comprensin se basa por la eliminacin de redundancia que se produce por las mnimas diferencias entre imgenes sucesivas.

11.Velocidades de transmisin digitalLa transmisin digital se caracteriza por un parmetro, que es la velocidad binaria, expresada en baudios (smbolos por segundo), en la medida homognea de bits / Kbits / Mbits por segundo.

12.Elementos de un sistema de comunicacin digital+-------------------+ + | EMISOR | | +---------+---------+ + v +-------------------+ + | CODIFICACIN | | | DE LA INFORMACIN | | +------------------| RECEPTOR

+------------------^ +---------+--------| DECODIFICACIN

| DE LA INFORMACIN

+---------+---------+ +------------------+ v ^ +-------------------+ +---------+--------+ | ENCRIPTACIN | | DESENCRIPTACIN | | DE LOS DATOS | | DE LOS DATOS | +---------+---------+ +------------------+ v ^ +-------------------+ +---------+--------+ | COMPRESIN | | DESCOMPRESIN | | DE LOS DATOS | | DE LOS DATOS | +---------+---------+ +------------------+ v ^ +-------------------+ +---------+--------+ | REDUNDANCIA | | COMPROBAR ERRORES | | CONTRA ERRORES | | TRANSMISIN | +---------+---------+ +------------------+ v ^ +-------------------+ +-------------------+ +---------+--------+ | CODIFICACIN | | TRANSMISIN | | DECODIFICACIN | | DEL CANAL + > | POR EL CANAL + > | DEL CANAL | +-------------------+ +-------------------+ +------------------+

1.El emisor es el encargado de generar la informacin a transmitir. Dependiendo del tipo de informacin, esta se codifica en binario, mediante la transformacin ms adecuada. Luego, si es necesario, los datos se encriptan para que no puedan ser interceptados. Opcionalmente, se comprimen para reducir su tamao y as aumentar la velocidad de transmisin. Antes de enviar los datos, se realiza una nueva codificacin orientada a que el receptor pueda detectar y corregir errores. Para enviar los datos, estos se transforman en una seal analgica que pueda ser enviada a traves del canal de comunicacin. 2.En la recepcin se realiza el proceso inversio. Se decodifica la seal analgica, se detectan y corrigen posibles fallos. Si procede se descomprimen los datos y se desencriptan. Y por ltimo se descodifica la informacin de forma que esta pueda ser comprendida por el receptor.

Tema 02. Elementos funcionales de un ordenador digital. Arquitectura.Temario Oposicin Profesor FP Informtica/Tema 02. Elementos funcionales de un ordenador digital. Arquitectura. Saltar a: navegacin, buscar

Contenido 1 Estructura bsica de un ordenador 1. 1 Co m po ne nte s de un or de na do r. M od elo de m qu ina se nci lla de Vo n Ne u m ma n 1. 2 Fu nci

Estructura bsica de un ordenadorHistricamente los ordenadores eran computadores con un programa fijado pero en la actualidad los ordenadores siguen un modelo basado en programas de almacenamiento, de esta manera se tienen: Computadora de programa fijado (Fixed Program Computer): Actualmente algunas mquinas todava utilizan este mdelo, las calculadoras, por ejemplo. Computadora de programa almacenado (Stored Program Computer): En estas mquinas existe una memoria que sirve para almacenar programas por lo que son reprogramables sin necesidad de redisearlas por completo. ste ltimo modelo tambin es conocido como Arquitectura Von Neumann. Arquitectura John Von Neummann Fue diseada en 1946 por el matemtico John Von Neumann y es un modelo que utiliza la memoria tanto para almacenar instrucciones como datos. Estos computadores implementan la mquina Universal de Turing ya que permiten crear aplicaciones capaces de interpretar otras aplicaciones. La idea de esta arquitectura es la de conectar de forma fija y coordinar el funcionamiento de los componentes de un ordenador con una unidad central de proceso (CPU). La CPU dispone de un conjunto de instrucciones que permiten manejar la mquina y adems estas instrucciones se pueden almacenar en la memoria del sistema como el resto de datos.

Componentes de un ordenador. Modelo de mquina sencilla de Von NeummanUna mquina Von Neumman est compuesta por cuatro partes:

Unidad de Control (UC)Es la unidad que se encarga de leer las instrucciones secuencialmente. Las instrucciones las obtiene de la memoria principal.

Unidad Aritmtico-lgica (ALU)Realiza las operaciones matemticas fundamentales (suma, resta, AND, OR, etc.). Es conocida como ALU (UAL en ingls).

Memoria principalEs donde se almacenan los datos mediante celdas identificadas por direcciones

Unidad de control de entrada/salidaEs la encargada de conectar la mquina con el exterior. Permite la transferencia de datos desde la mquina a los perifricos. Imatge:Adcfig2.gif La comunicacin entre los diferentes componentes se realiza usando buses o canales. Los buses son los caminos fsicos a travs de los cuales las instrucciones y los datos circulan entre los diferentes componentes de la mquina.

FuncionamientoVeamos un ejemplo de como se ejecuta un programa en un ordenador actual. El siguiente grfico nos muestra como es el proceso: Supongamos un programa al que llamaramos holaMundo.sh y que una vez ejecutado nos saludara con la frase "Hola mundo!". Segn el grfico el primer paso del proceso de ejecucin del programa es utilizar un dispositivo de entrada. En este caso utilizaremos el teclado y mediante una terminal de linea de comandos ejecutaremos:$ holaMundo.sh

Conviene destacar que no siempre ser un dispositivo de entrada el que iniciara el programa ya que los programas pueden ser iniciados por otros programas. Con esta orden le indicamos a la computadora que debe ejecutar un programa llamado holaMundo.sh y que deber buscar las instrucciones de las que se compone el programa en la memoria. La CPU ir leyendo las instrucciones de la memoria de forma secuencial y una vez que tenga un resultado lo mostrar por algn dispositivo de salida. (por ejemplo, la pantalla).NOTA: Se han obviado los pasos de interpretacin del lenguaje de programacin y otros aspectos.

La unidad central de proceso (CPU)Para mas detalle consultar el tema 3: Los computadores actuales tienen un componente que se llama la unidad dcentral de procesamiento. (conocida por el trmino ingls Central processing unit o CPU). La CPU esta compuesta por los siguientes componentes: La unidad aritmtico-lgica (ALU): Es la encargada de realizar las operaciones bsicas La Unidad de Control: Es la encargada de coordinar y gestionar el resto de elementos de la CPU. Registros: Son elementos de memoria que contienen informacin relativa al programa que se est ejecutando. La forma, diseo e implementacin de las CPU ha canviado mucho durante la evolucin de la informtica pero su funcionamiento contina siendo el mismo desde su definicin funcional en la arquitectura de Von Neumman.

Lenguaje mquinaLas CPU ejecutan programas que leen de la memria principal. Pero estos programas no son escritos en lenguajes de alto nivel sino que son interpretados por la mquina utilizando un lenguaje muy restringido y de bajo nivel llamado lenguaje mquina. Este lenguaje es muy sencillo y se limita a un conjunto de instrucciones muy limitado que comunmente se llama juego de instrucciones del computador. Cada CPU tiene su conjunto de instrucciones propio. Las CPU pueden ser de propsito general o estar diseadas para un proposito concreto y por tanto tener un conjunto de instrucciones muy diferentes. De cualquier manera suelen cumplir los siguientes requisitos: Realizan una nica y sencilla operacin. Utilizan un nmero fijo de operandos y con una representacin numrica fija. La codificacin de las instrucciones es lo ms simple y sitemtica posible de tal forma que el interprete del lenguaje mquina pueda ser tambin sencillo. Las instrucciones son independientes y autocontenidas. Contienen todos los datos necesarios

para ejecutarse y no dependen de otras instrucciones. Y las podemos clasificar en:: Instrucciones de transferencia de datos: Leen o escriben datos de una memoria. Instrucciones aritmticas: Realizan operaciones aritmticas utilizando la ALU. Instrucciones lgicas: Realizan operaciones lgicas utilizando la ALU. Instrucciones de desplazamiento: Realizan operaciones de desplazamiento. Instrucciones de transferencia de control: Actualizan el registro PC de la CPU administrando el flujo de ejecucin del programa (llamadas a subrutinas). Instrucciones I/O: Administran los comandos de entrada salida. Las instrucciones tienen un formato rgido definido por el conjunto de instrucciones del sistema. Una instruccin tiene dos partes: Cdigo de la operacin: es descodificado por la unidad de control Operandos: Los datos sobre los cuales se ejecutar una operacin. Hay operaciones que no tienen datos, operaciones unarias y operaciones binarias. Todas las instrucciones son imperativas La arquitectura mas utilizada en PC de sobremesa es la x86 de Intel y compatibles (com por ejemplo las CPU de AMD). Esta arquitectura apareci en 1978 con intel y ha ido evolucionando Intel 286, Intel 386, Pentium,Pentium 2, Pentium 3, Itanium hasta los actuales Pentium 4. Se han desarrollado y se continan desarollando extensiones del lenguaje mquina. Un par de ejemplos son: MMX d'Intel 3DNow Conviene destacar que nosrmalmente es difcil encontrar software y sistemas operativos que soporten las nuevas instrucciones. Propiedades: Las instrucciones son independientes y autocontenidas. Contienen todos los datos necesarios para ejecutarse y no dependen de otras instrucciones. Instrucciones sistemticas (facilita su decodificacin). El decodificador ha de ser sencillo (no puede ser tan complicado como un compilador de un lenguaje de alto nivel). Es el nico lenguaje que entiende la mquina. Utiliza cdigo binario, octal o hexadecimal. Fueron los primeros lenguajes de programacin Cada mquina (CPU) tiene su propio lenguaje y conjunto de instrucciones. Poco portable. Es necesario conocer el conjunto de instrucciones de la mquina para poder programarla.Diferentes arquitecturas. Actualmente se utilizan mucho ms los lenguajes de alto nivel(mas faciles de aprender y utilizar por que son ms cercanos al lenguaje natural) La unidad de controlo utilizando el descodificador es la encargada de convertir las instrucciones en cdigo interpretable por la CPU. Los datos utilizados son referenciados por su posicin en la memria. Es responsabilidad del programador controlar el mapa de memoria y la asignacin de memoria a cada dato. Las instrucciones tiene un formato rgido definido por el conjunto de instrucciones del sistema. Una instruccin tiene dos partes: Cdigo de la operacin: Es descodificado por la unidad de control Operandos Todas las instrucciones son imperativas

No se pueden utilizar comentarios

La unidad aritmtico-lgica (ALU)Las ALU son las encargadas de realizar las operaciones aritmtico-lgicas que le proporciona la unidad de control. Las operaciones son muy sencillas hasta el punto de que muchos procesadores disponen de un simple sumador/restador y el resto de operaciones se realizan mediante la descomposicin en operaciones sencillas de otras ms complejas. Las ALU tiene el siguiente esquema: Imatge:300px-ALU symbol.svg.png La forma de V se utiliza tipicamente para representarla donde los extremos de la v son los operandos y el vrtice el resultado. La comunicacin entre la CPU y la ALU se realiza mediante los siguientes registros: A y B: Son los registros que contienen los operandos. Tambien se llaman Registros de entrada. R: Es el registro que contiene el resultado. Los registros A, B y R normalmente se almacenan en un banco de registros. F: Es el registro que indica que tipo de operacin se realiza sobre los operandos A y B. D: Es el registro de estado del resultado. Tambin conocido como registro de estado (Status Register). Se utiliza para indicar estados especiales como bits de arrastre, divisiones por cero o 'desbordamientos/overflows. ?Las operaciones que suelen hacer las ALU son: Operaciones aritmticas con nmeros enteros (suma, resta y a veces multiplicaciones y divisiones). Operaciones lgicas binaras Operaciones de desplazamiento de bits: Desplazamientos a derecha o izquierda de bits (equivaliendo a multiplicar o a dividir por 2). Estas operaciones se suelen realizar mediante circuitos electrnicos que pueden ser circuitos combinacionales o circuitos secuenciales segn utilizan registros de memoria o no. Los operandos normalmente se representan en complemento a dos (Ver complemento a 2 en el tema 10) y las operaciones son con nmeros enteros. Las operaciones se pueden clasificar en: Operacions unarias: Un solo operando (operacin de negacin) Operacions binaria: 2 operadores (suma, resta, divisin, etc.) Las operaciones pueden ser: Operador paralelo: La operacin se realiza con todos los bits del operador a la vez. Operador serie: la operacin se realiza dgito a dgito.

Tema 03. Componentes, estructura y funcionamiento de la CPU (Unidad Central de Procesamiento).

Tema 08 - Componentes 'hardware'. Placa base. Tarjetas controladoras.

ndice1. Introduccin 2. Placa base 1. Zcalos del microprocesador 1. PGA 2. ZIF (Zero Insertion Force, Fuerza de Insercin Nula) 3. Slot-1 4. Slot-A 5. Actualmente 2. Chipset 1. El Northbridge ("puente norte" en ingls) 2. El Southbridge ("puente sur" en ingls) 3. La frecuencia del Frontal Side Bus (FSB) y el factor multiplicador 4. BIOS y memoria CMOS 5. Pila del sistema 6. Slots de memoria 1. SIMM (Single Inline Memory Module, Mdulo de Memora Lineal Simple) 2. RIMM (Rambus Inline Memory Module, Mdulo de Memora Lineal Rambus) 3. DIMM (Dual In-Line Memory Module, Mdulo de Memora Lineal Doble) 7. Ranuras de expansin 1. Ranuras ISA (Industry Standard Architecture, Arquitectura Estndar Industrial 2. Ranuras PCI (Peripheral Component Interconnect, Interconexin de Componentes Perifricos) 3. Ranuras AGP (Accelerated Graphics Port, Puerto de Grficos Acelerados) 4. Ranuras PCI-Express 8. Puertos de comunicaciones 1. Puertos Serie 1. RS-232 (COM) 2. Teclado y Ratn 3. USB (Universal Serial Bus, Bus Serie Universal) 4. IEEE 1394 (conocido como FireWire por Apple Inc. y como i.Link por Sony) 5. Serial ATA o S-ATA (Serial Advanced Technology Attachment) 2. Puertos Paralelos 1. IEEE 1284 (LPT) 2. Paralell ATA o P-ATA (Pararell Serial Advanced Technology Attachment) 3. SCSI (Small Computer System Interface) 9. Factor de fabricacin 1. Baby-AT 2. ATX 3. MicroATX 10.Conector elctrico 11.Elementos integrados 1. Controladoras de dispositivos 2. Tarjeta de red 3. Tarjeta de sonido

4. Tarjetas de video 3. Tarjetas controladoras de dispositivos y de E/S 1. Controladoras de discos duros 1. Paralell ATA o P-ATA (Pararell Serial Advanced Technology Attachment) 2. Serial ATA o S-ATA (Serial Advanced Technology Attachment) 3. SCSI (Small Computer System Interface) 2. Otras tarjetas controladoras de E/S 1. Tarjetas de video 1. Funciones 2. Historia 1. MDA (Monochrome Display Adapter) 2. CGA (Color Graphics Adapter) 3. HGC (Hercules Graphic Card) 4. VGA (Video Graphics Array) 5. SVGA (Super Video Graphics Array) 3. Componentes 1. GPU (Graphics Processing Unit) 2. Memoria de vdeo 3. RAMDAC 4. Dispositivos refrigerantes 5. Alimentacin 4. Conectores 1. SVGA 2. DVI (Digital Visual Interface) 3. S-Video 4. Vdeo Compuesto 5. Vdeo por componentes 6. HDMI (High-Definition Multimedia Interface) 2. Otras Tarjetas 1. Tarjetas de sonido 2. Tarjetas Ethernet 3. Tarjetas Wifi 4. Tarjetas Sintonizadoras 5. Tarjetas Modem

IntroduccinEl hardware de un ordenador es el conjunto de componentes fsicos que lo componen. Externamente, un ordenador es una caja con una fuente de alimentacin, con ciertos conectores tanto en la parte trasera como en la delantera, y con, por lo general, un CD/DVDROM en la parte frontal. Conectados a esta caja estn una serie de dispositivos que le acompaan, como el teclado, el ratn, el monitor, los altavoces, la impresora, el escanner, ectera. Si abrimos dicha caja, observamos que el ordenador est compuesto de una placa que prcticamente tiene el tamao de la caja, y en la cual estn conectados otra serie de dispositivos como el microprocesador, la memoria, el disco duro, otras tarjetas, ectera. Esta placa es la llamada placa base o tarjeta madre y es la columna vertebral fsica y lgica de todo el sistema.

Placa basePodemos considerar a la placa base (tambin llamada tarjeta madre) la pieza fundamental del ordenador, ya que a ella (de uno u otro modo) se conectan todos los perifricos y componentes del ordenador. Fsicamente, se trata de una oblea de material sinttico, sobre la cual existe un circuito electrnico que conecta diversos elementos que se encuentran anclados sobre ella. Los principales son: El microprocesador, pinchado en un elemento llamado zcalo. La memoria, generalmente en forma de mdulos. Diversos chips de control: la Bios, el chipset. Los slots de expansin, donde se conectan las tarjetas controladoras. Diferentes conectores para teclado, ratn, disquetera, disco duro, etc.

1. Zcalos del microprocesadorEs el lugar donde se instala el microprocesador del ordenador. En ocasiones, no existe zcalo en absoluto, sino que el microprocesador est soldado a la placa, en cuyo caso a veces resulta hasta difcil de reconocer. Es el caso de muchos 8086, 286 y 386. 1. PGA (Pin grid array, Coleccin De Pines en forma de Regilla) Modelo clsico usado en el 386 y el 486. Consiste en un cuadrado de conectores en forma de agujero donde se insertan las patitas del chip a presin (con ms o menos patitas dependiendo del micro). 2. ZIF (Zero Insertion Force, Fuerza de Insercin Nula) Elctricamente es como un PGA, pero gracias a un sistema mecnico el microchip se introduce sin esfuerzo, con lo que se evitan problemas de roturas de patitas. Apareci en la poca del 486 y sus distintas versiones (sockets 3, 5 y 7, principalmente) se han utilizado hasta que apareci el Pentium II. 3. Slot 1 Es un zcalo patentado por Intel para el Pentium II, Celeron y las primeras versiones del Pentium III, lo cual impide utilizarlo a los otros fabricantes de microprocesadores (AMD y Cyrix fundamentalmente). No se parece a los anteriores zcalos: en vez de un rectngulo con agujeritos para las patitas del chip, es un slot, una especie de conector alargado como los ISA o PCI. con lo que se evitan problemas de roturas de patitas. 4. Slot A Es la respuesta de AMD al Slot 1. Fsicamente ambos "slots" son idnticos, pero lgica y elctricamente son totalmente incompatibles por los motivos indicados antes. Utilizado nicamente por los primeros AMD K7 Athlon. 5. Actualmente Por razones de precio, la tendencia actual en los nuevos microprocesadores es utilizar de nuevo el formato Socket (ZIF) en sus multiples variantes y nmero de pines.

2. ChipsetTraducido literalmente del ingls significa conjunto de circuitos integrados. Es el conjunto de chips que se encargan de controlar determinadas funciones del ordenador, como la forma en que interacciona el microprocesador con la memoria o la cach, o el control de puertos PCI, AGP, USB, ectera. En los PC y otros sistemas el chipset est formado por 2 circuitos auxiliares al procesador principal: 1. El Northbridge ("puente norte" en ingls) Se usa como puente de enlace entre el microprocesador y la memoria. Controla las funciones de acceso hacia y entre el microprocesador, la memoria RAM, el puerto grfico AGP, y las comunicaciones con el Southbridge. 2. El Southbridge ("puente sur" en ingls) Tambin conocido como Concentrador de Controladores de Entrada/Salida, en ingls I/O Controller Hub (ICH), es un circuito integrado que se encarga de coordinar los diferentes dispositivos de entrada y salida y algunas otras funcionalidades de baja velocidad dentro de la tarjeta madre. No est conectado a la CPU y se comunica con ella indirectamente a travs del Northbridge. Antiguamente estas funciones eran relativamente sencillas de realizar, y el chipset apenas influa en el rendimiento del ordenador. Pero los nuevos y complejos micros, junto con un amplio abanico de tecnologas en memorias y perifricos, han hecho que la importancia del chipset crezca enormemente. De la calidad y caractersticas del chipset dependern: 3. obtener o no el mximo rendimiento del microprocesador 4. las posibilidades de actualizacin del ordenador 5. el uso de ciertas tecnologas avanzadas de memoria y perifricos Existe una amplia gama de chipsets para cada tipo de microprocesador y bus, pero los dos fabricantes ms conocidos por su expansin en el mercado son INTEL (que fabrica chipsets para las placas bases diseadas para procesadores del mismo nombre) y VIA (fabrica chipsets para procesadores AMD)

6. La frecuencia del Fontal Side Bus (FSB) y el factor multiplicadorFront Side Bus o su acrnimo FSB (traducido "Bus de la parte frontal"), es el trmino usado para referirse al bus de datos bidireccional que dispone la CPU para comunicarse con el northbridge. La frecuencia del FSB marca el ritmo de funcionamiento de todos los elementos del PC. Dicha frecuencia suele ser menor que la de los microprocesadores actuales, por lo cual, para alcanzar la frecuencia de este timo, la placa base usa un factor multiplicador. Tanto la frecuencia del FBS como el factor de multiplicacin son valores configuravles por el usuario. Aunuqe ya vienen ajustados de fbrica hay quien saca partido forzando sus valores (Overclocking)

7. BIOS y memoria CMOSLa BIOS (Basic Input-Output System) es el sistema bsico de entrada/salida,

compuesto por un programa incorporado en un chip de la placa base que se encarga de realizar las funciones bsicas de manejo y configuracin del ordenador. Fsicamente es un chip de forma rectangular. Adems, la BIOS conserva ciertos parmetros como el tipo de disco duro, la fecha y la hora del sistema, etc, los cuales guarda en una memoria del tipo CMOS, de muy bajo consumo y que es mantenida por un pila cuando el ordenador est desconectado. Las BIOS pueden actualizarse mediante la extraccin y sustitucin del chip (mtodo muy delicado) o mediante software, si son del tipo flash-BIOS.

8. Pila del sistemaLa pila del ordenador, o ms correctamente, el acumulador, se encarga de conservar los parmetros de la BIOS cuando el ordenador est apagado. Sin ella, cada vez que encendiramos tendramos que introducir las caractersticas del disco duro, del chipset, la fecha y la hora, ectera. Se trata de un acumulador, pues se recarga cuando el ordenador est encendido, aunque con el paso de los aos pierde esta capacidad y llega un momento (entre 2 y 6 aos) que hay que cambiarla.

9. Slots de memoriaSon los conectores de la memoria principal del ordenador. Antiguamente, los chips de memoria se colocaban uno a uno sobre la placa. Para facilitar su colocacin se agruparon varios chips de memoria soldados a una plaquita con conectores o pines en el borde, en lo que se conoce como mdulo. Estos mdulos han ido variando en tamao, capacidad y forma de conectarse. Tipos de mdulos de memoria: 1. SIMM (Single Inline Memory Module, Mdulo de Memora Lineal Simple) Se empezaron a utilizar desde el 386. Han progresado desde los 30 hasta los 72 contactos. En desuso. 2. RIMM (Rambus Inline Memory Module, Mdulo de Memora Lineal Rambus) Uutilizan una tecnologa denominada RDRAM, desarrollada por Rambus Inc. a mediados de los aos 1990 con el fin de introducir un mdulo de memoria con niveles de rendimiento muy superiores a los mdulos de memoria SDRAM de 100 Mhz y 133 Mhz disponibles en aquellos aos. Los mdulos RIMM RDRAM cuentan con 184 pins y debido a sus altas frecuencias de trabajo requieren de difusores de calor consistentes en una placa metlica que recubre los chips del mdulo. A pesar de tener la tecnologa RDRAM niveles de rendimiento muy superiores a la tecnologa SDRAM y las primeras generaciones de DDR RAM, debido al alto costo de esta tecnologa no han tenido gran aceptacin en el mercado de PCs. 3. DIMM (Dual In-Line Memory Module, Mdulo de Memora Lineal Doble) Los mdulos DIMM son reconocibles externamente por poseer sus contactos (o pines) separados en ambos lados. Los hay de:

4. 168 contactos para las SDR SDRAM. 5. 184 contactos para las DDR SDRAM. 6. 240 contactos para las DDR2 SDRAM.

10.Ranuras de expansinSon unas ranuras de plstico con conectores elctricos (slots) donde se introducen las tarjetas de expansin. Segn la tecnologa en que se basen presentan un aspecto externo diferente, con diferente tamao y color. 1. Ranuras ISA (Industry Standard Architecture, Arquitectura Estndar Industrial Las ms antiguas, de los primeros PC?s. Funcionan a 8 Mhz, suficiente para conectar un mdem o una tarjeta de sonido, pero muy poco para una tarjeta de vdeo. En desuso 2. Ranuras PCI (Peripheral Component Interconnect, Interconexin de Componentes Perifricos) El estndar actual. Ofrecen hasta 33 Mhz, llegando a una tasa de transferencia mxima de 266 MB/s en el bus de 64 bits, suficiente para casi todo, excepto algunas tarjetas de vdeo 3D. 3. Ranuras AGP (Accelerated Graphics Port, Puerto de Grficos Acelerados) Usada exclusivamente para conectar una tarjeta de vdeo 3D. Ms veloces que las anteriores, pueden llegar a una velocidad de 533 MHz con una tasa de transferencia de 2 GB/s. 4. Ranuras PCI-Express Ees una evolucin de PCI, en la que se consigue aumentar el ancho de banda mediante el incremento de la frecuencia. Usado mayormente para conectar tarjetas grficas.

11.Puertos de comunicacionesLos puertos constituyen, por as decirlo, el vnculo del ordenador con el mundo exterior. Hablando algo ms tcnicamente, se puede decir que son los intermediarios que se encargan de facilitar el intercambio de informacin entre el ordenador y los perifricos externos. Actualmente los puertos vienen integrados en la placa base, pero en las algunos casos de placas base anteriores a Pentium, esto no suceda as, y los puertos venan en tarjetas que se conectaban a los slots de expansin. Por su forma de enviar/recibir datos, se pueden clasificar en 2: 1. Puertos Serie La informacin es transmitida bit a bit enviando un solo bit a la vez. Entre los ms importantes destacamos:1. RS-232 (COM)

Conector macho de color verde azulado en forma de D de 25 pines, sin embargo la mayora de dichos pines no se utilizaban, por lo que IBM incorpor un conector ms pequeo de solamente 9 pines que es el que actualmente se utiliza. En desuso.

2. Teclado y Ratn

Conectores hembra de 6 pines, de forma redonda de color violeta para el teclado y verder para el ratn3. USB (Universal Serial Bus, Bus Serie Universal)

De forma rectangular, es el puerto ms utilizado hoy en da llegando a tener una tasa de transferencia de 60MB/s (en su versin 2.0) Posibilidad de Plug-and-Play permitiendo conectar o desconectr los dispositivos al sistema sin necesidad de reiniciar. Adems, cuando se conecta un nuevo dispositivo, el servidor lo enumera y agrega el software necesario para que pueda funcionar.4. IEEE 1394 (conocido como FireWire por Apple Inc. y como i.Link por Sony)

Estndar multiplataforma para entrada/salida de datos en serie a gran velocidad. Suele utilizarse para la interconexin de dispositivos digitales como cmaras digitales y videocmaras a computadoras.5. Serial ATA o S-ATA (Serial Advanced Technology Attachment)

Es una interfaz de transferencia de datos entre la placa base y algunos dispositivos de almacenamiento, como puede ser el disco duro, u otros dispositivos de altas prestaciones que estn siendo todava desarrollados. Serial ATA sustituye a la tradicional Parallel ATA o PATA (estndar que tambin se conoce como IDE o ATA). El S-ATA proporciona mayores velocidades, mejor aprovechamiento cuando hay varios discos, mayor longitud del cable de transmisin de datos y capacidad para conectar discos en caliente (con la computadora encendida). 2. Puertos Paralelos Los bits de datos viajan juntos enviando un byte completo o ms a la vez. Es decir, se implementa un cable o una va fsica para cada bit de datos formando un bus. Entre los ms importantes destacamos:1. IEEE 1284 (LPT)

Conector hembra de color magenta en forma de D con 25 pines en 2 hileras, que se utiliza generalmente para conectar impresoras antiguas. En desuso.2. Paralell ATA o P-ATA (Pararell Serial Advanced Technology Attachment)

Es una interfaz de transferencia de datos entre la placa base y algunos dispositivos de almacenamiento, como puede ser el disco duro, el CDROM, DVD, ecetera. Actualmente en desuso por la implantacin del S-ATA.3. SCSI (Small Computer System Interface)

Es un interfaz estndar para la transferencia de datos entre distintos dispositivos del bus de la computadora. En el pasado, era muy popular entre todas las clases de ordenadores. Actualmente sigue siendo popular en lugares de trabajo de alto rendimiento, servidores, y

perifricos de gama alta.

12.Factor de fabricacinLas placas base existen en diferentes formas y con diversos conectores para perifricos. Para abaratar costes permitiendo la intercambiabilidad entre placas base, los fabricantes han ido definiendo varios estndares que agrupan recomendaciones sobre su tamao y la disposicin de los elementos sobre ellas. De cualquier forma, el hecho de que una placa pertenezca a una u otra categora, no tiene nada que ver, en teora, con sus prestaciones ni calidad. 1. Baby-AT El estndar absoluto durante aos. Es una placa de 220x330 mm, con unas posiciones determinadas para el conector de teclado, los slots de expansin y los agujeros de anclaje a la caja, as como un conector elctrico dividido en dos piezas. Son las tpicas de los ordenadores clnicos, desde el 286 hasta los primeros Pentium. Con el aumento de los perifricos se acentan sus problemas: 2. Mala circulacin del aire. 3. Enorme maraa de cables que impide el acceso a la placa. 4. ATX Son las ms utilizadas hoy en da. Tienen una mejor ventilacin y menos maraa de cables, debido a la disposicin de los conectores sobre la placa. Suele tener ms conectores, incluyendo alguno del tipo USB. 5. MicroATX Compatibles con estas ltimas pero ms pequeas.

13.Conector elctricoEs donde se conectan los cables para que la placa base reciba la alimentacin elctrica. En las placas baby-AT son dos, y en las ATX uno solo. Una de las ventajas de las fuentes de alimentacin ATX es que permiten el apagado por software, es decir, que al pulsar "Apagar el sistema" el ordenador se apaga solo.

14.Elementos integradosEn las placas base modernas resulta muy comn que ciertos componentes se incluyan en la propia placa base, en vez de ir en forma de tarjetas de expansin. Salen ms baratas y es ms cmodo (se quitan cables y tarjetas), y aunque los componentes no son de alta gama, suelen ser suficientes para el usuario comn. Los ms comunes son: 1. Controladoras de dispositivos En general todas las placas vienen con unos chips que se encargan de manejar los discos duros, los CD-ROM, los DVD-ROM, las diqueteras y los puertos de comunicaciones. 2. Tarjeta de red Dada la expansin de las redes de intranet y/o internet, practicamente la totalidad las placa base de hoy en da vienen con una tarjeta de red para poder

comunicar diferentes aparatos conectados entre si y tambin poder compartir recursos entre dos o ms equipos. Hay diversos tipos de adaptadores en funcin del tipo de cableado o arquitectura que se utilice en la red, pero actualmente el ms comn es del tipo Ethernet utilizando un interfaz o conector RJ-45, o bien el un adaptador WiFi (Wireless-Fidelity) para redes inalmbricas. 3. Tarjeta de sonido Cada vez ms presente en las placas base, suelen ser suficientes, incluso para los usuarios ms melmanos que no sean profesionales. 4. Tarjetas de video Integradas en menor medida, no suelen ser muy potentes y comparten parte de la memoria principal del ordenador, pero sulen ser suficientes para trabajos de oficina, no obstante no son aptas para edicin fotogrfica, de video, CAD/CAM, o para juegos 3D de ltima generacin.

Tarjetas controladoras de dispositivos y de E/S1. Controladores de discos durosUna parte imprescindible de un ordenador son las tarjetas controladoras de discos duros y disqueteras (estas ltimas ya en desuso) El trabajo ms importante que tiene que realizar la controladora de disco duro es efectuar la conexin de comunicacin entre la unidad de disco duro y el bus de datos. Para esto no es suficiente traducir los datos a una forma comprensible, sino que hay que controlar la secuencia de tiempo de emisin y recepcin. El disco duro se conecta actualmente a la placa madre por medio de: 1. Paralell ATA o P-ATA (Pararell Serial Advanced Technology Attachment) Es una interfaz de transferencia de datos entre la placa base y algunos dispositivos de almacenamiento, como puede ser el disco duro, el CD-ROM, DVD, ecetera. Actualmente en desuso por la implantacin del S-ATA.1. Serial ATA o S-ATA (Serial Advanced Technology Attachment)

Es una interfaz de transferencia de datos entre la placa base y algunos dispositivos de almacenamiento, como puede ser el disco duro, u otros dispositivos de altas prestaciones que estn siendo todava desarrollados. Serial ATA sustituye a la tradicional Parallel ATA o P-ATA (estndar que tambin se conoce como IDE o ATA). El S-ATA proporciona mayores velocidades, mejor aprovechamiento cuando hay varios discos, mayor longitud del cable de transmisin de datos y capacidad para conectar discos en caliente (con la computadora encendida).1. SCSI (Small Computer System Interface)

Es un interfaz estndar para la transferencia de datos entre distintos dispositivos del bus de la computadora. En el pasado, era muy popular entre todas las clases de ordenadores. Actualmente sigue siendo popular en lugares de trabajo de alto rendimiento, servidores, y perifricos de gama alta.

2. Controlador de E/S1. Tarjetas de video Es la que transmite al monitor la informacin grfica que debe presentar en la pantalla.1. Funciones

2. Interpreta los datos que le llegan del procesador, ordenndolos y calculando para poder presentarlos en la pantalla en forma de un rectngulo ms o menos grande compuesto de puntos individuales de diferentes colores (pixels). 3. Coge la salida de datos digitales resultante de ese proceso y la transforma (si es necesario) en una seal anlogica que pueda entender el monitor.4. Historia

5. MDA (Monochrome Display Adapter) Introducidas en 1981. Tarjetas de vdeo monocromo de los primeros ordenadores. Trabajaba en modo texto y era capaz de representar 25 lneas de 80 caracteres en pantalla. Contaba con una memoria de vdeo de 4KB, por lo que slo poda trabajar con una pgina de memoria. Se usaba con monitores monocromo, de tonalidad normalmente verde. 6. CGA (Color Graphics Adapter) Introducida tambin en 1981, fu la primera tarjeta grfica en color lanzada por IBM. Fue poco usada al principio, ya que la mayora de los compradores adquiran un PC para uso profesional. Para juegos haba otros ordenadores mucho ms populares, y en aquella poca no se consideraba que los grficos en color tuvieran otro uso que el puramente ldico. 7. HGC (Hercules Graphic Card) Se comercializ 1982, y permita mostrar grficos en monocromo a una resolucin mucho mayor que la CGA, adems de ser ms compatible con la MDA, lo que perjudic todava ms a las ventas de la CGA. 8. EGA (Enhanced Graphics Adapter)Introducida en 1984 por IBM alcanzando una resolucin de 640x350 puntos y 16 colores. 9. VGA (Video Graphics Array) Lo comercializ por primera vez en 1988 por IBM. Ha sido el estandadar desde entonces. Incluso hoy en da es el mnimo que todo el hardware grfico soporta antes de cargar un dispositivo especfico. Ofrece una resolucin de 640x480 puntos y 256 colores. 10.SVGA (Super Video Graphics Array) Fue definido en 1989 y en su primera versin se estableci para una resolucin de 800x600 pixels y 16 colores. Despus fue ampliado rpidamente a los 1024x768 pixels y 256 colores, y a otras mayores en los aos siguientes. Aunque el nmero de colores fue definido en la especificacin original, esto pronto fue irrelevante, ya que el interfaz entre la tarjeta de vdeo y el monitor VGA o SVGA utiliza voltajes simples para indicar la profundidad de color deseada. En

consecuencia, en cuanto al monitor se refiere, no hay lmite terico al nmero de colores distintos que pueden visualizarse. Para aumentar el nmero de colores que un sistema de visualizacin SVGA puede producir, no se precisa ningn cambio en el monitor, solo es necesario redisear la tarjeta grfica. Debido a esto, los principales fabricantes de chips grficos empezaron a producir componentes para tarjetas vdeo del alta densidad de color apenas unos meses despus de la aparicin de SVGA. Sobre el papel, el SVGA original deba ser sustituido por el estndar XGA, pero la industria pronto abandon el plan de dar un nombre nico a cada estndar superior y as, casi todos los sistemas de visualizacin hechos desde finales de los 80 hasta la actualidad se denominan SVGA. 11.XGA (Extended Graphics Array)Creada por IBM por IBM en 1990, pretende ser una mejora del VGA, pero no es seguido por las dems compaas, las cuales comienzan a crear tarjetas de vdeo SVGA.12. Componentes

13.GPU (Graphics Processing Unit) Es un procesador (como la CPU) dedicado al procesamiento de grficos. Su razn de ser es aligerar la carga de trabajo del procesador central y, por ello, est optimizada para el clculo en coma flotante, predominante en las funciones 3D. Los principales fabricantes de GPU que existen hoy en da (2008) en el mercado son ATI y NVIDIA 14.Memoria de vdeo Segn la tarjeta grfica est integrada en la placa base (bajas prestaciones) o no, utilizar la memoria RAM propia del ordenador o dispondr de una propia. Cuanto ms memoria ms resolucion, y ms nmero de colores podr procesar. 15.RAMDACEs el conversor de memoria RAM de digital a analgico. Se encarga de transformar las seales digitales producidas en el ordenador en una seal analgica que sea interpretable por el monitor. Influye directamente en las velocidades de refresco del monitor (se recomienda trabajar a partir de 75 Hz, nunca con menos de 60) 16.Dispositivos refrigerantesDebido a las cargas de trabajo a las que son sometidas, las tarjetas grficas alcanzan temperaturas muy altas. Si no es tenido en cuenta, el calor generado puede hacer fallar, bloquear o incluso averiar el dispositivo. Para evitarlo, se incorporan dispositivos refrigerantes (disipadores y ventiladores) que eliminen el calor excesivo de la tarjeta. 17.Alimentacin Hasta ahora la alimentacin elctrica de las tarjetas grficas no haba supuesto un gran problema, sin embargo, la tendencia actual de las nuevas tarjetas es consumir cada vez ms energa. Aunque las fuentes de alimentacin son cada da ms potentes, el cuello de botella se encuentra en el puerto PCIe que slo es capaz de aportar una potencia de 150 W. Por este motivo, las tarjetas grficas con un consumo superior al que puede suministrar PCIe incluyen un conector que permite una conexin directa entre la fuente de

alimentacin y la tarjeta.18. Conectores

19.SVGA Estndar analgico de los aos 1990. Diseado para dispositivos CRT. 20.DVI (Digital Visual Interface) Sustituto del anterior, fue diseado para obtener la mxima calidad de visualizacin en las pantallas digitales como los LCD o proyectores. 21.S-Video Incluido para dar soporte a televisores, reproductores de DVD, vdeos, y videoconsolas. 22.Vdeo Compuesto Analgico de baja resolucin mediante conector RCA. 23.Vdeo por componentes De calidad comparable a la de SVGA, dispone de tres clavijas (Y, Cb y Cr) 24.HDMI (High-Definition Multimedia Interface) Tecnologa digital emergente en 2007 que pretende sustituir a todas las dems. 2. Otras Tarjetas1. Tarjetas de sonido

Permite la entrada y salida de audio, adems de cierto procesamineto de la seal, como compresin , descompresin, o introduccin de efectos.2. Tarjetas Ethernet

Permiten la comunicacin entre diferentes aparatos conectados entre si y tambin permite compartir recursos entre dos o ms equipos (discos duros, CD-ROM, impresoras, etc.)3. Tarjetas Wifi

Al igual que la anterior permiten la comunicacin entre diferentes aparatos conectados entre si y tambin permite compartir recursos entre dos o ms equipos (discos duros, CD-ROM, impresoras, etc.) pero de forma inalmbrica.4. Tarjetas Sintonizadoras

Permiten capturar seales hertzianas de televisin o radio.5. Tarjetas Modem

Permiten modular/demodular seales para la comunicacin va telefnica de diferentes ordenadores.

Tema 27. Programacin orientada a objetos. Objetos. Clases. Herencia. Polimorfismo. Lenguajes.Temario Oposicin Profesor Secundaria Informtica/Tema 27. Programacin orientada a objetos. Objetos. Clases. Herencia. Polimorfismo. Lenguajes. Saltar a: navegacin, buscar Este libro puede no tener cabida en Wikilibros Algn usuario cree que este libro no es adecuado para que Wikilibros lo albergue, segn la poltica Lo que Wikilibros no es. Si el libro no se adapta para cumplir con las polticas locales en el plazo de un mes podra ser borrado o bien enviado a consulta para su debate. TEMA 27 PROGRAMACIN ORIENTADA A OBJETOS. OBJETOS. CLASES. HERENCIA. POLIMORFISMO. LENGUAJES. Autor: [email protected] 1. RESUMEN 2. DISEO ORIENTADO A OBJETOS(OO) 2.1. CONCEPTOS BSICOS EN LA PROGRAMACIN OO 2.1.1. Respuesta a mensajes dinmica 2.1.2. Abstraccin 2.1.3. Subtipado 2.1.4. Herencia 2.1.5. Estructura de un programa 2.1.6. Patrones de diseo 3. INTRODUCCIN A C++ 3.1. COMPONENTES DE C++ 3.1.1. Aspectos OO de C++ 3.1.1.1. Herencia 3.1.1.2. Clases base abstractas 4. INTRODUCCIN A JAVA 4.1. REPASO A LOS PRINCIPALES ASPECTOS DE JAVA 4.1.1. Herencia 4.1.2. La clase Object 4.1.3. Superclases abstractas e interfaces BIBLIOGRAFIA

1. Resumen Podemos afirmar que en los ltimos 30 aos la programacin orientada a objetos se ha convertido en la preferida por muchos programadores. En el presente tema se tratarn el diseo orientado a objetos, y cuatro de los conceptos clave en este tipo de lenguajes de programacin (a saber: respuesta a mensajes dinmica, abstraccin, subtipado y herencia), as como la forma en que dichos conceptos estn implementados. Un objeto consiste en un conjunto de operaciones junto con algunos datos ocultos. Una caracterstica importante de los objetos es que ofrecen una manera uniforme de encapsular cualquier combinacin de datos y funcionalidad. Un objeto puede ser desde un simple entero hasta un sistema de bases de datos extenso. Todas las interacciones de un objeto ocurren mediante operaciones simples llamadas mensajes o llamadas a funciones-miembro. 2. Diseo orientado a objetos(OO) Grady Booch estableci la siguiente lista de pasos a seguir en el diseo OO: Identificar los objetos en un nivel dado de abstraccin. Identificar las semnticas (comportamientos) de dichos objetos. Identificar las relaciones entre los objetos. Implementar los objetos. El diseo OO es un proceso interactivo basado en asociar objetos con componentes o conceptos en un sistema. Decimos que el proceso es interactivo en el mismo sentido en el que en la programacin orientada a procedimientos (la no orientada a objetos), se forman procedimientos a partir de otros que se convierten en sus componentes. En el diseo OO, nuevos objetos aparecen a partir de varios subojetos. Las relaciones entre objetos que se apuntan en los pasos del diseo segn Booch, se refieren a relaciones entre sus interfaces o relaciones entre sus implementaciones. Cundo es realmente necesario hacer un diseo OO? Si sucesivos refinamientos del programa slo requieren refinar los procedimientos (permaneciendo invariantes las estructuras de datos), los lenguajes como Algol, Pascal o C resultan adecuados; sin embargo, si el problema se vuelve tan complejo como que se vea la necesidad de que se refinen los procedimientos junto con las estructuras de datos, el diseo OO permite realizar dichos refinamientos de manera mucho ms eficiente (y cmoda) que los lenguajes citados. 2.1. Conceptos bsicos en la programacin OO En muchos de los lenguajes OO como C++, Java, Smalltalk o Modula-3, la implementacin de un objeto est determinada por su clase, de manera que creamos objetos como instancias de sus clases. Los lenguajes OO contienen cuatro conceptos que los definen: respuesta a mensajes dinmica, abstraccin, subtipado y herencia: Respuesta a mensajes dinmica: cuando un mensaje es enviado a un objeto, dicho objeto escoge cmo responder al mensaje, es decir, el mtodo a ser ejecutado pudiendo, adems, ser diferente la respuesta para distintos objetos. Abstraccin: Los detalles de implementacin de los objetos permanecen ocultos, tan slo se conoce el perfil de los mtodos pblicos que aparecen en las interfaces que implementan los objetos. Subtipado: Significa que si un objeto a contiene toda la funcionalidad de un objeto b puede ser usado en cualquier contexto donde aparece b. Herencia: Es el mecanismo mediante el cual podemos reutilizar la definicin de un tipo de objeto para definir otro tipo de objeto. 2.1.1. Respuesta a mensajes dinmica La respuesta a mensajes dinmicas significa que un mtodo (en respuesta a un mensaje recibido por el objeto) es seleccionado en tiempo de ejecucin, de manera que objetos diferentes pueden implementar la misma operacin de formas diferentes. Por ejemplo, supongamos un programa donde aparece el enunciado: x.aade(y); donde x es un un objeto que implementa la interface donde aparece como pblica la operacin void aade(Integer y), pudiendo ocurrir perfectamente que la 1 vez que se ejecuta el enunciado x sea un objeto Integer, con lo que el efecto del mensaje es sumar el entero y al contenido del entero x. Sin embargo, una 2 vez, el objeto x puede que sea un conjunto de enteros, con lo que ahora la respuesta al mensaje es bien distinta, ya que supone que el entero y se aade al conjunto de enteros que contiene x (no han de confundirse las respuestas a mensajes dinmicas con la sobrecarga de

operaciones. Fcilmente se comprueba con el ejemplo puesto que son conceptos muy diferentes, ya que la sobrecarga se refiere a diferentes perfiles para un mismo nombre de mtodo). En Java y Smalltalk, la respuesta a mensajes dinmica es una parte importante de dichos lenguajes (en Java se implementa mediante un tipo especial de clase abstracta que se llama, precisamente, interface, tal y como se acaba de explicar en el apartado anterior). En C++ slo los mtodos virtuales pueden ser seleccionados dinmicamente. 2.1.2. Abstraccin La abstraccin basada en objetos es similar a la manera en que se abstrae en los tipos abstractos de datos: en ambos casos se distingue entre el interface pblico y la implementacin privada. Sin embargo, en los lenguajes OO, una combinacin de los mecanismos de subtipado, respuesta a mensajes dinmica y herencia, hace que el diseo de tipos abstractos de datos sea mucho ms flexible y cmodo que en lenguajes ms tradicionales orientados a procedimientos. As por ejemplo, si nos planteamos las operaciones pblicas de los TADs cola y cola de prioridad, encontramos que sus perfiles son idnticos, y las implementaciones difieren tan solo en la operacin aade(Object x, Cola q). En programacin OO podremos utilizar la herencia para definir la cola de prioridad a partir de la cola (o viceversa), redefiniendo tan slo el mtodo citado. 2.1.3. Subtipado Se puede definir el subtipado como una relacin entre tipos, de manera que los valores de un tipo pueden ser usados en lugar de los del otro. A este principio bsico se le llama sustitutividad. El subtipado en los lenguajes OO tambin permite aadir funcionalidad sin modificar las partes ms generales de un sistema. Cuando ocurra que objetos del tipo B no admiten algunos comportamientos deseados, stos pueden ser sustituidos por objetos de un subtipo A que s tengan estos comportamientos. 2.1.4. Herencia La herencia en un lenguaje permite definir nuevos objetos a partir de objetos existentes. Mediante la herencia, principalmente, se evita el rescribir cdigo. Adems, cambios en el cdigo de la superclase afectan automticamente al cdigo heredado en las subclases, de manera que se consigue una mayor reutilizacin sin a penas esfuerzo. La herencia est muy relacionada con la abstraccin. La abstraccin hace que haya dos puntos de vista de los objetos: el del cliente, que slo ve aqullas operaciones que son pblicas, y la del implementador que puede acceder tanto a datos y funcionalidades pblicas como privadas. Con la herencia hay, sin embargo, tres puntos de vista: los dos anteriores ms el punto de vista de la clase heredera. Este punto de vista se refiere a los datos y funcionalidades protegidas (protected) de las superclases que podrn ser vistas por las clases herederas. 2.1.5. Estructura de un programa Existen algunas diferencias sintcticas entre la estructura de los programas en lenguajes orientados a procedimientos y lenguajes OO. Una de las diferencias principales es la manera de organizar las funciones y los datos. En los lenguajes orientados a procedimientos, las estructuras de datos y las funciones estn declaradas separadamente. Si va a aplicarse una misma funcin a muchos tipos diferentes de estructuras de datos, es corriente que el programa se estructure en varios casos (switch case). En programacin OO esto no es necesario, ya que la respuesta a mensajes dinmica va a evitarnos este trabajo. Veamos esto con un ejemplo: Para un lenguaje orientado a procedimientos: void muestre(int caso){switch (caso){ case DOCTOR: printf("Se trata de un doctor\n"); case ENFERMERA: printf("Se trata de una enfermera\n"); }

} void avise(int caso){

switch (caso){ case DOCTOR: printf("Avise a un doctor\n"); case ENFERMERA: printf("Avise a una enfermera\n"); }

} Para un lenguaje OO, sin embargo, estas funciones aparecen como mtodos de clases (desapareciendo el parmetro que determina el tipo de dato de que se trata): class DOCTOR{public: void muestre(){printf("Se trata de un doctor\n");} void avise(){printf("Avise a un doctor\n");}

} class ENFERMERA{public: void muestre(){printf("Se trata de una enfermera\n");} void avise(){printf("Avise a una enfermera\n");}

} 2.1.6. Patrones de diseo Un patrn de diseo (de manera simple) es una solucin general que puede aplicarse a problemas similares. Los patrones de diseo son una gua o aproximacin para resolver una clase de problemas que pueden mostrarse de muy diversas formas (no una solucin que simplemente se aplica como una especie de cdigo genrico). En general, aplicar un patrn de diseo a una situacin especfica va a requerir cierto razonamiento. El proceso de creacin de un patrn de diseo es el siguiente: cuando los programadores encuentran que han resuelto el mismo tipo de problemas una y otra vez, de forma diferente pero usando esencialmente las mismas ideas en el diseo, tratarn de identificar el patrn de diseo general de dichas soluciones. Los patrones de diseo se han desarrollado utilizando tecnologas propias de la programacin OO, por lo que se pueden considerar una de las aplicaciones ms relevantes de dicha metodologa de programacin. 3. Introduccin a C++ Cualquier programador que est familiarizado con la forma de programar en C conoce su modelo especfico de mquina. En concreto, C contiene operaciones que devuelven la direccin de una variable, y que permiten colocar un patrn de bits en cualquier localizacin. Muchos de los lenguajes OO usan el recolector de basura (garbage collector) para librar a los programadores de identificar objetos inaccesibles y as poder utilizar la memoria que ocupaban de forma eficiente. C++, por el contrario, no permite la recoleccin de basura (que afectara a la ejecucin de los programas, haciendo que stos sean ms ineficientes). Una idea bsica, es considerar los objetos de C++ como generalizaciones de las struct de C. As, mientras la mayora de los lenguajes OO slo permiten la asignacin de punteros para los objetos, C++ permite una forma de asignacin de objetos que copia un objeto en el espacio ocupado previamente por el otro. El principal objetivo de C++ es aadir las caractersticas de un lenguaje OO a un lenguaje basado en C, sin que por ello se menoscabe la eficiencia de C. Podemos resumir dichas aportaciones en las siguientes: Integrar los tipos abstractos de datos y la orientacin a objetos. Mejorar el tipado de datos. Que cualquier cdigo C pueda ser compilado por el compilador de C++ sin cambios significativos. Preservar la eficiencia en el sentido de que, el hecho de utilizar un lenguaje que tenga nuevas caractersticas (si no las utilizamos), no debe influir en el cdigo objeto que se obtenga. 3.1. Componentes de C++ Algunas de las diferencias entre C++ y C no relacionadas con los objetos

son: El tipo bool: En C, el valor de una variable lgica se trata como un entero. As, el operador de comparacin < devuelve un 1 si el primer operando es menor que el segundo y 0 en otro caso. El tipo bool hace que los programas sean ms legibles. Los valores de una variable booleana son true o false. El uso de variables booleanas ayuda a evitar errores en los programadores poco experimentados como el que se muestra: if(a=b) c; cuando se quera escribir: if(a==b) c; (aunque ambos enunciados sern admitidos por el compilador). Paso de parmetros por referencia: En C, para que un parmetro se vea afectado por la ejecucin de una funcin (efecto lateral), es necesario que se utilice el puntero al parmetro. En C++ no hace falta hacer referencia explcita al puntero: void incrementa(int &n){ //referencia a un enteron++;} //modificamos el contenido referenciado

main(){int k = 0; incrementa(k); ... //ahora el valor de k es 1

} Sobrecargas de funciones: En C++ es posible declarar varias funciones con el mismo nombre y diferentes parmetros (en nmero y tipo): 1. include void muestra(int val){printf("Entero: %d\n",val);

} void muestra(double val){printf("Entero doble precisin: %l\n",val);

} void muestra(char *val){printf("Cadena: %s\n",val);

} main(){muestra(12); muestra(3.14); muestra("Hola\n!");

} 3.1.1. Aspectos OO de C++ Vamos a definir una clase en C++, Pt, que representa a los puntos en una recta. De forma separada podemos declarar las funciones miembro de la clase Pt. En la declaracin de la clase no tienen por qu aparecer pues las implementaciones, por lo que queda definida la interface de los objetos punto y los las estructuras de datos usadas en su implementacin: /*---------- Interface de la clase Pt ------------*/ class Pt{public: Pt(int xv);

Pt(Pt* pv); int getX(); virtual void mover(int dx); protected: void setX(int xv); private: int x;

}; /*---------- Declaraciones de constructores ------------*/Pt::Pt(int xv){x = xv;} Pt::Pt(Pt* pv){x = pv->x;}

/*---------- Declaraciones de funciones miembro ------------*/int Pt::getX(){return x;} void Pt::setX(int xv){x = xv;} void Pt::mover(int dx){x+=dx;}

Veamos los distintos componentes de la clase: Constructores: Un constructor se usa para inicializar un objeto. Cuando se crea un nuevo punto, se direcciona el nuevo objeto bien en el frente de la heap (utilizando el operador new), o en un registro de activacin de la pila de programa. Observar que los constructores se llaman igual que la clase. Visibilidad: El modificador public significa que el miembro es visible en cualquier contexto donde puede accederse o crearse un objeto de la clase. El modificador protected, es que el miembro es visible en la misma clase o en cualquiera de sus clases derivadas. Por ltimo, el modificador private, es que el miembro es visible solamente dentro de la misma clase en que es declarado. Hay otro modificador de visibilidad que no aparece en el ejemplo descrito: friend, con este modificador una funcin puede acceder a la parte privada de la clase sin ser miembro de la misma. Dicho modificador se usa en clases claramente relacionadas (por ejemplo una clase matriz y otra vector). De esta manera una de ellas puede acceder a la representacin interna de la otra. Funciones virtuales: Un miembro precedido por la palabra virtual puede ser redefinido (refinado) en las clases derivadas. 3.1.1.1. Herencia Vamos a extender la clase Pt para introducirnos en cmo est implementado el mecanismo de herencia en C++: /* ----------- Interface de ColorPt ----------------- */class ColorPt: public Pt{ public: ColorPt(int xv, int cv); ColorPt(Pt* pv, int cv); ColorPt(ColorPt* cp); int getColor(); virtual void oscurece(int tinta); virtual void mover(int dx); protected: void setColor(int cv); private: int color; }; /* -- Declaraciones de los constructores ------- */ ColorPt::ColorPt(int xv, int cv) :Pt(xv) //Llama al constructor de la clase padre {color = cv;} //inicializa el color ColorPt::ColorPt(Pt* pv, int cv) : Pt(pv) {color=cv;}

/*----- Declaraciones de funciones miembro ------------*/int ColorPt::getColor(){return color;} void ColorPt::oscurece(int tinta){color+=tinta;} void ColorPt::mover(int dx){Pt::mover(dx);this->oscurece(1);} void ColorPt::setColor(int cv){color=cv;}

La primera lnea de cdigo declara que la clase ColorPt tiene a la clase Pt como su clase padre pblica. Si la palabra public hubiese sido omitida, entonces Pt sera su la clase padre privada. De todos modos, ColorPt hereda todos los miembros pblicos, protegidos y privados de la clase Pt. La diferencia entre que Pt sea su clase padre pblica o privada es que en caso de ser pblica, se tratar como un subtipo de la clase padre. Cuando una clase es un subtipo de otra, se puede aplicar el principio de sustitividad, mediante el cual cualquier contexto donde aparezca un objeto del supertipo, puede ser sustituido, sin modificacin posterior por un objeto del subtipo. Observar tambin la manera en que se llama en los constructores de ColorPt al constructor de la clase padre. Por ltimo, this hace referencia al propio objeto que se est definiendo, por lo que this->oscurece(1) equivale a hacer color+=1. 3.1.1.2. Clases base abstractas Una clase base abstracta es una clase base (al menos una de sus funciones miembro es virtual), que tiene al menos una funcin miembro virtual pura (no tiene implementacin). Su utilidad es definir un interface comn para una o ms clases derivadas que no son abstractas. Por ejemplo, todos los archivos tienen las operaciones open() y read(), por lo que la clase base de todos los archivos podra ser: class archivo{public: void virtual open() = 0; void virtual read() = 0; //...

}; 4. Introduccin a Java El lenguaje de programacin Java fue creado por J. Gosling y sus colaboradores en Sun Microsystems. Originalmente el lenguaje se llam Oak y fue pensado para manejar pequeos dispositivos (programas que permiten conectarse a Internet a travs de los televisores, el software de los mviles, coches, etc.). Los ingenieros que trabajaban en el proyecto, pronto se dieron cuenta que era necesario disponer de un lenguaje de programacin para navegadores de Internet, es decir, un lenguaje que permitiese escribir pequeos programas (puesto que deban transmitirse entre las diferentes mquinas), y que pudiesen ejecutarse (sin cambios) en cualquier plataforma. Tambin fue importante, desde un principio, la seguridad, ya que los programas podran ser usados para transmitir virus informticos. Oak comenz siendo una reimplantacin de C++, sin embargo, Gosling defenda que en los aparatos electrnicos es ms importante la portabilidad y robusted que la velocidad. sta, entre otras razones, fue la que dio origen a un nuevo lenguaje que fue llamado Java (cuyo significado puede traducirse por caf del bueno). A pesar de sus orgenes, quizs el lenguaje que ms influencia ha tenido en su posterior desarrollo fue Simula. El lenguaje de programacin Java y su entorno de ejecucin fueron diseados con los siguientes objetivos en mente: Portabilidad: Deber ser fcil transmitir programas a travs de cualquier red y stos se ejecutarn correctamente sea cual sea la arquitectura de las mquinas donde lo hagan. Robusted: Puesto que los mensajes de error, en caso de que el programa falle, aparecern en un entorno donde el programa no ha sido creado, hay que evitarlos (cuando sea posible). Seguridad: El entorno de programacin donde se reciba el programa debe ser protegido de los errores del programador y de virus. Enlazado dinmico: Los programas estarn formados por mdulos independientes que se enlazarn en tiempo de ejecucin. Ejecucin en multihilo: El lenguaje dispondr de las capacidades que le permitan escribir aplicaciones donde varias tareas se ejecuten concurrentemente o de forma multiprogramada. Familiaridad y

simplicidad: El lenguaje deber ser fcil de aprender para programadores acostumbrados al lenguaje C (o C++). Eficiencia: Aunque importante, es un objetivo menos importante que los anteriores. Algunas de las decisiones de diseo para alcanzar los objetivos enumerados fueron: La mquina virtual: Para conseguir la portabilidad, Java es un lenguaje interpretado aunque no en el sentido habitual de intrprete (vase Tema 29). Cada arquitectura va a disponer de un intrprete o mquina virtual, que ejecuta los programas compilados de Java (bytecodes). Para conseguir esto, un bytecode es un cdigo binario escrito para ser ejecutado en una arquitectura cualquiera que contendr los datos requeridos por las distintas mquinas virtuales. Naturalmente esto provoca que los programas Java sean ms lentos que su equivalente en cdigo mquina. Robusted de cdigo: En Java, a diferencia de C y C++, no se permite la conversin implcita de tipos. Esto hace que los programas sean ms correctos (no se producen truncamientos si el programador no los admite explcitamente). Tampoco existe la aritmtica de punteros (con lo que se evitan las manipulaciones sutiles de los datos que conlleva el uso de tal aritmtica) y, de forma predefinida, se dispone del recolector de basura. Por ltimo, en tiempo de ejecucin se dispondr del tratamiento de excepciones, que permite ejecutar algn cdigo en previsin de situaciones anormales (dichas situaciones pueden ser previstas por el programador al escribir el cdigo del programa). Objetos y referencias: No todo en Java es un objeto, tambin se dispondrn de tipos no estructurados (bsicos) como enteros, caracteres, etc. Para evitar que las operaciones aritmticas fuesen ineficientes se tom la decisin de hacer esta separacin (aunque se defiende que Java es un lenguaje puramente orientado a objetos). Por otro lado, todos los objetos se acceden mediante punteros (a diferencia de C++ donde el acceso puede hacerse sin invocar explcitamente ningn puntero, es decir tener que crear memoria el frente de la heap). Esto implica, entre otras cosas, que los tipos bsicos sern pasados por valor y los objetos por referencia. El recolector de basuras: El recolector de basuras de Java est implementado como un hilo en background de prioridad baja, que acta en tiempo de ejecucin cuando se espera que no afecte a la percepcin del usuario en la ejecucin del programa. Enlazado dinmico: El enlazado dinmico de clases permite, entre otras cosas, que los programas comiencen a ejecutarse sin que an se hayan transmitido todas las clases que va a necesitar, evitando tambin que clases que no van a ser usadas sean transmitidas. Soporte a la programacin concurrente: Java permite el uso de hilos o tareas que se ejecutan concurrentemente de forma independiente. Aunque es una parte muy significativa del lenguaje no es portable, en el sentido de que para diferentes sistemas operativos que disponen de mecanismos especficos para la concurrencia, el cdigo Java debe ser diferente. Simplicidad: Conforme Java ha ido evolucionando con los aos, se han incorporado caractersticas muy potentes como la reflexin o las clases internas, por lo que no es tan simple como pretenda que fuese en un principio. Sin embargo, hay una lista muy extensa de caractersticas de C++ que no se dan en Java, por lo que an puede considerarse simple (en este sentido al menos). 4.1. Repaso a los principales aspectos de Java Vamos a definir la clase Pt (vista en apartados anteriores) en Java. Observar que no podremos declarar de forma separada las funciones miembro (mtodos) de la clase Pt. En la declaracin de la clase tienen que aparecer las implementaciones (a menos que se trate de una clase abstracta o una interface): class Pt{private int x; Pt(int xv){x = xv;} public int getX(){return x;} public void mover(int dx){x+=dx;} protected void setX(int xv){x = xv;}

} Aunque en Java se utilicen los mismos modificadores de visibilidad que en C++ no significan, en general, lo mismo. Un breve sumario de los trminos ms importantes usados en Java son:

Mtodo: Funcin miembro. Atributo: Variable miembro. Mtodo nativo: Mtodo escrito en otro lenguaje, como C. Paquete: Conjunto de clases en un espacio de almacenamiento compartido. Tiene implicaciones sobre la visibilidad existiendo una visibilidad de paquete (cuando no aparece ningn modificador delante del miembro de la clase). Inicializacin: Java garantiza que un constructor ser invocado cuando se cree un objeto (con el operador new). Atributos y mtodos estticos: Un atributo afectado por el modificador (de funcionalidad) static se convierte en un atributo de clase, es decir, todos los objetos creados de la clase compartirn la misma copia en memoria del atributo esttico (en lugar de haber uno por objeto). Los mtodos estticos tambin son de clase, por lo que podrn ser llamados antes de que cualquier objeto sea creado. Un mtodo esttico tendr acceso slo a atributos estticos (a menos que se cree un objeto de la misma, como ocurre a menudo en el mtodo main(String[] args) que es esttico). Sobrecarga: La sobrecarga de Java (como en muchos otros lenguajes) se refiere a la posibilidad de tener el mismo mtodo con diferentes perfiles: nmero y tipo de parmetros. El recolector de basuras y el mtodo finalize: Dado que Java tiene un recolector de basura, no ser necesario liberar memoria explcitamente. Sin embargo, ocurre a menudo que los objetos hacen referencia a otros recursos, que ser necesario liberar cuando el objeto es eliminado por el recolector de basuras, y ste no est diseado para ocuparse de esta labor. Esta es la razn de la existencia del mtodo finalize que realiza este tipo de tareas. El mtodo main: Las clases llamadas de aplicacin en Java son aqullas que cuentan entre sus mtodos con un main. El perfil de dicho mtodo debe ser: public static void main(String[] args). Como puede verse, a travs de la interface del entorno del sistema operativo pueden pasrseles argumentos a la aplicacin que ser tomados como las componentes de un array de cadenas (String en Java). El mtodo toString: Una clase puede tener un mtodo toString() que ser invocado cuando quiera imprimirse el contenido de un objeto de la clase (con el mtodo System.out.println(objeto)). 4.1.1. Herencia Vamos a extender la clase Pt para introducirnos en cmo est implementado el mecanismo de herencia en Java:class ColorPt extends Pt{ private int color; ColorPt(int xv, int cv){ super(xv); //Llama al constructor de la clase padre color = cv; } //inicializa el color public int getColor(){return color;} protected void setColor(int cv){color=cv;}

}

La primera lnea de cdigo declara que la clase ColorPt tiene a la clase Pt como su clase padre. ColorPt hereda todos los miembros pblicos, protegidos y privados de la clase Pt. ColorPt es tratada como un subtipo de la clase padre. Observar tambin la manera en que se llama en el constructor de ColorPt al constructor de la clase padre con super. A diferencia de C++,