apuntearqji
Upcoming SlideShare
Loading in...5
×
 

apuntearqji

on

  • 467 views

 

Statistics

Views

Total Views
467
Views on SlideShare
467
Embed Views
0

Actions

Likes
0
Downloads
4
Comments
0

0 Embeds 0

No embeds

Accessibility

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

apuntearqji apuntearqji Document Transcript

  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas ARQUITECTURA DE LAS COMPUTADORAS SIGNIFICADO DEL TERMINO COMPUTADORA El nombre deriva del latín “Computare” que significa contar y se puede aplicar a cualquier dispositivo de cálculo. Sin embargo el término computador o computadora se refiere a un tipo especial de dispositivo de cálculo con características definidas. Es el que ha ejercido y está ejerciendo, una influencia extraordinaria en campos tan diversos de la actividad humana, que nos permite afirmar que estamos viviendo en la era de las computadoras y la automatización. A pesar de la variedad de tareas que realizan, no debemos creer que son super cerebros, ya que, independientemente de su grado de desarrollo tecnológico y científico, todas tienen en común el realizar fundamentalmente tres cosas básicas: leer datos, elaborarlos, y escribir resultados. COMPUTADORA Máquina capaz de efectuar una secuencia de operaciones mediante un programa, de tal manera, que se realice un procesamiento sobre un conjunto de datos de entrada, obteniéndose otro conjunto de datos de salida. TIPOS DE COMPUTADORAS Se clasifican de acuerdo al principio de operación de Analógicas y Digitales. • COMPUTADORA ANALÓGICA Aprovechando el hecho de que diferentes fenómenos físicos se describen por relaciones matemáticas similares (v.g. Exponenciales, Logarítmicas, etc.) pueden entregar la solución muy rápidamente. Pero tienen el inconveniente que al cambiar el problema a resolver, hay que realambrar la circuitería (cambiar el Hardware). • COMPUTADORA DIGITAL Están basadas en dispositivos biestables, i.e., que sólo pueden tomar uno de dos valores posibles: ‘1’ ó ‘0’. Tienen como ventaja, el poder ejecutar diferentes programas para diferentes problemas, sin tener que la necesidad de modificar físicamente la máquina. 1
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas HISTORIA DEL PROCESAMIENTO DE DATOS Los primeros archivistas y sus instrumentos. Durante miles de años los seres humanos vivieron sobre la tierra sin registrar la información en forma permanente. Sin embargo, al crecer las tribus y formar naciones, se desarrolló el comercio. Alrededor de 3500 años antes de Cristo, los mercaderes babilonios mantenían archivos en tablillas de barro. El ábaco fue uno de los primeros instrumentos manuales para calcular, aunque tiene una antigüedad de mas de 3000 años, se sigue utilizando en algunas partes del mundo, principalmente en Asia. Las técnicas de archivado se siguieron desarrollando a través de los siglos, presentándose innovaciones como las auditorias (Los Griegos) y los presupuestos (Los Romanos). En 1642 Blas Pascal, un brillante joven Francés, desarrolló la primera máquina de calcular mecánica. Unos treinta años más tarde, el matemático alemán Gottfried Von Leibniz mejoró el invento de Pascal produciendo una máquina que podía sumar, restar, multiplicar, dividir y extraer raíces. Sin embargo, no existía la tecnología para fabricar este tipo de instrumentos de precisión en forma masiva. El tejedor estadístico y sus tarjetas. La historia de las tarjetas perforadas data de 1801 cuando un tejedor Francés llamado Joseph Jacquard las invento para controlar sus telares mecánicos. No obstante, lo que hizo que se utilizaran para el medio de procesamiento de datos fue el problema de completar el censo de 1880, el procesamiento de datos en EEUU con lápices, plumas y reglas. El volumen de los archivos durante este período estaba creciendo rápidamente y, como era de esperarse, los métodos manuales producían información relevante inexacta y muchas veces tardía. Para desesperación de las oficinas de censos de Estados Unidos, por ejemplo, el censo de 1880 no se termino hasta cuando ya era hora de comenzar el censo 1890. Por fortuna para estas oficinas y para otros que querían mejores métodos de procesamiento de datos, la oficina de censo contrato para encontrar una solución al problema del censo 1887, a un estadístico el Dr. Herman Hollertih, este desarrolló su concepto de tarjetas de lectura mecánica (tarjetas perforadas) y diseño un dispositivo conocido como la máquina del censo. La tabulación con los métodos de hollerith requería de una octava parte del tiempo que se necesitaba antes, por lo que se adoptaron sus técnicas para el censo de 1890. Aunque la población había aumentado de 50 a 63 millones, el censo se completó en menos de tres años (Naturalmente esto significa una lentitud intolerable en estas épocas). 2
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas Después del censo de 1890, Hollerith adaptó se equipo para utilizarlo comercialmente y creó el sistema de estadística de cargas para dos ferrocarriles. En 1896 fundó la Tabulating Machine Company para fabricar y vender su invento. Mas tarde, esta firma se fusionó con otras para formar la International Business Machine (IBM) Corporation. El procesamiento de tarjetas perforadas se basó en una idea sencilla: los datos de entrada se registraban primero en forma codificada haciendo perforaciones en tarjetas. Más tarde las tarjetas se introducen en una serie de máquinas electromecánicas que realizan los pasos de procesamiento. El procesamiento de tarjetas perforadas era mucho más rápido y exacto que los métodos manuales. No obstante requería todavía personas que llevaran las cajas con las tarjetas de un paso al siguiente. Era necesario alimentar cada una de las máquinas, echarlas a andar y detenerlas, la necesidad de intervención humana era una desventaja importante. Avances iniciales en el desarrollo de las computadoras. Primera Generación En esta generación había una gran desconocimiento de las capacidades de las computadoras, puesto que se realizó un estudio en esta época que determinó que con veinte computadoras se saturaría el mercado de los Estados Unidos en el campo de procesamiento de datos. Esta generación abarco la década de los cincuenta. Y se conoce como la primera generación. Estas máquinas tenían las siguientes características: • Estas máquinas estaban construidas por medio de tubos de vacío. • Eran programadas en lenguaje de máquina. En esta generación las máquinas son grandes y costosas (de un costo aproximado de ciento de miles de dólares). La locura de Babbage unos 50 años antes de los trabajos de hollerith, Charles Babbage, profesor de matemáticas en la Cambridge University, de Inglaterra, propuso una máquina a la que dio el nombre de Máquina analítica. Babbage era un hombre excéntrico y de mal carácter que paso gran parte de su vida trabajando en vano para completar su increíble y compleja máquina. El sueño de Babbage –una unidad de memoria o almacén, una unidad aritmético o molino, la impresión automática de salida, el control secuencial por programa y una exactitud de 20 cifras. En pocas palabras Babbage había diseñado un prototipo de computadora que estaba adelantada en 100 años a su época. Lady Augusta Ada Lovelance, hija de Lord Byron, el poeta, ayudó a Babbage, ella era una brillante matemática y corrigió algunos de los errores en el trabajo de Babbage e inventó formas novedosas de enfocar el diseño de programas empleando tarjetas perforadas. Por estos descubrimientos muchos la consideran la primera programadora de computadoras. Al morir Babbage en 1871 el desarrollo de las computadoras se detuvo hasta 1937; las tarjetas perforadas dominaron el mundo del proceso de datos. 3 View slide
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas En 1937, Howard Aiken, profesor de la Universidad de Harvard, se fijó en la meta de construir una máquina de calcular automática que combinara la tecnología eléctrica y mecánica con las técnicas de tarjetas perforadas de Hollerith. Con ayuda de estudiantes de postgrado e ingenieros de la IBM, el proyecto se completo en 1944. El aparato terminado se denomino la computadora digital MARK I. Las operaciones internas se controlaban automáticamente con relevadores electromagnéticos, y los contadores aritméticos eran mecánicos; así, la mark I era una computadora electromecánica. En muchos aspectos era el sueño de babbage hecho realidad. Esta máquina medieval se exhibe actualmente en la universidad de Harvard. El primer prototipo de computadora electrónica se concibió en el invierno de 1937-1938 por el doctor John Vincent Atanasoff, profesor de física y matemática en towa state college. Como ninguna de las calculadoras disponibles en ese entonces era adecuada para sus necesidades. Atanasoff decidió construir la suya. Empleando conceptos de diseños que cristalizaron en su menta a altas horas de la noche de invierno en un bar a la orilla de la carretera en Illinois, Atanasoff formó un equipo con Clifford Berry, su asistente de postgrado, y comenzó a construir la primera computadora electrónica. La llamaron “Computadora Atanasoff –Berry”, o ABC (Atanosoff-Berry computer). La ABC empleaba bulbos al vacío para almacenar datos y efectuar operaciones aritméticas y lógicas. Durante 1940 y 1941 Atanasoff y Berry se unieron con John W. Mauchly y le mostraron su trabajo, Mouchly que trabajaba en la school of Electrical Enginneering de la Universidad de Pensylvania, comenzó a pensar en la forma de construir una computadora de aplicación general. (la ABC se diseñó con el objetivo específico de resolver sistemas de ecuaciones simultáneas) Mauchly formó un equipo con J. Presper Eckert Jr. Estudiante de postgrado de ingeniería en Moore School, para organizar la construcción de ENIAC a principio de la década de 1940. ENIAC fue la primera computadora electrónica de aplicación general que entró en funcionamiento. Financiada por él ejercito de los Estados Unidos, se construyó en Moore School como proyecto secreto durante la guerra (al ejercito le interesaba la preparación rápida de tabas de trayectorias de proyectiles). También se utilizaron bulbos al vacío (18.000 de ellos) en ENIAC aunque pesaba 30 toneladas y ocupaba el espacio de 150 metros cuadrados (una casa de tres habitaciones), ENIAC podía hacer 300 multiplicaciones por segundo, lo que la hacia 300 veces más rápida que cualquier otro 4 View slide
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas dispositivo de la época. Las instrucciones de operación de ENIAC no se almacenaban internamente mas bien se introducían por medio de tableros de clavijas e interruptores localizados en el exterior. Él ejercito utilizó la ENIAC hasta 1955. A mediados de la década de 1940 colaborando con H. H. Goldstine y A. W. Bruks, el genio matemático John Von Neumann escribió un trabajo sugiriendo. 1. Utilizar sistemas de numeración binario para construir computadoras 2. Que las instrucciones para la computadora, así como los datos que se manipularán, se almacenarán internamente en la máquina. La primera de esas ideas se habían utilizado ya en la ABC de Atanasoff y los artículos de Von Neumann le dieron publicidad al concepto. Esta es una idea importante, ya que el sistema de numeración binario utiliza únicamente dos dígitos (0 y 1) en ves de los 10 dígitos (0 al 9) del sistema decimal con el que todo el mundo está familiarizado. Dado que los componentes electrónicos están normalmente en una de los dos estados (encendido o apagado), el concepto binario significó el diseño del equipo. La segunda idea fue un avance brillante en la época por que significaba que los programas se podrían almacenar de la misma forma que se almacenaban los datos, ya no había necesidad de cambia un sin número de interruptores y cables antes de ejecutar una operación nueva. El origen de la idea de programa almacenado se discute todavía. Pero se convirtió en una parte fundamental de la filosofía de diseño del las computadoras. Aunque estas ideas no se incorporaron en ENIAC, Mauchly, Eckert y otros de Moore School se dedicaron a construir una máquina que pudiera almacenar programas. Esta máquina la EDVAC; no se terminó sino hasta varios años más tarde. La distinción de ser la primera computadora electrónica de programa almacenado corresponde a la EDSAC, terminada en 1949 en Cambridge University. Una de las razones del retraso sufrido por EDVAC fue que Eckert y Mauchly fundaron su propia compañía en 1946 y comenzaron a trabajar en Universal Automatic Computer. A principios de 1951 la primera UNIVAC-1 comenzó a funcionar en las oficinas del censo. (en 1963 se envió también a la Smithsonia institution , una reliquia histórica después de solo 12 años). Cuando la UNIVAC desplazó al equipo de tarjetas perforadas en la oficina del censo, Thomas J. Watson Jr. hijo del fundador de IBM en la era de la computación. La primera computadora adquirida por una organización de negocios para procesar datos y archivar información fue otra UNIVAC-1 instalada en 1954 en General Electric´s Appliance Park. 5
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas LA IMB 650 entro en servicio por primera vez en Boston afines de 1954. Siendo una máquina relativamente barata para aquella época, tubo gran aceptación, y dio a la IBM el liderazgo en la producción de computadoras en 1955. En el período 1954 a 1959, mucho negocios adquirieron computadoras para procesar datos, aún cuando estas máquinas de primera generación habían sido diseñadas para aplicaciones científicas. Los no científicos solían considerar la computadora como un instrumento de contabilidad y las primeras aplicaciones de negocios se diseñaron para procesar tareas rutinarias como son las nóminas. Se subestimó el potencial real de las computadoras, y muchas fueron adquiridas por prestigio que confería a la organización. No obstante, no debe juzgarse con demasiada dureza a los primeros usuarios de computadoras. Fueros los pioneros en el empleo de una herramienta nueva. Tenían que contratar un nuevo tipo de trabajadores para sus instalaciones de cómputos; tenían que preparar programas en un tedioso lenguaje de máquina. A pesar de estos obstáculos se comprobó que la computadora era un procesador rápido, exacto e incansable de grandes cantidades de información. Las computadoras de la segunda generación, que comenzó a aparecer en 1959, eran más pequeñas y rápidas y de una capacidad de cómputos mayor. La escritura de programas de aplicación en leguaje de máquina fue desplazado por el uso de lenguajes de programación del alto nivel y el bulbo al vacío, de vida relativamente corta, fue desplazado por componentes compactos de estado sólido, como los transistores que habían sido desarrollados por BEL Laboratories en 1947. Segunda Generación Cerca de la década de 1960, las computadoras seguían evolucionando, se reducía su tamaño y crecía su capacidad de procesamiento. También en esta época se empezó a definir la forma de comunicarse con las computadoras, que recibía el nombre de programación de sistemas. Las características de la segunda generación son las siguientes: • Están construidas con circuitos de transistores. • Se programan en nuevos lenguajes llamados lenguajes de alto nivel. Al mismo tiempo que se desarrollaban los sistemas de segunda generación se estaba creando una industria nueva, basada en la idea de integrar transistores y otros componentes para formar circuitos que pudieran colocarse en pequeños trozos de silicio. Una de las primeras compañías en esta industria fue Shockley semiconductor, fundada en 1955 por william Shockley. Algunos empleados se separaron más tarde para formar Fairchild semiconductor, y gente de Fairchild formó otras varias compañías, incluyendo INTEL corporation. 6
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas Tercera generación Con los progresos de la electrónica y los avances de comunicación con las computadoras en la década de los 1960, surge la tercera generación de las computadoras. Se inaugura con la IBM 360 en abril de 1964.3 Las características de esta generación fueron las siguientes: • Su fabricación electrónica esta basada en circuitos integrados. • Su manejo es por medio de los lenguajes de control de los sistemas operativos. Los sistemas de la segunda generación eran bastante especializados. Se les diseñaban para procesar aplicaciones científicas como no científicas, pero no se procuraba que funcionara adecuadamente en los dos ambientes, esa situación cambió en 1964 cuando IBM anunció una tercera generación de equipos. Se utilizan los circuitos integrados (CHIPS) que son conjuntos monolíticos que contienen múltiples transistores miniatura en sus comienzos contenían por ejemplo, 15 transistores por cada CHIPS. Estaban equipadas por discos magnéticos, la entrada se hacia por tarjetas perforadas, cassettes magnéticos o hacia fines de ese período por diskettes magnéticos. Su familia 360 de macrocomputadoras. Cada uno de los procesadores de esta familia tenían un conjunto muy amplio de instrucciones internas que podían ejecutar. Algunas de esas instrucciones eran especialmente útiles en aplicaciones científicas, mientras otras eran más apropiadas para procesamiento de archivos. De ese modo era posible utilizar el modelo 360 o 370 de una manera más eficiente en los dos ambientes. De 1964 a la fecha se han introducido muchas otras familias mejoradas de procesadores. Están caracterizados por la aparición de los circuitos integrados en gran escala (LSI) con centenares de miles de transistores por CHIPS, por el desarrollo de los microprocesadores (una unidad de proceso completa en un CHIPS) y por el abastecimiento y la consecuente difusión. En forma colectiva se podría considerar a estos procesadores como una cuarta generación, pero la industrian nunca se puso de acuerdo en la designación de generaciones en los años subsecuentes. Cuarta Generación Aquí aparecen los microprocesadores que es un gran adelanto de la microelectrónica, son circuitos integrados de alta densidad y con una velocidad impresionante. Las microcomputadoras con base en estos circuitos son extremadamente pequeñas y baratas, por lo que su uso se extiende al mercado industrial. Aquí nacen las computadoras personales que han adquirido proporciones enormes y que han influido en la sociedad en general sobre la llamada “revolución informática”. 7
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas El desarrollo de las minicomputadoras. Las computadoras construidas antes de 1965 eran macrocomputadoras, diseñadas para proporcionar en una localidad centralizada todo el poder de procesamiento que requiera una organización. Este enfoque resolvió las necesidades de algunas organizaciones, pero habían otras que no contaban con los fondos necesarios para adquirir sistemas grandes o tenían aplicaciones especializadas que no podían ser procesadas en forma eficiente por una máquina grande centralizada. Existía una necesidad obvia de computadoras mínimas de bajo costo para llenar los huecos que dejaba el enfoque de las máquinas más grandes, rápidas y centralizadas. Varios innovadores se dieron cuenta de esa necesidad y formaron compañías nuevas en la década de 1960, para producir estas máquinas mínimas. Los primeros procesadores en recibir el nombre de minicomputadoras se desarrollaron y construyeron en 1965 por la Digital Equipment Corporation, que es el actualmente más grande fabricante de minis, otros fabricantes como Hewlett-Packard y Data General, siguieron rápidamente la iniciativa de DEC. En el ambiente de computación centralizado de principios de los sesenta, los usuarios preparaban sus datos y sus programas y después los llevaban al centro de cómputos para ser procesados, este reunía todas estas tareas y la introducía por lotes a la computadora a intervalos programados. El retraso inevitable que resulta por este tipo de procesamiento era muy frustránte para algunos usuarios, los retrasos eran demasiado irritantes para los estudiantes con tareas de programación, que aveces tenían que esperar varios días para localizar y corregir unos cuantos errores en sus programas. Para remediar esta situación John Kemeny y Thomas Kurtz, decidieron llevar mas lejos algunos conceptos de tiempo compartido, es un término que se emplea para describir un sistema de proceso que cuenta con varias estaciones independientes, de baja velocidad (relativamente), en línea y susceptibles de utilizarse en forma simultánea, cada una de las estaciones proporciona al usuario acceso directo al procesador central. Estos desarrollaron programas especiales que permitían al procesador conmutar entre las distintas estaciones de estudiantes y llevar a cabo una parte del trabajo en el segmento de tiempo asignado a cada una, hasta finalizar el trabajo. La intención era proporcionar al estudiante la idea de que nadie mas estaba utilizando la computadora. Para mejorar el ambiente de cómputos interactivo que estaban creando, los profesores desarrollaron un leguaje de programación fácil de aprender por parte de los estudiantes, el objetivo era que todos tuvieran un incentivo para utilizar con cierta 8
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas frecuencia las estaciones de tiempo compartido. Este lenguaje –BASIC- fue todo un éxito en ambos aspectos. La creación de una industria de programación independiente. En 1965 los fabricantes de computadoras vendían o alquilaban sus equipos, pero no cobraban los programas que se proporcionaban a los clientes. Desde el punto de vista del usuario esos programas eran gratuitos, existían unos cuantos proveedores independientes que proporcionaban algunos más especializados o más eficientes que los suministrados por los fabricantes. Pero esta situación cambió en 1969 cuando IBM y otros comenzaron a cotizar de manera independiente sus equipos y sus programas. Esta separación de la programación hizo que los usuarios tuvieran incentivos para buscar mejores compras en materia de programas de cómputos, lo que provocó la creación de muchas empresas de programación y una nueva apertura del mercado informático. Desarrollo de las computadoras personales. Quinta Generación En vista de la acelerada marcha de la microelectrónica, la sociedad industrial se ha dado a la tarea de poner también a esa altura el desarrollo del software y los sistemas con que se manejan las computadoras. Surge la competencia internacional por el dominio del mercado de la computación, en la que se perfilan dos líderes que, sin embargo, no han podido alcanzar el nivel que se desea: la capacidad de comunicarse con la computadora en un lenguaje más cotidiano y no a través de códigos o lenguajes de control especializados. Japón lanzó en 1983 el llamado “programa de la quinta generación de computadoras”, con los objetivos explícitos de producir máquinas con innovaciones reales en los criterios mencionados. Y en los Estados Unidos ya está en actividad un programa en desarrollo que persigue objetivos semejantes, que pueden resumirse de la siguiente manera: • Procesamiento en paralelo mediante arquitecturas y diseños especiales y circuitos de gran velocidad. • Manejo de lenguaje natural y sistemas de inteligencia artificial. El primer anuncio de una computadora personal construida alrededor de un microprocesador apareció en el número de marzo 1974 en QST, una revista para aficionados a la radio, el producto que se anunciaba era la Scelbi-8h, y solo se vendieron cerca de 200 de estos microprocesadores. Pisándole los talones venia Altair 8800, diseñada sobre la base de una pastilla INTEL por una compañía de Albuquerque, Nuevo México, llamada MITS, se ofrecía originalmente en forma de un equipo para ensamblar por menos de 400 Dólares. El artículo principal del número de enero de 1975 de la revista Popular Electronics trataba de esta máquina y es posible que dicho artículo haya iniciado la explosión de las computadoras personales. Por esas mismas fechas, dos jóvenes programadores llamados Bill Gates y Paul Allen estaban completando un programa que podía traducir instrucciones escritas en BASIC a los códigos de lenguaje de máquina que requerían los microprocesadores INTEL, se creó la Microsoft Corporation para vender el programa BASIC Gates-Allen y la licencia de Microsoft 9
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas BASIC se concedió a MITS a fines de 1975. Muchos de los competidores de la industria actual de las computadoras personales son firmas de varios miles de millones de dólares que cuentan con laboratorios de desarrollo bien equipados. En cambio, los pioneros de 1975 eran en su mayoría aficionados e ingenieros autodidactas, a los que les fascinaba la naciente tecnología. Construían prototipos de sistemas, los anunciaban en revistas, utilizaban el dinero que obtenían de las órdenes recibidas para comprar componentes y ensamblar sus procesadores en cocheras. Muy pocas de esas compañías sobrevivieron a la fase inicial, pero los que lo hicieron cambiaron el mundo. Algunas personas están convencidas que las grandes computadoras electrónicas, gracias a su capacidad casi infinita de almacenar datos y elaborarlos a velocidad elevadísima, podrán algún día tomar el lugar del hombre y convertirlo en su esclavo. Seguramente todos hemos leído o visto algún relato de ciencia-ficción que basa su argumento en esa idea. pero estas predicciones, de algunos años a esta parte, están revelándose del todo infundadas. Las máquinas que han revolucionado el mundo de la información penetrando en hogares y oficinas, son las nietas de las grandes computadoras: las computadoras personales. Más pequeña que un televisor, con un teclado similar al de una máquina de escribir y un leguaje que puede aprenderse en pocas lecciones, la computadora personal es como tener un amigo a mano: no le disgusta jugar y si estamos dispuesto a estudiar un poco de programación, estará muy feliz de ayudarnos a crear juegos nuevos. Además puede ayudarnos a archivar nuestras estampillas si nos gusta coleccionarlas. Y si quisiéramos mejorar nuestros estudios, se convertirá en un compañero de estudios excelente. Pero atención: es un tanto severo y no perdonará ningún error. La computadora personal puede llevar la contabilidad de la casa o de la oficina, tener un inventario al día de los alimentos que hay en la casa, calcular una dieta para adelgazar. Con una pequeña computadora personal es posible escribir un texto, corregirlo sobre la pantalla y luego hacerlo imprimir en una impresora, sin necesidad de acudir a una máquina de escribir. La moderna tecnología electrónica ha llegado a un punto tal que la computadora Cyber 205, fabricada en Estados Unidos por la compañía Control Data, elabora cincuenta millones de informaciones en un segundo. Son valores como para asombrarnos. O la computadora Cray-1, también fabricada en Estados Unidos que realiza una operación aritmética elemental en la milésima parte de una millonésima de segundo. A pesar de esto, todas las computadoras, desde el microprocesador más pequeñas hasta el más grande y costoso, como el mismo Cray-1, serían máquinas mudas e inútiles si el hombre no hubiera inventado un leguaje para poder comunicarse con ellas y programas para poder resolver los problemas que frecuentemente se le presentan a las computadoras. MODELO DE VON NEUMANN Las computadoras digitales actuales se ajustan al modelo propuesto por el matemático John Von Neumann. De acuerdo con el, una característica importante de este modelo es 10
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas que tanto los datos como los programas, se almacenan en la memoria antes de ser utilizados. Una computadora sin su programa es como un automóvil sin combustible. No funciona. Y todos los programas se escriben en leguaje simple basado en solamente dos símbolos. Se trata del código binario. ¿Cómo se escriben los programas? ¿Cómo se hace para que una máquina nos entienda? Bastará hablarle con un leguaje que les sea comprensible. ¿Pero cuál es? Podría pensarse que es el Inglés ya que todas la computadora comprenden algunas palabras del inglés (como “RUN”, que hace funcionar un programa o “PRINT” que le ordena imprimir). En realidad, el lenguaje de máquina, que toda computadora comprende, no importa cómo esté construido, es un alfabeto de dos símbolos 0 (cero) y 1 (uno): el “código binario”. Todos conocemos la tabla de pitágoras, que enseña a multiplicar dos números. Cada número que utilizaremos está formado por cifras que van del cero al nueve, con un total de diez. ¿Por qué diez? La respuesta es sencilla: tenemos diez dedos. Todos contamos con los dedos y nuestros números (aún aquellos muy grandes) se basan todos en ellos en múltiplos de diez: uno, diez, cien, mil, diez mil etc. Pero la computadora posee solo dos “dedos”: un valor más alto de la corriente o tensión eléctrica que atraviesa sus componentes electrónicos (1) y un más bajo (0). Podemos pensar en una lamparita encendida (1) o apagada (0), es el código más simple que existe. Pero es muy poderoso. Cualquier número decimal puede escribirse en un código binario, transformándose en una palabra, en la jerga electrónica, formada por (0) cero y (1) uno. Pero no solo los números pueden transformarse. También las letras y los signos de puntuación. Para mostrar la potencia de este simplísimo alfabeto, veamos una ejemplo traído de una de las ciencias más modernas, la astronomía con ondas de radio o radioastronomía. La gigantesca antena de Arecibo, construida en la islas de Puerto Rico fue empleada para transmitir un mensaje destinado a los posibles habitantes inteligentes de planetas de una región del espacio, en la que existe un cúmulo de estrellas llamado cúmulo globular M-13 distante 24.000 años luz de la tierra lo cual significa que el mensaje, transmitido llegará a destino dentro de aproximadamente 24.000 años. Quizás ya no exista el hombre en ese momento. El mensaje contiene información esencial sobre la tierra, sus habitantes y el sistema solar al que pertenecemos, confeccionado solamente con símbolos 0 y 1. Una cifra binaria (sea 0o1) se llama “bit” (Binary digiT). La información del mensaje de arecibo está escrita en cifras binarias, es decir en bits y es un código universal. En la página de Internet: www.old-computers.com encontrara la más completa información (inclusive un museo de la computadora) sobre computadoras hasta ahora recopilada. Lamentablemente se encuentra en el idioma Ingles. ¿Cuál es la compuerta adecuada? Veamos un poco mas de un código binario, dispone solamente de dos símbolos 0 y 1 si queremos traducir un número decimal en un número binario, para el cero no hay 11
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas problema: un 0 decimal es un 0 binario. Lo mismo puede decirse del 1: un 1 decimal es un 1 binario. Pero, ¿cómo escribiremos el 2 decimal en código binario? Lo veremos en la siguiente tabla. 24 23 22 2 2 2x2x2x 2x2x2 2x2 2 1 2 16 8 4 2 1 1 1 1 0 2 1 1 3 1 0 0 4 1 0 1 5 1 1 0 6 1 1 1 7 1 0 0 0 8 1 0 0 1 9 1 0 1 0 10 1 0 1 1 11 1 0 1 1 12 1 1 0 1 13 1 1 1 0 14 1 1 1 1 15 1 0 0 0 0 16 Debido a que hay menos símbolos a nuestra disposición, para escribir un cierto número debemos usar más cifras: un número en código binario es más largo que el correspondiente número decimal. A pesar de ello, se emplean menos símbolos y la máquina lo comprende perfectamente. Pero ¿por qué? En realidad todas las computadoras están formadas por circuitos muy simples llamados compuertas o gates en inglés. Estos circuitos poseen una o más entradas, input en inglés. Cada entrada puede solamente asumir dos valores: 0, que es una tensión eléctrica baja ó 1 que es una tensión eléctrica mas elevada. A su vez, el valor de salida del circuito puede ser 0 (tensión baja) ó 1 (tensión alta). El valor de la salida depende del valor de la entrada y del tipo de compuerta. Si ésta es de tipo AND, que corresponde a la conjunción “Y” y en la entrada tenemos un 0 y otro 0 ó 1 y otro 1, el valor de salida será otro 1. Para la compuerta OR que corresponde a “O”, la salida será un 1, si una u otra entrada es un 1. Dando un paso adelante, diremos que si en la salida encontramos un 1, la salida es verdad, si encontramos un 0 es falso. Pongamos todo esto en la tabla siguiente: 12
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas número Valor de Valor de tensión verdad 0 Baja Falso 1 Alta Verdadero Lo que tenemos es algo que ya se conocía: se trata de álgebra de Boole. El álgebra de Boole es un tipo particular de matemática que se basa en solamente dos valores: el 0 y el 1. Boole era un matemático inglés que había inventado este tipo de matemática mucho antes de que aparecieran las computadoras. Vemos aquí la importancia del código binario. Sus valores numérico conforman un álgebra de boole, que es la base lógica de toda computadora electrónica no importa su forma, dimensión, fabricante o país de origen. La computadora es entonces una máquina muy potente y no solo para que pueda resolver problemas complejos. también interesa el hecho de que se basa en un tipo de matemáticas que posee un valor extremadamente general y por lo tanto, aplicable a cualquier tipo de operación aritmética. ¿qué es la memoria? Habíamos dicho conocer solo dos tipos de cifras en su interior: 0 y 1 ¿y si cortamos la corriente? Si no existe un dispositivo de memoria capaz de recordar los números, la computadora pierde todo el contenido de la información. Entonces es necesario algún sistema análogo al del papel sobre el cual escribimos con un lápiz, para conservar o guardar el trabajo realizado y ponerlo a salvo de pérdidas accidentales. Si debemos realizar un compleja secuencia de cálculos, es natural que descompongamos en muchos cálculos simples, de los que conservaremos los resultados parciales. También las memorias de las computadoras funcionan exactamente del mismo modo, y están dotadas de una serie de riesgos en que la máquina guarda los resultados parciales, para después echar mano de ellos cuando los necesita. Y como todos nosotros, la computadora posee un anotador para hacer anotaciones urgentes, un cuaderno para realizar los cálculos y libros en los que puede buscar información. Podemos decir, entonces, que posee una jerarquía de memorias. Una es pequeña y de consulta rápida (el anotador), una más grande (el cuaderno) y una aún más grande y menos veloz (los libros). Algunas de estas memorias son como los cuadernos, es decir, de lectura y escritura y se llaman RAM (Random Access Memory: memoria de acceso al azar o inmediato). Otras memorias se parecen a los libros en el hecho que son memorias de lectura solamente y no pueden borrarse para escribir nuevos datos. Son las memorias ROM (Read Only Memory: memoria de lectura solamente). Además, están las memorias de masa, que contienen grandes cantidades de información (codificada en forma de Bits, como ya vimos), comparables con las grandes enciclopedias. En general vale la siguiente regla: las memorias de acceso rápido y de consulta fácil contienen menos datos; las memorias de acceso más lento y consulta menos fácil, contienen muchísimos más datos. 13
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas Si comparamos la memoria de una computadora con una guía telefónica, gruesa y voluminosa, es natural que conservemos una parte, los números de nuestros amigos o parientes, bomberos, policía y otros números útiles en una pequeña libreta de fácil consulta: la así llamada memoria operativa. La memoria de gran tamaño, o memoria de masa se graba en un soporte magnético. Las memorias veloces se guardan en chips, que son pequeñísimos trozos de silicio cristalino en cuyo interior existe una arquitectura complicadísima, como rieles de una inmensa estación ferroviaria en la que viajan no ya trenes, sino pulsos minúsculos de corriente eléctrica. Diferencia entre memoria y Almacenamiento Muchas personas confunden los términos memoria y almacenamiento, especialmente cuando se trata de la cantidad que tienen de cada uno. El término “memoria” significa la cantidad de RAM instalada en la computadora mientras que “almacenamiento” hace referencia a la capacidad del disco duro. Para aclarar esta confusión, se puede comparar la computadora con una oficina que tiene una mesa de trabajo y varios archivos. La mesa de trabajo representa la memoria, la cual ofrece un acceso rápido y fácil a los archivos con los que se está trabajando en ese momento determinado. Otra diferencia importante entre la memoria y el almacenamiento, consiste en que la información almacenada en el disco duro permanece intacta cuando se apaga la computadora. En cambio, el contenido de la memoria queda borrado cuando se apaga la computadora (como si se tirarán a la basura todos los archivos encontrados en la mesa de trabajo al final del día). Cuando se trabaja con un ordenador, se deben salvar el trabajo con frecuencia. La memoria de la computadora salva las modificaciones introducidas en el documento hasta que el usuario las salva en el disco duro. Si por cualquier razón se interrumpe la operación de la computadora, por ejemplo, debido a un corte de luz o a un error del sistema, se perderán todas las modificaciones realizadas que no fueron salvadas hasta ese momento. ¿Qué es SIMM, DIMM y RIMM? Las memorias se agrupan en módulos, que se conecta a la Motherboard o también llamada Placa Madre. Según los tipos de conectores que lleven los modulos, se clasifican en módulos SIMM (Single Inline Memory Module), módulos DIMM (Dual Inline Memory Module), y módulos RIMM (Rambus Inline Module Memory). SIMM: Un SIMM es una tarjeta de circuito impreso con chips DRAM y pines dorados o plateados. Los SIMMs vienen en dos configuraciones 30 pines y 72 pines. Los pines establecen cuantos datos se pueden transferir. Los pines en cada lado del SIMM comparten la misma conexión eléctrica. Los de 30 contactos son para las placas 386 y las primeras de 486, la de 72 contactos también en las placas 486 más modernas y en las placas Socket 7 para Pentium y AMD. La memoria de 72 contactos hay que utilizarla de a pares, no se puede utilizar un módulo solamente. Esta memoria ofrece 4 bytes por acceso. La memoria de 72 puede ser de dos caras y no todas las placas bases la soportan. 14
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas DIMM: Un DIMM es muy parecida a un SIMM. La diferencia entre las dos es que los contactos de metal en el DIMM son electrónicamente independientes. Un DIMM es de 168 contactos y se puede colocar un único módulo, no hace falta colocarlos por pares. Trabaja a 3.3v. Es la que se utiliza en las placas con procesadores a partir de Pentium III y en las placas Super Socket 7. Esta conexión proporciona 8 bytes por acceso. Hay una versión especial para portátiles llamada SO-DIMM, que es un DIMM de tamaño más reducido con 140 contactos. RIMM: Es el módulo de conexión de memoria basado en la tecnología Rambus, que utiliza la memoria Direct RDRAM. Se caracteriza por presentar una topología física de bus e incrementa por 3 o 4 la frecuencia de ciclo de reloj del bus de datos. Los módulos RIMM vienen con frecuencias de reloj de 300 Mhz., 350 Mhz, y 400 Mhz. En cada ciclo de reloj realiza dos operaciones, lo que permite aumentar su tasa de datos a los estandares PC600, PC700 y PC800. Utilizan nuevos chips y se ensamblan en placas de igual tamaño a los DIMM, pero con 184 contactos en lugar de 168 pines. Hay una versión especial para portátiles llamada SO-RIMM con 160 contactos. La transferencia de datos se efectúa por paquetes de 16 bits. MEMORIA RAM – Diferentes tipos DRAM: (Dynamic Random Access Memory). Es la memoria de trabajo, también llamara RAM, esta organizada en direcciones que son reemplazadas muchas veces por segundo. Esta memoria llegó a alcanzar velocidades de 80 y 70 nanosegundos (ns), esto es el tiempo que tarda en vaciar una dirección para poder dar entrada a la siguiente, entre menor sea el número, mayor la velocidad y fue utilizada hasta la época de los equipos 386. SRAM: (Static Random Access Memory). Es el tipo de memoria que constituye lo que se denomina caché. La ventaja de la memoria DRAM, es que es mucho más barata y almacena mas cantidad de información que la memoria SRAM. A su vez, la memoria SRAM es mucho más rápida que la DRAM, del orden de 4 a 6 veces más. La utilización de componentes estáticos de memoria RAM (SRAM) resulta de gran ayuda puesto que no necesitan ningún refresco y, por lo tanto, disponen de un tiempo de acceso que en parte es inferior a los 15 nanosegundos. En principio se podría pensar en la idea de que toda la memoria de trabajo DRAM deba ser sustituida completamente por la memoria SRAM, para así permitir intervalos de acceso más breves. Desgraciadamente la fabricación de este tipo de chips resulta mucho más cara que en el caso de la DRAM. Por esta razón es por lo que se utiliza caché en cantidades limitadas: 128, 256, 512 o 1024 Kb y en muy contadas ocasiones como complemento de DRAM. FPM: (Fast Page Mode). El nombre de esta memoria procede del modo en el que hace la transferencia de datos, que también es llamado paginamiento rápido. Hasta hace unos años ésta memoria era la más popular, en el tipo de memoria normal para las computadores 386, 486 y los primeros Pentium, llego a fabricarse en velocidades de 60 ns. Y la forma que presentaban era un módulo SIMM de 30 15
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas pines, para los equipos 386 y 486 y para los equipos Pentium era un SIMM de 72 pines. EDO: (Extended Data Output). Esta memoria fue una innovación en cuestión de transmisión de datos pudiendo alcanzar velocidades de hasta 45 ns, dejando satisfechos a los usuarios. La transmisión se efectuaba por bloques de memoria y no por instrucción como lo venia haciendo las memorias FPM. Se utiliza en equipos con procesadores Pentium, Pentium Pro y Pentium II, además de su alta compatibilidad, tiene un precio bajo y es una opción viable y económica para aumentar la memoria en estos equipos. Su presentación puede ser en SIMM o DIMM. SDRAM: (Synchronous DRAM). Esta memoria funciona como su nombre lo indica, se sincroniza con el reloj del procesador obteniendo información en cada ciclo de reloj, sin tener que esperar como en los casos anteriores. La memoria SDRAM puede aceptar velocidades de BUS de hasta 100 Mhz. (Se las llama en este caso PC-100) lo que nos refleja una muy buena estabilidad y alcanzar velocidades de 10 ns.. Se presentan en módulos DIMM, y debido a su transferencia de 64 bits., no es necesario instalarlo en pares. Es la opción más económica para poder tener mas cantidad de memoria RAM a un precio accesible para procesadores a partir de Pentium III. BEDO: (Bursa Extended Data Output). Fue diseñada para alcanzar mayors velocidades de US. Trabaja de igual forma que la SDRAM, ó sea, la transferencia de datos se hace en cada ciclo de reloj, pero esta memoria lo hace en ráfaga (burst) haciendo que los tiempos de entrega sean despreciables. RDRAM: (Rambus DRAM). Esta memoria tiene una transferencia de datos de 64 bits que se pueden producir en ráfagas de 2 ns., además puede alcanzar una tasa de transferencia de 533 Mhz con picos de 1.6 Gb/s. Es ideal para los Pentium IV ya que evita los cuellos de botella entre la tarjeta gráfica y la memoria del sistema. Es muy buena para los juegos y el diseño gráfico. Es muy rápida, tiene la contra de ser muy cara. DDR SDRAM: (Double Data Rate SDRAM). Esta memoria tiene el mismo aspecto que un DIMM, pero la diferencia está en que tiene más pines, pasando de 168 pines del actual DIMM a 184 pines. Viendo un poco el tema del voltaje, la DDR trabaja con tan sólo 2,5 V, siendo ésta una reducción del 30 % respecto a los actuales 3.3 V de la SDRAM. Trabaja a velocidades de 200 Mhz.. Es posiblemente la opción mas razonable en relación velocidad/precio para Pentium IV. DDR2 SDRAM: (Double Data Rate 2 SDRAM). Se basa en la tecnología DDR, con velocidades superiores (tasa de transferencia a 400 hasta 1024 Mb/s), mayores anchos de banda, bajo nivel de consume (Operación de 1.8 Voltios, lo que reduce el consumo de energía en aproximadamente el 50 %), y menor disipación térmica (calor). Posee latencias en la memoria más largas que la DDR. Es su punto en contra. Ya que sus latencias son casi el doble que la DDR. 16
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas ESDRAM: (Enchanced SDRAM). Esta memoria es una memoria SDRAM normal pero además se le añade un módulo SRAM, como la memoria de la caché. Este módulo viene a funcionar como la caché del procesador, con ello se consigue un mejor tiempo de respuesta. Ha sido desarrollada por Ramton, es de 7.5 ns., 3.3 V y tiempos de 2-1-1-1. Soporta 133 Mhz de bus. Este tipo de memoria se ve encarecido debido a ese módulo adicional de SRAM. DIRECT RDRAM: (Direct Rambus DRAM). Este tipo de memoria ya no está basado en la SDRAM, sino que es un nuevo tipo de arquitectura propietaria de Rambus, con lo cual todos aquellos fabricantes que fabrican este tipo de memorias tienen que pagar derechos, por ello el precio de la memoria se incrementa aun más. Las especificaciones hablan de 800 Mhz. De bus y ancho de banda de 1.6 Gbs. También viene en un formato distinto, ya no viene en DIMM sino en RIMM. SLDRAM: (Synk Link SDRAM). Desarrollada por el consorcio SynkLink, es también una nueva arquitectura pero no es propietaria, y nace como competencia de un grupo de fabricantes a la RDRAM, propietaria de Rambus Inc.. Funciona como la DDR SDRAM, se activa dos veces por ciclo de reloj. Esta memoria tiene una menor latencia y mayor ancho de bus que la RDRAM, soporta hasta 400 Mhz. De bus y su voltaje es de 2.5 V. SGRAM: (Synchronous Graphic RAM). Ofrece las mismas capacidades de la memoria SDRAM pero para las tarjetas gráficas, se utiliza en las tarjetas gráficas aceleradoras 3D. Actualmente, en el mercado nos encontramos una rivalidad en cuanto a memorias DDR vs. DDR2. A la hora de decidir entre memorias DDR y DDR2, generalmente se optaría por elegir memorias DDR2, pues en condiciones de memoria de calidad media nos ofrecerán mayor rendimiento. Además las placas bases de altas prestaciones vienen preparadas para memorias de este tipo. MEMORIA ROM La memoria ROM es una memoria de solo lectura. Contiene un patrón permanente de datos que no puede alterarse. La ventaja de una ROM es que el programa o los datos estarían permanentemente en memoria principal, y nunca sería necesario cargarlos desde un dispositivo de memoria secundaria (disco rígido). Distinto de la memoria principal (RAM), la ROM conserva su contenido incluso cuando el ordenador se apaga. El contenido de la ROM es permanente, mientras que RAM es volátil. Una ROM se construye como cualquier otro chip de circuito integrado, con los datos cableados en el chip durante el proceso de fabricación. Esto presenta dos problemas: • La etapa de inserción de datos implica unos costos fijos relativamente grandes. 17
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas • No se permiten fallas. Existen variaciones a la ROM convencional, tales como la PROM (ROM programable), la EPROM (PROM borrable), la EEPROM (PROM borrable electrónicamente). MEMORIA VIRTUAL Cuanto más programas utilicemos y más complejos sean, mas memoria necesitaremos. Sólo la carga del Sistema Operativo puede consumir TODA la memoria con la que se venden algunos ordenadores de bajo costo. Y para terminar de complicar el tema, los sistemas operativos tienden a aumentar su tamaño y su consumo de memoria según vamos instalando programas, ó sencillamente según pasa el tiempo, sin instalar nada. La lógica dice que si se agota la memoria, el ordenador deja de trabajar. Pese a esto, el hecho es que los ordenadores siguen trabajando cuando se les agota la memoria RAM, algo que sería imposible si no fuera por la denominada “memoria virtual”. La memoria virtual no es otra cosa que espacio del disco duro que se utiliza como si fuera memoria RAM. Sin embargo, esta memoria virtual tiene varios inconvenientes: el principal es su velocidad, ya que es muchísimo mas lenta que la RAM. Mientras la velocidad de acceso a la RAM se mide en nanosegundos, la de los discos rígidos se mide en milisegundos; es decir, que se tarda casi un millón de veces más en acceder a un dato que se encuentra en el disco rígido que a uno que se encuentra en la memoria RAM. Además, el ancho de banda es también muy inferior; por ejemplo, en un ordenador con memoria PC100 cada segundo pueden transmitirse 800 Mb. De datos que se encuentren en dicha memoria, mientras que ningún disco rígido actual alcanza siquiera los 40 Mb/s.. Por no hablar del considerable ruido que organizan algunos discos rígidos, su elevado consumo, y los más importante: el hecho innegable y no pocas veces lamentado de la escasa estabilidad del sistema Windows cuando realmente sobrecargamos el “archivo de intercambio” (el que almacena los datos de la memoria virtual). También tenemos que tomar en cuenta el desgaste que sufre el disco rígido al estar leyendo permanentemente los datos que no puede utilizar la memoria RAM. MEMORIA CACHÉ La memoria caché es una clase de memoria especial de alta velocidad que esta diseñada para acelerar el proceso de las instrucciones de memoria en la CPU (Unidad Central de Proceso). La CPU puede obtener las instrucciones y los datos ubicados en la memoria caché mucho más rápidamente que las instrucciones y datos almacenados en la memoria principal (RAM). Por ejemplo, en una placa madre típica de 100 Mhs., el CPU necesita hasta 180 nanosegundos para obtener información de la memoria principal, mientras que la información de la memoria caché sólo necesita de 45 nanosegundos. Por lo tanto, cuantas más instrucciones y datos la CPU pueda obtener directamente de la memoria caché, más rápido será el funcionamiento de la computadora. Las clases de memoria caché incluyen caché principal (también conocida como caché de Nivel 1) y caché secundaria (también como conocida como caché de Nivel 2). La memoria caché también puede ser interna o externa. La memoria caché interna esta 18
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas incorporada en la CPU del ordenador, mientras que la externa se encuentra fuera de la CPU. Anteriormente utilizamos la analogía de una oficina con una mesa de trabajo y varios archivos para explicar la relación entre la memoria principal y el disco duro de la computadora. Si la memoria es como la mesa de trabajo en la que se colocan los archivos en uso para que estén siempre al alcance, la memoria caché es como un tablero de anuncios en el que se colocan los papeles que se utilizan con mayos frecuencia. Cuando se necesita la información del tablero de anuncios, simplemente se mira el tablero. El “cerebro” del sistema de la memoria caché es el llamado controlador de memoria caché. Cuando un controlador de memoria caché accede a una instrucción de la memoria principal, también almacena las instrucciones posteriores. Esto se hace debido a que existe una alta probabilidad de que las instrucciones adyacentes también sean necesarias. Esto aumenta la probabilidad de que el CPU encuentre las instrucciones que necesita en la memoria caché, permitiendo así que la computadora funcione con mayor rapidez. ORGANIZACIÓN DE LOS COMPONENTES DE UNA CÓMPUTADORA 1 2 7 3 4 5 6 Componente que encontramos a simple vista dentro de una PC: 1- Fuente de Alimentación 2- Unidad Lecto Grabadora (CD/DVD) 3- Unidad Lectora de Disquette/Lector de Tarjetas. 4- Unidad de Almacenamiento: Disco Rígido (Ide/Sata) 5- Motherboard 6- Cables de conexión unidad de disco rígido, disqueteras y unidad lectoras 7- Procesador y Cooler. 19
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas 3 8 1 9 11 4 2 10 7 12 5 6 Reconocimiento de componentes que se encuentran en una Motherboard o también llamada Placa Madre: 1- Zocalo donde va encastrado el Microprocesador. 2- Bancos de Memoria Ram. 3- Conectores para: Teclado, Monitor, puertos USB, Sonido, Impresora, Cable de Red, Mouse. 4- Pila. 5- Conectores IDE. 6- Conector para Disquetera 7- Conector para la Fuente de alimentación. 8- Ranuras PCI. (Slots) 9- Ranura para placa de video AGP/PCI-E 10- Bios. 11- Memoria Cache. 12- Conectores SATA. 20
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas Clasificación Unidad central de Placa madre Unidad procesamiento aritmético/lógica Memoria RA M RO M Unidad de control Placas Video Hardware controladoras Discos Impresoras Sonido Unidades de alm. Discos rígidos Disqueteras Periféricos Unidades de entrada Teclado Scanner Unidades de entrada Unidades de disco /salida Módem Unidades de salida Monitor Impresoras Ploters Unidad central de procesamiento. Esta unidad es el corazón de todo el sistema de cómputos, contiene elementos de almacenamiento primario, aritmético/lógica y control. 1) Sección de almacenamiento primario. Llamada también memoria principal, se utiliza para cuatro funciones. Tres de ellas se relacionan con los datos que se están procesando. a) Los datos se introducen a un área de almacenamiento de entrada y permanecen en ese lugar hasta el momento en que se utilicen en el procesamiento. b) Un espacio de memoria de trabajo es como una hoja de papel para hacer cuentas y contendrá los datos que se están procesando, así como los resultados intermedios de dicho procesamiento. c) Un área de almacenamiento de salida guarda los resultados finales del procesamiento hasta que puedan ser liberados. d) Además de estas áreas relacionadas con los datos, la sección de almacenamiento primario también contiene un área de almacenamiento de programas, que guarda las instrucciones de procesamiento. Las distintas áreas que se destinan a las cuatro funciones generales mencionadas no se fijan por límites físicos incorporados en la sección de almacenamiento primario, sino que pueden variar en las distintas aplicaciones. De esta manera un espacio físico determinado puede contener datos de entrada en una aplicación y resultados de salida en otra. 21
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas 2) Sección aritmético/lógica. Juntas las secciones aritmético/lógica y de control constituyen la unidad central de procesamiento. Todos los cálculos y todas las comparaciones se realizan en esta sección. Una vez que los dispositivos de entrada introdujeron los datos a la memoria principal, se guardan y se transfieren a esta sección, cuando es necesario, donde se realiza el procesamiento, los resultados intermedios que se generan en la unidad aritmético lógica y se mantienen temporalmente en un área que se denomina memoria de trabajo hasta que se vuelvan a necesitar, solamente los datos finales se envían al área de almacenamiento de salida y de allí a los dispositivos de salida. 3) Sección de control. Al seleccionar, interpretar y ordenar la ejecución de las instrucciones del programa, la sección de control mantiene el orden y dirige la operación de todo el sistema. Aunque la sección de control no procesa datos, actúa como un sistema nervioso central para los demás componente manipuladores de datos de la computadora. Al comenzar el procesamiento, se elige la primera instrucción del programa y pasa del área de almacenamiento de programas a la sección de control. Allí se la interpreta y se envían señales a los otros componentes para que se lleven a cabo las acciones que se requieren. Se sigue eligiendo y ejecutando las instrucciones del programa, una tras otra, hasta terminar el proceso. Dispositivos de almacenamiento secundarios. En casi todas las computadoras se emplean dispositivos de almacenamiento secundario para completar la limitada capacidad de almacenamiento de la sección de almacenamiento primario. Los dispositivos de almacenamiento secundario están en línea con el coprocesador, aceptan datos o instrucciones del procesador, los conservan y los vuelven a introducir en el procesador cuando este los necesita para llevar a cabo tareas de procesamiento. Estos dispositivos de almacenamiento están integrados al mismo mueble de la computadora personal. Es común que se utilicen discos flexibles y discos rígidos, cinta magnética que generalmente se utilizan para backup o copias de seguridad. Dispositivos de salida. Al igual que las unidades de entrada, los dispositivos de salida son instrumentos que interpretan información y permiten la comunicación entre los seres humanos y las computadoras. Estos dispositivos convierten los resultados que produce el procesador y que están en código de máquina a una forma susceptible de ser empleados por las personas (por ejemplo informes impresos o desplegados por pantalla) o como entrada para otras máquinas que formen parte de un ciclo de procesamiento distinto. En los sistemas personales de cómputo, los dispositivos de salida más populares son las pantallas de exhibición y las impresoras de escritorio. Los dispositivos que aceptan las salidas de sistemas mayores generalmente son impresoras más grandes y más rápidas, 22
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas muchas estaciones de trabajo en línea y discos rígidos. A las unidades de entrada/salida y almacenamiento secundario se las llama en ocasiones dispositivos periféricos. ALMACENAMIENTO PRIMARIO DISPOSITIVO DISPOSITIVO DE SECCION DE ENTRADA ARITMETICO/LOGICA SALIDA SECCION DE CONTROL DISPOSITIVOS DE ALMACENAMIENTO SECUNDARIO SECCION DE CONTROL SECCION DE ALMACENAMIENTO PRIMARIO AREA DE ALMACENAMIENTO DISPOSITIVO AREA AREA DISPOSITIVO DE PROGRMAS DE DE DE ALMACENAM. ALMACENA DE DE M. AREA DE ALMACENAMIENTO ENTRADA ENTRADA DE SALIDA DE SALIDA TRABAJO SECCION ARITMETICO/LOGICA 23
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas Redes Una Red es una manera de conectar varias computadoras entre sí, compartiendo sus recursos e información y estando conscientes una de otra. Cuando las PC´s comenzaron a entrar en el área de los negocios, el conectar dos PC´s no traía ventajas, pero esto desapareció cuando se empezó a crear los sistemas operativos y el Software multiusuario. A. Topología de redes: La topología de una red , es el patrón de interconexión entre nodos y servidor, existe tanto la topología lógica (la forma en que es regulado el flujo de los datos) ,como la topología física ( la distribución física del cableado de la red). Las topologías físicas de red más comunes son: • Estrella. • Bus lineal • Anillo. A.1) Topología de estrella: Red de comunicaciones en que la que todas las terminales están conectadas a un núcleo central, si una de las computadoras no funciona, ésto no afecta a las demás, siempre y cuando el "servidor" no esté caído. ESTACION ESTACION DE DE TRABAJO TRABAJO NODO CENTRAL ESTACION DE TRABAJO ESTACION DE TRABAJO ESTACION DE ESTACION TRABAJO DE TRABAJO 24
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas A.2) Topología Bus lineal: Todas las computadoras están conectadas a un cable central, llamado el "bus" o "backbone". Las redes de bus lineal son de ESTACION ESTACION ESTACION DE DE DE TRABAJO TRABAJO TRABAJO NODO CENTRAL ESTACION ESTACION ESTACION DE DE DE TRABAJO TRABAJO TRABAJO las más fáciles de instalar y son relativamente baratas. A.3) Topología de anillo: Todas las computadoras o nodos están conectados el uno con el otro, formando una cadena o círculo cerrado. ESTACION ESTACION ESTACION DE DE DE TRABAJO TRABAJO TRABAJO NODO CENTRAL ESTACION ESTACION ESTACION DE DE DE TRABAJO TRABAJO TRABAJO B. Protocolos de intercambio, en informática, como en las relaciones humanas, señal mediante la cual se reconoce que puede tener lugar la comunicación o la transferencia de información. Los protocolos de intercambio se pueden controlar tanto con hardware como con software. Un protocolo de intercambio de hardware, como el existente entre un ordenador o computadora con una impresora o con un módem, es un intercambio de señales, a través de cables específicos, en el que cada dispositivo señala su disposición para enviar o recibir datos. Un protocolo de software, normalmente el que se intercambia durante las comunicaciones del tipo módem a módem, consiste en una determinada información transmitida entre los dispositivos de envío y de recepción. Un protocolo de intercambio de software establece un acuerdo entre los dispositivos sobre los protocolos que ambos utilizarán al comunicarse. Un protocolo de 25
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas intercambio de hardware es por tanto similar a dos personas que físicamente estrechan sus manos, mientras que un protocolo de intercambio de software es más parecido a dos grupos que deciden conversar en un lenguaje particular. C. TCP/IP: (Transmission Control Protocol/Internet Protocol) Protocolo de control de transmisiones/protocolo Internet. Conjunto de protocolos de comunicaciones desarrollado por la Defense Advanced Research Projects Agency (DARPA - Agencia de proyectos de investigación avanzada de defensa) para intercomunicar sistemas diferentes. Se ejecuta en un gran número de computadoras VAX y basadas en UNIX, y es utilizado por muchos fabricantes de hardware, desde los de computadoras personales hasta los de macrocomputadoras. Es empleado por numerosas corporaciones y por casi todas las universidades y organizaciones federales de los Estados Unidos. El File Transfer Protocol (FTP - Protocolo detransferencia de archivos) y el Simple Mail Transfer Protocol (SMTP -Protocolo simple de transferencia de correspondencia) brindan capacidades de transferencia de archivos y de correo electrónico. El protocolo TELNET proporciona una capacidad de emulación de terminal que permite al usuario interactuar con cualquier otro tipo de computadora de la red. El protocolo TCP controla la transferencia de los datos, y el IP brinda el mecanismo para encaminarla. En el siguiente diagrama se muestran TCP/IP, junto con los modelos DOD y OSI. D. IPX: (Internet Packet EXchange) intercambio de paquetes entre redes Un protocolo de comunicaciones del NetWare de Novell que se utiliza para encaminar mensajes de un nodo a otro. Los programas de aplicación que manipulan sus propias comunicaciones cliente/servidor o de igual a igual en una red Novell pueden acceder directamente al IPX o al protocolo SPX de NetWare. El IPX no garantiza la entrega del mensaje como lo hace el SPX. E. NETBEUI: NetBEUI (NETBIOS Extended User Interface) Interfaz de usuario extendido de NetBIOS La realización del protocolo de transporte NetBIOS en LAN Manager y LAN Server. Se comunica con las tarjetas de interfaz de red (NICs) vía NDIS (Network Driver Interface Specification). El término fue originalmente usado para definir el protocolo NetBIOS después que éste fue mejorado para soportar la Token Ring Network. F. Tipos de Redes: Según el lugar y el espacio que ocupen, las redes, se pueden clasificar en dos tipos: 1.Redes LAN (Local Area Network) o Redes de área local 2.Redes WAN (Wide Area Network) o Redes de área amplia 1.- LAN - Redes de Área Local: Es una red que se expande en un área relativamente pequeña. Éstas se encuentran comúnmente dentro de una edificación o un conjunto de edificaciones que estén contiguos. Así mismo, una LAN puede estar conectada con otras LANs a cualquier distancia por medio de línea telefónica y ondas de radio. Pueden ser desde 2 computadoras, hasta cientos de ellas. Todas se conectan entre sí por varios medios y topología, a la computadora(s) que se encarga de llevar el control de la 26
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas red es llamada "servidor" y a las computadoras que dependen del servidor, se les llama "nodos" o "estaciones de trabajo". Los nodos de una red pueden ser PC´s que cuentan con su propio CPU, disco duro y software y tienen la capacidad de conectarse a la red en un momento dado; o pueden ser PC´s sin CPU o disco duro y son llamadas "terminales tontas", las cuales tienen que estar conectadas a la red para su funcionamiento. Las LANs son capaces de transmitir datos a velocidades muy rápidas, algunas inclusive más rápido que por línea telefónica; pero las distancias son limitadas. 2. - WAN - Redes de Área Amplia: Es una red comúnmente compuesta por varias LANs interconectadas y se encuentran en una amplia área geográfica. Estas LANs que componen la WAN se encuentran interconectadas por medio de líneas de teléfono, fibra óptica o por enlaces aéreos como satélites. Entre las WANs mas grandes se encuentran: la ARPANET, que fue creada por la Secretaría de Defensa de los Estados Unidos y se convirtió en lo que es actualmente la WAN mundial: INTERNET, a la cual se conectan actualmente miles de redes universitarias, de gobierno, corporativas y de investigación. G.) Componentes de una red: De lo que se compone una red en forma básica es lo siguiente: 1.-Servidor (server): El servidor es la máquina principal de la red, la que se encarga de administrar los recursos de la red y el flujo de la información. Muchos de los servidores son "dedicados" , es decir, están realizando tareas específicas, por ejemplo , un servidor de impresión solo para imprimir; un servidor de comunicaciones, sólo para controlar el flujo de los datos...etc. Para que una máquina sea un servidor, es necesario que sea una computadora de alto rendimiento en cuanto a velocidad y procesamiento, y gran capacidad en disco duro u otros medios de almacenamiento. 2.- Estación de trabajo (Workstation): Es una computadora que se encuentra conectada físicamente al servidor por medio de algún tipo de cable. Muchas de las veces esta computadora ejecuta su propio sistema operativo y ya dentro, se añade al ambiente de la red. 3. - Sistema Operativo de Red: Es el sistema (Software) que se encarga de administrar y controlar en forma general la red. Para ésto tiene que ser un Sistema Operativo Multiusuario, como por ejemplo: Unix, Netware de Novell, Windows NT, etc. 4. - Recursos a compartir: Al hablar de los recursos a compartir, estamos hablando de todos aquellos dispositivos de Hardware que tienen un alto costo y que son de alta tecnología. En éstos casos los más comunes son las impresoras, en sus diferentes tipos: Láser, de color, plotters, etc. 5. - Hardware de Red Son aquellos dispositivos que se utilizan para interconectar a los componentes de la red, serían básicamente las tarjetas de red (NIC-> Network Interface Cards) y el cableado entre servidores y estaciones de trabajo, así como los cables para conectar los periféricos. 1. Routers y bridges: Los servicios en la mayoría de las LAN son muy potentes. La mayoría de las organizaciones no desean encontrarse con 27
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas núcleos aislados de utilidades informáticas. Por lo general prefieren difundir dichos servicios por una zona más amplia, de manera que los grupos puedan trabajar independientemente de su ubicación. Los routers y los bridges son equipos especiales que permiten conectar dos o más LAN. El bridge es el equipo más elemental y sólo permite conectar varias LAN de un mismo tipo. El router es un elemento más inteligente y posibilita la interconexión de diferentes tipos de redes de ordenadores. Las grandes empresas disponen de redes corporativas de datos basadas en una serie de redes LAN y routers. Desde el punto de vista del usuario, este enfoque proporciona una red físicamente heterogénea con aspecto de un recurso homogéneo. 2. Brouters: Un disco dispositivo de comunicaciones que realiza funciones de puente (bridge) y de encaminador (router). Como puente, las funciones del "brouter" son al nivel de enlace de datos (estrato 2), independientemente de protocolos más altos, pero como encaminador, administra líneas múltiples y encamina los mensajes como corresponde. 3. Gateway: pasarela, puerta de acceso Una computadora que conecta dos tipos diferentes de redes de comunicaciones. Realiza la conversión de protocolos de una red a otra. Por ejemplo, una puerta de acceso podría conectar una red LAN de computadoras. Nótese la diferencia con bridge, el cual conecta redes similares. H.) Transmisión de datos en las redes: La transmisión de datos en las redes, puede ser por dos medios: 1. - Terrestres: Son limitados y transmiten la señal por un conductor físico. 2. - Aéreos: Son "ilimitados" en cierta forma y transmiten y reciben las señales electromagnéticas por microondas o rayo láser. 1.- Terrestres: a. Cable par trenzado: Es el que comúnmente se utiliza para los cables de teléfonos, consta de 2 filamentos de cobre, cubiertos cada uno por plástico aislante y entrelazados el uno con el otro, existen dos tipos de cable par trenzado: el "blindado", que se utiliza en conexiones de redes y estaciones de trabajo y el "no blindado", que se utiliza en las líneas telefónicas y protege muy poco o casi nada de las interferencias. b. Cable coaxial: Este tipo de cable es muy popular en las redes, debido a su poca susceptibilidad de interferencia y por su gran ancho de banda, los datos son transmitidos por dentro del cable en un ambiente completamente cerrado, una pantalla sólida, bajo una cubierta exterior. Existen varios tipos de cables coaxiales, cada uno para un propósito diferente. c. Fibra óptica: Es un filamento de vidrio sumamente delgado diseñado para la transmisión de la luz. Las fibras ópticas poseen enormes capacidades de transmisión, del orden de miles de millones de bits por segundo. Además de que los impulsos luminosos no son afectados por interferencias causadas por la radiación aleatoria del ambiente. Actualmente la fibra óptica está remplazando en grandes cantidades a los cables comunes de cobre. 28
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas SOFTWARE La palabra significa blando, lo no tangible a diferencia del hardware, y se le atribuye a los programas y conjunto de instrucciones necesarias para la elaboración electrónica de los datos. Clasificación : De base Dos Unix Zennix Os/2 De programación Alto nivel Bajo nivel De aplicación Bases de datos Planillas de cálculo Software Procesadores de texto Graficadores Estadísticos Animación Paquetes integrados Utilitarios Antivirus Organizadores y servidores de discos Organizadores de recursos Redes Software de base: Son los sistemas operativos, que contienen los programas base para el funcionamiento de la computadora, como organizar el disco, copiar archivos y crear el ambiente necesario para poder programar. Software de programación: Son aquellos que hacen de interlocutor entre el programador y la máquina, permiten escribir instrucciones bajo las reglas del lenguaje. Cuanto más amigable es el lenguaje, es decir cuanto en más fácil es programar en él, sube el nivel del lenguaje, pero esto hace también que sean mas acotados en la variedad de cosas que se pueden hacer con los programas realizados. Software de aplicación: Son aquellos en los que no necesito saber programar para utilizarlos, tienen un buen sistema de dialogo entre el usuario y la computadora y son específicos para cada tarea. Software utilitario: Son aquellos que me permiten realizar funciones técnicas sin serlo como los servidores de disco y los organizadores de recursos. SISTEMAS OPERATIVOS O SOFTWARE DE BASE 29
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas Un sistema Operativo (SO) es en sí mismo un programa de computadora. Sin embargo, es un programa muy especial, quizá el más complejo e importante en una computadora. El SO despierta a la computadora y hace que reconozca a la CPU, la memoria, el tecla do, el sistema de vídeo y las unidades de disco. Además, proporciona la facilidad para que los usuarios se comuniquen con la computadora y sirve de plataforma a partir de la cual se corran programas de aplicación. Cuando enciendes una computadora, lo primero que ésta hace es llevar a cabo un autodiagnóstico llamado autoprueba de encendido (Power On Self Test, POST). Durante la POST, la computadora identifica su memoria, sus discos, su teclado, su sistema de vídeo y cualquier otro dispositivo conectado a ella. Lo siguiente que la computadora hace es buscar un SO para arrancar (boot). Una vez que la computadora ha puesto en marcha su SO, mantiene al menos parte de éste en su memoria en todo momento. Mientras la computadora esté encendida, el SO tiene 4 tareas principales: 1. Proporcionar ya sea una interfaz de línea de comando o una interfaz gráfica al usuario, para que este último se pueda comunicar con la computadora. Interfaz de línea de comando: tú introduces palabras y símbolos desde el teclado de la computadora, ejemplo, el MS-DOS. Interfaz gráfica del Usuario (GUI), seleccionas las acciones mediante el uso de un Mouse para pulsar sobre figuras llamadas iconos o seleccionar opciones de los menús. 2. Administrar los dispositivos de hardware en la computadora · Cuando corren los programas, necesitan utilizar la memoria, el monitor, las unidades de disco, los puertos de Entrada/Salida (impresoras, módems, etc). El SO sirve de intermediario entre los programas y el hardware. 3. Administrar y mantener los sistemas de archivo de disco · Los SO agrupan la información dentro de compartimientos lógicos para almacenarlos en el disco. Estos grupos de información son llamados archivos. Los archivos pueden contener instrucciones de programas o información creada por el usuario. El SO mantiene una lista de los archivos en un disco, y nos proporciona las herramientas necesarias para organizar y manipular estos archivos. 4. Apoyar a otros programas. Otra de las funciones importantes del SO es proporcionar servicios a otros programas. Estos servicios son similares a aquellos que el SO proporciona directamente a los usuarios. Por ejemplo, listar los archivos, grabarlos a disco, eliminar archivos, revisar espacio disponible, etc. Cuando los programadores escriben programas de computadora, incluyen en sus programas instrucciones que solicitan los servicios del SO. Estas instrucciones son conocidas como "llamadas del sistema" El Kernel y el Shell. Las funciones centrales de un SO son controladas por el núcleo (kernel) mientras que la interfaz del usuario es controlada por el entorno (shell). Por ejemplo, la parte más importante del DOS es un programa con el nombre "COMMAND.COM" Este programa ti ene dos partes. El kernel, que se mantiene en memoria en todo momento, contiene el código máquina de bajo nivel para manejar la administración de hardware para otros programas que necesitan estos servicios, y para la segunda parte del COMMAND.COM el shell, el cual es el interprete de comandos. 30
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas Las funciones de bajo nivel del SO y las funciones de interpretación de comandos están separadas, de tal forma que puedes mantener el kernel DOS corriendo, pero utilizar una interfaz de usuario diferente. Esto es exactamente lo que sucede cuando carga Microsoft Windows, el cual toma el lugar del shell, reemplazando la interfaz de línea de comandos con una interfaz gráfica del usuario. Existen muchos shells diferentes en el mercado, ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o inclusive el mismo SO MS-DOS a partir de la versión 5.0 incluyó un Shell llamado DOS SHELL. A.) Categorías de Sistemas Operativos A.1) MULTITAREA: El término multitarea se refiere a la capacidad del SO para correr mas de un programa al mismo tiempo. Existen dos esquemas que los programas de sistemas operativos utilizan para desarrollar SO multitarea, el primero requiere de la cooperación entre el SO y los programas de aplicación. Los programas son escritos de tal manera que periódicamente inspeccionan con el SO para ver si cualquier otro programa necesita a la CPU, si este es el caso, entonces dejan el control del CPU al siguiente programa, a este método se le llama multitarea cooperativa y es el método utilizado por el SO de las computadoras de Machintosh y DOS corriendo Windows de Microsoft. El segundo método es el llamada multitarea con asignación de prioridades. Con este esquema el SO mantiene una lista de procesos (programas) que están corriendo. Cuando se inicia cada proceso en la lista el SO le asigna una prioridad. En cualquier momento el SO puede intervenir y modificar la prioridad de un proceso organizando en forma efectiva la lista de prioridad, el SO también mantiene el control de la cantidad de tiempo que utiliza con cualquier proceso antes de ir al siguiente. Con multitarea de asignación de prioridades el SO puede sustituir en cualquier momento el proceso que esta corriendo y reasignar el tiempo a una tarea de mas prioridad. Unix OS-2 y Windows NT emplean este tipo de multitarea. A.2) MULTIUSUARIO: Un SO multiusuario permite a mas de un solo usuario accesar una computadora. Claro que, para llevarse esto a cabo, el SO también debe ser capaz de efectuar multitareas. Unix es el Sistema Operativo Multiusuario más utilizado. Debido a que Unix fue originalmente diseñado para correr en una minicomputadora, era multiusuario y multitarea desde su concepción. Actualmente se producen versiones de Unix para PC tales como The Santa Cruz Corporation Microport, Esix, IBM,y Sunsoft. Apple también produce una versión de Unix para la Machintosh llamada: A/UX.Unix Unix proporciona tres maneras de permitir a múltiples personas utilizar la misma PC al mismo tiempo. 1.) Mediante Módems. 2.) Mediante conexión de terminales a través de puertos seriales 3.) Mediante Redes. A.3) MULTIPROCESO: Las computadoras que tienen mas de un CPU son llamadas multiproceso. Un sistema operativo multiproceso coordina las operaciones de la computadoras multiprocesadoras. Ya que cada CPU en una computadora de multiproceso puede estar ejecutando una instrucción, el otro procesador queda liberado para procesar otras instrucciones simultáneamente. 31
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas Al usar una computadora con capacidades de multiproceso incrementamos su velocidad de respuesta y procesos. Casi todas las computadoras que tienen capacidad de multiproceso ofrecen una gran ventaja. Los primeros Sistemas Operativos Multiproceso realizaban lo que se conoce como: • Multiproceso asimétrico: Una CPU principal retiene el control global de la computadora, así como el de los otros procesadores. Esto fue un primer paso hacia el multiproceso pero no fue la dirección ideal a seguir ya que la CPU principal podía convertirse en un cuello de botella. • Multiproceso simétrico: En un sistema multiproceso simétrico, no existe una CPU controladora única. La barrera a vencer al implementar el multiproceso simétrico es que los SO tienen que ser rediseñados o diseñados desde el principio para trabajar en u n ambiente multiproceso. Las extensiones de Unix, que soportan multiproceso asimétrico ya están disponibles y las extensiones simétricas se están haciendo disponibles. Windows NT de Microsoft soporta multiproceso simétrico. B.) Historia de los Sistemas Operativos más comunes. CP/M y D.O.S., el comienzo CP/M (Control Program for Microcomputers), desarrollado por Gary Kildall fue el primer sistema operativo que podía ejecutarse en PCs de diferentes fabricantes. Cuenta una anécdota que ejecutivos de IBM fueron a visitar a Kildall para ofrecerle un acuerdo para poner el CP/M en la IBM PC, pero Kildall al parecer estaba ocupado en una sesión de vuelo, y no los pudo atender. Resultado: IBM llegó a un acuerdo con un joven llamado Bill Gates para que desarrollara un sistema operativo, que se dio en llamar MS- DOS. Para muchos de los que hoy nos encontramos trabajando con una computadora el sistema operativo D.O.S (Disk Operating System) fue el primero que nos tocó utilizar. De la misma manera, fue también el comienzo para Bill Gates y su empresa Microsoft. En sus principios fue desarrollado junto con la empresa IBM, pero diferencias entre las partes hicieron que no fuera un lanzamiento en conjunto. Por el contrario, cada una de las empresas presentó "su" sistema operativo: PC-DOS (IBM) y MS-DOS (Microsoft). Un tercer competidor para estos sistemas operativos (y de muy buena calidad) fue el DR-D.O.S. de la empresa Digital Research que incluía comandos más prolijos y de mayor funcionalidad, pero que con el tiempo, y gracias a las campañas publicitarias de Microsoft fue quedando relegado a un segundo lugar compartido con el PC-DOS de IBM. Luego de unos años DR-D.O.S. fue adquirido por Novell que presentó una nueva versión conocida como Novell D.O.S. que realmente casi no tuvo cabida en el mercado, aunque era muy buena. D.O.S. era simplemente una pantalla de texto con una línea de comandos que nos indicaba en qué directorio nos encontrábamos como único dato orientativo. Uno tenía que "saber" que "cosas" había que escribir para que la máquina "hiciera algo". No había menúes contextuales, ni pantallas gráficas que nos guiaran. Carecía por completo de 32
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas algún nivel intuitivo. D.O.S. todavía hoy utiliza antiguos comandos CP/M tales como DIR, REN y TYPE que aun hoy funcionan bajo la máquina virtual D.O.S. de Windows. Las versiones que lo hicieron famoso en el mundo entero fueron la 3.0 y la 3.3, mientras que la más utilizada fue la 5.0, que introdujo muchos cambios a sus antecesoras. La versión 4.0 de D.O.S. estuvo plagada de errores, por lo cual casi no se uso (los usuarios se mantuvieron con la versión 3.30). La última versión del producto como tal fue la 6.22, ya que luego apareció Windows 95 que en su corazón incluía la versión 7.0 OS/2. Desarrollado inicialmente por Microsoft Corporation e International Business Machines (IBM), después de que Intel introdujera al mercado su procesador 80286. Pero la sociedad no duro mucho ya que IBM veía a Windows como una amenaza para el SO/2. Pero IBM continuo desarrollando este sistema operativo. El OS/2 al principio fue muy parecido al MS-DOS, tiene una línea de comando, pero la diferencia que existe con el DOS es el intérprete de comandos, el cual es un programa separado del kernel del sistema operativo y aparece únicamente cuando se hace clic en uno de los iconos “OS/2 prompt” dentro del Workplace Shell. Otra diferencia es que este sí en un sistema operativo multitarea. En el OS/2 muchos de los comandos son idénticos a los de su contra parte pero tiene más comandos debido a que es más grande, completo y moderno. El ambiente gráfico es el Workplace Shell (WS), es el equivalente a un administrador del área de trabajo para el WS. MACINTOSH OS. El sistema operativo constituye la interfaz entre las aplicaciones y el hardware del Macintosh. El administrador de memoria obtiene y libera memoria en forma automática para las aplicaciones y el sistema operativo. Esta memoria se encuentra normalmente en un área llamada cúmulo. El código de procedimientos de una aplicación también ocupa espacio en el cúmulo. Ahora se presenta una lista de los principales componentes del sistema operativo. ° El cargador de segmentos carga los programas por ejecutar. Una aplicación se puede cargar completa o bien puede dividirse en segundos individuales que se pueden cargar de manera dinámica conforme se necesiten. ° El administrador de eventos del sistema operativo informa de la ocurrencia de diversos eventos de bajo nivel, como la presión de un botón del mouse o el tecleo. En condiciones normales, el administrador de eventos de la caja de herramientas transfiere estos eventos a las aplicaciones. ° El administrador de archivos se encarga de la entrada / salida de archivos; el administrador de dispositivos se encarga de la entrada / salida de dispositivos. ° Los manejadores de dispositivos son programas con los cuales los diversos tipos de dispositivos pueden presentar interfaces uniformes de entrada / salida a las aplicaciones. Tres manejadores de dispositivo están integrados al sistema operativo en ROM: el manejador de disco se encarga del acceso a la información en discos, el manejador de 33
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas sonido controla los generadores de sonido, y el manejador en serie envía y recibe datos a través de los puertos seriales (estableciendo así la comunicación con dispositivos periféricos en serie como impresoras y módems). ° Con el manejador de impresoras las aplicaciones pueden imprimir datos en diversas impresoras. ° Con el administrador de AppleTalk las aplicaciones pueden transmitir y recibir información en una red de comunicaciones AppleTalk. ° El Administrador de retrazado vertical programa las actividades por realizar durante las interrupciones de retrazado vertical que ocurren 60 veces cada segundo cuando se refresca la pantalla de vídeo. ° El manejador de errores del sistema toma el control cuando ocurre un error fatal del sistema y exhibe un cuadro de error apropiado. ° Los programas de utilidad general del sistema operativo ofrecen diversas funciones útiles como la obtención de la fecha y la hora, la comparación de cadenas de caracteres y muchas más. ° El paquete de iniciación es llamado por el paquete de archivos estándar para iniciar y nombrar discos; se aplica con más frecuencia cuando el usuario inserta un disco al que no se le han asignado valores iniciales. ° El paquete de aritmética de punto flotante ofrece aritmética de doble precisión. El paquete de funciones trascendentales ofrece un generador de números aleatorios, así como funciones trigonométricas, logarítmicas, exponenciales y financieras. Los compiladores de Macintosh generan en forma automática llamadas a estos paquetes para realizar manipulaciones numéricas. UNIX. Es un sistema operativo multiusuario que incorpora multitarea. Fue desarrollado originalmente por Ken Thompson y Dennis Ritchie en los laboratorios de AT&T Bell en 1969 para su uso en minicomputadoras. El sistema operativo UNIX tiene diversas variantes y se considera potente, más transportable e independiente de equipos concretos que otros sistemas operativos porque esta escrito en lenguaje C. El UNIX esta disponible en varias formas, entre las que se cuenta AIX, una versión de UNIX adaptada por IBM (para su uso en estaciones de trabajo basadas en RISC), A/ux (versión gráfica para equipos Apple Macintosh) y Mach (un sistema operativo reescrito, pero esencialmente compatible con UNIX, para las computadoras NeXT). El UNIX y sus clones permiten múltiples tareas y múltiples usuarios. Su sistema de archivos proporciona un método sencillo de organizar archivos y permite la protección de archivos. Sin embargo, las instrucciones del UNIX no son intuitivas. Este sistema ofrece una serie de utilidades muy interesantes, como las siguientes: ° Inclusión de compiladores e interpretes de lenguaje. ° Existencia de programas de interfase con el usuario, como ventanas, menús, etc. ° Muchas facilidades a la hora de organización de ficheros. ° Inclusión de lenguajes de interrogación. ° Facilidades gráficas. ° Programas de edición de textos. WINDOWS, EL INICIO DE UNA INTERFAZ GRÁFICA 34
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas Las dos primeras versiones de este "Entorno Operativo" (nótese que no era un sistema operativo en sus principios) no tuvieron mucho éxito entre el público consumidor. Lo único que logró fue que Apple le iniciara un juicio a Microsoft por su semejanza con su sistema operativo MacOs. El boom de Windows se produjo con su versión 3.0 (y más aún con la 3.1) cuando comenzó a aprovechar las capacidades de los procesadores "386" y le dio un mejor manejo a la memoria hacia el año 1991 Fue simplemente un "shell" para DOS, ya que sin este no funcionaba. Y por esa razón no es un sistema operativo, sino un "entorno operativo". El atractivo que tuvo para con la gente fue su "casi real" facilidad de uso y su "cara" gráfica que hacía olvidar "las pantallas negras" de DOS. Un tiempo más tarde se le agregaron capacidades para trabajar con redes y pasó a la versión 3.11 (para grupos de trabajo). Esta fue la última versión comercial que salió al mercado antes de que Windows 95 hiciera su aparición. WINDOWS 95: EL ENTORNO OPERATIVO Desde el principio, Windows 95 se publicitó como un sistema operativo de 32 bits. Pero cuando salió a la luz se pudo ver que esto no era totalmente verdad: era un sistema operativo (ya no un entorno), porque no necesitaba de ningún otro programa para poder funcionar (aunque se incluía el DOS 7.0 "completo" y alguien dijo que "sí" lo necesitaba). Por otro lado, la promesa de los 32 bits (programas más rápidos y mejor aprovechamiento de la memoria) no se cumplió. Muchas de las "partes" de este sistema operativo fueron de 16 bits como sus antecesores. Esto se explicó diciendo que era así por la cantidad de programas "heredados" de las versiones anteriores (Windows 3.1). Casi en el mismo momento (un año antes) apareció en el mercado un verdadero sistema operativo de 32 bits que sería la competencia directa al tan publicitado Windows 95: OS/2 de IBM. En principio fue desarrollado en cooperación entre IBM y Microsoft (como años atrás con el DOS), y como años atrás surgieron diferencias que hicieron que cada empresa presentara su producto. OS/2 fue un sistema operativo totalmente de 32 bits que muchos expertos consideran mejor, más estable y con mayores prestaciones que Windows 95, pero que (nuevamente) las campañas publicitarias relegaron a un segundo lugar, ya que la gran mayoría de los desarrolladores decidieron hacer sus programas "compatibles" con Windows 95 y no con OS/2. WINDOWS 98/NT: YA NADA SERÍA IGUAL Windows 98 no representó para los usuarios comunes ningún cambio significativo. Sólo un poco de retoque gráfico y alguna que otra utilidad nueva o mejorada (como el "liberador de espacio" o el viejo "defrag"). Pero si trajo algunas cosas nuevas: el soporte completo para los 32 bits, y la “eliminación” del DOS como sistema independiente (ya que no incluyó una nueva versión, sino un emulador del mismo). En esta época no podemos dejar de mencionar Windows NT (Windows Nueva Tecnología). Windows NT fue un sistema operativo de 32 bits especializado en redes que utilizó otro sistema para el manejo de los archivos (NTFS), y por lo tanto "incompatible" con Windows 95/98. 35
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas Versiones de Windows NT: 3.1, 3.5, 3.51, 4; está ultima versión tuvo estas variantes: Workstation, Server, Server Enterprise Edition, Terminal Server, Embedded. WINDOWS 2000/WINDOWS ME Windows 2000 fue el sucesor de NT, por lo que estuvo orientado a empresas y heredó muchas de las características de este; hasta llegar a su última versión 2003 Server. Su gran estabilidad, su soporte para varios procesadores, su alto nivel de seguridad, además de sus impresionantes capacidades para desenvolverse como server lo hicieron la mejor opción para una empresa. Era rápido y lo suficientemente fácil de configurar casi para cualquier persona, pero hay que tener en cuenta que tiene poco soporte para el agregado de periféricos como tarjetas de video o de sonido. Es decir, este no fue un sistema operativo totalmente apto para la multimedia. Al ser de esta manera, es no fue aconsejable su uso en hogares, donde comunmente encontraremos juegos, música en la PC, enciclopedias multimedia y demás. Ahí es donde entró Windows Millennium Edition (ME), sucesor de Windows 98: Fue un sistema operativo donde primó la facilidad de uso, las mejoras en multimedia, comunicaciones e Internet. Aunque no contó con la estabilidad de Windows 2000 fue más seguro que Windows 98 y 98 SE (segunda edición) ya que se incorporaron una serie de utilidades para proteger el sistema operativo y hacerlo más resistente a las instalaciones de programas y drivers de terceros que, en definitiva, fueron las principales causas de cuelgues y pantallas azules en sus predecesores. Una de las cosas interesantes con que nos encontramos en Windows ME es que el modo DOS, tal como lo conocimos, había dejado de existir. Ya no era posible iniciar el sistema en "sólo símbolo del sistema" o apagar el sistema "reiniciando en modo MS- DOS". Tanto es así, que los archivos AUTOEXEC.BAT y CONFIG.SYS ya no tuvieron ninguna función en ME (salvo durante la instalación). Lo que realmente se eliminó de Windows ME fue el soporte para aplicaciones DOS de 16 bits en modo real. En su momento, la elección de uno u otro sistema dependió del uso que deseaba hacer de la PC, siendo lo más lógico Windows 2000 para empresas y Windows ME para hogares. El tiempo también dijo que Windows Millennium Edition fue el mas inestable de los sistemas operativos post Windows 95. La línea Windows 2000 Server fué reemplazada por Windows Server 2003, y Windows 2000 Professional con Windows XP Professional. Versiones de Windows 2000: Professional, Server, Advanced Server y Datacenter Server. WINDOWS XP/WINDOWS 2003 SERVER, LA NUEVA GENERACIÓN DEL ESCRITORIO Windows XP fue la mejora mas importante técnicamente desde Windows 9x, y unificó en cierto modo las versiones separadas que hubo estos años: WINDOWS 9x/ME para 36
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas usuarios hogareños y SOHO contra Windows NT/2000 para usuarios corporativos con requerimientos de trabajo en redes de alto nivel. Windows XP se distribuyó en 2 versiones principales: Windows XP Home Edition y Windows XP Profesional. La versión Home no tenía tanto soporte para redes, lo que si incluyó la versión Profesional. Esto S.O., además de constituirse en la unión de los entornos mencionados, es en realidad la continuación de Windows NT/2000. Se destacó en este producto su alto grado de integración con las redes e Internet, además de proveer una nueva interfase gráfica que se hizo notar ni bien se comienza a utilizar. Los cambios de interfaz fueron básicamente estéticos. La diferencia real con sus predecesores estuvo dada por el soporte LAN, soft de grabación de CDs, multimedia, escritorio remoto y manejo de usuarios. Algo muy importante es el hecho de que Microsoft con esta versión de su S.O. ha puso especial énfasis en los drivers. WXP fué muchísimo mas renuente que sus predecesores a instalar drivers no certificados para el mismo. Con esto Microsoft pretendió reducir al máximo las ya tan conocidas (y sufridas) "pantallas azules", aduciendo que la mayoría de las causas de inestabilidad de las versiones anteriores estaba dada por el uso de drivers no certificados, obsoletos o mal desarrollados. Debido a esto, se destaca la búsqueda inteligente de controladores que hace el S.O. al momento de instalar un dispositivo nuevo, escaneando unidades en busca de los drivers correctos. Windows XP contó con las actualizaciones más profundas a nivel seguridad que ningún otro sistema operativo Microsoft: prueba de ello fueron los Service Pack 1 y 2. También fue el primero en adoptar un sistema de verificación de autenticidad del S.O.: WGA (Windows Genuine Advantage) Windows 2003 Server estuvo basado en el núcleo de Windows XP, al que se le añadieron una serie de servicios, y se le han bloqueado algunas características. A grandes rasgos, Windows Server 2003 es un Windows XP simplificado, no con menos funciones, sino que estas están deshabilitadas por defecto para obtener un mejor rendimiento y para centrar el uso de procesador en las características de servidor. Versiones de Windows XP: Windows XP 64 Bits: Uso en procesadores de 64 bits. Windows XP Media Center Edition Windows XP Tablet PC Edition: Tablet PC Windows XP Embedded: ATM, terminales. Windows Fundamentals for Legacy PCs: Versión simplificada de XP para uso en hardware obsoleto. Windows XP Starter Edition: distribuida solo en determinados países, (una versión tan básica y limitada que por momentos se torna bastante impráctica al momento de utilizarla). Versiones de Windows 2003 Server: Web Edition, Standard Edition, Enterprise Edition, Datacenter Edition WINDOWS VISTA, LA ERA POST XP DE MICROSOFT 37
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas Windows Vista requiere de hardware realmente potente para ejecutarse en toda su dimensión o con una performance aceptable; incluso para las versiones mas "básicas" de este S.O. Las versiones disponibles son varias: Enterprise, Business, Ultimate (para usuarios corporativos), Starter (solo comercializada en países emergentes, una versión reducida que si es similar a su homónima de Windows XP); y por último las versiones Home Basic y Home Premium (para usuarios domésticos). LINUX Cuando Linus Torvalds comenzó a trabajar sobre Minix para obtener su propio sistema operativo no tenía ni la más remota idea de lo que su trabajo llegaría a ser en todo el mundo. Este sistema operativo es totalmente distinto a los vistos anteriormente por un montón de razones. He aquí algunas de ellas: * No fue desarrollado por una gran empresa: Linus Torvalds desarrolló el kernel (el corazón) del sistema y luego liberó el código fuente del mismo en Internet para que cualquier programador que se animara pudiera modificarlo y agregarle lo que quisiera. Así, el Linux que hoy se conoce fue creado por cientos de programadores "libres" alrededor del mundo y no por una empresa. * Es gratis y abierto: Todo el sistema operativo es totalmente gratuito (al igual que muchísimos de sus programas), si posee una conexión a Internet es posible bajarlo a su máquina. Lo que algunas empresas hacen es "empacar" el sistema y algunos programas y grabarlos en CD’s, que junto con algún manual es lo que luego "venden". Esto se conoce como Distribuciones. Además, junto con el sistema vienen los códigos fuentes del mismo (y de algunos programas) para que pueda ser modificado a gusto del usuario (si este es un programador experimentado), es por esto que se dice que es "abierto". * Nació a partir de otro sistema operativo: Es una modificación del sistema Minix, que a su vez nació como una "reducción" de UNIX, "el único sistema operativo verdadero, a partir del cual se crearon los demás" (incluido DOS) según la opinión de muchos Hackers. Este sistema operativo es el elegido por las empresas que proveen acceso a Internet, debido a su gran estabilidad y eficiencia. Además, posee un muy buen manejo de redes y seguridad, lo que está haciendo que muchas empresas e instituciones (escolares sobre todo) lo tengan en cuenta para reemplazar sus sistemas actuales. En un principio, Linux también era una "pantalla negra" en modo texto y muy poco intuitivo (al igual que DOS, al igual que UNIX). Pero desde hace un tiempo se desarrollaron entornos gráficos (varios: KDE, Gnome, etc.) que no tienen nada que envidiarle a Windows 95/98 y que hacen que más usuarios (menos experimentados) se "animen" a usarlo. Por lo anterior y el gran auge de Internet este es el sistema operativo que más crecimiento ha tenido en los últimos años, y el que se perfila quizá como una alternativa válida para el futuro. 38
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas Algunas distribuciones de Linux conocidas: Red Hat, Debian, Fedora, Gentoo, Mandriva, Rxart, Slackware, Suse, Ubuntu, Kubuntu 39
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas A continuación veremos algunas interfaces de los 1985: AMIGAOS 3.5 sistemas Operativos arriba mencionados y muchos más: 1983 APPLE LISA 1983: VISICORP VISI ON 1985: MICROSOFT WINDOWS 1.0 1986: MACINTOSH SYSTEM 3 1984: MACINTOSH SYSTEM 1 40
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas 1987: MICROSOFT WINDOWS 2.0 1991: MACINTOSH SYSTEM 7 1992: MICROSOFT WINDOWS 3.1 1990: MICROSOFT WINDOWS 3.0 LINUX 1992: MACINTOSH SYSTEM 7.1 41
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas 1998: MICROSOFT WINDOWS 98 1995: MACINTOSH SYSTEM 7.5 1998: KDE 1.0 1995: MICROSOFT WINDOWS 95 1999: MACINTOSH SYSTEM 9.2 1997: MAC OS 8 42
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas 2000: KDE 2.0 2006: GNOME C/XGL 2001: MAC OS X 10 2007: MICROSOFT WINDOWS VISTA DEBIAN LINUX 4.0 2001: MICROSOFT WINDOWS XP 43
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Tecnicatura Superior en Análisis de Sistemas WINDOWS 7 (Anunciada su salida para el año 2009) Conclusión Sin el sistema operativo nada funcionaria... por lo tanto no cabe mucho mas que acotar. Solo es de esperarse que la evolución se mantenga y quizás avizorar mas alternativas a nuestro nunca tan bien ponderado y muchas veces vapuleado “Windows”. 44
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 LENGUAJES DE PROGRAMACION a.) Historia de los lenguajes; Los lenguajes de programación cierran el abismo entre las computadoras, que sólo trabajan con números binarios, y los humanos, que preferimos utilizar palabras y otros sistemas de numeración. Mediante los programas se indica a la computadora qué tarea debe realizar y como efectuarla, pero para ello es preciso introducir estas ordenes en un lenguaje que el sistema pueda entender. En principio, el ordenador sólo entiende las instrucciones en código máquina, es decir, el especifico de la computadora. Sin embargo, a partir de éstos se elaboran los llamados lenguajes de alto y bajo nivel. Generaciones de los lenguajes LENGUAJES DE BAJO NIVEL: Utilizan códigos muy cercanos a los de la máquina, lo que hace posible la elaboración de programas muy potentes y rápidos, pero son de difícil aprendizaje. LENGUAJES DE ALTO NIVEL: Por el contrario, son de uso mucho más fácil, ya que en ellos un solo comando o instrucción puede equivaler a millares es código máquina. El programador escribe su programa en alguno de estos lenguajes mediante secuencias de instrucciones. Antes de ejecutar el programa la computadora lo traduce a código máquina de una sola vez (lenguajes compiladores) o interpretándolo instrucción por instrucción (lenguajes intérpretes). Ejemplos de lenguajes de alto nivel: Pascal, Cobol, Basic, Fortran, C++ Un Programa de computadora, es una colección de instrucciones que, al ser ejecutadas por el CPU de una máquina, llevan a cabo una tarea ó función específica. Este conjunto de instrucciones que forman los programas son almacenados en archivos denomina dos archivos ejecutables puesto que, al teclear su nombre (o hacer clic sobre el icono que los identifica) logras que la computadora los cargue y corra, o ejecute las instrucciones del archivo. El contenido de un archivo ejecutable no puede ser entendido por el usuario, ya que no está hecho para que la gente lo lea, sino para que la computadora sea quien lo lea. Los archivos de programas ejecutables contienen el código máquina, que la CPU identifica como sus instrucciones. Son lo que conocemos como Programas Objeto. Dado que sería muy difícil que los programadores crearan programas directamente en código de máquina, usan lenguajes más fáciles de leer, escribir y entender para la gente. El programador teclea instrucciones en un editor, que es un programa parecido a un simple procesador de palabras, estas instrucciones son almacenadas en archivos denominados programas fuentes (código fuente). Si los programadores necesitan hacer cambios al programa posteriormente vuelven a correr el editor y cargan el programa fuente para modificarlo. El proceso de conversión de programas fuente a programas objeto se realiza mediante un programa denominado compilador. El compilador toma un programa fuente y lo traduce a programa objeto y almacena este último en otro archivo. PROGRAMA FUENTE: Es el programa escrito en alguno de los lenguajes y que no ha sido traducido al lenguaje de la maquina, es decir el programa que no está en código de máquina y que por lo tanto no puede ser ejecutable. 45
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 PROGRAMA OBJETO: Es aquel programa que se encuentra en lenguaje máquina y que ya es ejecutable por la misma. COMPILADOR: Es un programa que traduce un lenguaje de alto nivel al lenguaje máquina. Un programa compilado indica que ha sido traducido y está listo para ser ejecutado. La ejecución de los programas compilados es más rápida que la de los interpretados, ya que el interprete debe traducir mientras está en la fase de ejecución (saca todos los errores). Un compilador es un programa que traduce el programa fuente (conjunto de instrucciones de un lenguaje de alto nivel, por ejemplo BASIC o Pascal) a programa objeto (instrucciones en lenguaje máquina que la computadora puede interpretar y ejecutar). Se requiere un compilador para cada lenguaje de programación. Un compilador efectúa la traducción, no ejecuta el programa. Una vez compilado el programa, el resultado en forma de programa objeto será directamente ejecutable. Presentan la ventaja considerable frente a los intérpretes de la velocidad de ejecución, por lo que su uso será mejor en aquellos programas probados en los que no se esperan cambios y que deban ejecutarse muchas veces. En caso de que se opte por un interpretador se debe considerar que el intérprete resida siempre en memoria. INTERPRETE: Traductor de lenguajes de programación de alto nivel, los interpretes ejecutan un programa línea por línea. El programa siempre permanece en su forma original(programa fuente) y el interprete proporciona la traducción al momento de ejecutar cada una de la s instrucciones. Un intérprete es un programa que procesa los programas escritos en un lenguaje de alto nivel, sin embargo, está diseñado de modo que no existe independencia entre la etapa de traducción y la etapa de ejecución. Un intérprete traduce cada instrucción o sentencia del programa escrito a un lenguaje máquina e inmediatamente se ejecuta. Encuentran su mayor ventaja en la interacción con el usuario, al facilitar el desarrollo y puesta a punto de programas, ya que los errores son fáciles de detectar y sobre todo de corregir. LENGUAJE MÁQUINA: Lenguaje original de la computadora, un programa debe estar escrito en el lenguaje de la máquina para poder ser ejecutado. Este es generado por software y no por el programador. El programador escribe en un lenguaje de programación, el cual es traducido al lenguaje de máquina mediante interpretes y compiladores. Case: (Computer-Aided Software Engineering o Computer- Aided Systems Engineering) Ingeniería de Software Asistida por Computadora o Ingeniería de Sistemas Asistida por computadora Software que se utiliza en una cualquiera o en todas las fases del desarrollo de un sistema de información, incluyendo análisis, diseño y programación. Por ejemplo, los diccionarios de datos y herramientas de diagramación ayudan en las fases de análisis y diseño, mientras que los generadores de aplicaciones aceleran la fase de programación. Las herramientas CASE proporcionan métodos automáticos para diseñar y documentar las técnicas tradicionales de programación estructurada. La meta última de CASE es proveer un lenguaje para describir el sistema completo, que sea suficiente para generar todos los programas necesarios. 46
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 CONCEPTO DE SISTEMA El término sistema se utiliza de muchas maneras. Todo el mundo comprende expresiones como “no hay quien entienda el sistema de calificaciones del profesor severo”, o “Manuel tiene un sistema infalible para apostar en el hipódromo”. No obstante, para los usuarios de computadoras, un sistema es un conjunto de partes que están integradas con el propósito de lograr un objetivo. Las siguientes tres características son fundamentales. ♦ Un conjunto de partes. Un sistema tiene más de un elemento, un volante no es un sistema, pero sí una parte vital de un sistema muy conocido denominado automóvil. ♦ Partes integradas. Debe existir una relación lógica entre las partes de un sistema. Los sistemas mecánicos y electrónicos, como son los lavarropas y los juegos de video, tienen muchos componentes que trabajan juntos. Un sistema de administración de personal cuenta con los procedimientos integrados para contratar y adiestrar empleados. ♦ El propósito de lograr algún objetivo en común. El sistema se diseña para alcanzar uno o más objetivos. Todos los elementos del sistema deben estar ligados y controlados de manera que se logre el objetivo del sistema. Conveniencia de la instalación de una computadora. La necesidad de resolución en el menor tiempo posible de los grandes problemas de nuestra era, desde la realización de las grandes obras de ingeniería, mantener bajo control complejas destilerías de petróleo, agilizar la investigación en el área científica a organizar las tareas administrativas de una fábrica. Solo pueden resolverse en forma ágil y dinámica con la utilización de computadoras. Los grandes volúmenes de información que deben elaborarse y la diversidad de elementos decisorios necesarios para poder contrarrestar las rápidas variaciones del entorno en el que operan las organizaciones comerciales, plantean exigencias muy concretas respecto a los tiempos de reacción a las medidas de control interno. Estas exigencias solo son satisfechas cuando se dispone de información oportuna, adecuada y confiable, que puede ser lograda contando con las computadoras como herramienta fundamental de trabajo. Análisis de Sistemas Todas los problemas a resolverse con o sin la utilización de computadora tienen en común que, para arribar a la solución de los mismos, deberán seguir los siguientes pasos fundamentales. Definición administrativa del problema. El analista de sistemas debe requerir al usuario el manual de procedimientos administrativo de las tareas a sistematizar. Este manual puede o no estar confeccionado, si se encuentra con este elemento y se verifica que se ajusta a la realidad, se parte del mismo para realizar el análisis de sistemas. De no existir este 47
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 manual tendrá que relevar todo él tramite administrativo del problema y luego discutirlo con el usuario, aprobado este recién comenzará el análisis de sistemas. Análisis de sistemas. Tomando como base la descripción administrativa, se definen los datos que el sistema tendrá como entrada, las planillas y archivos magnéticos que el sistema tendrá como salida, la elaboración que sufrirán los datos que alimentan al sistema. Todos estos datos componen lo que llamaremos “memoria descriptiva del sistema” y tendrá que ser discutido con el usuario y aprobado por el mismo. Aprobada la memoria descriptiva se comienza a diagramar el sistema, es decir se comienzan a definir los programas que compondrán el sistema. Todos los programas que componen el sistema son definidos en detalle, y las carpetas que contienen estas definiciones son entregadas a los programadores para la confección de los programas. El programador confecciona el programa y luego prueba con elementos por él ideados el correcto funcionamiento de su programa. Implementación del sistema. Una vez que el analista aprobó las pruebas de los programas que componen el sistema, se realiza la prueba integral del mismo, es decir, la prueba en conjunto de todos los programas. Después de comprobar de este modo el funcionamiento, se realiza la prueba con datos reales, ejecutando los programas. tras lo cual se pone en uso el sistema. Documentación del sistema. Finalizada la Implementación del sistema se tendrá que reunir toda la información referente al mismo, armar la carpeta de sistema de acuerdo a los puntos enunciados anteriormente, (Definición de funciones del analista de sistemas) y controlar la carpeta de programas. Esta etapa adquiere cada vez mayor importancia debido al aumento de la magnitud y complejidad de los problemas que se resuelven con el empleo de computadoras. Capacidad de procesamiento. El proceso de cómputos consiste en la manipulación de los símbolos que la gente utiliza para representar cosas. Los seres humanos han estado utilizando letras, números y otros símbolos taquigráficos durante miles de años, y el proceso de cómputo no es más que una forma más rápida y exacta para realizar esta labor humana tan familiar. 48
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Diferencia entre datos e información. Los datos son hechos, la materia prima de la información. Los datos se representan por medios de símbolos, pero solo pueden considerarse como información en un sentido muy limitado. En la forma que el término se utiliza en el procesamiento de datos, la información consta de datos organizados en una forma que nos es útil para las personas que la reciben. En otras palabras, la información consiste en conocimientos importantes producidos como resultado de las operaciones de procesamiento de datos; asimismo las personas los adquieren para mejorar su comprensión y para lograr objetivos específicos. Actividades de procesamiento de datos. 1. Captura de los datos de entrada. Los datos deben registrarse o capturarse de alguna manera antes de poder procesarse. Pueden registrarse inicialmente en documentos fuente de papel, o pueden capturarse por un dispositivo de entrada directa, por ejemplo la caja registradora de un supermercado. 2. Manipulación de los datos. Quizás sea necesario realizar después una o más de las siguientes operaciones con los datos recolectado: (a) Agrupación. Se denomina así al proceso de organizar elementos similares para formar grupos o clases. La agrupación se lleva a cabo, por lo general, al asignar abreviaturas o códigos, previamente determinados, a los elementos que se van a organizar. Los códigos utilizados son de tres tipos: Numéricos, Alfabéticos y Alfanuméricos. (b) Cálculo. La manipulación aritmética de los datos se denomina Cálculo y es una actividad de procesamiento muy común. (c) Clasificación. Casi siempre es más fácil trabajas con los datos si están ordenados en una secuencia lógica. La secuencia puede ser del primero al último, del más grande al mas chico, del más antiguo al más nuevo. Se denomina clasificación al ordenamiento de los datos agrupados, según una secuencia de este tipo. (d) Síntesis. Se denomina síntesis a la reducción de grandes volúmenes de datos a una forma más concisa y manejable. 3. Manejo de los resultados de salida. Después de captar y manipular los datos, quizá sea necesario realizar después una o más de las siguientes operaciones con los datos recolectado: a) Almacenamiento y recuperación. Se denomina almacenamiento a la conservación de los datos para consultarlos en el futuro. La recuperación consiste en obtener los datos o informaciones almacenadas. b) Comunicación y reproducción. La comunicación es la transferencia de datos de una localidad u operación a otra, para utilizarlos o para seguir procesando y este proceso continúa hasta que la información en forma útil llega hasta el usuario final. Es natural que en ocasiones sea necesario copiar o duplicar la información, y este procedimiento se denomina reproducción. 49
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Operaciones de proceso de las computadoras. Las siguientes cuatro operaciones son las únicas que pueden llevara cabo las computadoras, pero bastan para poder ejecutar las actividades de procesamiento de datos que se acaban de describir. • Operaciones de entrada/salida. Una computadora puede tanto aceptar datos (entrada) como emitirlos (salidas), a partir de una gran variedad de dispositivos, los mismos hacen posible la comunicación entre los seres humanos y las máquinas. • Operaciones de cálculo y manipulación de texto. Los circuitos de las computadoras efectúan cálculos con los números y son igualmente capaces de manipular caracteres no numéricos y los demás símbolos que se utilizan en las palabras y enunciados. • Operaciones de lógica/comparación. La computadora también es capaz de efectuar operaciones lógicas, realizando comparaciones y tomando decisiones programadas para terminar su labor. Esta facultad de realizar comparaciones es una propiedad importante de las computadoras, ya que es posible responder a preguntas más complejas utilizando combinaciones de decisiones de comparación. • Operaciones de almacenamiento y recuperación de la información. Tanto los datos como las instrucciones de programas se almacenan dentro de la computadora. Una vez almacenados, pueden llamarse o recuperarse rápidamente para ser utilizados. ESTRUCTURAS DE DATOS Campo. Para guardar información referente a algo o a alguien debemos pensar que datos queremos y para que los queremos, si quisiéramos por ejemplo, guardar datos de las personas que trabajan en una empresa, para informatizar la oficina de personal, deberíamos tomar el legajo de un empleado y ver la solicitud de ingreso a la empresa o la ficha de incorporación que contiene un formato estandarizado para todos los empleados, cada uno de esos datos que se le piden al empleado, para nosotros desde ahora se denominarán campos y tendremos un campo para cada dato que incorporaremos, trataremos también de hacer la desagregación de los datos para su mejor manipulación. Diremos también que un campo por si mismo no dice nada y debemos ponerle un nombre que lo identifique del resto, como mencionamos anteriormente la ficha o solicitud estaba estandarizada y cada dato pedido estaba de alguna manera resaltado del resto para buscar rápidamente en forma visual el dato que necesitamos, lo mismo haremos con la computadora por medio del nombre de campo por ejemplo. 50
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Ficha de personal Legajo N°:...................................... Fecha de Incorporación:...../....../...... Apellido:.......................................... Nombre:............................................... Tipo de Doc. DNI LC LE Dirección:......................................... Código Postal:.................. Teléfono:...................................... Localidad:......................................... Provincia:........................ Fecha de Nacimiento:..../..../..... Nacionalidad :.................................. Para informatizar esta ficha a cada dato que solicitaremos le datemos un nombre y este tendrá que identificar de alguna manera el contenido por ejemplo. PERSONAL LEG_NRO FEC_I APELL NOM TIP_D DIRECC COD_P TEL_ LO PROV NC IDO BRE OC ION OS NRO CA INC L 1 2 3 4 Ahora podemos realizar búsquedas por datos en particular igualando el nombre del campo por el que queremos realizar la búsqueda con el dato buscado y nos traería el resto de los datos asociados a este por ejemplo. BUSCAR LEG_NRO=9457 También diremos que tendremos en cuenta el tipo de campo al que estamos haciendo referencia, por una cuestión de simplicidad, para facilitar las operaciones matemática, los campos que albergaran solo números serán creados como numéricos y los que albergan números y letras arbitrariamente, como alfa-numéricos. Esto hace a la diferenciación para su enunciado, cuando estamos buscando datos del segundo tipo entrecomillaremos el campo para distinguirlo y decirle a la computadora que no estamos buscando un número sino una cadena de caracteres, por ejemplo. BUSCAR APELLIDO=”GOMEZ” Con respecto a la cantidad de letras o números que albergará dicho campo, tendremos que decírselo al diseñarlo ya que al igual que la ficha el limite estará dado por el espacio que reservemos para cada uno y tendremos que acotarlo para que sea universal. Queremos decir con esto que si estamos hablando del apellido de una persona debemos tener en cuenta que cantidad de letras tendrá un apellido extremadamente largo 51
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 para que pueda entrar en el campo, ya que no podemos hacer la letra mas chica como en la ficha manual. Registro. Denominaremos registro al conjunto de datos o campos que posee las cualidades de una cosa o una persona y nos permiten individualizarla, como en el ejemplo que vimos anteriormente la ficha de un empleado que estaba compuesta de varios campos con datos de la misma persona, será para nosotros el registro de esa persona. PERSONAL LEG_N FEC_I APELL NOMBRE TIP_ NRO_ COD_ TEL_ LOCAL PROV RO NC IDO DOC DOC POS NRO INC 1 9457 24/2/6 GOME JUAN DNI 10125 1427 4698- CAPITA 8 Z CARLOS 8784 5841 L 2 9458 15/7/9 MARTI ALBERTO DNI 14578 2154 4897- CAPITA 8 NEZ 4515 5481 L 3 9459 24/3/9 ALVAR IGNACIO DNI 25784 2648 4215- LANUZ Bs.As. 7 EZ 1457 5412 4 9460 30/5/9 GIMEN FABIAN DNI 27845 4028 4687- PALOM Bs. As. 0 EZ 1542 5514 AR Como vemos en este ejemplo tengo cuatro registros de empleados y linealmente tenemos la información correspondiente a cada una de estas personas y los nombres de campos como embazado de columna. Archivo. El conjunto de los registros de un mismo tipo o formato se denominará archivo al igual que con la fichas, el conjunto de las fichas almacenadas en un cajón, era mi archivo de personal manual y ahora pasará a ser mi archivo de personal informatizado, cada archivo al igual que los campo tendrá un nombre que lo identificará, como en el archivo manual el cajón donde estaban guardadas las fichas de los empleados tenía una etiqueta que decía “PERSONAL” y cada cajón etiquetado con el contenido del mismo. En los archivos informatizados pasará lo mismo hagamos de cuenta que estamos hablando de cajones con fichas o registros. Introducción a Bases de Datos Las bases de datos se pueden definir como una colección de datos interrelacionados entre si, almacenados en conjunto sin redundancias perjudiciales e innecesarias. Su finalidad es servir a una aplicación o más, de la mejor manera posible, los datos se almacenan de modo que resulten independientes de los programas que los usan; se emplean métodos bien determinados para incluir datos nuevos y para modificar o extraer los datos almacenados. Redundancia y Duplicidad 52
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Si se revisara una biblioteca de cintas, discos e información concerniente a las bases nos encontraríamos con que en estas existe una enorme redundancia y duplicación en los datos. Generalmente esta duplicidad se genera con la finalidad de hacer más accesible la información o facilitar la reconstrucción de ésta en caso de perdida accidental. Al hablar de redundancia debemos hablar de NO redundancia, aunque es mejor, referirse a redundancia controlada o mínima en lugar de no redundancia. Una base de datos bien organizada debe permitir una buena reestructuración al agregar nuevos tipos, es decir, esto no debe originar el volver a escribir los programas de aplicación, ni provocar complicaciones. Independencia Generalmente se habla de la independencia como un gran atributo de las bases de datos. La independencia se refiere a que los programas de aplicación y los datos que de ellos se sirven son mutuamente independientes. Esto significa que el modificar los programas no afecta los datos o su organización (claro que no siempre existe una buena independencia en los datos). El software de base de datos debe proporcionar formas de hacer transformaciones según la estructura del archivo que le interesa al programador de aplicaciones en la estructura física que en verdad se almacena y viceversa. El grado de necesidad de que el programador de aplicaciones conozca los detalles de los datos físicos varía de un sistema a otro. Características de una Base de Datos La DBMS (Data Base Management System) es la herramienta que las computadoras utilizan para realizar el procesamiento y almacenamiento ordenado de los datos. Una base de datos es un recipiente para colecciones relacionadas de datos. Cualquier conjunto de datos organizados para su almacenamiento en la memoria de un ordenador o computadora, diseñado para facilitar su mantenimiento y acceso de una forma estándar. Los datos suelen aparecer en forma de texto, números o gráficos. Desde su aparición en la década de 1950, se han hecho imprescindibles para las sociedades industriales. Hay cuatro modelos principales de bases de datos: el modelo jerárquico, el modelo en red, el modelo relacional (el más extendido hoy en día; los datos se almacenan en tablas a los que se accede mediante consultas escritas en SQL) y el modelo de bases de datos deductivas. Otra línea de investigación en este campo son las bases de datos orientadas a objeto, o de objetos persistentes. Por ejemplo, un a agenda puede ser una base de datos donde se almacenan los nombres, direcciones y números telefónicos de amigos y contactos de negocios. La Base de Datos de una Compañía puede contener información acerca de los consumidores, vendedores, empleados, venta s en inventario. Ejemplos de Bases de Datos: Access, FoxPro, Approach. A. Base de datos relacional, en informática, tipo de base de datos o sistema de administración de bases de datos, que almacena información en tablas (filas y 53
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 columnas de datos) y realiza búsquedas utilizando los datos de columnas especificadas de una tabla para encontrar datos adicionales en otra tabla. En una base de datos relacional, las filas representan registros (conjuntos de datos acerca de elementos separados) y las columnas representan campos (atributos particulares de un registro). Al realizar las búsquedas, una base de datos relacional hace coincidir la información de un campo de una tabla con información en el campo correspondiente de otra tabla y con ello produce una tercera tabla que combina los datos solicitados de ambas tablas. Por ejemplo, si una tabla contiene los campos NÚM-EMPLEADO, APELLIDO, NOMBRE y ANTIGÜEDAD y otra tabla contiene los campos DEPARTAMENTO, NÚM- EMPLEADO y SALARIO, una base de datos relacional hace coincidir el campo NÚM-EMPLEADO de las dos tablas para encontrar información, como por ejemplo los nombres de los empleados que ganan un cierto salario o los departamentos de todos los empleados contratados a partir de un día determinado. En otras palabras, una base de datos relacional utiliza los valores coincidentes de dos tablas para relacionar información de ambas. Por lo general, los productos de bases de datos para microcomputadoras o microordenadores son bases de datos relacionales. B. Cliente/servidor: En vez de construir sistemas informáticos como elementos monolíticos, existe el acuerdo general de construirlos como sistemas cliente/servidor. El cliente (un usuario de PC) solicita un servicio (como imprimir) que un servidor le proporciona (un procesador conectado a la LAN). Este enfoque común de la estructura de los sistemas informáticos se traduce en una separación de las funciones que anteriormente forman un todo. Los detalles de la realización van desde los planteamientos sencillos hasta la posibilidad real de manejar todos los ordenadores de modo uniforme. Las bases de datos tienen muchas formas de organización pero deben tener determinadas características: • Versatilidad para la representación de relaciones • Desempeño • Costo mínimo • Redundancia mínima • Capacidad de búsqueda • Integridad • Seguridad de acceso a los datos y protección de la información almacenada • Interfaz con el pasado • Interfaz con el futuro • Modificable en el tiempo • Migración de datos • Simplicidad Organizaciones de Datos Una base de datos es una colección de información. Y su característica principal es que los datos los organiza de acuerdo a modelos de datos. Se considera la definición de Modelo de datos como "un conjunto de conceptos y de reglas de composición de esos conceptos que permite describir unos datos", es decir, 54
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 proveen un marco teórico que sustenta una metodología bien definida para el almacenamiento y recuperación de la información. En la práctica existen tres modelos principales de datos: el modelo jerárquico, el modelo red, y el modelo relacional. Este último esta relacionado con las bases de datos relacionales y el enfoque Entidad-Relación, al cual está enfocado este estudio. Visual Basic es capaz de interactuar tanto con bases de datos relacionales, en particular en forma natural con MS-Access y con cualquier otro tipo de Bases de datos relacionales como Oracle, SQL Sever, etc. que soporte ODBC (Open Data Base Conectibity) y también en forma natural con algunas Xbases : Dbase III y IV, FoxPro, Paradox, Btrieve. En el contexto de este curso nos referiremos al estudio de MS-Access como base de datos nativa de Visual Basic. Antes de pasar a estudiar Access como ambiente de base de datos relacional es necesario definir algunos conceptos sobre bases de datos relacionales. 5.2.1 Bases de Datos Relacionales El modelo relacional data de 1970 (CODD-IBM-San José), está basado en conceptos muy sencillos. El modelo relacional tiene asociada una teoría que no puede ser separada del modelo: la teoría de la normalización de las relaciones. Esta teoría tiene por objeto eliminar los comportamientos anormales de las relaciones durante las actualizaciones. También permite eliminar los datos redundantes y facilita la comprensión de las relaciones semánticas entre los datos. 5.2.1.1 Los Conceptos Básicos del Modelo Relacional Una entidad es un objeto que existe y puede distinguirse de otros objetos. Una entidad puede ser concreta, por ejemplo una persona o un libro, o abstracta, como un día festivo o un concepto. Una entidad identifica en forma unívoca al objeto que representa en el universo, por ejemplo Cuenta Corriente 143-2343-34-21. Un conjunto de entidades es un grupo de entidades del mismo tipo. Por ejemplo, el conjunto de todas las personas que tienen una cuenta en el banco puede definirse como el conjunto de entidades CuentaCorrentistas del banco. Así mismo, el conjunto de entidades Cuenta podría representar el conjunto de todas las cuentas en un banco determinado. Las entidades pueden pertenecer a más de un conjunto, por ejemplo, la entidad Persona puede pertenecer a los conjuntos Empleado, Cliente, Asociado, etc. Las entidades están representadas y tienen sentido por sus atributos. Los posibles atributos del conjunto de entidades CuentaCorrentista son Nombre, Rut, Calle, Número, Ciudad. Los valores permitidos para un atributo constituyen su dominio. El dominio de el atributo Nombre podría ser el conjunto de todas las cadenas de caracteres de una determinada longitud. Fuera del marco teórico, un conjunto de entidades es lo que llamamos Tabla. Cada Columna en la tabla corresponde a un atributo, suele recibir el nombre de Campos. Cada Fila en la tabla corresponde a los datos de una entidad del mundo real, se le llama habitualmente Registro. La siguiente tabla ilustra esto: Número Rut cliente Saldo Giros Dépositos cuenta 55
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Cuando se analiza un problema informático una de las primeras tareas es reconocer el universo de información. Si se pudiera almacenar y recuperar mágicamente toda la infomación que constituye el universo tendriamos resuelto nuestro problema. Sin embargo, es necesario dar una estructuración adecuda a la infomación para evitar los problemas de redundancia y duplicidad. Esta estructuración significa identificar y definir las entidades que costituyen el universo. Para ello se aplica una descomposición a al universo de modo que: 1. Las entidades sean conceptualmente puras, es decir, sólo contengan información sobre el conjunto de entidades del mundo real que representa. Por ejemplo, en una tabla que contenga infomación sobre la cuenta corriente bancaria no deberá contener información sobre la previsión de salud de las personas. Para manejar esta información se deben llevar dos tablas: Cuenta_corriente e Previsión_Salud. 2. Los datos almacenados en una tabla deben ser "atómicos", es decir, la intersección de una columna con una fila no prodrá contener más de un valor. Por ejemplo: Si una tabla contiene un campo definido como edades de cargas familiares se podría definir para que contuviera una cadena de caracteres con esos valores: 5; 11; 18 lo que no sería correcto. En tal caso sería necesario definir una columna para carga o una tabla que permita almacenarlas. Relaciones • Asociación entre Entidades (relación) Es la asociación entre varias entidades. Por ejemplo, es posible definir una relación que asocia al CuentaHabiente "Harris" con la cuenta 323. Esto especifica que Harris es un CuentaHabiente con la cuenta bancaria 323. • Conjunto de Asociaciones (relaciones) Un conjunto de relaciones es un grupo de relaciones del mismo tipo. Formalmente es una relación matemática de N mayor o igual que 2 (posiblemente idénticos) conjuntos de entidades. Por ejemplo, se puede definir la relación CtHabCta para notar la asociación entre los cuentahabientes y las cuentas bancarias. Una relación también puede tener atributos, por ejemplo, fecha podría ser un atributo del conjunto de relaciones CtHabCta; esto especifica la última vez que el Cuenta Habiente tuvo acceso a su cuenta. 56
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 • Limitantes Una limitante importante es la de las cardinalidades de mapeo entre las distintas entidades, es decir, el Nº de entidades con las que puede asociarse otra entidad a través de una asociación. Para un conjunto binario de relaciones se tiene lo siguiente: Relación Asociación Descripción Una a Una (1 : 1) Función inyectiva de A en B Una a Muchas (1 : n) Una entidad A está relacionada con varias entidades de B. Muchas a Una (n : 1) Muchas entidades de A está solo relaciona con una entidad de B. Muchas a Muchas (n : n) Varias entidades de A están relacionadas con varias entidades de B. A continuación se muestran gráficamente dichas asociaciones: Otra limitante es la dependencia de existencia. Si X depende de Y, entonces si elimino Y también elimino X. Se dice que X es una entidad subordinada o débil y que Y es una entidad dominante o fuerte. Por ejemplo considere la entidad fuerte CuentaHabiente y la entidad débil Cuenta. • Llaves Primarias Como ya se ha mencionado anteriormente las llaves permiten identificar una entidad o un grupo. La llave está constituida por atributos (puede ser 1 o un grupo). Una entidad fuerte posee una llave primaria. Una llave primaria me permite identificar una entidad y la llave secundaria me permite identificar un grupo de entidades. • Llaves Foráneas Corresponden a un atributo de una tabla relacionada que es llave primaria en una tabla principal, es decir, es el atributo de una entidad, que es clave primaria de otra. • Integridad referencial 57
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Conjunto de reglas que se siguen para preservar las relaciones establecidas entre las tablas cuando se introducen o se agregan registros. Si se exige integridad referencial el SABDR (Sistema Administrador de Bases de Datos Relacionales) impedirá agregar registros a una tabla relacionada para la cual no hay un registro principal; también impedirá cambiar valores en una tabla principal cuando el resultado de la modificación implica dejar registros huérfanos en la tabla relacionada, así como eliminar registros cuando existen registros coincidentes en una tabla relacionada. • La Aproximación por Descomposición La aproximación por descomposición para concebir esquemas relacionales parte de una relación compuesta de todos los atributos, llamada la relación universal para descomponer después esta relación en sub relaciones que no padecen las anomalías anteriormente descritas. El proceso es un proceso de depuración sucesiva que debe lograr aislar unas entidades y unas asociaciones del mundo real. Debe estar realizado por un algoritmo a partir de una buena comprensión semántica de los datos. • Resumen Se puede definir una base de datos relacional como una base de datos que el usuario percibe como un conjunto de relaciones normalizadas que varían con el tiempo, de diversos grados. En otras palabras, el término base de datos relacional significa una base de datos para la cual los operadores a disposición del usuario operan sobre estructuras relacionales. No significa por fuerza que los datos estén almacenados en forma de tablas físicas. En resumen, puede decirse que, en términos tradicionales, una relación se asemeja a un archivo, una tupla a un registro y un atributo a un campo .Sin embargo, estas correspondencia son a lo sumo aproximadas. Dicho de otra manera, las relaciones pueden considerarse archivos "altamente disciplinados". Esta disciplina se traduce en una simplificación considerable de las estructuras de datos que el usuario debe manejar, y, por tanto, en una simplificación correspondiente de los operadores necesarios para manipularlas. Los conceptos de bases de datos relacionales constituyen una base robusta para el modelamiento de bases de datos que garantizan calidad en el almacenamiento y recuperación de la información. La utilización del modelo entidad relación permite obtener una estructura normalizada para la base de datos. Programa. Es un conjunto de órdenes o instrucciones organizadas en secuencia lógica y en un leguaje entendible por la computadora para resolver un problema determinado, con estas herramientas podremos hacer que la computadora mediante un programa realice tareas rutinarias y a mayor velocidad, como cálculos o actualización de información. La computadora automática debe su derecho a existir, su utilidad, precisamente a su capacidad de efectuar vastos cálculos que no pueden realizar los seres humanos. Deseamos que la computadora efectúe lo que nunca podríamos hacer nosotros, y la potencia de las maquinas actuales es tal, que inclusive los cálculos pequeños, por su tamaño, escapan al poder de nuestra imaginación limitada. 58
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Sin embargo debemos organizar el cálculo de manera tal que nuestros limitados poderes sean suficientes para asegurar que se establecerá el efecto deseado. Esta organización incluye la composición de los programas. Los avances en la tecnología siempre van parejos con progresos en los lenguajes de programación y con nuevas ayudas para simplificar el uso del computador, con lo cual un numero mayor de usuarios se beneficia del. Pero la necesidad de hacer programas para resolver problemas específicos quizás nunca desaparecerá. CONCEPTO DE PROGRAMACION ESTRUCTURADA El creciente empleo de los computadores ha conducido a buscar un abaratamiento del desarrollo des software, paralelo a la reducción del costo del hardware obtenido gracias a los avances tecnológicos. Los altos costos del mantenimiento de las aplicaciones en producción normal también han urgido la necesidad de mejorar la productividad del personal de programación. En la década del sesenta salieron a la luz publica los principios de lo que más tarde se llamo Programación Estructurada, posteriormente se libero el conjunto de las llamadas "Técnicas para mejoramiento de la productividad en programación" (en ingles Improved Programming Technologies, abreviado IPTs), siendo la Programación Estructurada una de ellas. Los programas computarizados pueden ser escritos con un alto grado de estructuración, lo cual les permite ser mas fácilmente comprensibles en actividades tales como pruebas, mantenimiento y modificación de los mismos. Mediante la programación Estructurada todas las bifurcaciones de control de un programa se encuentran estandarizadas, de forma tal que es posible leer la codificación del mismo desde su inicio hasta su terminación en forma continua, sin tener que saltar de un lugar a otro del programa siguiendo el rastro de la lógica establecida por el programador, como es la situación habitual con codificaciones desarrolladas bajo otras técnicas. EN programación Estructurada los programadores deben profundizar mas que lo usual al procederá realizar el diseño original del programa, pero el resultado final es más fácil de leer y comprender, el objetivo de u programador profesional al escribir programas de una manera estructurada, es realizarlos utilizando solamente un numero de bifurcaciones de control estandarizados. EL resultado de aplicar la sistemática y disciplinada manera de elaboración de programas establecida por la Programación Estructurada es una programación de alta precisión como nunca antes había sido lograda. Las pruebas de los programas, desarrollados utilizando este método, se acoplan mas rápidamente y el resultado final con programas que pueden ser leídos, mantenidos y modificados por otros programadores con mucho mayor facilidad. DEFINICIONES 59
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Programación Estructurada es una técnica en la cual la estructura de un programa, esto es, la interpelación de sus partes realiza tan claramente como es posible mediante el uso de tres estructuras lógicas de control: a) Secuencia: Sucesión simple de dos o mas operaciones. b) Selección: bifurcación condicional de una o mas operaciones. c) Interacción: Repetición de una operación mientras se cumple una condición. Estos tres tipos de estructuras lógicas de control pueden ser combinados para producir programas que manejen cualquier tarea de procesamiento de información. Un programa estructurado esta compuesto de segmentos, los cuales puedan estar constituidos por unas pocas instrucciones o por una pagina o más de codificación. Cada segmento tiene solamente una entrada y una salida, estos segmentos, asumiendo que no poseen lazos infinitos y no tienen instrucciones que jamas se ejecuten, se denominan programas propios. Cuando varios programas propios se combinan utilizando las tres estructuras básicas de control mencionadas anteriormente, el resultado es también un programa propio. La programación Estructurada esta basada en el Teorema de la Estructura, el cual establece que cualquier programa propio (un programa con una entrada y una salida exclusivamente) es equivalente a un programa que contiene solamente las estructuras lógicas mencionadas anteriormente. Una característica importante en un programa estructurado es que puede ser leído en secuencia, desde el comienzo hasta el final sin perder la continuidad de la tarea que cumple el programa, lo contrario de lo que ocurre con otros estilos de programación. Esto es importante debido a que, es mucho más fácil comprender completamente el trabajo que realiza una función determinada, si todas las instrucciones que influyen en su acción están físicamente contiguas y encerradas por un bloque. La facilidad de lectura, de comienzo a fin, es una consecuencia de utilizar solamente tres estructuras de control y de eliminar la instrucción de desvío de flujo de control, excepto en circunstancias muy especiales tales como la simulación de una estructura lógica de control en un lenguaje de programación que no la posea. Pero primero para poder programar debemos incorporar algunos conceptos básicos para entender la manipulación de datos que necesitamos realizar, dijimos anteriormente que la computadora maneja el lenguaje binario de ceros y unos y cada uno de estos estados los denominaremos bit, que es la menor información que podemos almacenar. El conjunto de 8 bits conformarán un byte que con lo que formaremos un dígito, este podrá albergar una letra o un número de la “A” a la “Z” o del “1” al “9”, ahora ya sabemos que un dígito es un byte y a partir de este parámetro podremos entender el siguiente concepto. Programación Orientada a Objetos: La programación orientada a objetos no es un concepto nuevo, sus inicios y técnicas de programación se iniciaron a principios de los 70. Se puede definir programación orientada a objetos (OOPS) como una técnica de programación que utiliza objetos como bloque esencial de construcción. La OOPS, es 60
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 un tipo de programación más cercana al razonamiento humano. La OOPS surge como una solución a la programación de grandes programas, y para solventar el mantenimiento de dichas aplicaciones, ya que en la programación estructura el más mínimo cambio supone la modificación de muchas funciones relacionadas, en cambio con la OOPS solo es cuestión de añadir o modificar métodos de una clase o mejor, crear una nueva clase a partir de otra (Herencia). Dos lenguajes destacan sobre el resto para programar de esta forma, Smalltalk y C++. Concepto de Objeto: Desde un punto de vista general un Objeto es una estructura de datos de mayor o menor complejidad con las funciones que procesan estos datos. Dicho de otra forma, sería Datos más un Código que procesa estos datos. A los datos se les denomina miembros dato y a las funciones miembro o miembro funciones. Los datos están ocultos y sólo se puede acceder a ellos mediante las funciones miembro. Clases: Las Clases son como plantillas o modelos que describen como se construyen ciertos tipos de Objeto. Cada vez que se construye un Objeto de una Clase, se crea una instancia de esa Clase("instance"). Una Clase es una colección de Objetos similares y un Objeto es una instancia de una Clase. Se puede definir una Clase como un modelo que se utiliza para describir uno o más Objetos del mismo tipo. Herencia: Una característica muy importante de los Objetos y las Clases es la Herencia, una propiedad que permite construir nuevos Objetos (Clases) a partir de unos ya existentes. Esto permite crear "Sub-Clases" denominadas Clases Derivadas que comparten las propiedades de la Clase de la cual derivan (Clase base). Las Clases derivadas heredan código y datos de la clase base, asimismo incorporan su propio código y datos especiales. Se puede decir que la herencia permite definir nuevas Clases a partir de las Clases ya existentes. Polimorfismo: En un sentido literal, Polimorfismo significa la cualidad de tener más de una forma. En el contexto de POO, el Polimorfismo se refiere al hecho de que una simple operación puede tener diferente comportamiento en diferentes objetos. En otras palabras, diferentes objetos reaccionan al mismo mensaje de modo diferente. Los primeros lenguajes de POO fueron interpretados, de forma que el Polimorfismo se contemplaba en tiempo de ejecución. Por ejemplo, en C++, al ser un lenguaje compilado, el Polimorfismo se admite tanto en tiempo de ejecución como en tiempo de compilación Decimos entonces que: El tema de la Programación Orientada a Objetos (Object Oriented Programming O-O-P) sigue siendo para el que escribe un territorio inquietante, interesante y en gran medida desconocido, como parece ser también para la gran mayoría de los que estamos en el campo de la programación. Sin tratar de excluir a aquellos que han afrontado este desarrollo desde el punto de vista académico y formal (maestrías y doctorados) el tema se antoja difícil para los no iniciados. Con este breve artículo me dirigiré en particular a la gran base de programadores prácticos que andamos en búsqueda de mejores herramientas de desarrollo de programas, que faciliten el trabajo de nuestros usuarios y a la vez disminuyan la gran cantidad de considerandos que aparecen al empeñarnos en un proyecto de cómputo. 61
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 Como muchos de ustedes, me topé con el concepto de O-O-P como parte de esa búsqueda y al explorarlo apareció el gusanillo de la curiosidad. A lo largo de mi actividad como programador, y cuando se dio la necesidad, no tuve ningún problema en convertir mis habilidades de programación en FORTRAN de IBM 1130 al BASIC de la PDP, pues sólo era cuestión de aprender la sintaxis del lenguaje, ya que las estrategias de programación y los algoritmos eran iguales. Posteriormente, al manejar el PASCAL se requirió un importante esfuerzo en entender la filosofía de las estructuras, lo cual modificaba la manera de ver (conceptualizar) a los datos y a las partes constitutivas de un programa. Posteriormente aparece el QuickBasic, que adopté inmediatamente por la familiaridad con el BASIC (ley del menor esfuerzo). Ofrecía estructuras de datos (tipos y registros complejos), además de estructuras de instrucciones en procedimientos y módulos; editor "inteligente" que revisa la sintaxis y ejecución de las instrucciones mientras se edita el programa, generación de ejecutable una vez terminado (.EXE), existencia de bibliotecas externas y enlace con módulos objeto generados en otro lenguaje. ¿Qué más podía yo pedir? Pero la necesidad de estar en la ola de moda es más fuerte que el sentido común. Las aplicaciones en Windows siempre han despertado la envidia de los programadores, al hacer ver sus programas pálidos e insulsos por comparación. Solución: programar en Windows. Originalmente programar en Windows representaba un largo y tedioso camino para dominar las complejas herramientas de desarrollo. Sólo recientemente han aparecido desarrolladores de aplicaciones para Windows que le permiten al programador pintar sus ventanas y realizar los enlaces entre los objetos con programación tradicional, evitando en gran medida involucrarse con los conceptos complicados de los objetos. Sin embargo no dejaron de inquietarme algunos conceptos marcados por O-O-P, según los cuales serán los pilares del futuro de la programación de componentes y de objetos distribuidos en redes, en donde la actual programación cliente/servidor pareciera por comparación el FORTRAN o el COBOL de ahora. Pidiendo perdón de antemano a los puristas de las definiciones y conceptos de O-O-P, expondré el resultado de mis propias indagaciones sobre este campo, esperando que al paciente lector y posible programador le resulte menos complicado que a mí asimilar los elementos básicos de O-O-P. Los principales conceptos que se manejan en la Programación Orientada a Objetos son: 1. encapsulado, 2. herencia y 3. Polimorfismo. Según esto, la encapsulación es la creación de módulos autosuficientes que contienen los datos y las funciones que manipulan dichos datos. Se aplica la idea de la caja negra y un letrero de "prohibido mirar adentro". Los objetos se comunican entre sí intercambiando mensajes. De esta manera, para armar aplicaciones se utilizan los objetos cuyo funcionamiento está perfectamente definido a través de los mensajes que es capaz de recibir o mandar. Todo lo que un objeto puede hacer está representado por su interfase de mensajes. Para crear objetos, el programador puede recurrir a diversos lenguajes como el C++, el Smalltalk, el Visual Objects y otros. Si se desea solamente utilizar los objetos y enlazarlos en una aplicación por medio de la programación tradicional se puede recurrir al Visual Basic, al CA-Realizer, al Power Builder, etc. El concepto de herencia me pareció sencillo de entender una vez que capté otro concepto de O-O-P: las clases. En O-O-P se acostumbra agrupar a los objetos en clases. Esto es muy común en la vida diaria. Todos nosotros tendemos a clasificar los objetos comunes por clases. Manejamos la clase mueble, la clase mascota, la clase alimento, etc. Obviamente en el campo de la programación esta clasificación es más estricta. 62
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 ¿Cuál es el sentido de las clases? Fundamentalmente evitar definir los objetos desde cero y facilitar su reutilización. Si trabajamos con clases, al querer definir un nuevo objeto, partimos de alguna clase definida anteriormente, con lo que el objeto en cuestión hereda las características de los objetos de su clase. Imaginemos que creamos una clase "aves" y describimos las características de las aves (plumas, pico, nacen de huevo, etc.). Más adelante necesitamos una clase "pingüino". Como pertenece a "aves" no requerimos volver a declarar lo descrito sino marcamos que "pingüino" es una subclase de "aves" con lo que "pingüino" hereda todas sus características. A continuación sólo declaramos los detalles que determinan lo que distingue a "pingüino" de "aves". Asimismo podemos declarar "emperador" como una subclase de "pingüino", con lo que "emperador" heredará todas las características de las superclases "pingüino" y "aves" más las características que nosotros declaremos en particular para "emperador". En un programa (imaginario por supuesto) yo puedo utilizar estas clases (aves, pingüino y emperador). El hecho de colocar a un individuo en particular en estas clases es lo que se llama objeto y se dice que es una instancia de una clase. Así, si yo coloco a Fredy (un pingüino emperador) en mi programa, se dice que el objeto Fredy es una instancia de la clase emperador. Fredy aparecerá en mi programa con todas las características (herencia) de aves, de pingüino y de emperador. Por otra parte, entender el concepto de Polimorfismo implicó un buen número de horas de indagación y búsqueda de ejemplos. Espero que éste resulte claro: supóngase que declaramos un objeto llamado Suma. Este objeto requiere dos parámetros (o datos) como mensaje para operar. En la programación tradicional tendríamos que definir el tipo de datos que le enviamos, como por ejemplo dos números enteros, dos números reales, etc. En O-O-P el tipo de dato se conoce hasta que se ejecuta el programa. ¿Cómo haremos para programar? El primer paso en la programación es entender, que quiero decir con esto, comprender el problema a resolver y saber solucionarlo en forma manual, no podemos resolver problemas administrativos si no conocemos de administración, podemos saber a fondo un leguaje de programación, pero si no conocemos como se resuelve el problema jamás podremos utilizarlo. El segundo paso es aplicar la lógica, ¿que es esto?, es simplemente aplicar los pasos que seguiríamos para resolver el problema , de ahora en mas empezaremos a practicar esto que es automático para nosotros, pero cuando uno tiene de desglosar estos procedimientos cuesta darse cuenta de lo que es evidente para nosotros y no para la computadora, que hay que describirle hasta el último detalle de lo que debe hacer, para hace lo que queremos que haga. Programación lógica. Este es un mecanismo por el cual ejercitaremos el dar ordenes a la computadora mediante simbología, con una secuencia lógica. Utilizaremos para ello símbolos o figuras que representan procedimiento que a continuación detallamos INICIO Inicio de una secuencia lógica o programa Finalización de una secuencia lógica o programa FIN 63
  • Instituto de Formación Técnica Superior Nro. 12 – Año2009 ARCHIVO Lectura de archivos A=B SI bifurcación o decisión NO A=(B+C)/D Procedimiento u operación Ingresar datos por teclado Desplegar datos por pantalla Imprimir LINEA Llamado a sub-programa o sub-rutina 1 Conector dentro de página Conector fuera de página A GRABAR Grabación de datos en archivo Con estos doce símbolos estamos en condiciones de resolver problemas utilizando diagramación lógica 64