Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
FUNDAMENTOS COMPUTACIONALES Stéfani Valmini 2FUNDAMENTOS COMPUTACIONALES UN POCO DE HISTORIA 4 Evolución de la Computadora 5 Conceitos Básicos de Sistemas 11 Microprocesadores 20 CISC x RISC 23 SISTEMAS OPERACIONALES 27 Estructura de un Sistema Operacional 28 Tipos de Sistemas Operacionales 29 Sistemas Numéricos y Representación de Datos 31 Aritmética No Decimal 36 Representación en Tamaño Fijo 38 Representación de Números Negativos 38 LENGUAJES Y ORGANIZACIÓN DE LA INFORMACIÓN 42 Lenguajes de Programación 43 Estructura y Organización de la información 47 Base de Datos 50 PLANIFICACIÓN ESTRATÉGICO DE TI 54 Ingeniería de Software 55 Conectividad 62 Softwares Clientes 64 Softwares Servidores 64 Softwares Redes 65 ÍNDICE CENTRO UNIVERSITÁRIO UNIFTEC Rua Gustavo Ramos Sehbe n.º 107. Caxias do Sul/RS, Brasil RECTOR Claudino José Meneguzzi Júnior PRORRECTORA ACADÉMICA Débora Frizzo PRORRECTOR ADMINISTRATIVO Altair Ruzzarin DIRECTORA DE EDUCACIÓN A DISTANCIA (NEAD) Lígia Futterleib Desarrollado por el Núcleo de Educación a Distancia (NEAD) Diseñadora Educativa Sabrina Maciel Diagramación, Ilustración y Alteración de Imagen Igor Zattera Traductora Paula Verónica L. S. Feiten, Renata Meneghel 3FUNDAMENTOS COMPUTACIONALES Introducción Nuestra asignatura de Fundamentos Computacionales, como su nombre lo dice, es una base, un pilar para todas las demás asigna- turas. Estudiaremos desde los conceptos más básicos de hardware, software hasta lenguaje de programación, asuntos que se refieren a la legislación, banco de datos entre otros. Nuestro contenido se divide en cuatro grandes capítulos de estudio. El primero se refie- re a la “Introducción a los Sistemas y Elementos Básicos”, el segundo a los “Sistemas Numéricos y Representación de Datos”, el tercero, el área de los “Lenguajes de Programación y Planifi- cación de TI”, y, por último, la “Conectividad y Aspectos Legales”. Al final de esta asignatura, ustedes serán capaces de identificar las oportunidades de ne- gocios por medio de la utilización de los recursos computacionales básicos, proponer mejoras en el ambiente de uso de sistemas computacionales, además de identificar las distintas aplicaciones de la computadora dentro de la sociedad. 4FUNDAMENTOS COMPUTACIONALES UN POCO DE HISTORIA Conociendo la evolución de las computadoras ¿Qué entienden ustedes por computación? ¿Cómo cla- sificarían los elementos de software, hardware y peopleware? ¿Oyeron hablar sobre estos términos? ¿Pero no consiguen explicarlos? ¿Saben cuál es la función de los sistemas opera- cionales? Son muchas preguntas que se refieren a esta área. Por lo tanto, éstas, y tantas otras preguntas las contestaremos y las discutiremos en este primer capítulo. Como punto de partida volveremos en el tiempo para conocer y para entender todas las evoluciones que ocurrieron ya en la computación. Serán presentados las principales inven- ciones que condujeron al surgimiento de las computadoras que conocemos hoy. En toda la historia, el objetivo principal era la automati- zación del cálculo. Como sabemos, un sistema computacional, que, en su aspecto más elemental, es solamente una máquina que realiza operaciones lógicas y aritméticas. Los componentes principales del software, del hardware y del peopleware que forman un sistema computacional serán también presentados. 5FUNDAMENTOS COMPUTACIONALES Evolución de la Computadora De acuerdo con la historia tradicio- nal, la computación evolucionó mucho y en un corto período de tiempo. ¿Será que, realmente, los hechos ocurrieron de esta manera? Pensándolo bien, la historia verdadera no ocurrió así tan rápidamente. Fueron necesarias innumera- bles y graduales invenciones y evoluciones para llegar hasta las actuales tecnologías. Piensen un poco cuáles fueron esas inven- ciones para que lleguen a una conclusión razonable. Para entender nuestro momento tecnológico actual, necesitamos saber la historia de la computación y los hechos relevantes que contribuyeron para que llegar hasta aquí. En un pasado muy lejano, los objetos, los animales, etc. se contaban a través de rocas o de rayas, conforme prueban los re- gistros, que eran hechos en las paredes de las cuevas. Veamos que, desde muy temprano, las matemáticas hicieron parte del proce- so, y el calcular siempre era fue actividad presente en la humanidad. Evolución de la Computadora Fo nt e: A ut or El hombre siempre intentó desarrollar medios que facilitaran el proceso de los datos. La aritmética, así como leer o escribir, era una habilidad que ayudaba al hombre a interpretar el mundo (mundo con numeración binaria haciendo referencia a esta afirmación) 6FUNDAMENTOS COMPUTACIONALES La herramienta más antigua para calcular, que se tiene conocimiento es el Ábaco. Fue inventado por los chinos alrededor del 2000 a.C. y recibió el nombre de Suanpan. En Japón se conoce como Soroban. 2000 a.C. El ábaco fue inventado por los chinos. 1617 Jhon Napier inventó la tabla de logaritmos 1621 William Oughtred inventó la regla de cálculo 1642/1647 El matemático francés Blaise Pascal presenta su máquina de calcular mecánica. 7FUNDAMENTOS COMPUTACIONALES 1801 Telar automatizado con el invento de Jacquard. 1820 Arithmometer la primera máquina de calcular comercial. 1822 Calculadora analítica de Babbage 1880 Primera máquina de procesamiento de datos creada por Hollerith. 1924 Máquina de calcular producida por Burroughs Company. 8FUNDAMENTOS COMPUTACIONALES En 1950 Von Neuman, Ar-thur Burks y Herman Goldstine crearon la ló- gica de los circuitos digitales, concepto de la programación para los números binarios. Surgió en 1951, el UNIVAC I, primera computadora comercial basada en los con- ceptos de Neumann. Juan Von Neumann, matemático na- tural de Hungría, vivió la mayor parte de su vida en Estados Unidos. Sus contribuciones fueron muy significativas y duran hasta los días actuales. Su principal contribución fue la construcción de una computadora secuencial binaria de programa almacenado. Podemos decir que él propuso los elemen- tos críticos de un sistema computacional, llamado Modelo de Von Neumann. La arquitectura de la computadora, propuesta por este modelo, se compone básicamente por (TANENBAUM, 2007): 1. una memoria física (para almacenar los programas y los datos - represen- tados por 0’s y 1’s); 2. Una Unidad Aritmética y Lógica (ULA), cuya función es ejecutar ope- raciones indicadas por las instruc- ciones de un programa. Su trabajo es apoyado por los diversos registra- dores (ej.: acumulador); 3. Una Unidad de Control (UC), cuya función es buscar un programa en la memoria, instrucción por instrucci- ón y, ejecutarlo sobre los datos de la entrada (ésos también se encuentran en la memoria); 4. d. equipo de entrada y de la salida. La figura abajo presenta los compo- nentes de la arquitectura de Von Neumann descritos arriba: En la década del 50, IBM lanza el IBM 701 y 650, convirtiéndose en el mayor éxito de ventas de la década. A partir de 1959 surgieron los transistores, después, los circuitos integrados que popularizaron el uso de las computadoras. En la década de 70, Intel lanza los microprocesadores con arquitectura interna 1946 Nació el ENIAC Arquitectura de Von Neumann Fu en te : A da pt ad a de T an en ba um (2 00 7) 9FUNDAMENTOS COMPUTACIONALES y bus de 4 bits, de 8 bits y de 16 bits. En 1982 surgió el microprocesador 8083 con capacidad de memoria de hasta MB 16. En 1985 Intel lanza su procesador 80386, con arquitectura interna y bus de datos de 32 bits, capaz de dirigir hasta 4GB de memoria. Ya, en 1989 surgió el procesa- dor i486, con arquitectura interna y bus de datos de 32 bits y coprocesador integrado a la CPU. En los años 1993, Intel lanzó el pri- mer procesador de la familia Pentium, cuya capacidad de procesamiento (MIPS) era 7 veces mayor que el i486, y, la capacidad de dirección dela memoria 16 veces mayor que su predecesor. Intel lanzó la familia de los micro- procesadores 80686, en 1997, la cual queda conocida como Pentium II. Su poder de procesamiento era de 300 MIPS. Y, en el 2000, es lanzado el último procesador de esta familia, conocido como Pentium 4, con poder de procesamiento de 15000 MIPS. En el siguiente año, nació el Itanium, procesador de la familia 80786, con bus de 64 bits y poder de procesamiento de 2.500 MIPS. Y, en el 2007, Intel lanzó la familia de los procesadores 80968, donde el poder de procesamiento era de 125.000 MIPS. Evolución del Software ¿Saben cómo surgió el concepto de software? ¿Por qué el software y el hardware no existen uno sin el otro? ¿Conocen la evolución de los softwares? El concepto de software surgió de- bido a la necesidad de programar el har- dware, de poner inteligencia dentro de las máquinas electrónicas que se desarrollaban hacía décadas. Pero, lo que ni todos saben, es que el origen de los softwares surgió mucho antes del concepto de computadora moderna. Veamos en la imagen que sigue, una breve línea del tiempo que describe a esta evolución del software. Surge el concepto de Álgebra Booleana.1847 El matemático John Von Neumann introdujo el concepto de lógica binaria. 1945 Primera generación de lenguajes de máquina.1945 Segunda generación de lenguajes de máquina: Lenguaje Assembler o de Montaje. 1955 10FUNDAMENTOS COMPUTACIONALES Surge el Fortran (FORmula TRANslation), 3º generación de lenguaje de máquina. Usada en el medio científico, especialmente en las Ciencias de la Computación y Análisis Numérica. 1958 Surge el lenguaje ALGOL.1960 Surge el BASIC, software de programación muy utilizado en los microcomputadores. 1963 Nace el lenguaje PASCAL.1968 Ken Thompson crea el lenguaje B, usado para implementar el sistema UNIX. 1970 Dennis Ritchie crea la primera versión del lenguaje C. 1972 Surge el sistema operacional CP/M (Control Program for Microcomputers) de la Digital Research. 1975 Inicio de los lenguajes de cuarta generación 4GL. 1975 Surge el lenguaje SmallTalk en el centro de investigaciones de Xerox. Primer lenguaje 100% orientado para objetos. 1975 Surge el lenguaje Ada, unión entre Fortran y Pascal. 1978 Surge el MS-DOS, sistema operacional para PC y compatibles. 1980 Leslie Lamport crea el primer lenguaje para texto, conocido como Latex. 1980 Surge el MS Word, procesador de textos de Microsoft. 1982 11FUNDAMENTOS COMPUTACIONALES Surge el Windows, como Sistema Operacional. 1985 Unix se afirma en el mercado como sistema multiusuario. 1990 Linus Torvalds anunció la primera versión oficial del kernel Linux. 1991 En los laboratorios de Sun Microsystems nace el lenguaje Java. El primer lenguaje orientado para objetos y con la propuesta de ser totalmente portable. 1991 Es lanzado el lenguaje Python por Guido Van Rossum, lenguaje de alto nivel. 1991 1992 Windows 3.1 y 3.11 con características de integración en red. 1992 Windows NT surge y disputa mercado con sistemas de Novell. 1993 Surgen lenguajes visuales como Visual Basic, Visual C++ y Delphi. Hacer un Smart art para que esta evolución quede más visual. 1995 Conceitos Básicos de Sistemas La definición clásica para sistema es una disposición de partes o de los ele- mentos de un todo, coordinados entre sí, y que funcionan como estructura organizada realizando una determinada tarea. Todo el sistema necesita una entrada, un área de procesamiento y genera una salida. Bajo el punto de vista computacional todo el sistema tiene entradas, procesa- miento y salidas. Un sistema computacional puede ser dividido en tres partes, como se describe a continuación: hardware, software, y peopleware. Hardware Hardware, es todo dispositivo físi- co conectado a un sistema computacional responsable por organizar y mover las in- formaciones para dentro del sistema, para procesarlas y para exteriorizar los resultados. Las entradas y las salidas en un sistema computacional se hacen a través de hardwa- res específicos, conocidos como periféricos. Estos dispositivos pueden dividirse en: 12FUNDAMENTOS COMPUTACIONALES Periférico de entrada: Son respon- sables por introducir datos y/o comandos al procesador. Ratones, scanners, cámaras, teclados y pantallas touchscreen son ejem- plos de dispositivos de entrada. Periférico de salida: Son los respon- sables por mostrar a los usuarios los resul- tados del procesamiento realizado por el sistema. Ejemplos: vídeos, placas del sonido, impresoras y monitor. Periféricos de entrada y de salida: Son responsables por facilitar el tránsito de informaciones entre diversas partes de un sistema. Tarjeta (Placa) de redes, memo- rias, discos duros, drivers de CD´s y/o de DVD’s, pendrives, pantallas touchscreen e impresoras multifuncionales son ejemplos de dispositivos que hacen posible tanto la entrada como la salida de los datos en el sistema. Estos dispositivos pueden ser divi- didos en dos categorías, dependiendo de la manera como se almacenan o como pasan los datos por él. Dispositivos de bloque: son aquellos que almacenan las informaciones en bloques y su característica principal es la persistencia de los datos, o sea, los datos siguen presentes mismo que el sistema esté apagado. Discos duros, Drivers de CD, flash-memories, son dispositivos de bloque. Dispositivos de caracteres: son aquellos donde los datos que pasan para ellos no son persistentes y transmiten o re- ciben los datos de forma serial. Por ejemplo: puertas seriales, tarjeta de redes, tarjeta de redes wireless. La Unidad Central de Procesamiento (UCP) es el principal hardware de un sis- tema computacional, posee dos funciones principales: controlar los dispositivos de entrada y de salida, y procesar las infor- maciones y mostrar los resultados de su procesamiento. La CPU es el cerebro del sistema computacional y consigue procesar las in- formaciones en altísima velocidad porque solamente funciona sobre ceros y unos, o sea, la UCP sólo es capaz de sumar o 13FUNDAMENTOS COMPUTACIONALES comparar estos valores. Otros dispositivos están agregados a la CPU para garantizar el rendimiento del sistema como se demuestra en la figura. La ULA, Unidad Lógica Aritmé- tica, integra la UCP y es responsable por todas las operaciones aritméticas y lógicas durante la ejecución del sistema. La ULA es una calculadora que realiza operaciones de suma y operaciones lógicas como and, or, xor, etc.…La ULA, en conjunto con los registradores y los acumuladores, son los elementos responsables por el proce- samiento. La UC, Unidad de Control, es la par- te de la CPU responsable por enviar las señales necesarias para los otros elementos, con el objetivo de hacer posible el envío y el recibimiento de los datos entre ellos. La UC ordena la ejecución del procesamiento y ejecuta el micro código que pertenece a aquella familia de procesador. La ejecución de una instrucción consiste en: buscarla en la memoria principal, decodificarla, proce- sarla y colocar el resultado, nuevamente, en la memoria. Además de eso, la UC controla las interrupciones recibidas o enviadas para los dispositivos de entrada y de salida. La memoria es un dispositivo de alta velocidad, usada para almacenar datos que serán procesados por la UCP. El control de la memoria es hecho por la UCP. La me- moria se divide en dos partes, la memoria principal y la memoria a auxiliar. La BIOS (Basic Input Output Sys- tem) es una rutina de inicialización, alma- cenada en una memoria ROM, que permi- te que la computadora cargue su sistema operacional, almacenado en el HD, para la memoria. Otras tareas necesarias en la inicialización de la computadora, tambi- én, son realizada por la BIOS, como por ejemplo, la prueba de chequeo de energía o el POST (Power On Self Test). Sin las memorias sería imposible que una UCP ejecutaraun programa. Un programa debe estar en la memoria prin- cipal para ser ejecutado, preferentemente en memorias volátiles. El almacenaje del programa en memorias no volátiles sirve para garantizar la persistencia de los datos cuando hay desconexión del sistema. Para seguir, una breve descripción de cada tipo de memoria que compone una computadora. Memoria Principal: En ella hay dos tipos de memoria principal. Una de ellas volátil, conocida como RAM (Random Access Memory- Memoria de acceso ale- atorio) y otra no volátil, conocida como ROM, que mantiene los datos, mismo con la computadora apagada. Ésta última se utiliza para fines específicos del sistema. Memoria Auxiliar: También conoci- da como memoria secundaria, se compone por los dispositivos de entrada y de salida, como el disco duro. UCP e seus periféricos Fonte: MONTEIRO (2001) 14FUNDAMENTOS COMPUTACIONALES Existen diversos tipos de memorias volátiles y no volátiles. La Jerarquía de las memorias, según Tanenbaum (2007): A medida que bajamos en la jerar- quía, tres parámetros aumentan. Primero, el tiempo de acceso queda mayor. Los regis- tradores de la CPU pueden ser accedidos en un nanosegundo o menos. Memorias caché demoran un pequeño múltiplo de los registradores de la CPU. Accesos a la memoria principal normalmente llevan 10 nanosegundos… Los accesos a las cintas o a los discos se pueden medir en segundos si la multimedia tiene que ser buscada e insertada en el drive. Nombre Descripción Tipo RAM Random Acces Memory- Memoria de Acceso Aleatorio Volátil DRAM Dynamic RAM - Es la memoria convencional Volátil SDRAM Syncrhunous Dynamic Random Access Memory Volátil SRAM Static RAM - Memoria RAM usada para caché de alta velocidad Volátil ROM Read Only Memory - Memoria solamente para lectura No Volátil PROM Programmable Read Only Memory No Volátil EPROM Erasable Programmable Read Only Memory No Volátil EEPROM Electrically Erasable Programmable Read Only Memory No Volátil UCP y sus periféricos Fonte: Tanem baum (2007) 15FUNDAMENTOS COMPUTACIONALES Jerarquía de las memorias 16FUNDAMENTOS COMPUTACIONALES Software Software es todo y cualquier progra- ma procesado por una computadora. Sirve para resolver algún problema o para auto- matizar actividades repetidoras. Podemos citar como ejemplo los sistemas integra- dos de la gerencia o SIGs, son ejemplos de softwares desarrollados para automati- zar actividades de una empresa, softwares CAD’s (Computer-Aided Design - Di- seño asistido por computadora) y CAM’s (Computer- -Aided Manufac- turing- Fa- bricación Asistida por computadora), que automatizan tareas más específicas, sistemas operacionales, editores de texto, sistemas de la gerencia de base de datos o SGBDs, entre otros. Los softwares en una computadora se organizan en capas para agruparlos por finalidades, como se muestra en la figura. Para cada tipo de software habrá un tipo de profesional asociado. Si el hardware, o más específicamen- te la UCP, es el cerebro de un sistema de computación, el software es la inteligencia, el alma. El software es la representación de la solución o de las reglas para encontrar la Exemplo de como os softwares estão organizados em um computador 17FUNDAMENTOS COMPUTACIONALES solución de determinados problemas. Su implantación, en general, sigue reglas claras y hace uso de diversas metodologías y de herramientas de programación, dependiendo del problema tratado. Datos versus información Fonte: Autor Los softwares, en un sistema computacional, ejecutan las tareas basadas en los datos de entrada del sistema. Estos datos son interpretados y resultan en alguna información relevante para el usuario. Por lo tanto, el dato es un elemento en su forma grosera, que, si es analizado por separado, no provee ninguna comprensión sobre un hecho. Por ejemplo, si se mira el número 22, por separado, él no nos provee ninguna comprensión, sin embargo, si este número está en un contexto, por ejemplo, el de las edades de las personas, o las cantidades de algo, esto ya será una información. Otro ejemplo de la diferencia entre los datos y la información puede ser dado a través del experimento que la empresa Walmart realizó, cruzando informaciones de ventas, de cervezas y de pañales desechables. Toda la venta es registrada en el sistema de la empresa y, mirando por separado, las ventas de cervezas y de pañales, no es posible entender una cierta relación entre ellas. Como estrategia de ventas, la empresa Walmart quería verificar la hipótesis de que el perfil de los consumidores de cerveza y de pañales desechables era similar. Usando técnicas de Data Mining, la empresa verificó esta hipó- tesis cruzando datos de ventas de cervezas y de pañales desechables, concluyendo que estos consumidores eran hombres casados, entre 25 y 30 años, que compraban cervezas y pañales los viernes, en el camino del tra- bajo para la casa. Según esta información, Walmart decidió organizar las góndolas de pañales cerca de la cerveza, obteniendo un aumento de ventas de un 30% en los viernes. Por lo tanto, en una base de datos, como muestra la imagen, lo que se almacena en ellos son elementos brutos, sin ninguna relación entre sí. Al agruparlos, de tal ma- nera, que provea algo relevante para quién los observa, esto se convierte en una IN- FORMACIÓN. Tratamiento de los datos Fonte: Autor 18FUNDAMENTOS COMPUTACIONALES Procesar datos es el objetivo princi- pal de un sistema computacional. Hay dos tipos de procesamiento en un sistema de computadora. Procesamiento por Lote: También conocido como Procesamiento Batch, es ca- racterizado por la ejecución de una serie de programas, uno tras otro, sin la intervención del usuario. Este tipo de procesamiento fue muy utilizado en la década del 50, en los centros de procesamiento de datos. No se utiliza más, hoy día, debido a una cuestión de ambientes de procesamiento y no a su aplicación en sí. Procesamiento On-Line: Es aquél caracterizado por la interacción entre el usuario y el software durante la ejecución de sus tareas. Puede ser llamado de pro- cesamiento en tiempo real, porque gene- ralmente se organiza para poder ejecutar sus tareas a una velocidad igual o superior a la velocidad con que los acontecimien- tos externos ocurren. Un ejemplo de este tipo de procesamiento se puede ver en los softwares de gestión de las empresas, don- de el acontecimiento de la venta o de la producción de un determinado producto, automáticamente actualiza el stock. Los ambientes de procesamiento evolucionaron junto con la evolución de Hardware. El software responsable por proveer el tipo de ambiente adecuado al procesamiento es el Sistema Operacional. En la medida en que los procesadores au- mentaban su capacidad de procesamiento, nuevas necesidades de usuarios aparecían y esto impulsó a los científicos de com- putación a desarrollar nuevos sistemas operacionales para atender estas nuevas necesidades. A través de la historia de las computadoras cuatro tipos de ambientes de procesamiento surgieron: Monotarea, Multitarea, Multiprogramación y Multi- procesamiento. En el ambiente monotarea, solamen- te, una tarea a la vez puede ser ejecutada. Este ambiente es el que se acerca al pro- cesamiento Batch, porque al ejecutar un determinado programa, el usuario debería aguardar su término para poder ejecutar otras tareas. Un ejemplo de este ambiente es el sistema operacional DOS. El ambiente multitarea se caracteriza por la competición entre los procesos, es decir, él ejecuta más de una tarea desde que los programas sean escritos para esta actividad. Por ejemplo, poder enviar dos ar- chivos, simultáneamente, a la impresora, sin que ocurra impresión intercalada de ellos. En el ambiente de la multiprogra- mación, diversos programas pueden tener su procesamiento realizado en una misma computadora, compartiendo recursos del sistema. De esta manera, dos procesos pue- den asignar un mismo recurso, dondeusa- rán una determinada priorización y orden. La diferencia entre el ambiente anterior y la multiprogramación es apenas teórica. En este tipo de ambiente surgió el concepto de intercambio de tiempo o timesharing, donde el sistema operacional organiza la ejecución de cada proceso, garantizando que cada proceso use los recursos necesarios, principalmente la UCP, en un determinado momento y con duración determinada. El ambiente multiprocesador signifi- ca más una UCP disponible, para ejecutar los programas. En este ambiente, varias 19FUNDAMENTOS COMPUTACIONALES UCP’s ejecutan las solicitudes de los pro- gramas, no obstante, no es suficiente agregar más procesadores para garantizar un mayor poder computacional. Es necesario que los softwares sean preparados para dividir sus tareas entre los procesadores disponibles. Tanto los sistemas operacionales necesitan estar preparados para dividir sus tareas, como los softwares aplicativos, también, necesitan ser capaces de percibir la existencia de un procesador más. Esta idea también se aplica a los procesadores con más de un núcleo. Peopleware La evolución constante del hardware y del software causa un gran malestar entre los usuarios de estos ambientes. Un sistema computacional no sobrevive y ni mismo nace sin la intervención de la gente, sea como usuario o como desarrolladores y, estas personas, se nombran de peopleware. El ambiente peopleware es tan com- plejo cuánto los softwares y los hardwares actuales. Esta complejidad se debe al hecho 20FUNDAMENTOS COMPUTACIONALES de estar involucrados conceptos que no son totalmente explícitos, como: valores cultu- rales y organizacionales, creencias, políticas, aspectos comportamentales y sociocultu- rales, estructuras organizacionales, entre otros. Para los profesionales que desarrollan o mantienen los sistemas computacionales es necesario que conozcan los aspectos que están implicados indirectamente en su uti- lización, y estar atentos a las habilidades y competencias que se deben desarrollar para mantenerse siempre actualizados. Microprocesadores Los microprocesadores, como ya vimos, son los componentes principales de una computadora. Ellos controlan los dispositivos, ordenan la ejecución de las instrucciones, es decir, de los programas. En fim, todo qué sucede en una computadora es hecho por la CPU. La empresa Intel, en 1971, lanzó su primer microprocesador, el 4004, cuya fre- cuencia de operación era de 0, 1 MHz, bus de direcciones de 4 bits, acomodaba 2.300 transistores y era capaz de procesar 0,06 MIPS. Una década después, en 1982, Intel lanzó su procesador 80286, con poder de procesamiento quince veces mayor, bus de direcciones de 16 bits, capaz de procesar 0.90 MIPS. Es dada, entonces, la arrancada para la evolución de los microprocesadores, donde otras empresas, como AMD y Cyrix, entran en el mercado. Otros fabricantes de microproce- sadores, destinados a las aplicaciones más específicas también evolucionaron a partir del surgimiento del CHIP, que dividie- ron los microprocesadores en dos familias distintas: los procesadores CISC y RISC, cuyas particularidades serán vistas a lo largo de este capítulo. La Figura ilustra cómo está estruc- turada una CPU y su conjunto de instruc- ciones. Una UCP, como ya vimos, debe eje- cutar dos tareas: ejecución del programa y control de los periféricos. Para cada una de estas tareas hay un componente responsa- ble, interno a la UCP. A seguir una breve descripción de cada uno de estos elementos. La UCP rueda en conjunto con la memoria, de esta manera es necesario transferir el contenido de la memoria para sus registradores internos y el resultado de la ejecución se debe transferir de sus registradores a la memoria. Un programa en la memoria de la computadora es una combinación de instrucciones y de datos, siendo así, el trabajo de la UCP busca la UCP e seus componentes Fonte: MONTEIRO (2001) 21FUNDAMENTOS COMPUTACIONALES próxima instrucción, descifrarla, obtener los datos (operandos), ejecutar la instrucción y poner otra vez el resultado en la memoria. Esto ocurre millones de veces por segundo después de encender la CPU. El flujo, mostrado en la figura, ejemplifica el ciclo de la UCP después de su inicialización. Ciclo da UCP após ligada Fonte: M O N TEIRO (2001) De hecho, la ejecución de un progra- ma es realizada por la ULA (Unidad Ló- gica y Aritmética) de una UCP, pero, para dejar eso posible es necesario ordenar la secuencia de eventos que buscan la instruc- ción y operandos de la memoria principal y colocar en los registradores internos de la UCP. Toda esta comunicación es realizada por señales eléctricas enviadas a través del bus de control y controlado por la UC y, por lo tanto, ésta es la segunda función de la Unidad de Control. La figura muestra un diagrama de bloques de una UCP y los principales elementos involucrados en el procesamiento de los programas almace- nados en la memoria principal. 22FUNDAMENTOS COMPUTACIONALES Diagrama de blocos de uma UCP Fonte: M O N TEIRO (2001) La UC, para tomar la próxima instrucción que será ejecutada, debe, primero, enviar la dirección de la memoria donde está la instrucción siguiente, poniéndola en el MAR (Registro de Direcciones de Memoria), después de eso, a través del bus de control, habilitar la lectura de MP (Memoria Principal). Este paso hace con que el valor de la instrucción sea colocado en el RI (Registro de Instrucciones). Esta instrucción es descifrada y las microinstrucciones son ejecutadas por la UCP. Entonces, el resultado es puesto en el RDM (Registro de Dirección de Memoria). Todas ellas son ordenadas por la señal del reloj. La función principal de los registradores es almacenar, temporalmente, los datos que serán o fueron procesados por la UAL, es decir, un dato para ser transferido de la Memoria Principal para la UAL se almacenará, primero, en un registrador. También, el resultado parcial de una operación arit- mética o lógica deberá almacenarse tempo- ralmente en un registrador para utilizarlo para la conclusión de la instrucción. Todas las CPUs poseen una cantidad de registradores destinados a las diversas operaciones. Por ejemplo, un microprocesa- dor 8086, de 8 bits de Intel, posee registra- dores acumulativos (AX), registradores base (BX), registradores de segmentos (para el acceso a la memoria), registradores de datos, entre otros. La cantidad y el propósito de cada registrador se pueden encontrar en el datasheet de cada procesador, suministrado por el fabricante. Reloj es el generador de pulsos que sincroniza la ejecución y el control de las instrucciones dentro de una UCP. Esto quiere decir que, en cada ciclo, un aconte- cimiento ocurre dentro de la CPU. Inicial- mente, los microprocesadores no ejecutaban una instrucción en cada pulso del reloj. En 1992 Intel lanzó el 80846 DX2 que fue el primer procesador de su familia para procesar una instrucción para el ciclo de reloj. Otras arquitecturas de procesadores, 23FUNDAMENTOS COMPUTACIONALES con más de un núcleo, permiten que más de una instrucción sea ejecutada por el ciclo de reloj. Los registradores de dirección sirven para almacenar datos provenientes o que serán colocados en el bus de datos. Gene- ralmente, el RDM posee el mismo tamaño del bus de datos. De la misma forma, el REM es un registrador de las direcciones de memoria y posee un tamaño igual al del bus de direcciones de la memoria. Las interrupciones fueron una mane- ra que los ingenieros de microprocesadores encontraron para lidiar con acontecimientos asincrónicos, es decir, el uso de los dispo- sitivos de salida y de entrada no ocurren de manera ordenada, aún más en sistemas interactivos, como las computadoras actu- ales. Las interrupciones son parte de los bus de control conectado a la UC. A seguir hay algunos ejemplos de control que provienen de este bus. INT- Entrada que sirve para que los dispositivosexternos puedan interrumpir el microprocesador para ejecutar una tarea que no puede esperar el fin de un proce- samiento. NMI - Señal de la interrupción es- pecial para ser utilizado en emergencias y debe ejecutarse inmediatamente. INTA - Esta señal de salida del mi- croprocesador sirve para indicar al dispositi- vo que recibió su interrupción (Interruption Acknowledge). En los microprocesadores el método de procesamiento se llama pipeline, es de- cir, las ejecuciones de las instrucciones son hechas como en una línea de montaje. La ejecución de una instrucción se divide en etapas independientes, como, por ejemplo, la lectura, la escrita, la decodificación de instrucción son etapas distintas y deben durar el mismo tiempo para ser concluidas. Por lo tanto, al iniciar la ejecución de un programa, cada etapa de la ejecución, de un microprocesador, ocurre a cada pulso del reloj, siendo ejecutadas una de cada vez, como la imagen abajo. Execução das instruções em pipeline. Fonte: dosponível aqui CISC x RISC Se pueden clasificar los microproce- sadores en lo que se refiere al tipo de ins- trucciones que ellos poseen: CISC (Com- plex Instruction Set Computer) que posee un conjunto complejo de instrucciones y el RISC (Reduced Instruction Set Com- puter) que posee un conjunto reducido de instrucciones. Al inicio de los microprocesadores, todos los procesadores eran RISC, lo que llevaba a los programadores a ser obligados 24FUNDAMENTOS COMPUTACIONALES a tener un conocimiento profundo sobre el procesador, porque todos los programas eran elaborados en lenguaje de máquina pura, o ensamblador. Los diseñadores de microprocesadores, para facilitar la vida de los programadores, resolvieron insertar en el propio procesador, programas para implementar algunas instrucciones más complejas. Esta técnica se llama micro- programación. A través de esta técnica, nuevas fun- ciones fueron agregadas directamente en el hardware y, a medida que nuevas ne- cesidades surgieron, nuevas instrucciones eran agregadas, llevando a una sobrecarga del microprocesador y dejándolos cada vez más complejos, por eso es el término CISC. La sobrecarga en el procesador lo dejó más lento, siendo necesario buscar medios para aumentar la velocidad a través de mejoras en el hardware. Estas mejoras pronto llegarían al límite, siendo necesario aumentar su tamaño. Sin embargo, con base en investigaciones, se descubrió que el 85% de los programas utilizaban solamente tres instrucciones, atribuciones, comparaciones, llamadas de procedimientos, lo que dejaba desnecesario adicionar otras funciones a los procesadores que, raramente, irían a ser utilizadas. Además de este hecho, dos otros factores llevaron a la industria de micro- procesadores a volverse para la arquitec- tura RISC: el aumento significativo de la velocidad de las memorias y mejora de las técnicas de compilación que generaron có- digos, si no mejores, con la misma eficiencia de los micro códigos implementados en el hardware. Sin embargo, al implantarse fun- ciones complejas en nivel del software, exige que el procesador ejecute más funciones en la unidad de tiempo, haciendo con que se disipe más energía. Otra desventaja de las máquinas RISC es que no son buenas para lidiar con los cálculos que involucran números en punto flotante. RISC CISC Instrucciones sencillas que llevan un ciclo del reloj Instrucciones complejas que llevan múltiples ciclos del reloj Apenas instrucciones LOAD/STORE referencian la memoria. Todas las instrucciones pueden referenciar la memoria. Altamente pipeline No posee pipeline o se utiliza poco Instrucciones ejecutadas por el hardware Instrucciones ejecutadas por el micro código Instrucciones con formato fijo Instrucciones de diversos formatos Pocas instrucciones y maneras Muchas instrucciones y maneras La complejidad está en el compilador La complejidad está en el micro código Múltiples conjuntos de registradores Conjunto único de registradores Diferencias principales entre microprocesadores RISC y CISC 25FUNDAMENTOS COMPUTACIONALES La tabla enumera las características principales que diferencian un procesador CISC de un RISC. La gran mayoría de los micropro- cesadores del mercado utiliza las mismas técnicas usadas desde el surgimiento de los primeros microprocesadores, así pudiendo ganar mayor poder de procesamiento cons- truyendo UCP’s con varias UAL más lentas, dividiendo la ejecución de las instrucciones entre ellas. Una de las ventajas principales de este tipo de arquitectura es disminuir la disipación del calor, una vez que estas uni- dades funcionan en una velocidad menor. Las máquinas paralelas pueden clasi- ficarse en tres diversas categorías, basadas en cómo los datos y las instrucciones transitan dentro de la CPU. SISD Single Instruction, Single Data Fo nt e: d os po ní ve l a qu i SIMD Single Instruction, Multiple Data Fo nt e: d os po ní ve l a qu i MIMD Multiple Instruction, Multiple Data Fo nt e: d os po ní ve l a qu i CUESTIONES DEL CAPÍTULO 1 1. ¿Las computadoras pueden funcionar sin BIOS y sin Memoria Principal? ¿Por qué? 2. Componentes del Procesador: Registradores, ULA, UCP, etc. Especifique el funcionamiento de cada uno de los componentes de la computadora y relaciónelos. 3. Investigue cuál tipo de Microprocesador fue utilizado en estos últimos años en los videojuegos y en las computadoras personales. CISC o RISC. 4. ¿Quiénes son los peopleware? ¿Cómo podemos identificarlos? 5. Explique la arquitectura de Von Neumann. 27FUNDAMENTOS COMPUTACIONALES SISTEMAS OPERACIONALES Representación de la información y de gestión El sistema operacional es una capa de software que contro- la los recursos del sistema y amplía las funcionalidades de estos recursos para apoyar diversos tipos de programa de usuarios, tales como compiladores, base de datos, interfaces amigables, redes de comunicación, entre otras aplicaciones. Todo el sistema operacional se desarrolla para un hardware específico, es decir, un sistema operacional de un Smartphone es diferente de un sistema operacional usado para una computadora personal. Todo y cualquier Sistema Operacional tiene como fun- ción principal distanciar los programadores o los usuarios de los detalles de la implementación de los dispositivos físicos conectados a la computadora, incluso del procesador, es decir, siempre que un usuario, o bien un programa de usuario, necesite alguna tarea, o del procesador o de los dispositivos de entrada y de salida, esta solicitud será hecha al sistema operacional por medio de una función denominada “Llamada al Sistema”. Esta función dispara una rutina que irá a comunicarse con el dispositivo, ejecutando una serie de otras tareas de control de 28FUNDAMENTOS COMPUTACIONALES aquel dispositivo. Estructura de un Sistema Operacional Un Sistema Operacional posee seis componentes básicos en su estructura, como muestra la figura. Cada uno de estos ele- mentos posee una tarea importante para el funcionamiento y rendimiento del sistema operacional. Aunque la complejidad de estos ele- mentos se relacione con el tipo de pro- cesamiento para el cual el sistema opera- cional fue desarrollado, todos los sistemas operacionales de uso general tendrán estos elementos. Drivers de dispositivos son progra- mas específicos de control de los disposi- tivos de entrada o de salida, como discos duros, los vídeos, los ratones, entre otros. Estos programas son necesarios para que el sistema operacional interactúe con los dispositivos. Al principio de los sistemas computacionales había pocas opciones de hardware disponibles y, por lo tanto, los drivers eran parte del código del sistema operacional. Actualmente, con la gran can- tidad de diversos dispositivos que se pueden agregar a las computadoras, estos drivers son hechos por los propios fabricantes. Al instalar un nuevo dispositivo, es necesario registrar (instalar) eldriver en el sistema operacional para ser reconocido por él. El Administrador de Procesos es res- ponsable por la implantación de la mul- tiprogramación basada en el intercambio de tiempo (time-sharing) en los sistemas operacionales modernos, permitiendo que diversos programas sean ejecutados en pa- ralelo. La implantación del administrador de procesos se hace con heurísticas que garantizan el derecho de uso de los recursos, en un determinado momento, a cada uno de los procesos activos. El Administrador de Memoria es responsable por la ubicación y retirada de los programas que están siendo ejecutados por el sistema operacional, siendo progra- mas de usuarios o programas del propio sistema operacional. Además de eso, el administrador de memoria controla el es- pacio de direccionamiento generado por el sistema operacional, ése, muchas veces, es superior al espacio físico disponible en la computadora. Con la multiprogramación fue necesario compartir el uso, además del procesador, de los dispositivos conectados a la computadora. El Administrador de Dispositivos garantiza el intercambio de los recursos entre los procesos activos en una computadora. Este intercambio, a pe- sar de proporcionar un mayor desempeño e interactividad al sistema operacional, produce efectos indeseables a los siste- mas operacionales, siendo uno de ellos el llamado deadlock que ocurre cuando una determinada secuencia de ubicación de recursos, por los procesos, lleva al bloqueo de la computadora. La solución para este tipo de problema, puede consumir muchos recursos financieros y de procesamiento y, Estrutura de um Sistema Operacional 29FUNDAMENTOS COMPUTACIONALES por eso, los sistemas operacionales de uso general, no lo implementan normalmente. Es a través del Administrador de Ar- chivos de un sistema operacional que son administrados espacios ubicados, creados y borrados archivos ejecutables, mapeados archivos en disco y se hace la manipulación de archivos y de directorios. Los archivos del sistema de un sistema operacional son una abstracción para el almacenaje y la re- cuperación de los datos generados durante la ejecución de una computadora. Estos datos pueden ser generados por progra- mas de usuarios o por sistema operacional propio. Es a través del Administrador de Archivos de un sistema operacional que son administrados los espacios, la creaci- ón y la exclusión de archivos ejecutables, directorios, mapeo de archivos, etc. Otra tarea importante del adminis- trador de archivos es garantizar la comu- nicación entre los procesos activos durante la ejecución de una computadora. El Interpretador de comandos es un interfaz sencillo y amigable que los sistemas operacionales ofrecen a los usuarios para que puedan interactuar. El intérprete de comandos es el prompt que aparece en la inicialización del sistema operacional. Tipos de Sistemas Operacionales • SO para Computadoras de Gran Tamaño Son sistemas operacionales capaces de administrar un gran número de entradas y de salidas, miles de discos duros y con miles de Terabytes de datos que serán ma- nipulados, conocidos también como main- frames. Estas computadoras existen aún en grandes corporaciones y son aquellas que, ocupan generalmente los espacios de habi- taciones enteras. Las aplicaciones de estos tipos de computadoras van desde grandes servidores Web, comercio electrónico a gran escala y transacciones electrónicas entre las grandes empresas (business-to-business). Este tipo de sistema operacional es hecho para soportar y para ejecutar canti- dades inmensas de Jobs simultáneamente y ofrece tres tipos de procesamiento: • Procesamiento por lote, como, por ejemplo, el informe de ventas de ca- denas de tiendas; • Procesamiento de transacciones, que soportan a una gran cantidad de pe- queñas solicitaciones, por ejemplo, sistema de reserva de pasajes aéreos; • Procesamiento por intercambio de tiempo, que permite, simultánea- mente, que los innumerables usuarios realicen sus trabajos en el sistema, como consultas a la base de datos. Un ejemplo de este tipo de sistema operacional es el OS/390 de IBM. • SO para los Servidores Son los sistemas operacionales que giran en máquinas de mediano porte e in- cluso en mainframes, cuya función es aten- der múltiples usuarios de una vez, en red, permitiendo así compartir los recursos del hardware y del software de aquel sistema. Se utilizan en servidores de Web, sistemas 30FUNDAMENTOS COMPUTACIONALES administradores de base de datos, servicios de correo e intercambio de archivos. Los sistemas típicos de uso en estas aplicaciones son Unix, Linux y Windows Server. • SO de Multiprocesadores Una manera común de desarrollar el poder computacional, es conectar varias CPUs y dividir las tareas entre ellas. Los sistemas multiprocesados se dividen en dos categorías, la primera es aquélla donde las varias CPUs están conectadas en un mis- mo bus, y, para estos casos, los sistemas operacionales deben solamente ser capaces de identificar la presencia de más de un procesador y dividir las tareas entre ellas, compartiendo el resto de los recursos de la máquina, como memoria. Estos sistemas también pueden ser sistemas operacionales de servidores o de red. Otra manera es conectar diversas máquinas con una red de comunicación y dividir las tareas del sistema operacio- nal entre ellas. Sin embargo, este tipo de sistema operacional debe considerar las diversas máquinas conectadas a la red. Un ejemplo del sistema operacional multi- procesado entre diversas máquinas es el Sistema Corba (Common Object Request Broker Architecture) de implementación de middlewares (programa de computadora que hace la mediación entre el software y las otras aplicaciones). • SO de Computadoras Personales Son sistemas operacionales mul- tiprogramados que ofrecen un interfaz amigable a los usuarios y permiten que los programas aplicación se ejecuten en aquel ambiente. Pueden estar instalados en una red de computadoras, solicitando tareas o informaciones a los servidores. Es- tos sistemas se llaman “Sistemas clientes”, que son versiones reducidas de los sistemas operacionales de Servidores. Linux, Windows, Mac y OS son ejem- plos de los sistemas que operan en compu- tadoras operacionales. • SO de Tiempo Real Son sistemas operacionales que pose- en restricciones de tiempo para la ejecución de determinadas tareas. Este tipo de sistema operacional es común en el control de los procesos industriales donde hay colecta de datos del proceso, lectura de entradas y escrita en las salidas, debe ocurrir en inter- valos de tiempo bastante rigurosos. Estos sistemas se denominan sistemas operacio- nales de tiempo real crítico, donde cualquier retraso en el proceso de una tarea causa una falla en el proceso. Hay otros sistemas de tiempo real no crítico, donde un ocasional retraso de una tarea es permitido. Los sistemas de audio de multimedia, como el VxWorks y QNX son ejemplos conocidos de esta categoría. • SO Embarcados Son sistemas operacionales instala- dos en los dispositivos que generalmente caben en el bolsillo del usuario y permiten girar una cantidad limitada de aplicaciones, como agendas de direcciones, plantillas electrónicas entre otros. Las computado- ras de a bordo automotor son ejemplos de equipos que poseen un sistema operacional 31FUNDAMENTOS COMPUTACIONALES embarcado, no obstante, no son las únicas, las televisiones, microondas, refrigeradores, teléfonos móviles, videojuegos, en fin, todos los equipos microprocesados necesitan una especie de sistema operacional para poder girar. • SO de Tarjetas inteligentes Nace una nueva categoría de siste- mas operacionales, cuyas restricciones de consumo de energía y de seguridad son requisitos básicos. Las tarjetas de los ban- cos son ejemplos del uso de este tipo de sistema operacional que, muchas veces, son orientados a Java, grabados en ROM e im- plementadoscon multitareas e inclusión de nuevos applets a la tarjeta. Sin embargo, estos tipos de recursos debilitan la seguridad del sistema. Sistemas Numéricos y Representación de Datos Los números, como los conocemos hoy, surgieron a finales del Siglo VI, sin em- bargo, durante este siglo no existía el cero en los números conocidos por el Occidente. El cero ya era aplicado en este siglo por los hindúes. Fue sólo en 825 d.C. que un sabio de Bagdad, llamado al-Khowarizmi, trabajando en la traducción de todos los libros de matemáticas de su reino, encontró - documentos hindúes que presentaban el sistema numérico decimal. Al-Khowarizmi, maravillado con el descubrimiento, escribió un libro llamado Arte Hindú para Calcular, que popularizó mundialmente este sistema, conocido como indoarábigos. El término número fue utilizado en homenaje a este sabio. Alguarismo (al-Khwarizmi, “el na- cido en Khwarizm”) La base del sistema numérico indo- arábigo es 10, porque posee diez números. Sin embargo, otras bases surgieron en otras civilizaciones que son utilizadas aún en los días actuales. Ejemplo de eso es el sistema numérico inventado por los babilonios, po- seían 60 números y aún hoy es utilizado para representar ángulos y tiempo. En los sistemas de Computadoras los sistemas numéricos más usados son los de base 2, conocidos como Binario, o de base 8, co- nocido como octal y de base 16, conocido como hexadecimal. Todo el número escrito en un deter- minado sistema de numeración de base b puede se escrito con el polinomio siguiente: N = anbn + an-1 bn-1 + ... + a1 b1+ a0 b0 N = número a = cifra b = base Para a < b, donde a 0 es el número menos significativo (a la derecha), es la cifra más significativa del número (a la izquier- da) y b es la base del número. Esta fórmula sirve para convertir cualquier base, para la base decimal. Sistema Decimal Un sistema decimal utiliza diez nú- meros (0 a 9). En este sistema, cada ele- mento a la izquierda de un número posee un orden de grandeza 10 veces mayor que el de su derecha. Por lo tanto, considerando el polinomio de un sistema de numeración, podemos descomponer el número decimal 32FUNDAMENTOS COMPUTACIONALES 1325 en el polinomio siguiente: 1325 = 1 . 103 + 3 . 102 + 2 . 101 + 5 . 100 Ejemplo: Tomando como referencia la base 5: (4130)5 4*53 + 1*52 + 3*51 + 0*50 = 500 + 25 + 15 + 0 = (540)10 Dónde: a3 = 4, a2 = 1, a1 = 3, a0 = 0 b = 5 Sistema Binario Los sistemas binarios poseen sola- mente dos números, cero y uno. Él simplifi- ca y agiliza la manera que las computadoras realizan operaciones. Otra ventaja de este sistema es utilizar poco espacio de memo- ria para almacenar los datos, si comparado con el sistema decimal. Cualquier número, representado en la base binaria, se inter- pretará como el polinomio siguiente, para transformarlo en decimal: N = bn2n + bn−1 2n−1 + ...+ b1 21 + b0 20 Ejemplo: En las computadoras, el sistema bina- rio, tiene la función de realizar operaciones lógicas, cuyo resultado es verdadero o falso, y para los cálculos matemáticos sencillos y complejos también. La representación de nú- meros enteros, reales, complejos, etc., se hace a través de la combinación y la organización de los números binarios. En la terminología de las computado- ras, palabra es un grupo binario de números (bits) que pueden ocupar una localización en la memoria, y que pueden ser procesados de una sola vez, pudiendo ser un número binario, que es para ser manipulado como un dato, o una instrucción que le dice a la computadora cuál operación debe ejecutar. Puede ser tam- bién un carácter ASCII representando una letra del alfabeto, o aún, una dirección que le diga al procesador dónde se localiza un dato. De esta manera, tenemos los siguientes conjuntos de representación de datos: • Bit (menor información tratada por la computadora) • Nibble: 4 bits (16 variaciones); • Dígito: 6 bits (36 variaciones); • Byte: 8 bits (256 variaciones); • Media palabra: 16 bits (65.536 variaciones); • Palabra ( Word): 32 bits (4.294.967.296 variaciones); • Palabra doble (dword): 64 bits (18.446.744.073.709.551.616 variaciones). • Palabra cuádruple: 128 bits 33FUNDAMENTOS COMPUTACIONALES Unidades de Bytes y de conversiones En sistemas computacionales el sistema de bytes posee denominaciones especí- ficas de acuerdo con su cantidad. Vea en la tabla abajo algunas de ellas; Unidades de Bytes Por ejemplo: Tenemos 20MB y que- remos descubrir cuántos bits hay en él, basta hacer el cálculo siguiente: 1 MB = 1024 KB, entonces, 20 MB * 1024 = 20480 KB. 1KB = 1024 Bytes, entonces 20480 KB * 1024 = 20.971.520 Bytes. 1 Byte = 8 bits, entonces 20.971.520 Bytes * 8 = 167.772.160 Bits Sistema Octal Un sistema Octal posee 8 números, 0, 1, 2, 3, 5, 6, 7, es representado por el polinomio siguiente: N= bn8n + bn−1 8n−1 + ... + b1 81 + b0 80 Ejemplo: Fonte: dosponível aqui 34FUNDAMENTOS COMPUTACIONALES Sistema Hexadecimal Un Sistema Hexadecimal posee 16 números, 0, 1, 2, 3, 5, 6, 7, 8, 9, A, B, C, D, E, F, donde los números alfabéticos equi- valen a A = 10, B = 11, C = 12, D = 13, E = 14 y F = 15. Un número en un sistema hexadecimal es representado por el poli- nomio siguiente: N=bn16n+bn−116n−1+...+b1161+b0 160 Ejemplo: El sistema numérico Hexadecimal también se utiliza en los sistemas de com- putadoras, sin embargo, apenas para visu- alizar de manera más amigable. Se utiliza mucho para la programación en lenguaje assembly pues cada dígito equivale a una palabra, dejando al programa un poco más legible. Cambio de la Base 10 para la base Binaria Para cambiar un número decimal para la base binaria, divida el número, su- cesivamente, por 2 hasta encontrar un valor menor que 2. Resultado: 10010112 Cuanto mayor es la base de un sistema de numeración, menor es el número de cifras necesarios para representar un valor. 35FUNDAMENTOS COMPUTACIONALES El resultado se obtiene con los restos de la división, y siempre desde la derecha para la izquierda, como lo indica la flecha para la lectura del número. Cambio de la base 10 para la Base Octal El cambio de la base decimal para la base octal se hace a través de divisiones sucesivas hasta encontrar un valor menor que 8. De hecho, esta regla también sirve para transformar un número decimal para cualquier otra base. Por ejemplo, para con- vertir el número (75) 10, divida el número, sucesivamente, como muestra la imagen: Resultado: (113)8 El resultado se obtiene con los restos de la división, y siempre desde la derecha para la izquierda, como lo indica la flecha para la lectura del número. Cambio de la Base 10 para la Base Hexadecimal Para cambiar un número decimal para el hexadecimal, divídalo, sucesivamen- te, por 16 hasta encontrar un valor menor que 16. Por ejemplo, para convertir el nú- mero 7510 para la base hexadecimal, haga. Resultado: B416 El resultado se obtiene con los restos de la división, y siempre desde la derecha para la izquierda, como lo indica la flecha para la lectura del número. En éste es im- portante recordar que los números necesi- tan ser convertidos para Hexadecimal, por ejemplo, el 11 que se representa por letra B en la base hexadecimal. Cambio entre las bases de potencia 2 La base binaria es siempre interme- dia, por lo tanto, el número debe convertirse en la base de origen para la base binaria y de ésta para la base de la destinación, siempre observando la potencia 2 como agrupación de bits, que se agrupan siempre desde la derecha para la izquierda. • De la base 2 para la base 8 Como 8 = 23, se usa agrupación de 3 en 3 bits: (111010111)2 = (?)8 111 010 111 7 2 7 (111010111)2 = (727)8 • De la base 2 para la base 16 36FUNDAMENTOS COMPUTACIONALES Como 16 = 24, se usa agrupación de 4 en 4 bits: (1011011011)2 = (?)16 0010 1101 1011 2 13 11 (1011011011)2 = (2DB)16 • De la base 8 para la base 16 Es necesario utilizar la base binaria como intermedia.Como 8 = 23, cada dígito octal pasa a 3 bits para lograr el valor bina- rio. Después, como 16 = 24, la agrupación de 4 bits se utiliza para el valor final. (2E7A)16 = (?)8 0010 1110 0111 1010 010 111 001 111 010 2 7 1 7 2 (2E7A)16 = (27172)8 Aritmética No Decimal Adición Binaria La suma binaria es igual a la adición de los números decimales, no obstante, hay que recordar que existen solamente dos números en este sistema. A continuación tenemos todas las posibilidades en la suma binaria. 0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 0, e vai 1 ou 102 1 + 1 + 1 = 1, com “vai um” ou 112 Ejemplos: Sustracción Binaria En binario, la sustracción ocurre de la misma manera que en la base decimal. Ocurre el “préstamo” si el resultado es me- nor que 0. Cuando el minuendo es menor que el sustraendo, debe ocurrir el préstamo (borrow) en el valor de la base, en el caso 2, del primer número diferente de cero a la izquierda. 37FUNDAMENTOS COMPUTACIONALES Ejemplos: Adición Octal Se procede de la misma manera que en la base binaria, respetando el límite del número, en este caso 7. Si la suma es mayor que 7, éste se queda 0 y agrega 1 al número posterior. Substracción Octal Se procede de la misma manera que en la base binaria, observando la regla del préstamo de la base, en este caso 8, del pri- mer número distinto de cero a la izquierda. Adición Hexadecimal Se procede de la misma manera que en la base binaria, respetando el límite del número, en este caso F (15). Si la suma es mayor que 15, éste queda siendo 0 y agrega 1 al número posterior. Substracción Hexadecimal Se procede de la misma manera que en la base binaria, observando la regla del préstamo de la base, en este caso 16, del pri- mer número distinto de cero a la izquierda. 0 - 0 = 0 1 - 0 = 1 1 - 1 = 0 0 - 1 = 1, com “empréstimo” de 2 38FUNDAMENTOS COMPUTACIONALES Representación en Tamaño Fijo Consiste en la definición de un nú- mero fijo de bits que será empleado para representar un número. Es lo que ocurre en las computadoras digitales, dependiendo de la arquitectura de la computadora, del tamaño del bus y de los registradores. Exemplos: El número (4) 10 representado en una arquitectura binaria del tamaño 6, se escribe de esta manera: 000100 En arquitectura de tamaño 8: 00000100 El Overflow ocurre cuando no es posible almacenar un valor determinado en la cantidad de bits definida como tamaño en la arquitectura. En general, es resultado de operaciones matemáticas. En la práctica, puede corromper la memoria por escribir en una dirección que debe formar parte de otro dato. Ejemplo, para la representación en 4 bits. Representación de Números Negativos Para representar números negativos, se acordó el empleo de un bit de señal, el más significativo (más a la izquierda): 0 = positivo 1= negativo Serán vistas dos maneras de repre- sentar un número, que permitirán la defi- nición de números positivos y negativos: Señal - Magnitud y Complemento de 2. Señal-Magnitud Una representación de números bi- narios en señal-magnitud divide la infor- mación en dos partes. • 1 bit para la señal (el más significo) • Los demás bits para la magnitud (valor absoluto del número) De tal manera, el valor en binario usado para representar el número positivo o el número negativo es igual, variando apenas el bit de la señal. Fonte: dosponível aqui 39FUNDAMENTOS COMPUTACIONALES Si el tamaño determinado para la re- presentación de un número es “n”, entonces será posible representar los valores de -(2n-1 - 1) até (2n-1 - 1) 2n-1 porque se reserva un bit para la señal. Se resta 1, porque el primer valor a ser representado es el 0. Ejemplo: Si “n” es 8, en un byte po- demos representar los valores: - (27 - 1) hasta (27 - 1) -127 hasta 127 256 diversos valores En este caso, serán dos representa- ciones para el cero. Una inconveniencia de la representación señal-magnitud. Complemento de 2 En matemáticas, el complemento de un número es la cantidad que falta para completar un valor. Por ejemplo, el com- plemento de un ángulo agudo es el número de grados necesarios para llegar a los 90. En operaciones aritméticas, el com- plemento con base de un número N es el valor necesario para conseguir el valor má- ximo representable para la base, y se obtiene de la siguiente manera: • Se resta, de cada número, el mayor número de la base (complemento base-1) • Se suma 1 al resultado (complemento de base). Representación en el complemento de la base de 297 999 -297 702 1 = 703 La suma de un número con su com- plemento siempre será el número de valores posibles de escribir en la representación. Ejemplo: 297 + 703 = 1000 En el caso de los números binarios, para llegar al complemento de base, o sea, el complemento de 2, se resta cada número de 1 y después se suma 1 al resultado. O, para simplificar, sólo es necesario invertir los bits del número y sumar 1 al resultado conseguido. Ejemplo: Representación en el complemento de 2 de 10010: 1101 = 01110 La representación de números po- sitivos en el complemento no se modifica, sólo se emplea el bit de la señal (igual a la representación de la Señal-Magnitud). La representación de un número negativo se consigue haciendo el comple- mento a la base del número positivo. 40FUNDAMENTOS COMPUTACIONALES Tipo de representación Representaciones para cero Costo Velocidad Señal - Magnitud Dos Alto (componentes separados para suma y resta) Baja (algoritmo de verificación de señales, suma y resta) Complemento de 2 Una Bajo (un componente único para suma) Alto (algoritmo sencillo y único para suma) Comparativo entre las dos representaciones Fuente: Autor CUESTIONES DEL CAPÍTULO 2 1. ¿Cuántos bits existen en 64KB? 2. ¿Cuántas palabras existen en 1KB? 3. ¿Cuántos bits existen en 1Mb? 4. ¿Cuántos KB existen en 65536 bits? 5. Convierta los valores de abajo para la base decimal a. (1021)3 = b. (14501)7 = c. (387)9 = d. (624)8 = e. (1011101)2 = f. (1EB)16 = g. (23AF)16 = h. (74D32)16 = i. (2C3A)16 = j. (DBAC)16 = k. (AAA)16 = 42FUNDAMENTOS COMPUTACIONALES LENGUAJES Y ORGANIZACIÓN DE LA INFORMACIÓN ¿Ustedes conocen algún lenguaje de programación? ¿Sabían que ellos están presentes en todo lo que usted hace en la computadora? Los lenguajes de programación son maneras de traducir una solución o reglas para encontrar la solución de los problemas que se pueden solucionar a través de sistemas computaciona- les. Todo y cualquier programa, desde el sistema operacional hasta las aplicaciones de usuarios, se desarrollan en un lenguaje determinado. La opción del lenguaje determina el éxito o el fracaso en la construcción de una aplicación. Los lenguajes de programación tienen como función traducir a un lenguaje cercano al del ser humano y a un lenguaje que se pueda entender por el procesador, es decir, un lenguaje de programación traduce, la prioridad, un texto representando un algoritmo para resolver un determinado problema, en un 43FUNDAMENTOS COMPUTACIONALES conjunto de instrucciones Lenguajes de Programación de máquina de un proce- sador. Lenguajes de Programación Surgimientos de los principales lenguajes de programación 44FUNDAMENTOS COMPUTACIONALES La figura muestra el surgimiento de algunos de los principales lenguajes de pro- gramación existentes en el mercado. Los lenguajes vienen desarrollándose a lo largo de los años con el objetivo de acercar la manera de programar el lenguaje humano, es decir, de dejarlos, cada vez más, comprensibles y menos complejos. Todo el lenguaje irá a convertir un archivo que contiene las expresiones lógicas, aritméticas, palabras reservadas al lenguaje, entre otros objetos, en una secuencia de instrucciones de máquinas que pertenecen a un determi- nado procesador. Estos lenguajes pueden ser compilados o interpretados, o sea, pueden generar un archivo que contenga todo el código ejecutable de una única vez o puedentraducir respectivamente a medida que el programa es ejecutado. Esta tarea es hecha por los compiladores de un determinado lenguaje, sin embargo, las tareas ejecutadas para un compilador son básicamente las mismas, independiente del tipo de len- guaje. El flujo muestra las etapas que los compiladores ejecutan antes de generar el archivo ejecutable, un código entendible para la computadora. Analizador Léxico tiene como fun- ción identificar las unidades léxicas del lenguaje, o sea, dividir lo que son pala- bras-reservadas, variables, números, etc. Por ejemplo, el analizador léxico identifica operandos como IF, THEN, Mi Variable, entre otros. Analizador Sintáctico, por su vez, verifica si la estructura del programa fue hecha según las reglas gramaticales del len- guaje. El analizador sintáctico verifica si la secuencia de un comando de repetición es digitada correctamente como en el ejemplo WHILE. Mi Variable == 0 DO. Analizador Semántico verifica si las expresiones del programa hacen sentido, como, por ejemplo: verificar si los tipos de variables están correctos con las atri- buciones. El Generador de Código Intermedio genera una representación intermedia entre el lenguaje de alto nivel y el lenguaje de la máquina del procesador blanco, con el objetivo de facilitar esta traducción. Ésta no es obligatoria y algunos compiladores 45FUNDAMENTOS COMPUTACIONALES lo usan y otros no. Optimizador de Código, algunos len- guajes evalúan las expresiones para simpli- ficarlas y dejar lo ejecutable más rápido. Un ejemplo de esto es verificar las expresiones aritméticas que involucran multiplicación y división de números por múltiplos de dos y sustituirlas por las instrucciones de desplazamiento evitando, así, el uso del procesador aritmético. Es en esta etapa del Generador de Código Objeto que el programa es traduci- do para el código blanco, es decir, traducido para el conjunto de instrucciones de un determinado microprocesador. Después de la generación del programa objeto es nece- sario montarlo y encenderlo para generar el archivo ejecutable. Los lenguajes pueden ser divididos a través de su acercamiento al lenguaje hu- mano: • Lenguajes de Bajo Nivel; • Lenguajes no estructurados; • Lenguajes Procedurales; • Lenguajes Funcionales; • Lenguajes Volcados para el Objeto; • Lenguajes Específicos; • Lenguajes de la Cuarta Generación o • Visuales; Lenguajes de Bajo Nivel Son lenguajes cuyas instrucciones están más cerca del código de la máquina que del lenguaje humano. Puede decirse que para cada procesador hay un lenguaje correspondiente, es decir, un lenguaje que es determinado por el set de instrucciones de aquel microprocesador. Estos lenguajes son conocidos como Lenguaje Assembly. Lenguajes No Estructurados; Son Lenguajes que no poseen una relación directa con el Lenguaje Assem- bly, o sea, el conjunto de instrucciones de estos lenguajes no es el mismo del código automático. Entonces, es posible desarrollar programas independientes del tipo de mi- croprocesador que los ejecutará, y es sólo en la etapa de generar el código que esto es determinado. La no estructura de estos lenguajes ocurre porque no se pueden divi- dir, de manera coherente, las diversas tareas de un programa, es decir, los programas se hacen en un único archivo. Son ejemplos, los lenguajes: Cobol, Basic. Lenguajes Procedurales Los lenguajes procedurales son un subgrupo de lenguajes estructurados, don- de sus controles y organización son más eficientes, volviéndolos más claros sobre Ejemplos de Lenguajes 46FUNDAMENTOS COMPUTACIONALES el punto de vista sintáctico. Los lenguajes procedurales ordenan la construcción de los programas a través de una estructura de llamadas de procedimientos. Las más comunes son C, Paschal, Fortran, entre otros. Cada uno de estos lenguajes posee ventajas y desventajas, no obstante, son más especialistas que otros en determinadas tareas. Ejemplos de Lenguajes Los lenguajes funcionales, al revés de los procedurales, no están interesados en ejecutar comandos, pero, sí, en evaluar expresiones que combinan valores básicos (verdadero o falso). Algunos de estos len- guajes no poseen la solución del problema insertado en su código, poseen las reglas que permiten encontrar la solución de un determinado problema. Estos lenguajes, generalmente, se uti- lizan de softwares especialistas como, por ejemplo, programas que juegan al ajedrez, no necesitan prever todas las jugadas en su código, es suficiente enseñar los movi- mientos básicos de cada pieza. Son ejemplos de lenguajes funcio- nales: Prolog y Lisp. Lenguajes Volcados al Objeto El surgimiento de los lenguajes Vol- cados al objeto se relaciona con las nue- vas técnicas de la Ingeniería de Software que surgieron para orientar y organizar procesos, reducir al mínimo el tiempo de programación y promover la reusabilidad del código. Además de eso, no había, en la década del 90, un lenguaje de programaci- ón igual al paradigma de la base de datos relacional. Una de las principales cacterísticas de este paradigma es que todas las informa- ciones, datos y códigos, están encapsulados y transitan con el flujo del programa. Una vez encapsulados en una clase, ésta define el comportamiento de todas las instancias de aquel objeto. Otras características como herencia se implementan en este tipo de paradigma de programación. Smaltalk, C++ y Java son ejemplos de lenguajes orientadas a objeto. Ejemplos de Lenguajes Ejemplos de Lenguajes Ejemplos de Lenguajes 47FUNDAMENTOS COMPUTACIONALES Lenguajes Específicas Son lenguajes desarrollados para su- plir necesidades específicas como el tra- tamiento de la base de datos, formato de textos, simulación, entre otros. Por ejemplo, el lenguaje SQL (Struc- tured Query Language) es un lenguaje para consulta a la base de datos basada en el modelo de la base de datos relacional. Este lenguaje está normalizado, y es incorpo- rado por la mayoría de las bases de datos disponibles en el mercado. El estudio del lenguaje SQL se relaciona con la aritmética y la lógica relacional y posee relación directa para su conversión. Otro ejemplo es el Matlab, que fue creado inicialmente para la enseñanza de la teoría matricial, del álgebra linear y del análisis numérico, en las Universidades de Standfor y de Nuevo México, en la déca- da del 70. Actualmente este programa es suministrado por la Math Workx y se ha vuelto para las aplicaciones científicas y la simulación de sistemas. Su sintaxis es sufi- cientemente fácil y posee una gran variedad de bibliotecas para las aplicaciones que van desde la simulación de sistemas digitales, el procesamiento de señales y de sistemas complejos como dinámica de fluidos com- putacional. Su principal ventaja es proveer rápidamente los resultados al usuario. Además de éstos, tenemos HTML, LÁTEX, Perl, entre otros. Lenguajes de la Cuarta Generación o Visuales Los lenguajes de la cuarta generación o visuales surgieron de sistemas operaciona- les cuyas interfaces son gráficas. Windows fue uno de los responsables por el surgi- miento de estos lenguajes y en la manera como son desarrollados los programas. Los usuarios, a través de los lenguajes 4GL, pueden crear sus propios sistemas con un mínimo de error y de tiempo de desarrollo. Lenguaje Visual Basic, Simulink, Lenguaje Delphi son ejemplos de lenguajes visuales. Estructura y Organización de la información La estructura, de cómo los datos son almacenados, es una de las partes más importantes del proyecto de un sistema computacional, sea para el control de una empresa, sea dentro de un dispositivo móvil. Esta importancia se da por el hecho de que todos los procedimientos y funciones que se desarrollarán dentro del sistema depen- derán de la definición de estas estructuras. Además de la elección del lenguaje de programación correcta para resolver un determinado problema, es la opción de la estructura delos datos que garantizará un Ejemplos de Lenguajes 48FUNDAMENTOS COMPUTACIONALES funcionamiento mejor del software cons- truido. Para los sistemas de información para las empresas, en general, la estructura de datos de un programa modelará los da- tos que representan los procesos reales de aquella empresa. Los lenguajes de programación pro- veen las herramientas para hacer este mo- delado, que van desde tipos de datos ele- mentales, como caracteres, enteros, reales, etc., hasta más complejo como archivos que son estructuras que agrupan diversos tipos de datos. A continuación, se presentarán algunas maneras de organizar los datos de un sistema. Campo El campo es la descripción de un atributo, de una entidad determinada. Los campos se pueden formar por cualquier tipo de dato elemental y están conectados a un área determinada del almacenaje, teniendo un significado lógico para el sistema. Registro El registro consiste en una agrupaci- ón de campos que representa una ocurrencia de una determinada entidad. Generalmente, cada registro es representado por un campo de valor único dentro de una determinada colección de entidades. Es decir, cada re- gistro tendrá una identificación, conocida como clave, que identificará una y solamen- te una entidad. Los registros son comunes en archivos de base de datos. La tabla muestra algunos ejemplos de la colección de los registros y de las claves que representan un único elemento dentro de la colección. Archivos Los archivos, además de ser im- portantes para el mantenimiento de los sistemas operacionales (modelado de dis- positivos, comunicación entre los procesos, etc.), poseen un papel importante en la abstracción para el almacenaje de datos en los sistemas computacionales. Un archivo que contiene datos almacenados de forma secuencial, es decir, un registro después del otro. Aunque, todos los archivos conten- gan datos, la relevancia de ellos es dada siempre a un nivel superior, o sea, a un nivel de usuario. Cuando un conjunto de Entidad Atributos Libro Título Categoría Autor Cliente Nombre Apellido DI Campo Registro Chave Registro de Coches Número del Chasis Registro de Clientes Número del DI Registro de Notas Fiscales Número de la Nota Fiscal Registro de Empleados Número de la Matrícula Registro 49FUNDAMENTOS COMPUTACIONALES datos agrupados tiene significado, esto se convierte en información. Por lo tanto, la diferencia entre datos e información es que éstas permiten la toma de decisión o la ejecución de tareas, de acuerdo con los objetivos de cada sistema o programas. Métodos de Acceso a los Datos El método de acceso a los datos son los algoritmos de la búsqueda, inserción, actualización, entre otros, utilizados para el sistema de información y la elección de un tipo de algoritmo en detrimento de otro determinará el grado de dificultad de aquel sistema. • Acceso Serial Los archivos de acceso serial son aquellos cuyos datos son almacenados en el archivo en el orden en que fueron creados y sus registros poseen tamaños y secuen- cias de datos iguales. El acceso de este tipo de archivo se hace a través de la búsqueda secuencial del registro. La característica del acceso serial es que un registro sólo es alcanzado después de la finalización de la lectura del anterior. Esta metodología genera tiempos de acce- sos extremamente largos a medida que el archivo crece. La actualización del archivo en este método implica la creación de un archivo auxiliar dentro del sistema, dupli- cando el área ocupada en el disco. • Acceso Secuencial La principal característica del acceso secuencial es que los registros son almace- nados por orden de clasificación de la clave. Cuando almacenados en orden crecente de claves, el acceso se convierte en serial y fácilmente calculado, una vez que el tamaño de cada registro es igual. Una de las maneras de garantizar que el archivo con los datos sea mantenido y ordenado es el uso de árboles binarios para mantener los datos en memoria antes de que los grabe en disco, garantizando, así, que la ordenación no afecte el funcionamiento del sistema. Datos, Procesamiento e información Fuente:Tanembaum, 2007 Organización de los datos en acceso serial Fuente:Adaptado de Link. Organización de los datos, ordenados para la clave Fuente:Adaptado de Link. Organización de los datos, ordenados para la clave Fuente:Adaptado de Link. 50FUNDAMENTOS COMPUTACIONALES • Acceso Secuencial Indexado Este método consiste en mantener un archivo de índices que señala la posición del registro dentro del archivo. El archivo de índices se genera durante la creación del archivo o en el mantenimiento del mismo. Además de eso, este archivo de índices po- drá ser mantenido ordenado o incluso usar una estructura en árbol binario cuando sea cargado en la memoria. La búsqueda en este tipo de método es muy rápida. • Acceso directo El método de acceso directo es defi- nido por la correspondencia directa entre la clave del registro y la dirección física del registro en el dispositivo de almacenaje. De esta manera, al intentar localizar un registro, el software accesará directamente la direc- ción donde aquel registro fue grabado. Este método garantiza gran funcionamiento en el acceso a los datos. Base de Datos Una manera simple de definir una base de datos es un conjunto de archivos, conteniendo registros, organizados para garantizar el mejor funcionamiento durante las consultas, inserciones, actualizaciones y la creación de datos. Al contrario de los archivos convencionales que poseen una diversidad de los datos que no poseen re- lación entre sí mismos, una base de datos posee una relación entre los datos que dan al usuario informaciones relevantes. Por lo tanto una base de datos posee datos elemen- tales y datos secundarios, proveniente de las relaciones entre los datos. Estos datos se pueden clasificar como: Datos principales; Datos de la estructura; Datos del índice; Datos del control; y Diccionario de datos. Una base de Datos debe ser capaz de representar los datos del mundo real, es decir, la Base de Datos tendrá que ser capaz de modelar los datos principales, las relaciones y las transacciones entre los mis- mos. Una Base de Datos posee diversos níveles de información, relacionados con cada etapa de su construcción. La figura muestra que la relación entra las etapas de la elaboración de una Base de Datos y las informaciones asociadas a cada una de ellas. Un modelo de la base de datos se da a través de dos fases y de cuatro etapas con el fin de mantener una organización y una relación entre em mundo real y los datos representados dentro del sistema. La primera fase se refiere a la concep- tualización del modelo donde son levantas y analizadas las informaciones del mundo real, de sus relaciones y transacciones entre los procesos. A partir de eso es formulado el Organización de los datos a través de índices Fonte:Adaptado de Link. 51FUNDAMENTOS COMPUTACIONALES modelo conceptual de la Base de Datos, es decir, se definen las estructuras de la infor- mación y de los métodos de manipulación. La segunda fase ocurre cuando la Base de Datos es implementada, es decir, son definidos el modelo lógico y el modelo físico de los datos, las rutinas de consulta, actualización, inserción, entre otras de la Base de Datos. Modelo Relacional El modelo relacional de la Base de Datos se utiliza actualmente y ofrece gran- des ventajas sobre los otros modelos de la Base de Datos y la base de su estructura son las matemáticas relacionales. Una Base de Datos relacional posee algunas terminolo- gías que deben ser conocidas para entender el modelo. Terminología Descripción Dominio Es un grupo de valores legales que corresponden a una secuencia de registros válidos, encontrados en un determinado conjunto de atributos. Tupla Es la línea de una tabla que posee los valores de cada atributo. Atributo Es una columna de
Compartir