Documentos de Académico
Documentos de Profesional
Documentos de Cultura
INTRODUCCIN. La explosin informativa que se percibe actualmente (entre cuyas causas destacan la incidencia de la informacin en el desarrollo de la tecnologa e investigacin y que la sociedad demanda y maneja gran cantidad de informacin) es un hecho que hace difcil discernir la informacin conveniente o beneficiosa, de la que supone contaminacin o perjudicial, que a veces hace que se pueda decir que "no se distinga el rbol de entre el bosque". La tasa de crecimiento, hace necesario que el tratamiento de la informacin, se lleve a cabo de forma automtica. Como origen y causa de ste crecimiento exponencial de la informacin, aparece paradjicamente la solucin, la informtica, definida como el tratamiento de la informacin de forma automatizada. Hablar de informtica es aplicar las caractersticas del mtodo cientfico en resumen Problema mtodo y junto a esto la solucin. La informtica, tan verstil y polimrfica comenz a aplicarse a diferentes campos, empezando con el uso de computadores en primer lugar en el mbito militar, ocupando entonces gran espacio y consumiendo mucha energa, a travs de las sucesivas generaciones, en base a los adelantos de la ciencia, fueron reduciendo su tamao y consumo, hacindose asequible a cualquier tipo de actividad, habindose extendido en la actualidad al mundo econmico, empresarial y personal, siendo imprescindibles en la oficina para tener una eficaz gestin de la empresa. Objetivos. Adentrar al estudiante en conocimientos bsicos en lo referente a su carrera. Familiarizarse con los conceptos bsicos de informtica. Aprender a razonar de forma cientfica y tener una visin crtica y escptica ante situaciones reales.
EMISOR
MEDIO
RECEPTOR
Elementos de un sistema de comunicacin La transmisin de informacin entre el ser humano y la computadora puede hacerse de muchas maneras: Mediante caracteres alfanumricos (letras {a, b, , z} y nmeros {0, 1, , 9}). Por ejemplo los introducidos al computador mediante un teclado. Mediante sonidos como los introducidos al computador a travs de un micrfono, o que salen del computador por los altavoces. Mediante videos: como las imgenes obtenidas con una cmara de video. Mediante graficas e imgenes: por ejemplo una imagen introducida por un escner, o fotografas descargadas desde una cmara digital. En general, cualquier tipo de dato enviado por un perifrico del computador capaz de tomar datos de cualquier tipo y enviarlo al computador, o a la impresora.
1.4 Las generaciones de computadores La informtica se puede considerar como "tratamiento automatizado de la informacin" y la primera persona que construy una mquina (que todava no era un computador) con esta finalidad fue Herman Hollerit (1860-1929). En 1886, cuando trabajaba para la oficina del censo en EE.UU. se percat de que el procesamiento de los datos del censo del ao 1880, no se haba terminado en el momento de hacer el de 1890. Para resolver el problema dise una tarjeta que se deba perforar con los datos de cada uno de los encuestados. Estas fichas se introducan en una lectora que detectaba las perforaciones mediante un bao de mercurio (Hg), que al introducirse por los agujeros provocaba contactos elctricos. Finalmente los datos se registraban en una tabuladora. Con ello se multiplic por 100 la velocidad de proceso, 200 fichas por minuto. Hollerit fund su propia empresa, la Tabuling Machine Co. (1896) posteriormente convertida en la Computing Tabulating Recording (1911), tras pasar a manos de Thomas Watson (1874-1956) se denomin en 1924 International Bussiness Machines (IBM).
Otra gran empresa, Unisys, tiene su remoto origen en esta poca. Al dejar Hollerit la Oficina del Censo, lo sustituy James Powers, quien fund en 1911 la Powers Accounting Machine Co., que pas a formar parte en 1927 de la Remington-Rand Corporation. Esta empresa aos ms tarde construy los primeros computadores Univac. Hasta 1950 las empresas fundadas por Hollerit y Powers se dedicaron a la fabricacin de tabuladoras para la gestin de grandes empresas y organismos oficiales. La primera tabuladora lleg a Espaa en 1925 y se instal en la entonces denominada Compaa Telefnica Nacional de Espaa (actualmente Telefnica de Espaa S.A.). En 1926 se instal otra en el ayuntamiento de Barcelona. A finales de los aos 1950 haba unas 70 en toda Espaa.
Computadores de tercera generacin La principal caracterstica de esta generacin fue el uso del circuito integrado, que se incorpor a mediados de los aos 1960. Destaca la familia IBM 360 en cuyo desarrollo invirti 5000 millones de dlares de aquella poca (1964) y sobre todo la IBM 370 (1970), el producto ms famoso de esta generacin. Sperry Rand, en 1965 introdujo la famosa serie 1100. Durante esta poca surgieron la multiprogramacin y el tiempo compartido. Tambin tuvo lugar la denominada "crisis del software" Se intent la creacin de lenguajes universales, el PL/1
escalas de ampliacin.
En 1971 apareci el PET 2001 de Commodore, empresa absorbida por la holandesa Tulip muy conocida por su marca Conceptronics (y vuelta a vender en 2005 a Yeahronimo Media Ventures que quebr) y actualmente propiedad de Commodore Holdings Corporation, el TRS 80 de Radio Shack y el Apple II, fabricado en un garaje por dos jvenes norteamericanos: Steven Jobs (1955-) y Stephen Wozniak (1950-). A partir de 1980 se produce una eclosin de marcas. Destaca el Sinclair ZX80, precedente del 9
EE.UU.: Proyectos DARPA y MCC Unin Europea: Proyecto Sprit Reino Unido: Proyecto Alvey Japn: Proyecto ICOT
1.5. TIPOS DE COMPUTADORES Los ordenadores se pueden clasificar de acuerdo al Tipo de Datos y a la Capacidad de procesamiento. Segn el tipo de datos: Digitales: Dispositivos de clculo que procesan datos concretos, trabajan directamente contando nmeros (digitales) que representa cifras y letras y otros smbolos especiales.
10
Analgicas: O analticas, no calculan concretamente nmeros, en cambio lo hacen con variables que estn medidas en una escala y son registradas con un determinado grado de precisin. (no tan exactas como digitales) Hbridas: Las caractersticas deseables de las mquinas analgicas y digitales son combinadas algunas veces para crear este tipo de sistemas de cmputo.
Segn la capacidad de procesamiento: Microcomputadoras: Son las computadoras ms pequeas, menos costosas y ms populares en el mercado. Usa un solo procesador y consigue cubrir la gama ms baja. Hay dos tipos: Ordenador Personal PC: Fcil de usar y con grandes prestaciones. Tienen un puesto de trabajo. Estacin de Trabajo: PC conectado a travs de una red a una computadora mayor. Minicomputadoras: Diseadas para tareas especficas como el manejo de la comunicacin de datos, procesamiento de palabras y aplicaciones de multiusuarios. Mainframes: Realizan millones de operaciones por segundo y soportan un gran nmero de estaciones de trabajo. Son usadas en universidades, hospitales, etc. Supercomputadoras: son las ms rpidas y costosas, tienen muchos procesadores que trabajan en paralelo y pueden realizar billones de operaciones por segundo, lo que tomara semanas o meses en un PC.
11
Instrucciones que forman el programa Los datos con los que debe operar ese programa
Uno de los aspectos ms importantes relacionado con la informacin, es cmo representarla. Normalmente se le da al computador en la forma usual escrita que utilizan los humanos, es decir, con ayuda de un alfabeto o conjunto de smbolos, los caracteres. Los caracteres que se utilizan para la representacin externa son:
Numricos: Constituidos por las diez dgitos en el sistema decimal Alfabticos: Letras maysculas y minsculas Especiales: Son smbolos no incluidos en los grupos anteriores, como: ), (, *, /, +, -, [, ]...
Al conjunto de los dos primeros grupos se le denominan caracteres alfanumricos. Veremos cmo estos caracteres usados en la representacin externa son representables en los computadores. Este paso de una representacin a otra se denomina codificacin y el proceso inverso decodificacin. Por lo tanto hay dos niveles en la representacin de la informacin
Nivel de representacin externa: usada por las personas e inadecuada para el computador Nivel de representacin interna: adecuada al computador y no inteligible directamente por el ser humano.
Las informaciones ms complejas se reducirn a un conjunto de informaciones elementales por tcnicas de codificacin. Los elementos bsicos que constituyen un computador son de naturaleza binaria, ya que slo pueden adoptar dos valores, 0 y 1 (corresponden a dos niveles de tensin, dos valores de corriente, dos situaciones de una lmpara... ). Al tener que traducir toda la informacin
12
Estos cdigos de transformacin se denominan cdigos entrada/salida (E/S) o externos y se pueden definir de forma arbitraria. Las operaciones aritmticas con datos numricos se suelen realizar en una representacin ms adecuada para este objetivo que la del cdigo de E/S. Por ello en el propio computador se efecta una transformacin entre cdigos binarios, obtenindose una representacin fundamentada en el sistema de numeracin en base dos, que al ser una representacin numrica posicional es muy apta para realizar operaciones aritmticas.
2.2. Cdigos de entrada/salida. Los cdigos de E/S o externos son cdigos que asocian a cada carcter una combinacin de bit. En otras palabras, un cdigo de E/S es una correspondencia entre los conjuntos: A = {0, 1,...9, A, B,...Z, a, b,...z, *, +, /...} Y B = {0, 1}n Si se usa un nmero fijo, n, de bit para codificar los smbolos de A, el valor mnimo de n depender del nmero m de elementos de A. As:
Con 2 bit (n=2) podemos hacer 4 combinaciones distintas y se pueden codificar hasta 4 smbolos (m=4) distintos Con 3 bit (n=3) podemos hacer 8 combinaciones distintas y se pueden codificar hasta 8 smbolos (m=8) distintos Con 4 bit (n=4) podemos realizar 16 combinaciones dise pueden codificar hasta 16 smbolos (m=16) distintos .... Con n bit pueden codificarse m = 2n smbolos distintos.
Para codificar m smbolos distintos necesitamos n bit, siendo, n = log2 m = 3.32 * log m Es decir, n debe ser el menor entero que verifique la relacin anterior. Ejemplo: Para codificar las 10 cifras decimales (0, 1,...,9) se necesitarn: n = 3.32 * log (m) = 3.32 * log (10) = 3.32 bit es decir 4 bit (ya que con 3 slo podremos codificar 8 smbolos).
13
Dos codificaciones posibles son las siguientes: Smbolos 0 1 2 3 4 5 6 7 8 Cdigo 1 0000 1000 0100 1100 0010 1010 0110 1110 0001 Cdigo 2 0000 0001 1001 1000 0101 0100 1100 1101 0011
9 1001 0010 Pueden hacerse codificaciones con ms bit de los necesarios; es decir, podramos establecer cdigos de E/S de forma totalmente aleatoria. Obviamente existen cdigos normalizados que suelen ser utilizados por los constructores de computadores, son conocidos como:
BCD DE INTERCAMBIO NORMALIZADO Usualmente este cdigo utiliza 6 bit, con lo que se pueden representar, m = 2 6 = 64 caracteres. A veces se aade a su izquierda un bit adicional para verificar posibles errores en la transmisin del cdigo (tema que se ver ms adelante) de forma que el carcter queda representado por n = 7 bit. bit de verificacin 6 5 4 3 2 1 0
Los bit 4, 5 son conocidos como bit de zona. Los bit de zona indican el tipo de carcter representado. Ejemplo: 00 para los numricos. Los bit 0, 1, 2, 3 son conocidos como bit de posicin, que coinciden para los caracteres numricos con la representacin en binario natural y para el 0 con la representacin del 10.
CODIGO EBCDIC (Extended Binary Coded Decimal Interchange). Utiliza n = 8 para representar cada carcter, pudiendo codificar hasta m = 2 8 = 256 smbolos distintos.
CODIGO ASCII (American Standard Code for Information Interchange) Utiliza 7 bit y es de los ms utilizados. Normalmente se incluye un octavo bit para detectar
14
En el sistema de numeracin decimal (base 10), que habitualmente se utiliza, b = 10 y el alfabeto por tanto, est constituido por 10 smbolos: {0, 1, 2..., 9}
Por ejemplo, el nmero 3278.52 puede obtenerse como suma de: 3000 200 70 8 0.5 0.02 3278.52
por tanto se verifica que: 3278.52 = 3 * 103 + 2 * 102 + 7 * 101 + 8 * 100 + 5 * 10-1 + 2 * 10-2
15
Cada posicin, por tanto, tiene un peso: Posicin 0 Peso b0 Posicin 1 Peso b1 Posicin 2 Peso b2 Posicin 3 Peso b3 .... Posicin -1 Peso b-1 Posicin -2 Peso b-2 ..... Generalizando se tiene que la representacin de un nmero en una base b: N = ...n4 n3 n2 n1 n0 n-1 n-2 ... es una forma abreviada de expresar su valor, que es: N = n4 b4 + n3 b3 + .... + n-1 b-1 + n-2 b-2
Ejemplo en base 8:
b = 8. Los smbolos que se usan son: {0, 1, 2, 3, 4, 5, 6, 7} El valor decimal del nmero octal 175.37 ser: 175.37)8 = 1*82 + 7*81 + 5*80 + 3*8-1 + 7*8-2 = 125.31)10 2.3.2 Sistema de numeracin en base dos. El sistema de numeracin en base dos, fue introducido por Gottfried Wilhelm Leibniz (16461716) en el siglo XVII, siendo el ms adecuado para usar en las mquinas electrnicas, debido a que utilizan esencialmente sistemas de dos estados, encendido y apagado. En el sistema binario los datos se representan en un sistema que slo admite dos estados, 0 y 1. Las operaciones aritmticas se suelen realizar usando una representacin de datos y resultados en binario natural. A) Definicin del sistema binario. En el sistema de numeracin binario b=2 y el conjunto de smbolos usados es: {0, 1} Una muestra de los nmeros enteros binarios que se pueden formar con 3 bit y que corresponden a las cifras decimales {0, ...,7} es: American National Standards InstituteAmerican National Standards Institute Binario Decimal 000 0
16
1 2 3 4 5 6 7
B) Transformaciones entre bases binaria y decimal. Se puede transformar un nmero binario a decimal sin ms que usar la expresin vista anteriormente: .n4 n3 n2 n1 n0 n-1 n-2...)2 = ...n4 24 + n3 23 + n2 22 + n1 21 + n0 20+ n-1 2-1 + = N)10 Ejemplo: Transformar a decimal los siguientes nmeros binarios: 110100)2 = 1*25 + 1*24 + 0*23 + 1*22 + 0*21 + 0*20 = 25 + 24 + 22 = 52)10 0.10100)2 = 0*20 + 1*2-1 + 0*2-2 + 1*2-3 + 0*2-4 + 0*2-5 = 2-1 + 2-3 = 0.625)10 10100.001)2 = 1*24 + 1*22 + 1*2-3 = 20.125)10
Para transformar un nmero decimal a binario: a) La parte entera del nuevo nmero (binario) se obtiene efectuando divisiones enteras (sin obtener decimales) por dos, de la parte entera del nmero decimal de partida y de los cocientes que sucesivamente se vayan obteniendo. Los restos de estas divisiones y el ltimo cociente (que sern siempre ceros y unos) son las cifras binarias. El ltimo cociente ser el bit ms significativo y el primer resto el bit menos significativo (ms a la derecha). Ejemplo: 26)10 es en binario: 26 | 2_ 0 13 | 2_ 1 6 | 2_ 0 3 |2_ 1 1 26)10 = 11010)2
17
0.1875)10 = 0.0011)2 Ejemplo: Transformar a binario el nmero decimal 74.423 a) Parte entera: 74 | 2_ 0 37 | 2__ 1 18 | 2__ 0 9 | 2_ 1 4 | 2__ 0 2 | 2__ 0 1
b) Parte fraccionaria: 0.423 *2 -------0.846 Es decir: 74.423)10 = 1001010.01101...)2 Ejercicios a) Utilizando el mtodo del cociente, expresar en bases 2, los nmeros 33, 100 y 1023. b) Expresar en decimal los nmeros 11112, 11113, 11115 y CAFE16. c) Expresar 178 en base 5 y BABA13 en base 6. d) Pasar (1001 0110 1010 0101)2 y (1111 1011 0010 1101 0000 0110 0111)2 a base 4, 8 y 16 agrupando bits1. C) Operaciones aritmticas y lgicas con variables binarias Una variable binaria puede representar, una cifra de un nmero en el sistema de numeracin en base dos. Las operaciones aritmticas bsicas con variables binarias naturales son la suma, resta, 0.846 0.692 0.384 0.768 *2 *2 *2 *2 --------- --------- --------- --------1.692 1.384 0.768 1.536
18
Producto aritmtico A 0 0 1 1 0 1 0 1
Ejemplo:
Las operaciones lgicas o booleanas con variables binarias son la suma lgica (+), llamada tambin funcin OR, el producto lgico (llamado tambin AND y la complementacin (-) o negacin o NOT. Las tablas son las siguientes: Suma lgica (OR) A B A+B 0 0 1 1 0 1 0 1 0 1 1 1 Producto lgico (AND) A B A*B 0 0 1 1 0 1 0 1 0 0 0 1
Complementacin (NOT) A -A 0 1 1 0
Es frecuente tambin la utilizacin de las operaciones combinadas como NAND (AND y NOT)
19
D) Representacin en complementos Para representar un nmero negativo se puede utilizar el complemento de ese nmero a la base. De esta forma las sumas y restas quedan reducidas a sumas. Este sistema de representacin es de sumo inters en el caso de los computadores ya que al usarlo se reduce la complejidad de los circuitos. El complemento a la base de un nmero, es el nmero que resulta de restar a cada una de las cifras del nmero N a la base menos uno del sistema que se est utilizando y posteriormente sumar uno a la diferencia obtenida. Ejemplo:
En base 10: Base menos uno del sistema: 9 Representar el nmero 63 en complemento a la base. 99 -63 -----36 36 +1 -----37
N = 63
En base 2: Base menos uno: 1 Complemento a 2 del nmero 10010 es 01110 11111 01101 - 10010 + 1 ------------------------01101 01110 Complemento a 2 del nmero 101010 es 010110 111111 101010 ----------010101 010101 + 1 -----------010110
20
Observamos que para transformar un nmero binario N a complemento a 2 basta con cambiar los 0 por 1 y los 1 por 0 de N y sumar 1 al resultado. Veremos ahora que la utilidad de esta representacin es para convertir la realizacin de las restas a sumas, lo cual simplifica el diseo del procesador. Ejemplo: Base 10 Supongamos que se ha de realizar la siguiente operacin: 77 - 63 Se puede hacer de dos formas diferentes: a) Directamente: 77 - 63 = 14 b) Utilizando el complemento a 10 del substraendo:
Es decir, para restar basta con sumar el minuendo con el complemento a la base del substraendo y sin considerar el acarreo. Ejemplo: Base 2
11001 - 10010 Se puede hacer de dos formas: a) Directamente: 11001 -10010 -------00111 b) Usando el complemento a 2 del substraendo: El substraendo es 10010. Su complemento a 2 se obtiene cambiando 0 por 1 y 1 por 0. 01101
21
11001 +01110 --------100111 - (No se considera) Ejercicios: E) Cdigos intermedios Los cdigos intermedios se basan en la facilidad de transformar un nmero en base 2 a otra base que sea potencia de 2 y viceversa. Usualmente se usan como cdigos intermedios los sistemas de numeracin en base 8 y en base 16 (conocidos como octal y hexadecimal). a) OCTAL. En la base {0, 1,..., 7} octal, b = 8 y el conjunto de smbolos utilizados es:
Para convertir un nmero octal a binario slo debemos sustituir cada dgito octal por su equivalente binario. Equivalencias OCTAL 0 1 2 3 4 5 6 7 Ejemplo: 6 se sustituye por 110 2 se sustituye por 010 537.24)8 = 101 011 111 . 010 100)2 que equivale segn la tabla, a: 5 3 7 . 2 4 La conversin de binario a octal se realiza juntando en grupos de tres dgitos binarios, BINARIO 000 001 010 011 100 101 110 111
22
b) HEXADECIMAL Para representar un nmero en base hexadecimal (b = 16) es necesario disponer de un conjunto o alfabeto de 16 smbolos. Se suele usar el conjunto: {0, 1, 2,..., 9, A, B, C, D, E, F} Podemos hacer las conversiones de binario a hexadecimal y viceversa en forma anloga al sistema octal. Ahora bien, aqu utilizaremos grupos de 4 bit en lugar de grupos de 3 bit. Equivalencias HEX BINARIO DECIMAL 0 0000 0
23
1 2 3 4 5 6 7 8 9 A B C D E F Ejemplo:
0001 0010 0110 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Pasar el nmero binario 010010111011111.1011101)2 a hexadecimal. 010 0101 1101 1111 . 1011 101)2 = 25DF.BA)16
Ejemplo: Pasar el nmero 1ABC701.C4)16 a binario: 0001 1010 1011 1100 0111 0000 0001 . 1100 0100 )2 1 A B C 7 0 1 C 4 El nmero binario resultante es: 0001101010111100011100000001.11000100)2
Para transformar un nmero hexadecimal a decimal aplicamos la expresin siguiente con b=16. N)16 =...n4 b4 + n3 b3 + .... + n-1 b-1 + n-2 b-2...)10 Ejemplo: Pasar el nmero hexadecimal A798C.1E)16 a decimal. 10*164 + 7*163 + 9*162 + 8*161 + 12*160 + 1*16-1 + 14*16-2 = = 686476.1171)10
Para pasar un nmero de decimal a hexadecimal se hace de forma anloga a los casos binario y octal: la parte entera se divide por 16, as como los cocientes enteros sucesivos, y la parte fraccionaria se multiplica por 16, as como las partes fraccionarias de los productos sucesivos. Ejemplo:
24
El nmero 4573.79)10 se corresponde en hexadecimal: 4573 |16 137 093 285 |16 13 125 13 17 |16 1 1 0.79 0.64 0.24 * 16 * 16 * 16 ------ ----- - ----474 384 144 +79 +64 +24 -----------12.64 10.24 3.84 C A 3 El nmero en hexadecimal es 11DD.CA3)16
2.4. Representacin de la informacin En la memoria y el procesador central la informacin se transmite y procesa en unidades denominadas palabras. La organizacin de las palabras depende del computador, siendo usuales las longitudes: 8, 16, 32, 36, 60 y 64 bit, aunque hay hasta de 512 bit. La memoria principal se encuentra organizada en palabras, cada una de las cuales tiene asignada una direccin. Los intercambios de informacin entre el procesador y la memoria se hacen en unidades denominadas palabras y no en caracteres (octetos) o en bit. Normalmente para aprovechar la memoria, la longitud de la palabra debe ser un mltiplo entero del nmero de bit usados para representar un carcter. Los datos se introducen inicialmente en el computador segn un cdigo de entrada/salida (que ya hemos visto), tanto si stos son de tipo alfabtico como de tipo numrico. Los datos de tipo numrico se utilizan normalmente para operar aritmticamente con ellos, y la representacin simblica obtenida con el cdigo de E/S no resulta adecuada para realizar este tipo de operaciones. Resulta ms adecuado operar en un sistema de numeracin que en un cdigo de E/S. Por los motivos anteriores, y teniendo en cuenta que la ALU opera con palabras, se realiza una conversin de notaciones pasando de la representacin simblica de E/S a otra notacin que denominamos representacin interna. TIPOS DE INFORMACION. En un sistema de procesamiento de la informacin es necesaria la codificacin de tres clases de informacin:
1 Informacin numrica: 25
A) Datos de tipo complejo Los datos de tipo complejo se representan por parejas de nmeros reales almacenados en posiciones consecutivas de memoria. Es decir, pueden considerarse como un caso particular de nmeros reales. B) Datos de tipo lgico Representan un valor del Algebra de Boole binaria, es decir, 0 (falso) 1 (verdad). C) Representacin en punto fijo El nombre de esta representacin surge al considerar el punto fraccional, situado en una posicin fija. El punto fijo es utilizado para la representacin de nmeros enteros, suponindose el punto fraccional ubicado a la derecha de los bit. Cualquiera de los sistemas de representacin de enteros es una representacin de punto fijo. Tambien, se puede utilizar la representacin en punto fijo para representar fracciones binarias escalando los nmeros, de modo que el punto fraccional quede ubicado implcitamente en otra posicin entre los bit, y en el caso lmite a la izquierda de todos ellos describiendo un nmero fraccional binario puro (menor a 1). a) El signo se representa en el bit situado ms a la izquierda de la palabra. Este bit es 0 si el nmero es positivo 1 si el nmero es negativo. b) El valor absoluto: b1) Nmeros positivos: Se almacenan directamente el nmero en binario natural. b2) Nmeros negativos: Dependiendo del computador se almacena el complemento a 2 del nmero binario natural o la magnitud del nmero en binario natural.
Ejemplo de representacin interna de datos de tipo entero en un computador de palabras de 4 bit: DECIMAL 7 6 5 4 3 SIGNO MAGNITUD 0111 0110 0101 0100 0011 Y COMPLEMENTO A2 0111 0110 0101 0100 0011
26
2 1 +0 -0 -1 -2 -3 -4 -5 -6 -7 -8
0010 0001 0000 1000 1001 1010 1011 1100 1101 1110 1111 -----
0010 0001 0000 ---1111 1110 1101 1100 1011 1010 1001 1000
Ejercicios Realizar las siguientes sumas de precisi_on _ja, sin convertir a decimal. Indicar en cada caso si hubo acarreo. 1000012 1000012 011112 999916 F0F0 16 + 0111102 + 0111112 + 011112 + 111116 + F0CA16
D) Representacin en punto flotante El punto flotante surge de la necesidad de representar nmeros reales y enteros con un rango de representacin mayor que el que ofrece la representacin en punto fijo y posibilitar al computador el tratamiento de nmeros muy grandes y muy pequeos. Estas ventajas que ofrece el punto flotante traen como contraprestacin una disminucin en la precisin de los nmeros representados. En su representacin se utiliza la notacin cientfica o exponencial matemtica en la que una cantidad se representa de la siguiente forma: n = mantisa * base de exponenciacin exponente Un nmero en esta notacin tiene infinitas representaciones, de las que se toma como estndar la denominada normalizada, que consiste en que la mantisa no tiene parte entera y el primer dgito o cifra a la derecha del punto decimal es significativo (distinto de 0), salvo en la representacin del nmero 0. Ejemplo (^ significa elevado a): 835.4 = 8354*10^-1 = 835.4 * 10^0 = 83.54 * 10^1 = 8.354 * 10^2 = .8354 * 10^3 Representacin del nmero decimal 835.4 con base de exponenciacin 10. Siendo esta ltima expresin la que corresponde al nmero normalizado. En este sistema de codificacin, se dividen los bit disponibles en la palabra o doble palabra del computador entre la mantisa y el exponente, teniendo una base de exponenciacin determinada (2 o potencia de 2). Normalmente la definicin de la coma flotante sigue las siguientes reglas:
27
El exponente se representa en uno de los siguientes sistemas de codificacin: mdulo y signo o exceso a 2 n-1, siendo siempre un nmero entero. En este sistema de codificacin el exponente tambin recibe el nombre de caracterstica. La mantisa es un nmero real con el punto decimal implcito a la izquierda de sus bit, representada normalmente en uno de los siguientes sistemas de codificacin: mdulo y signo, complemento a 1 o complemento a 2. La base de exponenciacin es una potencia de 2 determinada por el fabricante del equipo (2, 8 o 16).
Existen muchas formas de representacin en punto flotante, variando la longitud de la palabra del computador, la base de la exponenciacin, el nmero de bit reservados para la mantisa y para el exponente, el sistema utilizado para representar la mantisa y el exponente, etc.. El punto flotante se define particularmente en cada caso. Las definiciones ms comunes son las siguientes: a) para simple precisin (32 bit) signo exponente mantisa 31 30 23 22 0
El rango de representacin en la coma flotante debe ser analizado teniendo en cuenta los mximos y mnimos valores representables tanto con signo positivo como negativo: mnimo nmero negativo = -(mantisa mxima) * basemximo exponente mximo nmero negativo = -(mantisa mnima) * base-maximo exponente mnimo nmero positivo = mantisa mnima * base-mximo exponente mximo nmero positivo = mantisa mxima * basemximo exponente Conviene observar que existen cuatro zonas de nmeros que no pueden ser representados mediante un determinado formato de coma flotante. Estas zonas estn ubicadas cercanas al 0, tanto para valores positivos como negativos (subdesbordamiento positivo o negativo), como para valores grandes (positivos) o pequeos(negativos) que exceden el rango de representacin. Ejemplo Un computador utiliza el siguiente formato para registrar nmeros en punto flotante:
los bit del 23 al 30 se utilizan para representar el exponente en exceso a 128 (2 7) los bit del 0 al 22 se utilizan para representar la mantisa normalizada para el sistema Mdulo y signo el bit 31 se utiliza para representar el signo de la mantisa (0 para el +) la base de exponenciacin es 2
28
12 en notacin normalizada de base 2 es 0.75 * 24 el exponente de valor 4 en exceso a 128 es: 10000100 la mantisa 0.75 en binario es 0.11
signo (+) exponente 4 mantisa 0.75 Representar en el formato definido el 12. En este caso la notacin normalizada solo sufre cambio en el signo de la mantisa (-0.75 * 24), la expresin quedar ntonces: 1 10000100 11000000000000000000000
signo (-) exponente 4 mantisa 0.75 El rango de representacin de este formato en coma flotante ser: mnimo negativo = -(1 - 223)*2127 = -2127 = 1.701411834605 * 1038 mximo negativo = -0.5 * 2-128 = -2-129 = -1.469367938528 * 10-39 mnimo positivo = 0.5 * 2-128 = 2-129 = 1.469367938528 * 10-39 mximo positivo = (1 - 223)*2127 = 2127 = 1.701411834605 * 1038 E) Datos de tipo carcter Los datos de tipo carcter, representan sencillamente cadenas de caracteres representados segn el cdigo de E/S. A las representaciones de los caracteres se les imponen las siguientes condiciones:
Deben englobar las 26 letras del alfabeto latino, los 10 dgitos y un cierto nmero de caracteres grficos (operadores) y signos de puntuacin. Deben permitir aadir nuevos caracteres especficos. Deben incluir un sistema de redundancia que permita la deteccin de errores en el curso de la transmisin. Los subconjuntos de letras y nmeros deben estar ordenados y ser coherentes. Estarn en dos grupos diferentes y ordenados.
29
5.
Nota para los dos problemas 4 y 5: Expresar el resultado en 6 bits dejando ver los pasos seguidos al operar e indicando, en su caso, si hubo overflow y si se tiene en cuenta el acarreo.
30
Diversos perifricos de un
Haciendo un smil entre un ordenador y una persona, encontramos que en ambos hay un centro neurlgico y unos medios de comunicacin de ese centro con el exterior, es decir, unas vas de entrada, de salida y de almacenamiento. CPU: En una persona el centro neurlgico sera el cerebro, mientras que en el ordenador ser la CPU (del ingls Central Process Unit o UCP: unidad central de procesamiento). Es la parte del ordenador que se encarga de controlar, supervisar y realizar todas las acciones. En la CPU se distinguen: Unidad de Control: Su funcin es dirigir al resto de las unidades e interpretar las instrucciones recibidas. Unidad Aritmtico Lgica o ALU: Realiza operaciones matemticas y lgicas segn los datos o instrucciones recibidas de los programas. Suma, resta, multiplica, niega sentencias, realiza comparaciones, etc. Memoria Principal (o Central): Almacena la informacin. Contiene los datos y programas que van a ser ejecutados. La capacidad de memoria se mide en mltiplos de Bytes.
31
3.2 Perifricos De Un Computador Definicin. Se denominan perifricos tanto a los dispositivos a travs de los cuales el computador se comunica con el entorno exterior, como a los sistemas que almacenan la informacin, sirviendo de memoria auxiliar a la memoria principal, independientemente de que se encuentre en el exterior o interior de la carcasa. La memoria masiva o auxiliar trata de suplir las deficiencias de la memoria central (RAM): baja capacidad y que la informacin almacenada se pierde al desconectar la alimentacin elctrica. En efecto, los dispositivos de memoria masiva auxiliar (actualmente soportes magnticos, pticos y de electrnica de estado slido) tienen mucha ms capacidad que la memoria principal, y en ellos se puede grabar la informacin durante mucho tiempo. Segn la definicin de perifrico vista previamente, estn constituidos por unidades de entrada, unidades de salida y unidades de memoria masiva auxiliar. Estas ltimas tambin pueden considerarse como de E/S, ya que el computador central puede escribir (dar salida) sobre ellas, y la informacin escrita puede ser leda, es decir, ser proporcionada como entrada. Ahora bien, la informacin grabada en estos soportes no es directamente inteligible para el usuario, esto es, no puede haber una intercomunicacin directa usuario-computador como la que se da a travs de un teclado/pantalla.
El computador es una mquina que no tendra sentido si no se comunicase con el exterior, es decir, si careciese de perifricos. Por lo que debe disponer de:
Unidad(es) de entrada, a travs de la(s) cual(es) introducirle los programas que queramos que ejecute y los datos correspondientes. 32
Unidad(es) de salida, con la(s) que la computadora da los resultados de los programas. Memoria masiva o auxiliar, que facilite su funcionamiento y utilizacin.
Los dispositivos de entrada/salida (E/S) transforman la informacin externa en seales codificadas, permitiendo su transmisin, deteccin, interpretacin, procesamiento y almacenamiento de forma automtica. Los dispositivos de entrada transforman la informacin externa (instrucciones o datos tecleados) segn alguno de los cdigos de entrada/salida (E/S). As el computador recibe dicha informacin adecuadamente preparada (en binario). En un dispositivo de salida se efecta el proceso inverso, la informacin binaria que llega del computador se transforma de acuerdo con el cdigo de E/S en caracteres escritos inteligibles por el usuario. Hay que distinguir claramente entre perifricos de un computador y mquinas auxiliares de un determinado servicio informtico, las mquinas auxiliares no estn fsicamente conectadas al ordenador (su funcionamiento es autnomo) y sirven para preparar o ayudar en la confeccin o utilizacin de la informacin que se da a, o produce, el ordenador. Por ejemplo, al inicio de la informtica existan mquinas autnomas para perforar tarjetas, grabar cintas magnticas manualmente a travs de un teclado, separar el papel continuo producido por un programa a travs de la impresora, etc.
Tampoco hay que confundir perifrico con soporte de informacin. Por soporte de informacin se entiende aquellos medios fsicos sobre los que se almacena la informacin. Por unidades o dispositivos perifricos se entiende aquellos elementos encargados de transcribir la informacin al correspondiente soporte. Ejemplos: - Los disquetes y DVD-ROM son soporte de informacin, mientras que la unidad lectora o disquetera, es unidad perifrica. - El papel de impresora es soporte de informacin y la impresora unidad perifrica. Conexin de perifricos al computador Las unidades funcionales del computador, as como stas con los perifricos se comunican por grupos de pistas denominados buses. Hay de dos tipos, serie y paralelo. Los perifricos se interconectan al bus del sistema directamente o bien a travs de unos circuitos denominados interfaces. Hay una gran diversidad de perifricos con distintas caractersticas elctricas y velocidades de funcionamiento. Las interfaces son para adaptar las caractersticas de los perifricos a las del bus del sistema. Caractersticas generales de los perifricos Cada perifrico suele estar formado por dos partes diferenciadas en cuanto a su misin y funcionamiento: una parte mecnica y otra electrnica.
La parte mecnica est formada bsicamente por dispositivos electromecnicos (conmutadores manuales, motores, electroimanes, etc.) controlados por los elementos electrnicos. Esta parte determina la velocidad de funcionamiento. La parte electrnica gestiona el funcionamiento de los procesos.
Desde el computador se acta sobre los perifricos a iniciativa de las instrucciones de los
33
3.3. DISPOSITIVOS DE ENTRADA Los perifricos ms usuales son los siguientes: introducen informacin al ordenador (teclado).
Teclado Ratn (mouse) Joystick o palanca manual de control Lpiz ptico Lector ptico Lector de caracteres imanables Lector de bandas magnticas Lector de tarjetas chip o inteligentes (Smart Card) Lector de marcas Lector de caracteres manuscritos Lector de cdigos de barras Reconocedores de voz Sistemas biomtricos Digitalizador o tableta grfica Pantalla sensible al tacto Scanner o rastreador Sistemas de radiofrecuencia (RFID)
TECLADO Es un dispositivo anlogo al de una mquina de escribir, correspondiendo cada tecla a uno o varios caracteres, funciones u rdenes. Para seleccionar uno de los caracteres de una tecla puede ser necesario pulsar simultneamente dos o ms teclas. Al pulsar una tecla se cierra un conmutador que hay en el interior del teclado, esto hace que unos circuitos codificadores generen el cdigo de E/S correspondiente al carcter seleccionado, apareciendo ste en la pantalla si no es un carcter de control. Los teclados contienen los siguientes bloques de teclas:
34
Teclado principal: Contiene los caracteres alfabticos, numricos y especiales, como en una mquina de escribir convencional con alguno adicional. Hay teclados que tambin incluyen aqu caracteres grficos. Teclas de desplazamiento del cursor: Permiten mover el cursor en los cuatro sentidos, borrar un carcter o parte de una lnea. Teclado numrico: Es habitual en los teclados de computador que las teclas correspondientes a los caracteres numricos (cifras decimales), signos de operaciones bsicas (+, -, ...) y punto decimal estn repetidas para facilitar al usuario la introduccin de datos numricos. Teclas de funciones: Son teclas cuyas funciones son definibles por el usuario o mediante un programa.
Teclas de funciones locales: Controlan funciones propias del terminal, como impresin del contenido de imagen cuando el computador est conectada a una impresora.
RATN El ratn es un pequeo perifrico que inicialmente tenan una esfera que puede girar libremente, se acciona hacindola rodar sobre una superficie plana. Los modernos se basan en un sistema ptico de diodo o lser de infrarrojo en lugar de la bola. En el momento de activar el ratn, se asocia su posicin con la del cursor en la pantalla y si lo desplazamos sobre una superficie, el cursor seguir dichos movimientos. Actualmente es imprescindible en los entornos grficos, como KDE, Gnome y Windows. LPIZ OPTICO Fsicamente tiene la forma de una pluma o lpiz grueso, de uno de cuyos extremos sale un cable para unirlo al monitor. Contiene un pulsador, transmitindose informacin hacia el monitor slo en el caso de estar presionado. Al activar el lpiz ptico frente a un punto de la pantalla se obtienen las coordenadas del sitio donde apuntaba el lpiz.
JOYSTICK. (Palanca manual de control) La palanca manual de control (en ingls joystick) est constituida por un dispositivo con una palanca o mando mvil. El usuario puede actuar sobre el extremo de la palanca, y a cada posicin de ella le corresponde sobre la pantalla un punto. Dispone de un pulsador que debe ser presionado para que exista una interaccin entre el programa y la posicin de la palanca. La informacin que transmite es analgica. Su uso ha sido popularizado por los videojuegos y aplicaciones grficas. Y otras unidades que se debe considerar como: Lector de marcas Lector de caracteres magnticos
35
3.4. DISPOSITIVOS DE SALIDA Obtienen informacin al computador (pantalla). A continuacin se presentan algunos de estos dispositivos: SINTETIZADOR DE VOZ Las unidades sintetizadoras de voz son dispositivos que dan los resultados de un programa emitiendo sonidos (fonemas o palabras) similares al habla humana. Estos perifricos suelen incluir un microprocesador, memoria con programas y datos, un conversor D/A (digitalanalgico), un amplificador de audiofrecuencia y altavoz. La mayor parte de los sintetizadores de voz tienen memorizados digitalmente cada uno de los fonemas o palabras que son capaces de emitir. Los datos que recibe un sintetizador procedentes del computador corresponden a la identificacin de los fonemas o palabras a emitir. Una vez que se analiza el dato, se activa una rutina encargada de generar el sonido correspondiente. Los sonidos resultan "metlicos". Por lo general, estos sistemas incluyen programas que enriquecen las posibilidades de los mismos, como generar frases o combinaciones de palabras, incluso hay sistemas que traducen cantidades.
VISUALIZADORES ("DISPLAYS") Los visualizadores son pequeas unidades de salida que permiten al usuario leer una instruccin, un dato o un mensaje. Los caracteres se forman partiendo de estructuras en mdulos, cada uno de los cuales sirve para visualizar un carcter. Cada mdulo contiene una serie de segmentos, siendo los ms habituales de siete. Un carcter concreto se visualiza activando determinados segmentos, dependiendo de la forma del smbolo. El visualizador es el elemento de salida tpico de las calculadoras de bolsillo y de los relojes digitales. TRAZADOR DE GRAFICOS Los trazadores de grficos (plotters) son dispositivos de salida que realizan dibujos sobre papel. Tienen gran importancia ya que con ellos se obtienen directamente del computador planos, mapas, dibujos, grficos, esquemas e imgenes en general. El funcionamiento se controla desde programa. El usuario puede incluir instrucciones para realizar las representaciones que desee con sus datos. Los registradores grficos se fundamentan en el desplazamiento relativo de un cabezal con el elemento de escritura, con respecto al papel. Dependiendo del tipo de grfico se mover slo la
36
En los registradores de pluma el dibujo se realiza mediante un cabezal en el que se insertan plumas, bolgrafos o rotuladores. Cada elemento de escritura puede subirse o bajarse hasta entrar en contacto con el papel, todo ello controlado por programa. Los registradores electrostticos son impresoras electrostticas. El sistema de traccin de papel es similar al de una impresora convencional. El dibujo se realiza lnea a lnea. El elemento de escritura est constituido por una serie de agujas cuya densidad puede variar. Por lo que respecta a los de inyeccin, trabajan de forma anloga a una impresora de tinta, que se describen en el apartado correspondiente. MONITORES Hasta hace poco tiempo el tipo ms habitual de pantalla era la que vemos en los computadores de sobremesa, la de tubo de rayos catdicos (TRC), aunque cada vez se difunden ms las de cristal lquido, habituales en los equipos porttiles.
La imagen de una pantalla TRC se forma al incidir un haz deelectrones sobre la superficie interna de la pantalla que est recubierta de un material fosforescente, analogamente a como se forman las imagenes en un televisor. Un campo electromagntico desplaza el haz de electrones de izquierda a derecha y de arriba a abajo y, dependiendo de la intensidad con la que inciden los electrones en la pantalla as de brillante ser cada punto generado. La imagen, para ser visualizada durante un determinado tiempo debe ser repetida o refrescada peridicamente (al menos 25 veces por segundo). Estas pantallas se denominan pantallas de barrido. Una imagen de pantalla no es continua sino que se forma por multitud de puntos de imagen ("pixel"). La pantalla est dividida en celdas (mediante una rejilla metlica o si es tecnologa Trinitron mediante unos alambres), en cada una de las cuales puede ir un carcter. La celda est constituida por una matriz regular de puntos de imagen. Las pantallas se clasifican, segn la capacidad o no de mostrar colores, en:
Monocroma: Los colores usuales en una monocromtica son el blanco, mbar o verde. Color: El color de cada punto se obtiene con mezcla (RGB) de los colores rojo, verde y azul, pudindose programar la intensidad de cada color bsico.
De caracteres: Slo admiten caracteres. Grficas: Permiten trazados de lneas y curvas continuas.
37
Tamao: Se da en funcin de la longitud de la diagonal principal, y se tiene la mala costumbre de darla en pulgadas, que no es una unidad del Sistema Internacional de Unidades (SI). Las ms habituales son las de 431.8 mm (17"), aunque en muchos pases se estn utilizando superiores. Nmero de celdas o caracteres: Lo usual es una representacin de 24 filas por 80 columnas de caracteres. Resolucin: Es el nmero de puntos de imagen en pantalla. No depende del tamao de la pantalla. Usualmente se consideran bsicamente tres tipos de resolucin (hay resoluciones superiores):
# CGA 640*200 # VGA 640*480 # HGC 720*350 (Hercules) # SVGA(XGA) 1024*768 # SXGA 1280*1024 # UXGA 1600*1200 # WUXGA 1920*1200 # QXGA 2048*1536 IMPRESORAS Las impresoras son perifricos que escriben la informacin de salida sobre un soporte fsico. Su comportamiento inicialmente era muy similar al de las mquinas de escribir, pero actualmente son mucho ms sofisticadas, incluso algunas son fotocopiadoras o fax, conectadas con el computador. Junto a las pantallas, los dispositivos ms utilizados para poder ver en forma inteligible los resultados de un programa de computador. Las impresoras tienen dos partes diferenciadas: la parte mecnica (alimentacin y arrastre) y la parte electrnica. Las impresoras tradicionalmente utilizaban papel continuo, en cuyos mrgenes existen unos taladros. En este caso, el arrastre se efecta por un tractor que dispone de unos dientes metlicos que encajan en los taladros laterales del papel. Actualmente la mayora no necesitan papel continuo, efectundose el arrastre por friccin o presin, como en el caso de las mquinas de escribir o en las fotocopiadoras convencionales. Clasificacin y tipos de impresoras Existen diversos criterios para clasificar las impresoras.
38
Normales: Como las impresoras de lnea, de rueda y trmicas. Semicalidad. Como algunas impresoras matriciales. Calidad: Como las de margarita (obsoletas), tinta y lser.
Fundamento del sistema de impresin Hay impresoras que realizan la impresin por impacto de martillos o piezas mviles mecnicas, y otras sin impacto mecnico. El fundamento de las impresoras por impacto es similar al de las mquinas de escribir. Sobre la superficie de la lnea a imprimir en el papel se desliza una cinta entintada, y delante de sta pasa una pieza metlica donde est moldeado el juego de tipos de impresin. Cuando pasa el tipo a grabar sobre su posicin en el papel, se dispara un "martillo" que golpea la cinta contra el papel, quedando impreso en tinta sobre el papel el carcter en cuestin. En otras impresoras de impacto cada carcter se crea por el disparo de ciertas agujas metlicas que conforman el carcter con un conjunto de puntos. Las impresoras de impacto son muy ruidosas y tradicionalmente han sido las ms utilizadas. Entre ellas se encuentran las impresoras de rueda, bola, margarita, matriciales, cilindro y cadena. Las impresoras sin impacto forman los caracteres sin necesidad de golpes y utilizan otros principios fsicos para transferir las imagenes al papel. Son impresoras sin impacto las trmicas, de inyeccin de tinta, de sublimacin y las lser. PARAMETROS QUE CARACTERIZAN A UNA IMPRESORA Velocidad de escritura Normalmente la velocidad de impresin se da en las siguientes unidades:
o o o
Impresoras de caracteres: Caracteres por segundo (cps). Impresoras de lneas: Lneas por minuto (lpm). Impresoras de pginas: Pginas por minuto (ppm).
Caracteres por lnea Es el nmero mximo de caracteres que se pueden escribir en una lnea. Ancho del papel o longitud del carro Se suele dar en pulgadas. Densidad de lneas Se expresa normalmente en lneas por pulgada e indica el espaciado entre lneas. Tipos de letras Una misma impresora puede escribir con distintos tipos de letras. Las de agujas usualmente pueden escribir en tamao normal, comprimido y elongado. El cambio del tipo de letra se realiza por programa.
39
Color Es la posibilidad de imprimir en colores. Usualmente los colores se forman a partir de tres bsicos (como en los monitores en color), pero a partir del cian, magenta y amarillo. Resolucin Una gran parte de impresoras forman los caracteres por unin de puntos. La resolucin se suele dar en nmero de puntos por unidad de superficie 3.5. DISPOSITIVOS DE ALMACENAMIENTO Dispositivos de memoria secundaria: Sirven para guardar la informacin que no est siendo utilizada en el momento. Una caracterstica que distingue un soporte de almacenamiento de los de entrada o de salida (aparte de la posibilidad de realizar operaciones de entrada/salida indistintamente) es que en el soporte de almacenamiento los datos son legibles slo por la mquina y no lo son directamente por el hombre. Mientras los dispositivos de memoria permiten un acceso inmediato del programa a la informacin que contienen, los de almacenamiento guardan la informacin en un soporte que no permite el acceso inmediato desde el programa y se requiere un paso previo de lectura (o entrada) que recupera dicha informacin desde el almacenamiento y lo lleva a la memoria. Si la memoria de los ordenadores tuviera gran capacidad y no fuera voltil no seran precisos sistemas de almacenamientos externos. Si se han inventado distintos tipos de dispositivos de almacenamiento de los datos es por la imposibilidad de disponer de memoria con capacidad suficiente. Sacrificando la inmediatez del acceso se obtienen capacidades muchsimo mayores a precios muy inferiores y con tiempos de respuesta aceptables para cada tipo de aplicacin. Los soportes magnticos son el medio ms usual de almacenar la informacin. Entre la variedad existente, destacan: cinta, disco y disquete. Las principales caractersticas de estos soportes son:
Reutilizabilidad (salvo en los primitivos). Elevada capacidad de almacenamiento. No voltiles. Ms econmicos que la memoria central (RAM).
DISCOS MAGNETICOS Los discos magnticos son los sistemas de almacenamiento que en la actualidad tienen ms importancia, ya que constituyen el principal soporte utilizado como memoria masiva. A pesar de que son ms costosos que las cintas, son de acceso directo, y con ellos se consiguen tiempos medios de acceso mucho menores que con las cintas. Un disco est constituido por una superficie metlica o plstica recubierta por una capa de una sustancia magntica. Los datos se almacenan mediante pequeos cambios en la imanacin, en uno u otro sentido. El plato o disco puede ser de plstico flexible o rgido, en el primer caso tenemos disquetes o discos flexibles (en ingls floppy disk o diskettes) y en el segundo caso discos rgidos o duros. Tanto en los discos rgidos como en los flexibles la informacin se graba en
40
La lectura y escritura en la superficie del disco se hace mediante una cabeza. Esta suele ser de tipo cermico, aunque inicialmente eran metlicas. La cabeza, en las unidades de cabezas mviles, est insertada en un extremo de un brazo mecnico, que se desplaza hacia el centro o hacia la parte externa del disco, bajo el control de los circuitos electrnicos del perifrico. El direccionamiento para leer o grabar un sector del disco se efecta dando al perifrico:
El brazo sita rpidamente la cabeza encima de la pista correspondiente y espera a que el sector en cuestin se posicione bajo la cabeza. En el acceso, por tanto, hay que considerar dos tiempos:
Luego el tiempo de acceso ser ta = tb + te. En las unidades de cabezas fijas, hay una cabeza por pista y por tanto ta = te. La unidad de transferencia de datos desde y hacia el disco es el sector. Los disquetes suelen tener una o varias referencias fsicas (orificios y muescas) para poder identificar los sectores y pistas. Esto se denomina sectorizacin hardware o fsica. En los disquetes de 133 mm slo existe un orificio de alineamiento y referencia. Este orificio, cuando el disco gira, es detectado por un conjunto fotodiodo/fototransistor utilizndose como punto de referencia para el acceso a las distintas pistas y sectores. Las unidades de discos rgidos suelen tener unas muescas que identifican los lmites de cada sector y el primer sector de la pista. Antes de utilizar un disco es necesario efectuar en l unas grabaciones denominadas "dar
41
Discos de cabezas fijas Paquetes de discos Discos cartucho Discos Winchester (disco duro) Disquetes y extraibles
Dentro de los dispositivos de almacenamiento secundario hay que tener en cuenta en el momento de su eleccin las siguientes caractersticas:
Tiempo de acceso a los datos. Velocidad de transferencia de los datos. Capacidad total de almacenamiento. Tipo de acceso del dispositivo (secuencial o directo). Costo/bit del dispositivo. Densidad de almacenamiento.
Recientemente se han desarrollado soportes de almacenamiento de tecnologa ptica que tienen mayores densidades de grabacin que las magnticas convencionales.
CAPITULO IV 4.4. LENGUAJES DE PROGRAMACIN Y SISTEMAS OPERATIVOS Conceptos Bsicos Un computador consta de dos partes, una es la parte fsica, conocida como "hardware" y otra, la lgica denominada "software". Ambas son imprescindibles para tener una computadora en funcionamiento. As mismo la parte fsica es totalmente visible, la parte lgica es intangible, aunque imprescindible para que un computador sea operativo. El "software" se divide en dos grandes grupos, uno es el conocido como sistema operativo o sistema de explotacin y otra parte son los denominados lenguajes de programacin. Aparte existen infinidad de aplicaciones de "software" pero ya para casos concretos, como por ejemplo aplicaciones contables, aplicaciones ofimticas, paquetes estadsticos o programas cientficos. Lenguajes de programacin hay en gran cantidad, algunos han evolucionado a lo largo del tiempo y son usados en el transcurso de muchos aos, mientras que otros han sido operativos durante un perodo ms o menos largo y actualmente no se emplean. Dada esta gran variedad de lenguajes, aqu no se pretende dar una visin completa, sino una clasificacin en diversos tipos.
42
En general un lenguaje es un mtodo conveniente y sencillo de describir las estructuras de informacin y las secuencias de acciones necesarias para ejecutar una tarea concreta. Pero este proceso se puede realizar de muchas maneras distintas, por lo que habr que disponer de clasificaciones. Una muy importante es hacer dos grupos en base a su funcionamiento, esto es considerarlos como intrpretes y compiladores, segn se describe seguidamente: Un lenguaje se dice que es un intrprete, cuando para ejecutar un programa el lenguaje ha de leer y traducir al lenguaje especfico de la mquina las instrucciones una por una. Como es lgico el proceso se enlentece, por ejemplo si una operacin est dentro de la estructura conocida como ciclo y este se repite 100 veces, el lenguaje tiene que traducirlo 100 veces al cdigo de la mquina. No todo son desventajas, pues la parte buena de este tipo de lenguajes es que los errores se pueden corregir al momento y seguir fcilmente la ejecucin del programa, por lo cual son idneos para aprender a programar, proceso en el que da lo mismo la lentitud.
Por contra un lenguaje se dice que es compilado cuando el programa entero se traduce mediante el compilador de dicho lenguaje al lenguaje mquina correspondiente a un microprocesador dado (CPU) y el resultado se almacena de manera permanente en un archivo. De esta forma el programa se ejecutar de forma mucho ms rpida que con un intrprete, sobre todo si hay estructuras que se repiten, caso de los ciclos. La principal desventaja es cuando se produce un error, que muchas veces se detecta en el momento de la ejecucin, y la correccin no se puede hacer de inmediato sino que hay que realizar todo el proceso de compilado desde el principio. Un ejemplo tpico de lenguaje de este tipo el C ++, ampliamente usado en el desarrollo de programas.
43
Un ejemplo en la vida real que visualiza la diferencia entre un intrprete y un compilador es el siguiente, supongamos que tenemos un libro escrito en una lengua distinta al castellano, son posibles dos procesos de acceder a su contenido cuando se necesite su lectura, una es traducir en el momento de su empleo la parte del libro que se precise, pero sin pasarla a papel, sino simplemente mediante lectura traduciendo, esto sera el proceso de interpretado, mientras que la otra opcin sera traducir el libro entero al castellano y dejar dicha versin escrita sobre papel, esto sera equivalente al compilado. El proceso de compilado no es tan inmediato como parece, se describe seguidamente de forma muy esquematizada: 1. Se escribe el programa (conocido como programa fuente) mediante un editor de textos (en modo texto, sin formato) y se almacena en un fichero. 2. Este programa fuente es invocado por la primera etapa del compilador, que efecta un anlisis lxico, se puede considerar como una interpretacin del programa fuente preparndolo para un tratamiento posterior con detalle. En esta etapa se ejecutan los tres procesos indicados seguidamente:
Adaptar el cdigo fuente a un formato independiente de la forma en que se haya introducido en el sistema Eliminacin de informacin redundante como espacios y comentarios
Tratar las palabras clave y los smbolos para su paso a smbolos clave, conocido como "tokens" 3. Anlisis sintctico es el paso siguiente, el compilador determina la estructura, y de alguna forma el significado del programa fuente. El conjunto del programa se analiza en bloques, que se descomponen en instrucciones y se procede a identificar los elementos individuales. Como la sintaxis est expresada mediante un conjunto de reglas, cada una indica cmo se construye una estructura del programa a partir de otras estructuras de menor entidad. El proceso mediante el cual el compilador aplica estas reglas es conocido como "parsing".
44
4. El paso siguiente es la generacin de cdigo, conocido como objeto Para ello se recorre el cdigo intermedio generado y se busca cada uno de los "tokens" en el diccionario, lo que permite insertar las direcciones en el cdigo mquina que se est generando. 5. El proceso siguiente es la optimizacin de cdigo objeto generado, con lo que se obtiene un programa ms eficiente. Generalmente donde se consiguen los mejores resultados es en los bucles, cuyo objetivo es reducir al mximo el nmero de operaciones que se ejecutan en l. 6. Normalmente hay una etapa posterior conocida como "linkado " o "editor de ligaduras" en la que el o los mdulos objetos generados previamente se unen entre s y/o con otros mdulos disponibles en libreras, para formar un fichero que contiene un programa ejecutable directamente desde el sistema operativo, sin necesidad de disponer del compilador correspondiente. Incluso se pueden unir programas escritos en lenguajes distintos si los mdulos objeto creado se han estructurado de forma adecuada. En cualquier fase del proceso pueden detectarse errores que se podrn de manifiesto, implicando el volver hasta el programa fuente, efectuar las correcciones pertinentes y repetir todo el proceso, lo cual suele ser algo laborioso. 4.5. Metodologas de programacin Actualmente se estn produciendo cambios de gran alcance en la forma en que se desarrolla el "software" para los equipos informticos. Entre las causas de estos cambios se incluyen las siguientes:
El coste creciente de los desarrollos La insatisfaccin de los usuarios con la adecuacin y calidad La complejidad y tamao creciente de los programas La creciente dependencia de muchas organizaciones de sus sistemas informticos, sin posibilidad de abandonarlos El avance hacia ordenadores con caractersticas "software" muy diferentes de los actuales.
Estas y otras presiones estn provocando una reorganizacin de los mtodos empleados en el desarrollo de los programas para los computadores. Lo que se necesita son tcnicas para la elaboracin de productos "software" muy largos y complejos, que satisfagan estndares muy estrictos de calidad y prestaciones, de acuerdo con una planificacin, control y presupuestos adecuados. Los mtodos de trabajo que se han desarrollado para responder a estas necesidades constituyen lo que se ha dado en llamar "Ingeniera del Software". La Ingeniera del Software es una tarea de equipo, al comenzar un proyecto de desarrollo, se constituyen una serie de equipos con una estructura paralela a la del programa en s. Se establece un calendario para el proyecto y se asignan costes a cada una de las partes y etapas del proyecto. Cada equipo tiene un responsable, cuya tarea es la de comprobar que la programacin desarrollada por el equipo sea correcta, est estructurado con propiedad, dispone de las interfaces para conectar con los programas desarrolladas por otros equipos y se desarrolla de acuerdo a las previsiones de tiempo y coste. La Ingeniera del Software se ocupa del ciclo de vida completo de un producto software,
45
El programa ha de tener una estructura general en forma de mdulos, que a su vez estarn formados por procedimientos o segmentos. Debe existir un interfaz claramente definido entre los diversos mdulos Cada mdulo debe de ser una combinacin sencilla de construcciones elementales de un lenguaje de programacin Debe existir una fuerte correspondencia entre la estructura de los mdulos y la de los datos sobre los que operan Cada mdulo debe dejar las estructuras de datos sobre las que opera en un estado consistente con su definicin Un mdulo no debe tener efectos secundarios
Por lo que respecta a las tcnicas de diseo de programas, el mtodo ms simple y uno de los ms populares es el conocido como de "Refinamiento Progresivo". Se fundamenta en el uso de algoritmos que se escriben en un lenguaje intermedio entre el castellano y un lenguaje de programacin como el Pascal, este lenguaje se denomina seudocdigo. El proceso se puede describir en trminos de un lenguaje de esta naturaleza:
Establecer todos los pasos del programa en un algoritmo breve de alto nivel Repetir: Expandir cada sentencia del algoritmo en detalle, especificando los pasos necesarios Hasta que las tareas hayan sido especificadas con el detalle suficiente como para que pueda generarse el cdigo del programa.
Existen otras metodologas ms depuradas como por ejemplo la conocida como "Descomposicin Funcional". A diferencia de la anterior en cada etapa se especifican las propiedades esenciales de las estructuras de datos, y cada algoritmo se expresa como una funcin matemtica que transforma esta estructura de datos. Una vez desarrollado un programa como es lgico se ha de comprobar su buen funcionamiento. Actualmente en la mayora de los casos se prueban con cualquier tipo de datos que pueden presentarse en la realidad. Sin embargo este proceso nunca puede establecer si un programa es o no correcto, sin importar cuantos conjuntos de datos de usen. Si un programa es de importancia crtica, como ocurre actualmente con muchas aplicaciones comerciales, industriales o militares, es necesario tomar todas las precauciones posibles para asegurar que estn libres de errores. Se estn empezando a utilizar tcnicas para asegurar que los mdulos (y los algoritmos) son correctos, que los consideran como teoremas matemticos y entonces se emplean los mismos mtodos que se utilizan para demostrar los teoremas. Esta tarea, conocida como "mtodos formales" es muy compleja y no siempre aplicable. Tipos de lenguajes Aparte de la clasificacin vista previamente en compiladores e intrpretes, los lenguajes de programacin se clasifican en base a otros aspectos, de manera general en dos grandes grupos, Lenguajes de Alto Nivel y Lenguajes de Bajo Nivel. El grupo de los de Bajo Nivel, como su nombre indica incluye los relacionados ntimamente con la arquitectura de la mquina, por lo
46
En conclusin un lenguaje de alto nivel est orientado hacia la resolucin de una determinada clase de problemas.
HISTORIA DE LOS SISTEMAS OPERATIVOS En este captulo se describe aquella parte del "software" de un ordenador que transforma el "hardware" en algo til: el sistema operativo. Para esta parte es importante considerar un computador como un conjunto de recursos, de tipo fsico, lgico o una mezcla de ambos. Tomados como un todo estos recursos proporcionan facilidades para el tratamiento y la entrada/salida de datos, as como para otros aspectos del funcionamiento de un ordenador. Para comprender qu es un sistema operativo, es necesario entender cmo han sido desarrollados, en este apartado se esboza el desarrollo de los sistemas operativos desde los primeros hasta los actuales multiprogramados y de tiempo compartido. A medida que nos adentremos en las distintas etapas, veremos que los componentes de los sistemas operativos evolucionaron como soluciones naturales a los problemas de los primeros sistemas informticos. Inicialmente lo nico que exista era el "hardware" del ordenador. Los primeros ordenadores eran mquinas muy grandes que ejecutaban su trabajo desde lo programado en una consola. El usuario escriba el programa y lo ejecutaba directamente desde la consola del operador, se deba de cargar manualmente en la memoria, bien fuera desde los conmutadores del panel frontal, desde cinta de papel o mediante tarjetas perforadas. Seguidamente se pulsaban los interruptores adecuados para cargar la direccin de inicio y para comenzar la ejecucin del programa. Se
47
48
Los sistemas operativos multiprogramados son bastante sofisticados. Tener varios trabajos dispuestos para su ejecucin, supone mantenerlos simultneamente en memoria, y tener varios programas en memoria al mismo tiempo requiere una gestin de la memoria. Adems, si hay varios trabajos dispuestos para ejecucin, hay que tomar alguna decisin para elegir entre ellos, mediante una planificacin adecuada de la CPU. La multiprogramacin es el tema central de los sistemas operativos modernos. Los aspectos fundamentales a considerar son: Gestin de la memoria La memoria total del ordenador se ha de compartir de forma adecuada entre todos los programas y datos que en cierto momento tenga cada usuario del equipo. Planificacin de la CPU Entre todas las tareas demandadas por los usuarios es posible establecer preferencias, lo cual implica que la CPU se planifique dando ms tiempo a algunos trabajos o a los usuarios en funcin de unos niveles de privilegios establecidos. Control de concurrencia. El sistema operativo ha de gestionar adecuadamente todos los recursos del ordenador y ordenar la concurrencia de demandas de una forma adecuada. Por ejemplo si varios usuarios solicitan al mismo tiempo el acceso a un disco, se habr de gestionar de forma correcta esta concurrencia para evitar bloqueos o situaciones impredecibles. Proteccin En un sistema donde acceden muchos usuarios es lgico que exista un sistema de proteccin que permita asegurar que a los trabajos de uno no pueden acceder los otros usuarios, ya sea por motivos de seguridad (por ejemplo para evitar prdidas de informacin) o de confidencialidad. Abrazo mortal Es un problema que no se plantea solamente en un entorno de sistemas operativos, sino que puede aparecer en la vida real. Por ejemplo si dos personas han de cruzar un ro, saltando entre piedras puestas en l, y con la condicin de apoyar un solo pie, se llega al abrazo mortal cuando dos personas empiezan a cruzar desde orillas opuestas y se encuentran en el medio, llega este momento cuando los dos intentan pisar la misma piedra. En general esta situacin se produce cuando un sistema consta de un nmero finito de recursos para distribuir entre un nmero dado de procesos en competencia. TIEMPO COMPARTIDO Cuando se desarrollaron los sistemas por lotes estos se definan por la agrupacin de trabajos similares, que slo permitan el acceso secuencial a la informacin. Al disponerse de discos, se hizo posible el acceso inmediato a todas las aplicaciones. Un sistema por lotes tiene algunos inconvenientes, para el usuario, el principal es que los usuarios no pueden interactuar con sus trabajos mientras se estn ejecutando, lo cual crea problemas caso de necesitar depurar un programa. Como consecuencia posteriormente a estos sistemas aparecieron los conocidos como interactivos o hands-on, en los que el usuario da y recibe las instrucciones de forma inmediata. En consecuencia se puede experimentar fcilmente con cualquier programa.
49
Un sistema operativo de tiempo compartido utiliza la planificacin de la CPU y la multiprogramacin para dotar a cada usuario de una pequea parte del ordenador compartido. Permite que muchos usuarios compartan el ordenador. Como cada accin o comando suele ser breve, basta con un tiempo de CPU corto para cada usuario. Dado que el sistema cambia rpidamente entre usuarios, estos tienen la impresin de que cada uno de ellos dispone de su propio ordenador, cuando realmente un solo ordenador es compartido entre muchos usuarios. Esta idea fue expuesta en 1960, pero al ser difciles de construir estos sistemas, no se difundieron hasta principios de los aos 1970. TIEMPO REAL Otro tipo de sistemas son los conocidos como en tiempo real (RTOS -Real Time Operating System), que se utilizan frecuentemente como dispositivos de control en aplicaciones especializadas. Por ejemplo unos sensores proporcionan datos al ordenador, que los analiza y en consecuencia ajusta unos controles para modificar las entradas al sensor. Casos de este tipo se dan en aplicaciones cientficas, mdicas e industriales. Un ejemplo es el sistema operativo RMOS3 de Siemens, trabaja en modo de procesamiento multincleo simtrico (SMP) que permite en los ordenadores tipo PC con microprocesador de doble ncleo, el ejecutar tareas en paralelo, por lo que permite ahorrar un ordenador. Un caso tpico de equipo que funciona bajo tiempo real, es un "controlador miniatura", que consiste en un pequeo ordenador, diseado en una placa de circuito impreso, que se embebe en una mquina o cualquier otro dispositivo, con finalidad de control (sistemas empotrados). Estos dispositivos se usan en maquinaria de fabricacin, comprobacin de equipamientos, telecomunicaciones, sistemas de control y seguridad, ventilacin y aire acondicionado, monitorizacin del medio ambiente e investigacin cientfica. Algunos ejemplos reales se citan seguidamente: Hornos Control de seales de trfico Control de satlites Equipos musicales Verificacin de componentes de automocin Control de riego agrcola Comparado con un PC, un ordenador de este tipo es menor, gasta menos energa y disipa menos calor. La propiedad ms importante es que pueden trabajar en ambientes hostiles.
50
El hardware facilita los recursos bsicos de computacin, mientras que los programas de aplicacin definen cmo hay que utilizar estos recursos para resolver los problemas de los usuarios. Puede haber muchos usuarios diferentes tratando de resolver problemas distintos. Consecuentemente es habitual la existencia de distintos programas de aplicacin. El sistema operativo controla y coordina el uso del hardware por parte de los distintos programas de aplicacin de los diversos usuarios.
Un sistema operativo es similar a un gobierno. Los recursos bsicos de un sistema informticos son el hardware, el software, los datos y por supuesto los usuarios. El sistema operativo facilita los medios para el uso adecuado de estos recursos durante la operacin del sistema informtico, al igual que un gobierno, el sistema operativo no realiza por s mismo una funcin til, simplemente crea el entorno en el que otros programas puedan hacer un trabajo. Tambin se puede considerar un sistema operativo como un asignador de recursos. Un sistema informtico tiene muchos recursos susceptibles de ser requeridos para resolver problemas. El sistema operativo acta como gestor asignando los recursos a programas y usuarios especficos, segn las necesidades, para que realicen sus tareas. Otra concepcin ligeramente diferente de un sistema operativo se basa en la necesidad de controlar distintos dispositivos de entrada/salida y los programas de usuario. Un sistema operativo es un programa de control.
51
En general no existe una definicin completamente adecuada de un sistema operativo. Existen porque son una va razonable para resolver el problema de crear un sistema informtico manejable. En general es ms fcil definir los sistemas operativos por lo que hacen, mas que por lo que son. Los sistemas operativos se pueden clasificar en cuatro grupos: Por lotes (batch) Son los primitivos, de la poca en que se manejaban tarjetas perforadas. Interactivos monousuarios Permiten que el usuario del equipo pueda interaccionar en cualquier momento con el proceso que est ejecutando. Slo permiten que trabaje un usuario en un momento dado. Tiempo compartido Permiten el acceso al ordenador a un nmero variable de usuarios de forma concurrente, y dada la gran velocidad del ordenador, es como si estuviera trabajando simultneamente para todos ellos. Tiempo real Se utilizan ampliamente en aplicaciones industriales y de control. El sistema responde de forma inmediata a entradas del exterior. Sistemas operativos habituales En el inicio de la informtica cada fabricante tena sus propios sistemas operativos que no eran compatibles con los de otros, incluso dentro de un mismo fabricante podan coexistir varios, caso tpico de IBM. Estos se conocen como sistemas propietarios. La tendencia actual es hacia los llamados sistemas abiertos, lo cual indica que estos sistemas operativos trabajan sobre una gran variedad de mquinas con independencia del fabricante del equipo. La gran ventaja es el ahorro a todos los niveles, pues por ejemplo una empresa con ordenadores de distintos fabricantes puede tener totalmente uniformado todo su software. A continuacin se comentan los sistemas operativos ms difundidos en los ltimos 30 aos. MS-DOS Fue un sistema operativo adaptado por Microsoft para IBM (PC-DOS), y en concreto para el modelo PC, aunque se populariz rpidamente siendo el ms usado a nivel personal. Fue desarrollado en el ao 1979 por Tim Paterson que trabajaba en Seatle Computer Products, y adquirido por Microsoft Corporation. En la bitcora Pmurillo se puede ver la historia de la eleccin de IBM para su nuevo ordenador personal. El espritu del MS-DOS fue el de proporcionar una base flexible para el software de un microordenador. Tiene un ncleo con un conjunto de comandos residentes y una capa con comandos transitorios que se cargan en memoria cuando se necesita su ejecucin para a continuacin abandonarla. Dado que el entorno es poco amigable se crearon aadidos que proporcionan un ambiente de trabajo ms fcil, el que ha tenido ms xito es WINDOWS (no estrictamente por razones de calidad), que ofrece un entorno grfico de ventanas y sencillez de manejo mediante un ratn, basado en desarrollos de la empresa XEROX. La principal desventaja de MS-DOS es que es monousuario y monotarea, es decir que slo 52
53
55