• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Sgbd
 

Sgbd

on

  • 12,311 views

Topicos de Base de Datos

Topicos de Base de Datos

Statistics

Views

Total Views
12,311
Views on SlideShare
12,311
Embed Views
0

Actions

Likes
1
Downloads
132
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Sgbd Sgbd Document Transcript

    • Cap´ ıtulo 6 Bases de datos 6.1 Bases de datos y SGBD . . . . . . . . . . . . . . . . . . . . . . 151 6.2 El modelo entidad-relaci´n . . . . . . . o . . . . . . . . . . . . . . 155 6.3 Modelos de datos basados en registros . . . . . . . . . . . . . . 158 6.4 Lenguajes asociados a los SGBD . . . . . . . . . . . . . . . . . 160 6.5 Elementos de un SGBD . . . . . . . . . . . . . . . . . . . . . . 163 6.6 Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 6.7 Comentarios bibliogr´ficos . . . . . . . a . . . . . . . . . . . . . . 165 6.1 Bases de datos y SGBD 6.1.1 Archivos y SGA En el cap´ ıtulo 2 se vio la posibilidad que tienen los computadores de trabajar con datos elementales (tales como n´meros reales, enteros, u caracteres y valores l´gicos) o de organizarlos en estructuras m´s com- o a plejas, tales como vectores o tablas. En el 4 se introdujeron los archivos como organizaci´n b´sica de la informaci´n, almacenada en un disposi- oa o tivo f´ ısico; entonces no fue preciso distinguir en ellos ning´n tipo de or- u ganizaci´n: pod´ considerarse como listas de elementos de caracteres. o ıan Ahora interesa considerar un archivo como una lista de datos del mismo tipo, cada dato de un archivo es un registro, y puede tener una estructura compuesta por varios datos de distinto tipo, llamados cam- pos. Considerando el fichero de los alumnos de un colegio como s´ ımil
    • 152 Cap´ ıtulo 6. Bases de datos de archivo, cada ficha es un registro, y cada dato consignado en ella constituye un campo. La utilizaci´n de los archivos en inform´tica ha permitido desarrollar o a programas de aplicaci´n en areas muy diversas: el fichero de socios de o ´ una biblioteca, el de su fondo bibliogr´fico, el de clientes de cualquier a empresa, el de proveedores, el de art´ ıculos de un inventario, etc. Los programas desarrollados para gestionar archivos se llaman en general sistemas de gesti´n de archivos (SGA). Debido a su directa aplicabilidad, o la utilizaci´n de los archivos y los SGA han evolucionado much´ o ısimo en los ultimos a˜os, originando las bases de datos y, correspondientemente, ´ n los programas dedicados a su gesti´n.o 6.1.2 Bases de datos y SGBD Hablando en t´rminos muy amplios, una base de datos consiste en e una colecci´n de datos, organizados de forma integrada en archivos, junto o con un conjunto de programas dedicados a su gesti´n. Estos programas o forman los sistemas de gesti´n de bases de datos (SGBD). o Al igual que los SGA, los SGBD son programas destinados principal- mente a almacenar, manipular y recuperar la informaci´n, y desempe˜an o n operaciones que suelen tener lugar a diario: altas y bajas de clientes, apuntes en las cuentas bancarias, adquisici´n y p´rdida de libros o su o e pr´stamo y devoluci´n, elaboraci´n de informes sobre los clientes o so- e o o cios morosos, sobre las calificaciones de los alumnos de un curso en una asignatura y un largo etc´tera. e Sin embargo, en los SGA el programador deb´ controlar artesanal- ıa mente m´ltiples detalles, tales como la descripci´n pormenorizada de los u o datos, su almacenamiento en los dispositivos, la concordancia de cada rutina que maneje esos datos con la descripci´n de los mismos, la con- o cordancia de los datos cuando se repitan en distintos archivos, etc. M´s a a´n, el programador es responsable de que cada modificaci´n de los datos u o o de los programas se vea reflejada en todos esos puntos. En cambio, los SGBD controlan autom´ticamente operaciones como a el almacenamiento de los datos en los dispositivos f´ ısicos, as´ como el ı
    • 153 6.1. Bases de datos y SGBD acceso de los programas a los mismos; adem´s, aseguran la consistencia a de los datos repetidos y de los programas que los manejan, etc. Gracias a estas ventajas, con los SGBD es posible concentrar m´s a atenci´n en el problema (a su nivel) y mucha menos en los detalles (de o bajo nivel) de su implantaci´n f´ o ısica (o interna), lo que facilita enor- memente el dise˜ o, desarrollo y mantenimiento de las bases de datos y n permite, por lo tanto, afrontar otras de gran envergadura. Conclusi´n o En resumen, los SGA consisten en agregados de programas y archi- vos, a˜adidos por el programador para cubrir ad hoc necesidades nuevas. n En cambio, los SGBD son sistemas “integrados” de programas y archi- vos, dise˜ados con el prop´sito espec´ n o ıfico de desarrollar y gestionar bases de datos, como indica su nombre, de acuerdo con un plan general. Por ello, la funcionalidad de los SGBD es superior a la de los SGA. M´s concretamente, se pueden identificar las siguientes diferencias entre a ambos tipos de sistemas: • En general, los SGA consisten en aglomerados de programas y ar- chivos r´ ıgidos, puesto que se han agregado sucesivamente para re- solver s´lo operaciones muy concretas. Por el contrario, los SGBD o se caracterizan por una gran flexibilidad, permitiendo la reestruc- turaci´n de la informaci´n gestionada, la incorporaci´n de nuevas o o o aplicaciones, o la modificaci´n de las existentes manteniendo la o organizaci´n global. o • La informaci´n de los SGA presenta frecuentemente redundancias o innecesarias. La repetici´n de los datos en los diversos archivos o es ineficiente: adem´s de hacer un mal aprovechamiento de la a memoria, aumenta y dificulta a la vez las operaciones de consulta y mantenimiento de esa informaci´n. La redundancia de los datos o lleva aparejado adem´s el riesgo de que esos datos repetidos no a concuerden (inconsistencia), lo que se supera en los SGBD gracias a su alto grado de integraci´n. o
    • 154 Cap´ ıtulo 6. Bases de datos • Por lo com´n, los SGA est´n implantados en sistemas operativos u a monousuario, por lo que carecen de mecanismos para atender a diferentes personas desde diferentes puntos. En cambio, los SGBD est´n dise˜ados muchas veces para funcionar en sistemas multiu- a n suario, pudiendo atender consultas y actualizaciones de los datos que se solicitan al mismo tiempo, y est´n dotados con mecanis- a mos para garantizar la seguridad y confidencialidad de los datos en sistemas multiusuario. • Los SGA carecen en general de protecci´n frente a fallos del sis- o tema. En cambio, los SGBD disponen de los mecanismos necesa- rios para recuperar la informaci´n en caso de necesidad. o Por consiguiente, los SGBD aventajan a los SGA en muchos aspec- tos. Aunque se ha se˜alado el inconveniente de que, al ser sistemas m´s n a complejos y potentes, tienen mayores requerimientos de hardware y soft- ware, este problema se est´ atenuando con el aumento de potencia que a los computadores personales est´n experimentando hoy en d´ y con el a ıa abaratamiento del software. A pesar de las ventajas que suponen las bases de datos, debe ad- vertirse que el buen dise˜o de una base de datos no es una cualidad n intr´ ınseca de los SGBD, as´ como tampoco son propios de los SGA los ı defectos de un mal dise˜o o desarrollo. Una base de datos desarrollada n con un SGA puede resultar segura, funcionar en un entorno multiusua- rio y estar exenta de redundancias (en la informaci´n) aunque, eso s´ o ı, debe ser el desarrollador quien se preocupe de mantener esas cualida- des, mientras que un SGBD asume algunas de esas responsabilidades y facilita muchas otras. 6.1.3 Niveles de una base de datos La complejidad de una base de datos puede superarse dotando al sistema de una organizaci´n l´gica que facilite su manejo. Seg´n las oo u normas del ANSI/SPARC1 ([Stu75]), esta organizaci´n debe constar de o 1 American National Standard Institute.
    • 155 ´ 6.2. El modelo entidad-relacion los tres niveles siguientes, de m´s pr´ximo al problema a m´s cercano a a o a la m´quina: a • Nivel interno o f´ısico, formado por los detalles de la organizaci´n o f´ ısica de la base de datos, tales como la representaci´n escogida de o los datos a bajo nivel y el almacenamiento real de los datos en los discos u otros dispositivos f´ısicos. • Nivel conceptual o l´gico donde se describe, a alto nivel, la infor- o maci´n de la base de datos, ignorando los detalles de su almace- o namiento. • Nivel externo o de visi´n, que comprende las visiones particulares o que tienen de la base de datos los distintos usuarios, ya sean usua- rios finales o programadores, con frecuencia en distintos lenguajes. Estos ultimos ven la descripci´n de la informaci´n en sus lenguajes ´ o o respectivos. 6.2 El modelo entidad-relaci´n o Un modelo de datos es un enfoque adoptado para formalizar la in- formaci´n del mundo real que ata˜e a una base de datos. En el nivel o n conceptual y l´gico, existen dos grupos de modelos: los basados en ob- o jetos, y los basados en registros. El modelo entidad-relaci´n es seguramente el m´s ampliamente acep- o a tado entre los primeros. En ´l se concibe la realidad como un conjunto de e objetos (llamados entidades y caracterizadas por atributos) y relaciones entre los mismos. En los ejemplos mencionados, constituye una entidad cada cliente concreto, cada cuenta bancaria, cada socio de la biblioteca, cada uno de sus libros, etc. Resulta natural agrupar las entidades en gru- pos homog´neos (conjuntos de entidades): en el conjunto de entidades e “libros”, por ejemplo, tendr´ cabida todos los libros de la biblioteca. ıan Considerando ahora este conjunto de entidades, podemos identificar en ellas los atributos siguientes: t´ ıtulo, autor, editorial, signatura, n´mero u de registro, etc.
    • 156 Cap´ ıtulo 6. Bases de datos Las asociaciones entre varios conjuntos de entidades pueden esta- blecerse mediante relaciones. Por ejemplo, se puede considerar una re- laci´n entre los conjuntos de entidades “socios”-“libros” para expresar o los “pr´stamos”. Tambi´n es posible caracterizar las relaciones con atri- e e butos (como la “fecha” de devoluci´n para un pr´stamo). o e Las relaciones entre entidades pueden ser de varios tipos: • Una relaci´n entre dos entidades es de uno a uno (abreviadamente, o 1:1) si existe una correspondencia biun´ ıvoca entre ellas. Por ejem- plo, cada autom´vil tiene una unica matr´ o ´ ıcula y viceversa. • La relaci´n “socios”-“libros” mencionada en el p´rrafo anterior es o a de uno a muchos (1:m): un socio puede tener prestados desde ninguno hasta muchos libros al mismo tiempo, pero cada libro tiene, a lo sumo, un unico socio que lo ha pedido. ´ • La relaci´n entre “profesores”-“asignaturas” es de muchos a mu- o chos (m:m), ya que un profesor puede impartir varias asignaturas, e igualmente una asignatura puede ser impartida por varios pro- fesores. En este tipo de relaciones no se imponen restricciones sobre el n´mero de elementos por relacionar de cada conjunto de u entidades. Con estos conceptos, es posible representar gr´ficamente la estruc- a tura de una base de datos del siguiente modo: • Cada conjunto de entidades se expresa mediante un rect´ngulo. a • Los atributos que caracterizan un conjunto de entidades se repre- sentan con elipses asociadas al rect´ngulo correspondiente. a • Las relaciones se representan mediante rombos, unidos con l´ ıneas a los conjuntos de entidades asociados. En los casos de las relaciones 1:1 y 1:m, el conjunto de entidades dado por el 1 se se˜ala desde n la relaci´n con una flecha: o – Relaci´n m:m o
    • 157 ´ 6.2. El modelo entidad-relacion ¨rr ¨¨stamos r pr´ e rrr¨ ¨ socios libros ¨ fl   i „ fl   „   i  l     i„   f     n0 .socio t´ ıtulo i „ f „    nombre  f   autor i    registro   i editor i   domicilio   c  i    signatura fecha     Figura 6.1. Representaci´n gr´fica de una relaci´n o a o           – Relaci´n 1:m o    '        – Relaci´n 1:1 o    '   E      Por ejemplo, la relaci´n “pr´stamos” puede representarse como mues- o e tra la figura 6.1.
    • 158 Cap´ ıtulo 6. Bases de datos 6.3 Modelos de bases de datos basados en registros Tradicionalmente, se han considerado diferentes enfoques a la hora de organizar una base de datos. Cada uno adoptaba una concepci´n o distinta de la realidad, dependiendo del tipo de estructura de datos m´s a adecuado para construir un modelo del problema planteado. En el modelo jer´rquico subyace una estructura de datos arbores- a cente. Ejemplos de esta estructura son la genealog´ de los toros de lidia ıa y la organizaci´n de directorios de un disco. Esta orientaci´n se suele o o usar cuando el problema abarca s´lo relaciones 1:m. o El enfoque en red adopta como modelo de datos el concepto ma- tem´tico de grafo: un conjunto de puntos llamados nodos, que se conec- a tan unos con otros mediante l´ıneas llamadas arcos. El ejemplo arquetipo de grafo es una red de carreteras: los arcos son los diferentes tramos, y los nodos las intersecciones. En este tipo de relaciones se pueden repre- sentar tambi´n las relaciones m:m, aunque no de un modo muy natural. e Al igual que en el modelo entidad-relaci´n, en el enfoque de datos en o red la base de datos consiste en un conjunto de entidades (que son los nodos de un grafo), caracterizadas por atributos y relacionadas mediante relaciones (que son los arcos). En el modelo en red, a las relaciones se les llama ligaduras, y son siempre binarias, si bien es posible construir relaciones de cualquier orden combinando dichas relaciones binarias. En la actualidad, los modelos jer´rquico y en red se consideran am- a pliamente superados por el modelo relacional, que est´ muy desarrollado a y extensamente difundido, funcionando en equipos grandes y peque˜os.n Debido a su importancia, le dedicamos el siguiente apartado. 6.3.1 El modelo relacional El enfoque relacional considera una base de datos como un conjunto de tablas,2 que representan entidades o relaciones. Dados n conjuntos de 2 Llamadas relaciones, de donde viene el nombre de este modelo.
    • 159 6.3. Modelos de datos basados en registros entidades E1 , ..., En , una tabla es un conjunto de n-tuplas de la forma (e1 , ..., en ), donde ei ∈ Ei ; en otras palabras, una relaci´n es un subcon- o junto del producto cartesiano E1 × ... × En . Visto un conjunto de entidades como una tabla, cada fila representa una entidad concreta, y cada columna un atributo: libros Autor T´ ıtulo Editor Signatura Registro ... ... ... ... ... Si la tabla representa una relaci´n, cada columna es una de las en- o tidades vinculadas por ella. En realidad, no es preciso consignar cada entidad completa, sino que basta con incluir los atributos necesarios para determinarla un´ ıvocamente. Este conjunto de atributos se llama clave de la entidad: pr´stamos e Registro N´m. socio u Fecha ... ... ... Pongamos un ejemplo. Una base de datos correspondiente a la in- formaci´n de cierta carrera universitaria3 podr´ constar, entre otras, de o ıa dos relaciones, que almacenan respectivamente los datos personales de los alumnos y las asignaturas en que se han matriculado en un curso: Direcciones (nombreAl, direcci´n, tel´fono) o e Matr´ ıculas (nombreAs, nombreAl, curso, n´mCr´ditos, nota) u e El atributo nombreAl es una clave para la primera relaci´n. Una o clave de la segunda la forman los atributos nombreAs y nombreAl. En realidad, no se han establecido las relaciones concretas entre las entidades (para lo cual se requerir´ rellenar las tablas con los datos re- ıa ales) sino s´lo el encabezamiento de cada tabla asociada al que llamamos o esquema de la relaci´n. o 3 Se supondr´ para simplificar que los nombres de los alumnos no pueden repetirse, a y que tambi´n las asignaturas tienen nombres distintos. e
    • 160 Cap´ ıtulo 6. Bases de datos Las relaciones establecidas para describir nuestro modelo no son las unicas posibles. De hecho, el planteamiento puede mejorarse f´cilmente, ´ a sustituyendo la ultima relaci´n por las dos siguientes: ´ o Asignaturas (nombreAs, curso, n´mCr´ditos) u e Matr´ ıculas’ (nombreAl, nombreAs, nota) en las que ya no se repiten el curso y n´mero de cr´ditos de cada asig- u e natura por cada alumno que se matricule en ella, mejorando el aprove- chamiento de la memoria y la gesti´n posterior de ella en consultas y o actualizaciones de la informaci´n. o Este proceso (llamado normalizaci´n) no siempre resulta tan senci- o llo. Sin embargo, mediante su empleo se llega a describir una base de datos gracias a relaciones naturales y sin redundancias, con las ventajas mencionadas. 6.4 Lenguajes asociados a los SGBD Visto el SGBD como un intermediario, deber´ proporcionar al admi- a nistrador un medio con que definir la base de datos durante su creaci´n o o realizar posteriores reestructuraciones, de acuerdo con los nuevos reque- rimientos, facilit´ndole el establecimiento de relaciones entre los datos. a Finalmente, deber´ poner al alcance del usuario toda la informaci´n para a o que ´ste la manipule de un modo flexible y eficiente. e Los SGBD proporcionan lenguajes de alto nivel para que los usuarios soliciten sus operaciones, ya que la propia base de datos oculta muchos detalles de la representaci´n y el almacenamiento de las relaciones, y o dichos lenguajes pueden obviar esos detalles. Los lenguajes de los SGBD son en general de dos tipos: • Lenguajes de definici´n de datos o Estos lenguajes recogen la descripci´n de los datos tal como la o concibe el usuario, esto es, la definici´n de los esquemas de la base o
    • 161 6.4. Lenguajes asociados a los SGBD de datos. Como interpretaci´n de esas definiciones, producen el o diccionario de datos (v´ase 6.5) as´ como la forma real, a bajo e ı nivel, en que los datos se organizan en los distintos dispositivos f´ ısicos, discos normalmente. • Lenguajes de manipulaci´n de datos o Estos lenguajes permiten al usuario realizar operaciones tales como a˜adir informaci´n nueva en la base de datos, suprimir, modificar n o o consultar la existente. Estas operaciones tienen una gran potencia, ya que los lenguajes de consulta modernos disponen de mecanismos para definir las operaciones m´s frecuentes. Por otra parte, tienen tambi´n una a e gran flexibilidad, estando dotados de medios para que el usuario pueda desarrollar programas de acuerdo con sus necesidades, ya sea ofreciendo lenguajes de programaci´n propios o bien enlazando o con lenguajes de programaci´n de alto nivel. o 6.4.1 Lenguajes relacionales Se han desarrollado dos enfoques de los lenguajes relacionales: el a ´lgebra relacional y el c´lculo relacional, aunque la mayor´ de los len- a ıa guajes de consulta comercializados actualmente incluyen caracter´ısticas de ambos. Entre ellos, es obligado citar el SQL (Structured Query Lan- guage), que funciona tanto en bases de datos desarrolladas para mi- crocomputadores, como en otras para minis y mainframes, tales como Informix-SQL, Ingres y Oracle. A continuaci´n presentamos brevemente o los enfoques mencionados en el estilo de SQL. • En los lenguajes basados en el ´lgebra relacional las operaciones a se realizan con tablas y su resultado es tambi´n una tabla. Las e principales son las siguientes: – La operaci´n de selecci´n extrae de una relaci´n las tuplas o o o que verifican cierto predicado. Por ejemplo: ıculas’, nota ≥ 5) selecci´n (Matr´ o
    • 162 Cap´ ıtulo 6. Bases de datos consiste en la relaci´n de las papeletas de aprobado; en cada o una se consigna el nombre de un alumno, una asignatura y la nota obtenida. El esquema de la relaci´n obtenida es o <nombreAl, nombreAs, nota, convocatoria> que coincide con el de la relaci´n Matr´ o ıculas’. – La proyecci´n extrae de una relaci´n las columnas que se indi- o o quen, eliminando las filas repetidas en la relaci´n resultante. o Por ejemplo: proyecci´n (Matr´ o ıculas, <nombreAs, curso, n´mCr´ditos>) u e coincide con la relaci´n de Asignaturas. o – La concatenaci´n de dos relaciones que tengan alguna co- o lumna en com´n consiste en otra tabla, que pivota en la(s) u columna(s) com´n(es). Por ejemplo, la relaci´n Matr´ u o ıculas podr´ obtenerse as´ ıa ı: concatenaci´n (Matr´ o ıculas’, nombreAs) Considerando que una tabla es un conjunto de tuplas, el algebra ´ relacional tambi´n incluye las operaciones conocidas de uni´n, in- e o tersecci´n y diferencia (de conjuntos de tuplas), entre relaciones o con la misma estructura. • Los lenguajes basados en el c´lculo relacional son declarativos: las a consultas se expresan especificando la informaci´n deseada me- o diante el c´lculo de predicados de primer orden. Por ejemplo, la a definici´n siguiente o {< n, d > | ∃ t ((< n, d, t >∈ Direcciones) ∧ ∀ a, c((< n, a, c >∈ Matr´ ıculas’) ⇒ (c ≥ 9))} facilitar´ la relaci´n de aquellos alumnos que han obtenido un so- ıa o bresaliente en todas las asignaturas de las que se han matriculado, junto con su direcci´n. o
    • 163 6.5. Elementos de un SGBD 6.5 Elementos de un SGBD Siguiendo la presentaci´n por capas que se hizo de los sistemas ope- o rativos, en una base de datos pueden distinguirse tres niveles: • El m´s bajo se encuentra directamente sobre el sistema operativo, a y consiste en los archivos de datos, los de ´ ındices y el diccionario de datos: – Los archivos de ´ındices tienen id´ntico cometido al del ´ e ındice de un libro, permitiendo localizar r´pidamente un registro a a trav´s de su direcci´n (p´gina) en un archivo de datos (libro). e o a – El diccionario de datos es un archivo que contiene la des- cripci´n de la estructura de los archivos de datos a los tres o niveles; esto es, de los distintos esquemas de la base de datos. • El nivel intermedio es el del sistema de gesti´n propiamente dicho, o y comprende los siguientes m´dulos: o – Un programa compilador para el lenguaje de definici´n de o datos, que construye (o modifica) el diccionario de datos. – Un int´rprete del lenguaje de consultas: cuando las instruc- e ciones del lenguaje de manipulaci´n de datos se insertan entre o sentencias de otros lenguajes de alto nivel, el precompilador traduce esas instrucciones al lenguaje de alto nivel. – Un programa gestor de la base de datos, que es el intermedia- rio entre los archivos, que contienen informaci´n a bajo nivel o estructurada conforme al diccionario de datos, y los progra- mas que acceden a ellos a un nivel m´s alto. a – Es corriente que los SGBD faciliten rutinas de reorganizaci´n o y generaci´n de ´ o ındices de los registros de la base de datos siguiendo ciertos criterios. – Frecuentemente se incluye un optimizador que, bas´ndose en a las definiciones de las tablas y los ´ ındices, crea el camino m´s a eficiente de acceso a los datos. Este camino se construye en un paso de la compilaci´n de un programa de alto nivel o en o
    • 164 Cap´ ıtulo 6. Bases de datos el momento de la ejecuci´n. Este m´dulo permite al usuario o o desentenderse de los detalles de nivel f´ ısico. – Muchos SGBD ofrecen tambi´n diversas rutinas de generaci´n e o de programas, tales como formatos de pantalla, generaci´n de o etiquetas, listados o informes a medida. – Otro aspecto de gran desarrollo en la actualidad son las lla- madas herramientas CASE4 , cuyo objetivo es facilitar el des- arrollo y mantenimiento de programas de cierta envergadura. • En el nivel m´s alto se encuentran el administrador y los usuarios a de la misma: – El administrador de la base de datos es la persona que redefine el esquema de la base de datos en las sucesivas modificaciones. Adem´s, concede o deniega a los distintos usuarios el acceso a a toda la base de datos o a parte de ella. – Los usuarios pueden tener diferentes niveles de especializa- ci´n, con diferentes grados de acceso a la base de datos. o Si tomamos como ejemplo la base de datos de un banco, el ni- vel menos especializado lo representa un cliente, capaz de con- sultar los datos de su cuenta o modificarlos como consecuen- cia de una transacci´n efectuada en un cajero autom´tico. o a En un nivel intermedio se hallar´ los empleados, autoriza- ıan dos a realizar consultas y movimientos m´s complejos. Los a programadores de aplicaciones se hallar´ en el nivel m´s ıan a especializado. 6.6 Ejercicios 1. Los campos de un registro de un archivo pueden definirse mediante su tama˜o (m´ximo), es decir, su n´mero de caracteres o de d´ n a u ıgitos ente- ros y decimales. En este supuesto, fije el tama˜o que tienen los campos n correspondientes a los siguientes datos: nombre, apellidos, domicilio, po- blaci´n, provincia, c´digo postal y tel´fono. o o e 4 Computer Aided Software Engineering: ingenier´ de la programaci´n asistida por ıa o computador.
    • 165 ´ 6.7. Comentarios bibliograficos 2. Se desea gestionar una videoteca mediante una base de datos, mante- niendo datos sobre los clientes y las cintas. Se considera la posibilidad de consultar la base de datos para conocer en un momento dado las existencias por temas, autores y actores. • Describa los niveles de visi´n y conceptual seg´n las normas del o u ANSI/SPARC. • Identifique unos atributos apropiados para caracterizar las entida- des “clientes” y “cintas”. • Identifique las relaciones 1:1, 1:m y m:m que existan. • Construya un diagrama E-R. • Construya el esquema de relaci´n correspondiente. o 3. Encuentre un sistema de gesti´n de bases de datos e identifique sus ca- o racter´ ısticas, valorando en qu´ medida alcanza los objetivos propuestos e por los SGBD, cu´les son los elementos que posee y sus limitaciones. a 4. En la base de datos referida a una carrera universitaria utilizada como ejemplo del modelo relacional se define la siguiente relaci´n o Notas ≡ (nombreAl, curso, grupo, nombreP, nombreAs, feb, mayo, final) de cada alumno, en cada asignatura, con sus calificaciones de febrero, mayo y final. Se ha aprovechado la tabla para incluir el nombre del profesor que imparte la asignatura en ese grupo. • Mejore el planteamiento para evitar que se repita el nombre del profesor cada vez que aparezca un alumno suyo. • Evite asimismo la repetici´n del curso y grupo de cada alumno cada o vez que aparece una asignatura. 5. Actuando como administrador de la base de datos del ejercicio anterior, establezca a qu´ informaci´n pueden acceder: un alumno, un profesor, el e o personal de administraci´n, el jefe de estudios y el director del centro. o 6.7 Comentarios bibliogr´ficos a Las bases de datos constituyen, ya se ha dicho, un area de directa aplicaci´n ´ o en muy diversos campos del mundo empresarial. Pero tampoco puede negarse
    • 166 Cap´ ıtulo 6. Bases de datos la contribuci´n de los SGA, que tambi´n han evolucionado considerablemente, o e ofreciendo un elevado nivel, muy cercano a los problemas reales, proporcionando un ambiente sencillo, apto para su uso por no profesionales de la inform´tica. a Un ejemplo de SGA es el dBase, cuyo reducido coste, sencillo manejo y escasos requerimientos f´ısicos la hacen tremendamente asequible. Entre los numerosos libros que se han escrito sobre ella, encontramos en [Bye90] una referencia b´sica y pr´ctica de la versi´n III plus. a a o Entre las bases de datos relacionales que funcionan en PC’s bajo DOS, deben mencionarse tambi´n Oracle y DB2/2. Aunque su medio principal son los e entornos grandes, es posible usarlas en microcomputadores con fines educativos (lo que contribuye por otra parte a su difusi´n), as´ como en la fase de desarrollo. o ı En [MW83] se introducen informalmente los conceptos b´sicos de las bases de a datos relacionales, revis´ndose igualmente algunas de amplia difusi´n. a o Posiblemente, SQL es el lenguaje de consulta de bases de datos m´s exten- a dido en la actualidad (DB2, Oracle, Informix, Arity, RDB, etc.) En [HH89] se presenta este lenguaje, desde su fundamentaci´n en la l´gica del primer orden o o hasta su utilizaci´n en algunos SGBD comercializados. o Entre los numerosos textos sobre esta tem´tica, indicamos [KS93], [Dat93] a y [MP93], muy completos y actualizados. En los a˜os noventa ha surgido un nuevo enfoque de bases de datos, el de n las orientadas al objeto, que est´ despertando un vivo inter´s y tiene una gran a e y r´pida acogida. [SH90] es un estudio comparado de sus principios con los del a modelo relacional.
    • Cap´ ıtulo 7 Historia de los instrumentos de c´lculo a 7.1 Precursores de los computadores digitales . . . . . . . . . . . . 167 7.2 Nacimiento de los computadores . . . . . . . . . . . . . . . . . 171 7.3 Evoluci´n de los lenguajes y de la metodolog´ o ıa . . . . . . . . . 175 7.4 Tecnolog´ actual, tendencias y perspectivas . . ıa . . . . . . . . . 176 7.5 Comentarios bibliogr´ficos . . . . . . . . . . . . a . . . . . . . . . 179 El nacimiento de la Computaci´n, tal como la vemos hoy d´ es re- o ıa, cient´ ısimo (apenas tiene medio siglo de edad), e incluso est´ en pleno a desarrollo; por eso, junto al inter´s que despierta el origen de los ins- e trumentos de c´lculo y la inform´tica, surge la necesidad de conocer, a a siquiera someramente, su alcance en la actualidad, as´ como la de ima- ı ginar las expectativas de futuro previsibles. 7.1 Precursores de los computadores digitales 7.1.1 La antig¨ edad u Desde que los hombres aprendieron a contar han necesitado apoyarse en el c´lculo para manipular cantidades y buscar m´todos para facili- a e tarlo. Estos m´todos fueron bastante rudimentarios hasta que los sabios e
    • 168 Cap´ ´ ıtulo 7. Historia de los instrumentos de calculo y astr´nomos hind´es recogieron la herencia greco-babil´nica inventando o u o la numeraci´n posicional actual. o Con el desarrollo de esos m´todos, fue necesario anotar n´meros (ya e u fueran considerados datos, cantidades auxiliares o resultados finales), apareciendo as´ los primeros instrumentos de c´mputo: el uso de los ı o dedos con tal objeto condujo a las primeras t´cnicas de c´lculo digital; y e a parecida finalidad tuvo el uso de piedras (calculi, t´rmino latino del que e procede la palabra c´lculo) entre los romanos, el de los nudos (quipa) a sobre una cuerda, o las muescas practicadas por diversos pueblos sobre varas de madera. Desde entonces, los avances se han debido a progresos en los m´todos, e en los instrumentos y en la integraci´n de ambos. o Dos utensilios de esta ´poca merecen ser citados: la m´quina anal´- e a o gica de Antic´ıteros, precursora de los calendarios astron´micos bizanti- o nos; y especialmente el ´baco, que apareci´ entre el tercer y el primer a o milenio a. C., y puede ser considerado como la primera m´quina digital, a ya basada en la numeraci´n posicional. o 7.1.2 Antecedentes del c´lculo mec´nico a a Los aut´matas de reloj que todav´ adornan los campanarios de las o ıa iglesias medievales (a partir de finales del s. XIII) son automatismos mec´nicos dise˜ados para reproducir una secuencia fija de movimientos. a n Precisamente se les ha llamado aut´matas de programa interior para o expresar as´ que la serie de sus movimientos est´ intr´ ı a ınsecamente descrita en su maquinaria. 7.1.3 La m´quina de Pascal a Hacia la mitad del s. XVII, Pascal construy´ una calculadora, capaz o de sumar y restar, bas´ndose en la pieza fundamental de los engranajes a de los molinos: la rueda dentada. El funcionamiento de la m´quina de a Pascal puede compararse al de un cuentakil´metros: cada rueda posee o diez posiciones y, a cada vuelta, provoca en la siguiente un arrastre de una posici´n. o
    • 169 7.1. Precursores de los computadores digitales Son directos descendientes de la m´quina de Pascal las m´quinas a a electromec´nicas de oficina, hoy ya en desuso, y las UAL de los actuales a computadores, cambiando las ruedas dentadas por circuitos electr´nicos. o En 1673, Leibnitz perfeccion´ la m´quina de Pascal, incorpor´ndole o a a la multiplicaci´n (por adici´n repetida del multiplicando en diferentes o o o ´rdenes decimales) y la divisi´n. o Las rudimentarias operaciones que facilitaban estos aparatosos ins- trumentos no compensaban su costosa construcci´n. Por ello, los pro- o gresos consistieron en perfeccionamientos menores hasta finales del siglo XIX, en que se supo incorporar a las m´quinas de c´lculo una aportaci´n a a o procedente de la industria textil. 7.1.4 La m´quina de Babbage a Las m´quinas de Pascal y Leibnitz se consideran de programa exte- a rior, debido a que las instrucciones son aportadas por el hombre junto con los datos, como ocurre con las calculadoras m´s simples. No obs- a tante, sus instrucciones son demasiado simples como para poder consi- derarse un programa. Esta noci´n apareci´ cabalmente con la m´quina o o a de Jacquard, mec´nico franc´s que en 1790 concibi´ la idea de un telar a e o autom´tico, capaz de tejer sus dibujos obedeciendo secuencias de ins- a trucciones previamente registradas en tarjetas perforadas. El telar de Jacquard fue construido en 1800, y ha revolucionado la industria textil, pero el inter´s que tiene para nosotros es la aportaci´n del verdadero e o concepto de programa exterior, tal como lo entendemos actualmente. En el s. XIX, C. Babbage concibi´ su M´quina Anal´ o a ıtica (1834), ca- paz de seguir las secuencias de instrucciones proporcionadas desde el ex- terior (como los datos), previamente registradas en tarjetas perforadas. El modus operandi de la m´quina de Babbage consist´ en ir leyendo a ıa tarjetas (descriptoras de operaciones) y ejecut´ndolas sucesivamente. a La gran aportaci´n de Babbage consiste en reunir las dos siguientes o caracter´ ısticas: • la flexibilidad de las calculadoras de Pascal y Leibnitz, que operan sobre distintos datos, pero carecen de automatismo, estando su
    • 170 Cap´ ´ ıtulo 7. Historia de los instrumentos de calculo velocidad siempre limitada por la lentitud de introducir los datos y las operaciones • el automatismo de los aut´matas de reloj, que no requieren la in- o tervenci´n humana, por lo que funcionan sin interrupci´n, aunque o o carecen de flexibilidad, ya que cada secuencia de movimientos re- quiere el dise˜o de una m´quina distinta. n a Babbage no pudo terminar la construcci´n de su m´quina de diferen- o a cias. Repetidamente se ha sostenido que la complejidad de esta m´quina a rozaba probablemente los l´ımites de la mec´nica; sin embargo, estudios a recientes [Swa93] demuestran que su dise˜o era completamente viable. n En el dise˜o de la m´quina de diferencias se definen los organos n a ´ esenciales de cualquier sistema computacional actual: Entrada de instrucciones y datos Almac´n e memoria Unidad de Control con su actual cometido Molino calculador, U.A.L. Salida con su actual cometido Por ello se le ha llamado el “Padre de la Computaci´n moderna”.1 o 7.1.5 La tabulaci´n mec´nica o a El desarrollo de los estados modernos fue lo que determin´ la nece- o sidad de procesar grandes vol´menes de datos: siguiendo un mandato u constitucional en EE.UU., era necesario realizar un censo de la poblaci´no cada diez a˜os. En 1886 se hizo patente la imposibilidad de obtener los n resultados del censo de 1880 antes de 1890. Consciente de esta situaci´n, o Hollerit, funcionario de la oficina de censos, ide´ un sistema de tabu- o laci´n de los datos basado en tarjetas perforadas similares a las del telar o de Jacquard. 1 Entre los muchos campos que abarc´ Babbage citamos los primeros m´todos que o e posteriormente originaron la Investigaci´n Operativa. o
    • 171 7.2. Nacimiento de los computadores Con su sistema, Hollerit consigui´ procesar el censo de 1890 en la o cuarta parte del tiempo requerido para el de 1880. Su m´todo fue tan e eficiente que abandon´ la Oficina de Censos, e inaugur´ una compa˜´ de o o nıa desarrollo de m´quinas electromagn´ticas (incorporando a su invento los a e avances en electromec´nica y electricidad, construidos para perfeccionar a el tel´fono) que fue la precursora de la actual IBM. e Con el desarrollo de los computadores, las tarjetas perforadas pasa- ron a ser uno de los principales soportes de la informaci´n, situaci´n que o o perdur´ hasta finales de los a˜os setenta. o n 7.2 Nacimiento y evoluci´n de los o computadores digitales En la primera mitad del siglo XX, gracias a los avances en tecnolog´ ıa electr´nica, se crearon las primeras calculadoras electromec´nicas, que o a funcionaban a base de rel´s. e Al poseer los rel´s dos estados (abierto y cerrado), constituyen el ele- e mento ideal para representar los dos d´ ıgitos de la numeraci´n binaria (0 o y 1), y tambi´n los dos valores l´gicos (verdadero y falso) del algebra de e o ´ Boole. Por ello, los rel´s pueden considerarse elementos de memoria ca- e paces de albergar resultados parciales. Adem´s, estos instrumentos eran a capaces de seguir secuencias de instrucciones almacenadas previamente sobre tarjetas perforadas. Los primeros computadores que funcionaron a base de tecnolog´ ıa el´ctrica fueron: e 1. En 1943, el Harvard Mark I, con rel´s electromagn´ticos. e e 2. En 1943, el Colosus I, considerado como el primer computador electr´nico, a base de (200) v´lvulas, dise˜ado durante la II Gue- o a n rra Mundial para descifrar los mensajes del encriptador alem´n a Enigma.
    • 172 Cap´ ´ ıtulo 7. Historia de los instrumentos de calculo 3. En 1946, el ENIAC,2 tambi´n a base de (18.000) v´lvulas, dise˜ado e a n para confeccionar tablas bal´ ısticas. A partir de los rel´s, la lenta mec´nica fue poco a poco desplazada e a por la electricidad: el tubo de rayos cat´dicos, el transistor, los circuitos o impresos y m´s tarde integrados, etc. a En realidad, estas m´quinas estaban programadas al m´s bajo nivel a a (en t´rminos de direcciones f´ e ısicas de memoria, etc.) para desempe˜ ar n tareas muy espec´ ıficas. Por ello, carec´ por completo de versatilidad, ıan debido a la dificultad que entra˜aba reprogramarlas. n 7.2.1 El modelo de von Neumann En 1945, von Neumann dio el paso definitivo, incorporando a las m´quinas de rel´s de entonces los dos siguientes conceptos: a e 1. Programa registrado, utilizando la memoria del calculador para almacenar el programa de instrucciones junto con los datos. 2. Ruptura (condicional) de secuencia, es decir, capacidad autom´ti- a ca de decisi´n: dependiendo de cierto valor se ejecutar´ una parte o ıa del programa u otra. En 1945, von Neumann defini´ su modelo de computador,3 que es en o esencia el que funciona en nuestros d´ con dos caracter´ ıas, ısticas: 1. La secuencialidad en la transmisi´n y tratamiento de los datos o 2. La codificaci´n de instrucciones mediante impulsos electromagn´- o e ticos, reemplazando el cableado 7.2.2 Generaciones tecnol´gicas o Las m´quinas basadas en el modelo de von Neumann se comercia- a lizaron en los a˜os cincuenta (1952-55) y, desde entonces, la carrera ha n sido y sigue siendo imparable. De esta d´cada parten las siguientes ge- e neraciones tecnol´gicas: o 2 Electronic Numerical Integrator And Calculator. 3 Tambi´n conocido como M´quinas de von Neumann. e a
    • 173 7.2. Nacimiento de los computadores Primera generaci´n o Las v´lvulas electr´nicas desplazaron a los rel´s, y los computadores a o e adquirieron velocidad y potencia. Citamos entre los computadores de la primera generaci´n el ENIAC, terminado en 1946, y el UNIVAC,4 pri- o mera m´quina con la arquitectura de von Neumann. El modus operandi a era el siguiente: • carga del programa y los datos, previamente perforados (T1 ) • ejecuci´n (T2 ) o • salida de los resultados (T3 ) El tiempo total invertido es la suma T1 + T2 + T3 . Las fases pri- mera y tercera se llaman tiempos de ocio del procesador, porque en ellos permanec´ inactivo. ıa Segunda generaci´n o El aumento de potencia se debe a una innovaci´n de los laboratorios o Bell en 1948: el transistor. En cuanto al modo de trabajar, se introdujo la simultaneidad de las operaciones de c´lculo con las de carga y salida, a reduci´ndose los per´ e ıodos de ocio del procesador. Para aumentar la velocidad de las operaciones de carga/salida, que retrasaban todo el proceso, se introdujo el uso de cintas magn´ticas, e m´s r´pidas que las tarjetas perforadas. Este modo de trabajar se llama aa off-lining. Tercera generaci´n o Tecnol´gicamente, los avances en velocidad y potencia se deben a la o incorporaci´n de circuitos integrados (1952) y memorias de semiconduc- o tores (1971). 4 UNIVersal Automatic Computer.
    • 174 Cap´ ´ ıtulo 7. Historia de los instrumentos de calculo En esta generaci´n el trabajo se caracteriza por explotar la simul- o taneidad del procesamiento con las operaciones de entrada/salida me- diante la multiprogramaci´n, consistente en que varios programas co- o existen en memoria, y cuando uno de ellos debe realizar una operaci´n o de entrada/salida, el procesador no se detiene, sino que se dedica a otro programa. As´ la UCP nunca est´ ociosa habiendo trabajo por hacer, ı, a facilit´ndose adem´s la asignaci´n de prioridades a los programas que se a a o encuentran a la espera. Cuarta generaci´n o Se incorporan nuevas tecnolog´ de fabricaci´n y de integraci´n de ıas o o los componentes f´ ısicos entre s´ (VLSI: Very Large Scale of Integration). ı En cuanto a la explotaci´n, se generalizan: o • el teleprocesamiento: extensi´n del sistema de carga y proceso o a terminales remotas, sacando partido de la asignaci´n de prio- o ridades. • los sistemas interactivos o conversacionales: los usuarios intervie- nen en el desarrollo de las sucesivas etapas, lo que trae consigo una mayor flexibilidad en la modificaci´n y puesta a punto de o programas. • el tiempo compartido, con lo que se mejora el tiempo medio de respuesta. • esta generaci´n se corresponde cronol´gicamente con la difusi´n de o o o los llamados computadores personales.
    • 175 7.3. Evolucion de los lenguajes y de la metodolog´ ´ ıa 7.3 Evoluci´n de los lenguajes y de la o metodolog´ıa Mientras tanto, a partir de los a˜os cincuenta, los lenguajes tambi´n n e emprenden la carrera de su evoluci´n particular: para evitar la codifi- o caci´n de programas a bajo nivel, es preciso que sea la m´quina la que o a adquiera lenguajes pr´ximos al humano. o A la aparici´n del FORTRAN (FORmula TRANslator system) si- o guieron el Algol y el Cobol, intentando acercarse a un lenguaje univer- sal. La avalancha posterior de lenguajes y dialectos demostr´ que esas o tentativas de universalidad resultaron vanas. Por otra parte, la actividad de la programaci´n experiment´ en los o o a˜os sesenta un desarrollo mucho m´s r´pido que las t´cnicas emplea- n aa e das en ´l; esta cr´ e ıtica situaci´n se conoce como crisis del software. No o exist´ una metodolog´ de la programaci´n: cada programador desarro- ıa ıa o llaba sus propios m´todos o “trucos” para programar, y se consideraba e a la programaci´n m´s como un arte que como una t´cnica. Muy pronto o a e surgi´ la necesidad de sistematizar la programaci´n, desarrollando he- o o rramientas y h´bitos de dise˜o met´dicos y disciplinados para conseguir a n o que los programas fueran correctos, eficientes y mantenibles. La tesis de la programaci´n estructurada y las aportaciones de Dahl, Dijkstra, o Hoare [DDH72] y el propio Wirth, vinieron a conferir a la programaci´no un car´cter de disciplina. a Aparece as´ la programaci´n estructurada y modular y comienzan a ı o aplicarse t´cnicas de dise˜o de algoritmos como el m´todo de los refi- e n e namientos sucesivos. En este contexto nace el lenguaje Pascal, que fue creado con el prop´sito de ense˜ar a programar de una forma met´dica y o n o disciplinada. De hecho, se considera como un lenguaje ideal para entrar en contacto con la programaci´n, por lo que es el primero que muchas o universidades vienen ense˜ando durante a˜os. Los nuevos lenguajes de n n programaci´n que aparecen a partir de los a˜os setenta incorporan estas o n t´cnicas, facilitando su desarrollo y aplicaci´n. e o Posteriormente, los lenguajes de programaci´n han seguido evolucio- o nando, y paralelamente las t´cnicas de desarrollo de algoritmos. En el e
    • 176 Cap´ ´ ıtulo 7. Historia de los instrumentos de calculo cap´ ıtulo 5 se han recogido algunos de los modelos de programaci´n m´s o a empleados. 7.4 Tecnolog´ actual, tendencias y ıa perspectivas A partir de la aparici´n del computador personal al principio de los o a˜os ochenta, la inform´tica ha dejado de ser un coto cerrado de un n a grupo restringido de especialistas y se ha popularizado, alcanzando a usuarios sin ning´n tipo de conocimientos previos en este ´rea. u a Hoy en d´ la Inform´tica est´ difundida por un sinf´ de sectores: ıa, a a ın las finanzas, la gesti´n, la investigaci´n, el control de procesos industria- o o les (dise˜o, concepci´n y fabricaci´n asistidas por computador), la edu- n o o caci´n, la edici´n, la composici´n musical, etc., y el n´mero de usuarios o o o u que utilizan la inform´tica en su trabajo o en su ocio sigue aumentando. a En los pa´ desarrollados, cada d´ est´ m´s cercana la predicci´n ıses ıa aa o de “un computador en cada puesto de trabajo y en cada hogar”. Por ello, se hace necesario facilitar la relaci´n entre el usuario y el o computador y disminuir el tiempo de aprendizaje, y para lograrlo se recurre a modelos m´s intuitivos que muestran al computador como a un escritorio o mesa de trabajo, a las aplicaciones como tareas y los ficheros de datos como carpetas de documentos, mediante entornos de tipo gr´fico (4.2.5). a A su vez, se ha dado una notable evoluci´n tecnol´gica: los com- o o putadores son cada vez m´s potentes y m´s baratos. Se puede afirmar a a que esta evoluci´n es m´s r´pida en el campo del hardware que en el o aa software. Aparecen computadores con enormes posibilidades, pero los programas capaces de aprovecharlas llegan con varios a˜os de retraso. n La mayor capacidad de proceso est´ permitiendo la entrada de la a inform´tica en campos en los que su presencia era limitada, y la creaci´n a o de actividades enteramente nuevas, como son: 1. Visi´n artificial: reconocimiento de formas o
    • 177 7.4. Tecnolog´ actual, tendencias y perspectivas ıa 2. Tratamiento de im´genes: correcci´n de aberraciones y defectos a o o ´pticos. 3. Realidad virtual: s´ ıntesis de im´genes virtuales estereosc´picas, a o pel´ ıculas virtuales. 4. Comunicaciones: enlaces mediante m´dem, correo electr´nico, es- o o tablecimiento de redes integradas de comunicaciones (datos, sonido y v´ ıdeo). 5. Juegos: de rol, arcade, ajedrez. 6. Simulaci´n de procesos o 7. Multimedia: procesamiento de datos, sonido y v´ ıdeo integrados. De hecho, todo el mundo coincide en calificar este enorme desarro- llo de la inform´tica como una verdadera revoluci´n de la informaci´n. a o o Como tal revoluci´n, tiene importantes repercusiones de ´ o ındole econ´-o mica y social. La utilizaci´n de la inform´tica genera un aumento de o a la productividad y de la calidad de la producci´n. En consecuencia, las o empresas se ven obligadas a informatizarse para poder competir en el mercado. El aumento de la productividad puede significar tambi´n un e aumento del desempleo o del ocio. Para imaginar c´mo ser´n los computadores del futuro, quiz´s lo m´s o a a a razonable sea identificar las limitaciones de los computadores actuales, e imaginar sus formas de superaci´n. o Por lo pronto, la naturaleza f´ ısica de los componentes electr´nicos los o limita en tama˜o y en velocidad. De ah´ que la investigaci´n se oriente n ı o hacia la superaci´n de las configuraciones tradicionales (basadas en el o modelo de von Neumann) por otras arquitecturas y redes m´s avanzadas a (paralelas, neuronales, ...) llamadas a veces “arquitecturas de flujo de datos” (v´ase el cap´ e ıtulo 3). En ellas, un programa no se compone de instrucciones que se ejecutan “de arriba abajo”, sino de segmentos que pueden “resolverse” en cuanto los datos precisos est´n disponibles. Los e datos fluyen a trav´s de complicadas redes, compitiendo por acaparar la e
    • 178 Cap´ ´ ıtulo 7. Historia de los instrumentos de calculo atenci´n de los recursos (principalmente los procesadores, que trabajan o simult´neamente). a 7.4.1 Inteligencia artificial El ambicioso objetivo que se persigue es dotar a los computadores del futuro con una serie de capacidades que se engloban bajo el t´rmino e gen´rico de Inteligencia Artificial. Esta disciplina se ocupa en la actua- e lidad de las siguientes areas de investigaci´n: ´ o • lenguajes naturales: s´ ıntesis del habla, identificaci´n del lenguaje o hablado, traducci´n autom´tica o a • razonamiento y aprendizaje autom´ticos, sistemas expertos, de- a mostraci´n autom´tica o a • programaci´n autom´tica o a Todas esas capacidades requieren, en general, un mayor estudio del proceso cognitivo. En particular, todas ellas necesitan sustituir el empleo de datos por el de conocimientos, lo que plantea el dif´ problema de ıcil su representaci´n. o 7.4.2 Las comunicaciones Otro aspecto de la inform´tica con tremendo auge en la actualidad a es el de las comunicaciones, ya que se abre la posibilidad de acceder a la informaci´n de origen remoto, tratarla autom´ticamente y enviar los o a resultados a su lugar de origen. Para ello se crean redes de comunicaciones de mayor o menor cober- tura, desde una sala o un edificio hasta redes nacionales o mundiales. Las aplicaciones de la teleinform´tica est´n cada d´ m´s extendidas a a ıa a y ya casi empiezan a parecernos algo natural. Como ejemplos podemos citar desde el uso de los cajeros autom´ticos hasta la posibilidad de a efectuar reservas de avi´n o de hotel desde puntos remotos, la consulta o del cat´logo de una biblioteca en una ciudad de otro pa´ el correo a ıs, electr´nico, etc. o
    • 179 ´ 7.5. Comentarios bibliograficos 7.5 Comentarios bibliogr´ficos a [JM90] y [Ber86] son dos buenas recopilaciones, con car´cter general, so- a bre la historia pasada de los instrumentos de c´lculo, desde la calculadora de a Pascal hasta nuestros d´ [Ber86] es extraordinariamente entretenido, con un ıas. buen n´mero de an´cdotas y curiosidades sobre los padres de la computaci´n u e o moderna. Especialmente interesantes son las citas de escritos de von Neumann recogidas en ´l. e En [Swa93] se presentan los avatares en que se vio envuelta la construcci´n o de la m´quina anal´ a ıtica de Babbage, demostrando que el proyecto era viable, a pesar de no verse finalizado: En este art´ ıculo se describe la construcci´n de la o m´quina anal´ a ıtica con motivo del segundo centenario del nacimiento de Charles Babbage, y de acuerdo con sus planos originales. Aunque los computadores digitales actuales tienen su origen en el modelo de von Neumann (1945), la invenci´n del primer computador electr´nico es o o anterior, y se debe a J. V. Atanasoff, que construy´ el primer computador o digital entre 1937 y 1942. De hecho, es posible que los creadoes del ENIAC copiaran algunas de sus ideas ([Mac88]). Sobre computaci´n avanzada en la actualidad y perspectivas de futuro de o la inform´tica pueden consultarse [Com87] y [Sim85]. [La 91] trata sobre este a mismo tema, en relaci´n con las comunicaciones. o
    • Ap´ndice A e Introducci´n al DOS o El dos es, hoy en d´ el sistema operativo m´s difundido para com- ıa, a putadores PC de IBM y compatibles. Dada la gran difusi´n de ´stos, o e se comprende la importancia que tiene conocer el dos. Aunque los PCs pueden comunicarse con otros a trav´s de redes, su e modo habitual de trabajar es aut´nomo, por lo que el dos es un sistema o operativo monousuario. Su cometido (v´ase el cap´ e ıtulo 4) consiste en gestionar los recursos del sistema, controlando el uso de los dispositivos (como las unidades de disco, la impresora, el rat´n), administrando la o memoria principal y facilitando la ejecuci´n de programas y la organi- o zaci´n de archivos dentro de los discos. o El dos es en realidad un programa (o mejor dicho un conjunto de programas) grabado en un disco.1 Cuando se enciende un equipo, se empieza cargando este programa en la memoria principal y se efect´anu las tareas de puesta en marcha (v´ase la secci´n A.3); entonces entra en e o funcionamiento un int´rprete de mandatos, que espera las ´rdenes del e o usuario (v´ase la secci´n A.2), y las va ejecutando sucesivamente. e o Asumimos en adelante una configuraci´n con disco fijo (duro) en el o que se encuentra este programa de arranque del dos, que es actualmente el caso m´s habitual. a 1 De hecho, ´se es el significado de las siglas que forman su nombre: “Disk Operating e System”, que quiere decir en ingl´s Sistema Operativo de Disco. e
    • 182 ´ ´ Apendice A. Introduccion al DOS A.1 Organizaci´n de recursos o A.1.1 Principales dispositivos Durante el trabajo con el dos, a veces necesitamos referirnos expl´ ı- citamente a los perif´ricos; para ello, se emplean los siguientes t´rminos e e en el lenguaje del dos: identificador perif´rico e nulo nul: consola = teclado + monitor con: a: b: c: . . . unidades de disco lpt1: = prn: impresora lpt2: . . . otros dispositivos en paralelo com1: = aux: dispositivo en serie com2: . . . otros dispositivos en serie Todos los dispositivos pueden nombrarse omitiendo los dos puntos finales, a excepci´n de las unidades de disco que deben llevarlos obliga- o toriamente. A.1.2 Archivos Un archivo del dos no es m´s que un documento, aunque en vez de a estar representado por una secuencia de letras escritas sobre papel, con- siste en una secuencia de bytes (que representan caracteres igualmente) grabados sobre una zona de un disco magn´tico. Dependiendo del con- e tenido de los archivos, desde el punto de vista del dos, algunos archivos son “de datos” y otros son “programas”, escritos en lenguaje de m´quina a o del dos. Los archivos se nombran mediante palabras, llamadas identificadores, formadas por letras, d´ ıgitos y los caracteres siguientes: ~!@#$%^&()-_{}’
    • 183 ´ A.1. Organizacion de recursos Los identificadores de los archivos tienen dos partes: nombre (de un m´ximo de ocho letras) y extensi´n (de un m´ximo de tres), siendo esta a o a ultima opcional. Al escribir el identificador de un archivo, estas dos ´ partes se separan mediante un punto. Usando la notaci´n EBNF (v´ase o e el cap´ ıtulo 5), esta descripci´n puede expresarse as´ o ı: identificador ::= nombre[.extensi´n] o Ateni´ndonos a estas reglas, conviene elegir los nombres de los archivos e relacionados con su contenido. En cuanto a las extensiones, su elecci´n o depende del tipo de archivo; las m´s usuales son las siguientes: a extensi´n o uso habitual Programas ejecutables com exe Lotes de ´rdenes (v. A.2.5) o bat Programas del sistema sys C´digo fuente de programas o bas pas cob en Basic, Pascal o Cobol Archivos de texto txt L´gicamente, los identificadores usados para representar archivos no o pueden coincidir con los identificadores propios de dispositivos. Con frecuencia, se necesita realizar ciertas operaciones con un grupo de archivos m´s o menos grande. Si esos archivos fueron bautizados si- a guiendo ciertas pautas, es posible identificarlos gen´ricamente mediante e un patr´n o plantilla de archivo. Para ello, se usan los caracteres co- o mod´ * y ?, que representan respectivamente cualquier cadena de ca- ın, racteres como terminaci´n del nombre o extensi´n, y un car´cter en o o a cualquier posici´n del identificador. Por ejemplo: o Plantilla Interpretaci´n o archivo.com, archi-1.com, arch.com,. . . arch∗.com c92-93.txt, c93-94.txt, c9a-9f.txt,. . . c9?-9?.txt ∗.exe Todos los archivos con esa extensi´n o ∗.∗ Todos los archivos
    • 184 ´ ´ Apendice A. Introduccion al DOS A.1.3 Directorios El n´mero de archivos grabados en un disco llega con frecuencia a u ´ ser enorme, por lo que se hace necesario clasificarlos. Este es el come- tido de los directorios y subdirectorios, algo as´ como compartimentos ı y compartimentos dentro de compartimentos que permiten organizar jer´rquicamente los archivos de un disco. a En general, los identificadores de los directorios siguen las mismas reglas que los archivos, aunque en el caso de los directorios es bastante frecuente omitir la extensi´n. Adem´s de los identificadores corrientes, o a existen s´ ımbolos especiales para indicar las siguientes posiciones: identificador posici´n o el directorio principal o ra´ ız el directorio actual . el directorio “padre” .. La comparaci´n de los directorios con compartimentos se refleja gr´- o a ficamente en el ejemplo de la figura A.1, donde los identificadores de los directorios y subdirectorios se˜alan puertas (de entrada), y los archivos n est´n representados directamente por sus identificadores. Otro modo a m´s sencillo e igualmente util de representarlos es como ´rboles, seg´n a ´ a u se muestra en la figura A.2. Es importante tener en cuenta que los archivos contenidos en cada unidad de trabajo est´n organizados en forma de arbol, por lo tanto, a ´ cada unidad tiene su propio directorio ra´ y en todo momento cada ız unidad tiene un directorio actual. Adem´s, es posible referirse a cualquier directorio o conjunto de ar- a chivos indicando una ruta de acceso desde la posici´n actual, esto es, el o 2 (v´ase 4.2.2). Con este fin, el s´ directorio de trabajo e ımbolo sirve para concatenar los pasos hacia dicha posici´n. o As´ por ejemplo, considerando que el disco C: est´ organizado seg´n ı a u la estructura anterior, es posible referirse a los archivos ejerci.tex y examen.tex desde diversos lugares: 2 Esta posici´n se conoce frecuentemente como directorio “por defecto”, a causa de o una traducci´n dudosa de su nombre default directory, en ingl´s. o e
    • 185 ´ A.1. Organizacion de recursos <escuela> command.com autoexec.bat grupo-C.dbf config.sys ejerci.tex <juegos> examen.tex tetris.exe <cartas> carta-2.txt keyb.com carta-1.txt keyboard.sys win.bat Figura A.1. • Desde C: escuela*.tex • Desde C:escuela *.tex • Desde C:escuelacartas ..*.tex • Desde C:escuelajuegos ..escuela*.tex
    • 186 ´ ´ Apendice A. Introduccion al DOS command.com config.sys autoexec.bat keyb.com keyboard.sys win.bat <escuela> grupo-C.dbf ejerci.tex examen.tex <cartas> carta-1.txt carta-2.txt <juegos> tetris.exe Figura A.2.
    • ´ 187 A.2. Ordenes del DOS • Desde cualquier lugar del disco C: escuela*.tex • Desde cualquier lugar, incluso desde otro disco: C:escuela*.tex A.1.4 Prompt El prompt 3 es un indicador con el que el dos expresa que est´ es- a perando nuestras ordenes, listo para ejecutarlas. El dos puede indicar ´ esta disposici´n de diversas formas, a nuestro capricho, pero la m´s ex- o a tendida consiste en recordar el disco de trabajo y la posici´n, dentro de o ´l, en ese momento; suele finalizarse con el car´cter >. Por ejemplo, el e a prompt C:ESCUELACLASES> indica que la posici´n de trabajo actual es el subdirectorio CLASES, del o directorio ESCUELA, en el disco C:. A la derecha del prompt aparece el cursor, bajo nuestro control, para escribir la orden que deseemos. ´ A.2 Ordenes del DOS El sistema dos ofrece un int´rprete de mandatos que permite al e usuario la comunicaci´n con el computador. o Empecemos por poner unos cuantos ejemplos de ´rdenes, junto con o su funcionamiento. En adelante, usaremos letra de molde para reprodu- cir el intercambio de informaci´n entre computador y usuario; lo escrito o por el computador aparece en letra vertical y lo escrito por el usuario en letra oblicua: 3 Aunque en espa˜ol significa incitar o incitaci´n, s´lo usamos el t´rmino ingl´s, sin n o o e e traducir.
    • 188 ´ ´ Apendice A. Introduccion al DOS C:>CD pascal C:PASCAL>A: A:>Dir *.CHI El volumen en la unidad A no tiene etiqueta El n´mero de serie del volumen es 335E-11EF u Directorio de A: ENTROPY CHI 1633 21/06/93 9:08 REGLAMEN CHI 2204 27/06/93 20:07 JUNIO-93 CHI 3425 29/06/93 17:03 3 Archivo(s) 176640 bytes libres A:>FORMAT B: Comando o archivo no se encuentra A:>C:DOSFORMAT B: ... ... ... A:>CLS Debe advertirse que en el lenguaje del dos no se distingue entre las letras may´sculas y las min´sculas. Esto afecta a los identificadores (ya u u sea para dispositivos, archivos o directorios), as´ como a las ´rdenes que ı o estudiaremos. Por otra parte, los comandos del dos pueden agruparse en dos ca- tegor´ıas: ´rdenes (internas) del dos y programas (externos). El dos o conoce las primeras, y es capaz de interpretarlas y ejecutarlas en cual- quier momento; tambi´n es posible ordenar la ejecuci´n de un programa e o tras el prompt pero, para ejecutarlo, el dos debe leer el disco para pa- sarlo a la memoria del computador. Por lo tanto, s´lo es posible ejecutar o programas grabados en un disco accesible por el dos. Por ejemplo: el cambio de unidad, las ordenes CLS, DIR y CD son ´ o ´rdenes internas; FORMAT en cambio es un programa. El inter´s de esta e observaci´n consiste en que, cuando se ordena un comando externo o o programa, para que ´ste pueda ejecutarse deber´ darse alguna de las e a siguientes circunstancias:
    • ´ 189 A.2. Ordenes del DOS - el programa deber´ estar en la unidad y directorio de trabajo ac- a tual, o - se indicar´ su posici´n, para que el dos pueda encontrarlo, o a o - estar´ en alguna de las posiciones conocidas de antemano por a el dos en los que busca las ´rdenes de uso frecuente (v´ase la o e secci´n A.2.3). o En los siguientes apartados se describir´n los comandos del dos m´s a a usuales. Interesa saber de cada uno si es externo o interno, su prop´sito o y su sintaxis correcta. Usaremos las reglas EBNF (introducidas en el cap´ ıtulo 5) escribiendo los s´ ımbolos terminales con letra vertical y los no terminales con letra oblicua, en vez de distinguirlos con may´sculas u y min´sculas, o de usar los metas´ u ımbolos < y >, por tener ´stos otro e cometido. As´ por ejemplo, podemos decir que la estructura general de las ı o ´rdenes del dos es la siguiente: comando [argumentos] [opciones] donde la primera palabra es el nombre del comando, y aparece siempre; los argumentos son los objetos que maneja la orden, frecuentemente ar- chivos o directorios, y no siempre aparecen (por ejemplo, la orden CLS no tiene argumentos); y las opciones son espec´ ıficas de cada comando, como /W, y alteran el funcionamiento del mismo. En estas descripciones sint´cticas aparecer´n con frecuencia los siguientes s´ a a ımbolos no termi- nales: • Unidad : A:, B:, C:, . . . • La [posici´n], opcional, se indica cuando procede, dando una uni- o dad de disco y/o un camino de acceso, bien desde el directorio ra´ ız (posici´n absoluta) o desde el (sub)directorio actual abierto en el o disco correspondiente (posici´n relativa): o [unidad][camino]
    • 190 ´ ´ Apendice A. Introduccion al DOS • Archivo(s), que muchas veces se expresar´n de forma gen´rica me- a e diante una plantilla o patr´n, usando los s´ o ımbolos comod´ın. • Las opciones, tales como /B, /S, . . . Por otra parte, muchas de las ordenes incluyen en su sintaxis partes ´ opcionales, frecuentemente un disco, una posici´n dentro de ´l o un o e conjunto de archivos. Cuando esas partes opcionales se omiten, se asume que se trata del disco de trabajo actual, del (sub)directorio abierto, de todos los archivos a la vista, etc. ´ A.2.1 Ordenes b´sicas a CLS (interna) • Prop´sito: Borra la pantalla, situando el prompt y el cursor en su o comienzo. • Sintaxis: CLS Cambio de unidad (interna) • Prop´sito: Establece una nueva unidad de trabajo. o • Sintaxis: unidad FORMAT (externa) • Prop´sito: Preparar un disco para ser usado por el dos, creando o el directorio (vac´ inicial. ıo) • Sintaxis: [posici´n]FORMAT unidad [opciones] o • Algunas de las opciones usadas con este comando son las siguientes: – /S, para transferir a un disco el sistema operativo, haciendo as´ posible iniciar el funcionamiento del dos con ese disco. ı – /V, para dar un nombre a un disco.
    • ´ 191 A.2. Ordenes del DOS A.2.2 Manejo de archivos DIR (interna) • Prop´sito: Proporciona informaci´n sobre: o o – la posici´n especificada, o – los archivos visibles en esa posici´n, o – las puertas (de acceso a directorios) a la vista, incluyendo el subdirectorio actual, desde la posici´n indicada, o – la memoria libre en una unidad. • Sintaxis: DIR [posici´n][archivo(s)] [/W][/P] o • Ejemplo: C:PASCAL-6> DIR /w El volumen en la unidad C tiene etiqueta BLAISE El n´mero de serie del volumen es 0F1E-18DF u Directorio de C:PASCAL-6 . .. TVISION TVDEMOS UTILS TURBO3 TURBO EXE UNZIP EXE README COM TURBO TPL TURBO TP TPC EXE TPTOUR EXE TPTOUR CBT TPTOUR1 CBT TPTOUR_P CBT TPTOUR CBT TPTOUR_U CBT README TURBO HLP TPC CFG NONAME00 PAS 22 Archivo(s) 5171200 bytes libres • Opciones – /P sirve para parar la relaci´n de p´gina en p´gina. o a a – Con la opci´n /W, s´lo se da el identificador de cada archivo o o y se aprovecha la pantalla a lo ancho, con lo que la relaci´n o ocupa menos l´ıneas.
    • 192 ´ ´ Apendice A. Introduccion al DOS COPY (interna) • Prop´sito: Copia uno o varios archivos, con el mismo nombre o o distinto; tambi´n se usa para transferir archivos hacia o desde un e dispositivo. • Sintaxis: COPY [posici´n][archivo(s)] [posici´n][archivo(s)] o o • Este comando tiene dos argumentos: el(los) archivo(s) fuente y el(los) archivo(s) destino; sin embargo, es frecuente omitir uno de ellos. Por ejemplo, las dos ´rdenes siguientes o C:> COPY autoexec.bat a: A:> COPY c:autoexec.bat tienen el mismo efecto. COMP (externa) • Prop´sito: Compara los contenidos de uno o varios pares de archi- o vos. • Sintaxis: [posici´n]COMP [posici´n][archivo(s)] [posici´n][archivo(s)] o o o DEL (interna) • Prop´sito: Borra un archivo o un grupo de ellos de un disco. o • Sintaxis: (ERASE | DEL) [posici´n][archivo(s)] o REN (interna) • Prop´sito: Renombra el identificador de un archivo o grupo de o ellos. • Sintaxis: (REN | RENAME) [posici´n][archivo(s)] [archivo(s)] o TYPE (interna)
    • ´ 193 A.2. Ordenes del DOS • Prop´sito: Muestra en la pantalla el contenido de un archivo. o • Sintaxis: TYPE [posici´n][archivo(s)] o PRINT (externa) • Prop´sito: Env´ un archivo a la impresora, coloc´ndolo en la cola o ıa a de impresi´n. o • Sintaxis: [posici´n]PRINT [posici´n][archivo(s)] [/C][/T] o o • Opciones – Con /C se cancela(n) de la cola el (los) archivo(s) especifica- dos. – /T cancela toda la cola de impresi´n o A.2.3 Manejo de directorios CD (interna) • Prop´sito: Cambia el directorio de trabajo actual. o • Sintaxis: (CHDIR | CD) [unidad]camino TREE (externa) • Prop´sito: Muestra la estructura de subdirectorios de un directorio o dado, de un modo muy similar al mostrado en la figura A.2. • Sintaxis: TREE [directorio] [/F] • Opciones – Con la opci´n /F se incluyen los archivos contenidos en cada o subdirectorio. MD (interna) • Prop´sito: Construye un nuevo subdirectorio. o
    • 194 ´ ´ Apendice A. Introduccion al DOS • Sintaxis: (MKDIR | MD) [unidad]camino RD (interna) • Prop´sito: Borra un subdirectorio, que debe estar vac´ o ıo. • Sintaxis: (RMDIR | RD) [unidad]camino PATH (interna) • Prop´sito: Establece rutas de b´squeda alternativas a la posici´n o u o de trabajo actual. • Sintaxis: PATH [posici´n];{posici´n}] o o A.2.4 Indicadores del sistema Durante el funcionamiento del dos existen unos cuantos datos de referencia, tales como el path, a las que se llama indicadores: • Date y time permiten conocer o alterar la fecha y la hora del sistema. Aunque su valor es actualizado constantemente por el propio computador, tambi´n el usuario puede establecer uno. e • Ver es la versi´n del dos en uso. o • Verify es un conmutador (con dos posiciones: on y off ) que, cuando est´ activo, indica al dos que compruebe las operaciones a de escritura de archivos. • Break es tambi´n un conmutador: cuando est´ activo (on), el dos e a comprueba frecuentemente si se producen interrupciones durante la ejecuci´n de programas. o • El prompt ya ha sido introducido. Por lo general, su aspecto y la informaci´n que proporciona se establece durante el arranque del o sistema (v´ase la secci´n A.3), aunque el usuario puede redefinirlo e o a su antojo haciendo que indique, por ejemplo, la hora del sistema.
    • 195 ´ A.3. Configuracion del DOS A.2.5 Procesamiento por lotes Cuando se necesita ejecutar repetidamente una secuencia de ´rdenes, o es posible definir un lote de ´rdenes (v´ase 4.1.2) (por ejemplo, la se- o e cuencia cd pascal, turbo y cd ..), agrup´ndolas bajo un nombre (como a pascal.bat, por ejemplo), de manera que baste con ordenar ese identi- ficador para que el dos lleve a cabo la secuencia, una a una: cd pascal pascal.bat ; turbo cd .. El identificador asociado a un lote de ordenes debe tener la extensi´n ´ o bat4 obligatoriamente. Sin embargo, en su posterior utilizaci´n puede o omitirse la extensi´n. o Como un lote de ordenes es un archivo de texto, puede construirse con ´ un editor cualquiera, o copi´ndolo directamente del teclado, mediante: a copy con: pascal.bat donde el retorno de carro representa el final de l´ ınea, y la combinaci´n o Ctrl+Z la marca del fin de archivo. En un archivo bat pueden usarse, adem´s de las ´rdenes usuales del a o dos, otras espec´ ıficas (ECHO, REM, PAUSE, GOTO, IF, FOR), con las que se pueden construir programas con gran flexibilidad. A.3 Configuraci´n del DOS o El elemento del sistema operativo de m´s bajo nivel es el BIOS: a el sistema b´sico de entrada y salida (del ingl´s, Basic Input/Output a e System). Se trata de un conjunto de rutinas situadas en la memoria ROM del computador que realiza tareas b´sicas como las pruebas de que a los perif´ricos est´n conectados o el programa para poder leer los ficheros e a del dos, bien del disco duro o bien de discos flexibles. Estas rutinas no son suministradas por el fabricante del sistema operativo sino que son 4 En ingl´s, batch significa lote. e
    • 196 ´ ´ Apendice A. Introduccion al DOS entregadas con el hardware, por lo que se suele utilizar la expresi´n o firmware para hacer referencia a este tipo de software introducido en la ROM. Ya se ha dicho que el dos est´ grabado en un disco. En efecto, a cuando se enciende el computador, el programa de la ROM extrae del disco un programa generador del dos que, en l´ ıneas generales, da los siguientes pasos, representados en la figura A.3: 1. Construye y carga en la memoria RAM la primera parte del sis- tema operativo, responsable de las operaciones de entrada y salida (BIOS ), as´ como de la gesti´n de archivos y directorios y de la ı o ejecuci´n de los programas (n´cleo). o u 2. Se busca en el disco un archivo llamado CONFIG.SYS y, si existe, se adoptan sus mandatos, estableciendo ciertos par´metros inicia- a les del dos e instalando algunos controladores de dispositivos, tal como veremos a continuaci´n. o 3. Se carga en la memoria el int´rprete de comandos; normalmente e es el programa COMMAND.COM, aunque en el archivo CONFIG.SYS podr´ haberse especificado otro. ıa 4. Finalmente, se busca en el disco el archivo AUTOEXEC.BAT y, si existe, se ejecuta este lote de ´rdenes. o Los archivos CONFIG.SYS y AUTOEXEC.BAT pueden ser modificados (o creados) por el usuario para configurar el funcionamiento del dos seg´n u sus necesidades, y obtener de ´l el m´ximo rendimiento. e a El siguiente ejemplo de archivo CONFIG.SYS (1) BREAK=ON (2) COUNTRY=34 (3) BUFFERS=25,8 (4) FILES=20 (5) SHELL=C:DOSCOMMAND.COM (6) INSTALL=C:DOSKEYB.COM SP,,C:KEYBOARD.SYS opera as´ ı:
    • 197 ´ A.3. Configuracion del DOS  ¨ Principio ©  c . . . c ..................... ......... ......... ......... ......... ........ ¿Existe no s´ ı ......... ......... ......... .... ......... ....... .......... ....... . .. ......... .......... config.sys? .......... .......... .... .......... .......... .......... . ....................... c c Se establecen los par´metros del DOS a Se usan los y se instalan los valores por controladores de defecto de DOS dispositivos indicados .c . . c ................... ........ ........ ........ ........ ........ ........ ........ ¿Existe ........ no ........ s´ ı ........ ........ ........ ........ .. ........ ....... ........ ........ autoexec.bat? ........ ........ ........ .... ........ ........ .... ........ ........ ........ ................... c Se ejecuta el lote de ´rdenes o E' c ¨  Fin © Figura A.3. Diagrama de flujo del arranque de dos.
    • 198 ´ ´ Apendice A. Introduccion al DOS 1. Activa la verificaci´n de interrupciones. o 2. Establece los formatos de fechas, horas, separadores y moneda del pa´ ıs. 3. Establece el tama˜o de ciertas zonas de memoria usadas durante n las operaciones de entrada y salida con el disco. 4. Establece el n´mero m´ximo de archivos que es posible tener abier- u a tos a la vez. 5. Elige el int´rprete de comandos usual. e 6. Finalmente, instala el programa controlador del teclado en caste- llano. Terminamos esta secci´n con un ejemplo de AUTOEXEC.BAT t´ o ıpico, que no necesita comentario alguno: CLS DATE TIME ECHO OFF PATH C:;C:dos;C:LOTES;C:UTILES;C:PASCAL PROMPT $P$G VER KEYB SP,,C:DOSKEYBOARD.SYS C:RATONMSMOUSE /2 INSTALL=C:DOSKEYB.COM SP,,C:KEYBOARD.SYS SET EDITOR=C:UTILESepsilon A.4 Otros aspectos de inter´s e A.4.1 Encauzamiento: tubos y dem´s a En principio, ordenes como DIR y TYPE dirigen su salida hacia la ´ pantalla. El int´rprete de comandos del dos nos ofrece la posibilidad e
    • 199 ´ A.4. Otros aspectos de interes de desviar la salida de esas ´rdenes hacia otro dispositivo, mediante los o operadores de redireccionamiento: . . . >DIR /w > lpt1: o confeccionar un archivo con ella: . . . >DIR /w > dirlist.txt e incluso agregar esa informaci´n a la de un archivo ya existente: o . . . >DIR >> dirlist.txt Otras ordenes toman su entrada del teclado: ´ . . . >DEL *.* ¡Se eliminar´n todos los archivos del directorio! a ¿Est´ usted seguro? (S/N) S a ...> En cambio, si se tiene un archivo llamado si.txt, cuyo contenido consiste unicamente en el car´cter “s”: ´ a si.txt ; s es posible conseguir que una orden capte su entrada del mismo, as´ ı: . . . >DEL *.* < SI ...> Los siguientes programas, llamados filtros, permiten sacar partido del redireccionamiento: • SORT toma como entrada unas cuantas l´ ıneas del teclado o de un archivo de texto (donde el retorno de carro representa el final de l´ ınea y la combinaci´n Ctrl+Z la marca del final), escribiendo a o continuaci´n las mismas l´ o ıneas, pero en orden alfab´tico (ASCII): e . . . > SORT uno dos tres
    • 200 ´ ´ Apendice A. Introduccion al DOS ^Z dos tres uno ...> • MORE escribe su entrada en la pantalla, de p´gina en p´gina. a a • FIND busca en un archivo el texto especificado, mostrando todas las l´ ıneas que lo contengan: . . . >FIND quot;ornitorrincoquot; < australi.txt Al igual que se puede dirigir la salida mediante > y >>, es posible convertir un archivo en argumento de un programa: . . . > SORT < agenda.txt adela 2008586 bernardo 7388196 ... zutano 5494389 Otra interesante utilidad consiste en convertir una salida por la pan- talla en el argumento de un programa: . . . >DIR | SORT pudi´ndose combinar con el redireccionamiento: e . . . >DIR | SORT > DirOrden.txt
    • 201 ´ A.4. Otros aspectos de interes A.4.2 Atributos y protecci´n de archivos o Los sistemas operativos ofrecen mecanismos de protecci´n de la in- o formaci´n que gestionan. Su inter´s se da mayormente en sistemas mul- o e tiusuario, en los que resulta esencial mantener lo privado del trabajo de los usuarios, pero incluso en un sistema monousuario como el dos, son de utilidad. En este sistema, cada archivo posee los siguientes atributos: • R es el atributo de “s´lo lectura”. Cuando se activa (+R), no se o puede borrar ni modificar el archivo que lo posee. La opci´n -R o desactiva este atributo. • La marca A indica que se desea hacer copia de seguridad, y es detectada por los programas backup y xcopy. El programa ATTRIB nos permite establecer y conocer los atributos de un archivo o de un grupo de ellos: [posici´n]ATTRIB [±R][±A] [archivo(s)] o Estos atributos se indican mediante letras: archivo modificado a archivo de s´lo lectura o r archivo oculto: las ordenes DIR y COPY lo ignoran ´ h archivo del sistema s A.4.3 Ampliaciones de la memoria en los PCs Los primeros procesadores de IBM para computadores personales, tales como el 8088 y el 8086,5 fueron dise˜ados para direccionar 1 Mb de n memoria; sin embargo, los desarrollos posteriores del hardware y el soft- ware se encontraron pronto con limitaciones de memoria. Este problema oblig´ a introducir algunas ampliaciones del concepto de memoria. En o este apartado se dar´ una visi´n sobre los diferentes tipos de memoria a o que se pueden encontrar en un PC trabajando bajo dos. Un PC puede tener tres tipos diferentes de memoria: convencional, expandida y extendida. 5 Los computadores que usan estos procesadores se conocen como XT.
    • 202 ´ ´ Apendice A. Introduccion al DOS 1. La memoria convencional es el primer megabyte de memoria del ´ computador, con un procesador del tipo 8088 o superior. Este era el unico tipo de memoria disponible en los primeros PCs; un ´ programa en ejecuci´n se carga en los primeros 640 Kb de memoria o convencional, y los restantes 384 Kb son utilizados por dispositivos de hardware. 2. La memoria expandida se a˜ade al computador, y no forma parte n de la memoria manejada directamente por el procesador. El acceso y la gesti´n de esta memoria se efect´ a mediante un subsistema o u especial hardware/software. 3. La memoria extendida es la que est´ por encima del primer me- a gabyte y s´lo puede accederse mediante un procesador6 80286 ´ o o superior. A continuaci´n se discute con mayor detalle la gesti´n de las memorias o o expandida o extendida. Memoria expandida La memoria expandida es el tipo de memoria m´s flexible que un PC a puede tener, lo cual tambi´n hace que sea la m´s compleja de todas. Esta e a memoria permite al procesador acceder a m´s memoria de la disponible a bajo el l´ ımite de los 640 Kb. La memoria expandida no puede ser gestionada directamente por el dos; para ello se utilizan programas (tales como EMM7 , EMM386 y QEMM) que se cargan normalmente en el archivo de configuraci´no config.sys. Es importante conocer c´mo act´a el EMM para comprender mejor o u las diferencias entre las memorias expandida y extendida. Cuando el EMM se ejecuta lo que hace es buscar un trozo de memoria sin utilizar en los 384 Kb superiores del primer Mb; este trozo de memoria, usualmente de 64 Kb, se divide a su vez en cuatro p´ginas de memoria de 16 Kb que a 6 Los computadores que usan un procesador 80286 son conocidos como AT. 7 Siglas del ingl´s Expanded Memory Manager . e
    • 203 ´ A.4. Otros aspectos de interes hacen de pivotes para mover informaci´n entre la memoria convencional o y la memoria expandida. El programa EMM se encarga de gestionar el intercambio de informaci´n entre las p´ginas de memoria y la memoria o a expandida. La instalaci´n de memoria expandida representa la instalaci´n de o o un subsistema completo de hardware y software. El hardware consiste en una tarjeta de memoria dise˜ada especialmente, y el software es el n archivo de gesti´n EMM. o La memoria expandida tiene caracter´ ısticas de una tarjeta de memo- ria normal y de un dispositivo perif´rico; tiene chips de memoria, pero e se accede a ella como si se tratara de un puerto de entrada/salida. En la figura A.4 se intenta reflejar la forma en que el procesador ve a la memoria expandida. Memoria extendida La memoria extendida es la que est´ por encima del primer megabyte a de memoria. S´lo puede accederse a ella a trav´s del modo protegido de o e los procesadores 80286 o superior. La diferencia m´s importante entre a memoria expandida y extendida es que los programas que trabajen en modo real no pueden tener acceso directo a la memoria extendida. El modo protegido es usado para acceder a una mayor cantidad de memoria y de funciones.8 Cuando un procesador (80286 o superior) pasa a modo protegido entonces el sistema puede controlar la operaci´n de o m´ltiples programas en la memoria y cambiar m´s f´cilmente de una u aa tarea a otra. Estos procesadores tambi´n pueden ejecutar los programas e escritos para procesadores 8088 y 8086 trabajando en modo real, aunque en este caso no pueden acceder directamente a la memoria superior al primer Mb. Una de las principales ventajas de disponer de memoria extendida en un PC trabajando en modo real es su uso como un disco virtual en la memoria RAM (tambi´n llamado RAM-drive). e Dado que el acceso a la memoria es mucho m´s r´pido que a un aa disco duro, el uso de un disco RAM disminuir´ el tiempo que tarde a 8 Utilizando la mayor anchura del bus de direcciones.
    • 204 ´ ´ Apendice A. Introduccion al DOS 1024 Kb ˆˆˆ ˆˆˆ P´gina de memoria EMM a ˆˆ ˆˆˆ ˆˆ ˆ ˆˆ ˆ 640 Kb ˆ Memoria Convencional 0 Kb Memoria expandida Figura A.4. un programa en cargar los trozos de c´digo necesarios para su correcto o funcionamiento, pues la referencia a archivos contenidos en un disco RAM es la misma que si estuvieran en un disco duro. La desventaja del uso de un disco RAM es que, a diferencia de un disco duro o un disco flexible, la informaci´n escrita en un disco RAM es vol´til (s´lo o a o permanece mientras el computador est´ funcionando). e