sistemas computacionales

58
Héctor Eloy Jiménez Estrada Investigacion documental Preparatoria Regional de Sayula modulo San Gabriel SISTEMAS COMPUTACIONALES

Upload: hector-jimenez-estrada

Post on 27-Jun-2015

6.614 views

Category:

Documents


4 download

DESCRIPTION

Sistemas Computacionales - Trabajo de Investigación Documental.

TRANSCRIPT

Page 1: Sistemas computacionales

Héctor Eloy Jiménez Estrada

Investigacion documental

Preparatoria Regional de

Sayula modulo San Gabriel

SISTEMAS COMPUTACIONALES

Page 2: Sistemas computacionales

1

INDICEINDICEINDICEINDICE.... Índice…….………………………………………………………………1 Objetivos (Generales, Particulares), Justificación, Tipo De Estudio…………….2 Preguntas…………….…………………………………………………...3 Tipos de Hipótesis…………………………………………………………4 Antecedentes Históricos (Las generaciones)………………..…..…………...5-9 Capitulo 1 Que son los sistemas computacionales………………………………………10 Modernización de los sistemas computacionales……………………………..10 Programa Fuete…………………………………………………………..11 Programa Objeto………………………………………………………11-12 Que es el Compilador…………………………………………………...12-13 Fases del Compilador……………………………………………………...13 Administración de tabla de símbolos…………………………………….13-14 Definición e información de errores………………………………………....14 Fases del análisis…………………………………………………………14 Representación de una proposición…………………………………………15 Generación del Código Intermedio………………………………………15-16 Optimización del Código……………………………………………….16-17 Partes del Compilador……………………………………………………..17 Tipos de Compiladores…………………………………………………17-18 Ventajas del Compilador…………………………………………………..18 Funciones del Compilador…………………………………………………19 Partes con las que trabaja…………………………………………………19 Ejemplo del Compilador…………………………………………………...19 Capitulo 2 Que es un Cargador…………………………………………………....20-21 Opciones de diseño del Cargador……………………..…………………......21 Cargadores de Arranque………………………………………………..21-22 Cargador de Cyber……………………………………………………..22-23 Relación Informática-Sistemas Computacionales…………………………….23 Programas de Superposición…………………………………………….23-24 Sistema Operativo………………………………………………………...24 Como funciona un Sistema Operativo……………..……………………..24-25 Sistemas Operativos Actuales……………………………………………...25 Sistemas Operativos de Red…………………………………………….25-26

Page 3: Sistemas computacionales

2

Sistemas Operativos Distribuidos…………………………………………..26 Sistemas Operativos por Estructura………………………………………...26 Estructura Monolítica…………………………………………………26-27 Estructura Jerárquica……………………………………………………..27 Cliente-Servidor…………………………………………………………..27 Maquina Virtual…………………………………………………..…..27-28 Sistemas Operativos por servicios…………………………………………..28 Monousuarios, Multiusuarios y Monotareas………………………………..28 Multitareas, Unitarias, y Multiproceso…………………………………….29 Superordenadores………………………………………………………....29 Capitulo 3 Función de un sistema binario en una PC………………………………...…30 Hardware………………………………………………………….…30-31 Hardware de entrada………………………………………………..…31-32 Hardware de Salida…………………………………………………....32-33 Hardware de Almacenamiento………………………………………….33-34 Conexiones del Hardware………………………………………………….34 Software………………………………………………………..……35-36 Sistemas Digitales…………………………………………………….…..36 Borrado y Escritura Automática……………………………………….…..37 Estructura de una celdilla Flash………………………………………...37-38 Código Abierto………………………………………………………...38-39 Capitulo 4 Redes de Ordenadores………………………………………………….40-41 Tipos de Redes………………………………………………….…..41-42-43 Conexiones de Red.………………………………………………………..43 Medios de Transmisión……………………………………………………43 Topología……………………………………………………………..43-44 Compartir Información…………………………………………………....44 Función y Gestión de Redes…………………………………………….44-45 Protocolo de Red……………………………………………………....45-46 Lenguaje de Programación………………………………………..…46-47-48 Patrón de Diseño………………………………………………..…….48-49 Glosario…………………………………………………………...….50-55 Bibliografía…………………………………………..………………56-57

Page 4: Sistemas computacionales

3

SISTEMAS COMPUTACIONALES (OPERATIVOS).SISTEMAS COMPUTACIONALES (OPERATIVOS).SISTEMAS COMPUTACIONALES (OPERATIVOS).SISTEMAS COMPUTACIONALES (OPERATIVOS).

El sistema comienza con un usuario o equipo el cual introduce información al sistema de acuerdo a un parámetro anteriormente establecidos. Los datos suministrados deberán ser exactos, que no difieran con la aplicación que los recibirá y procesará; si esto ocurre, el programa no se ejecutará o arrojará los resultados esperados. Estos datos suelen ser escritos en un sistema diferente al sistema binario.

OBJETIVOS PARTICULARES.

1. Saber cual es la función principal de los sistemas computacionales para saber los

beneficios que tienen en la sociedad.

2. Entender la relación que tienen los sistemas Computacionales (Operativos) con las ciencias aplicadas.

3. Conocer los conceptos básicos de los sistemas computacionales.

OBJETIVO GENERAL.

Comprender como los sistemas computacionales se adentran en la sociedad a si mismo conoceremos los beneficios, avances, tendencias y conceptos básicos, también veremos como y por que afectan a la comunidad.

JUSTIFICACION. Esta investigación se realiza con el fin de que las personas que gusten de los Sistemas Computacionales sepan cuales son las áreas, conceptos, beneficios, desventajas que se manejan en los sistemas computacionales, a si se sabrá cual es la verdadera visión de esta ingeniería.

TIPO DE ESTUDIO. Este es un estudio Correlacional; por que esta investigación tendrá comparaciones entre distintos conceptos y se vera cuales son las definiciones especificas de cada concepto. También se vera cual es la función principal de cada uno de estos conceptos.

Page 5: Sistemas computacionales

4

PREGUNTAS. 1.- ¿Qué son los sistemas computacionales? 2.- ¿Cómo ha sido su modernización? 3.- ¿Qué es un programa fuente? 4.- ¿Qué es un programa objeto? 5.- ¿Para que sirve un compilador? 6.- ¿Qué es un cargador? 7.- ¿Qué relación tienen con la informática? 8.- ¿Qué son los programas de superposiciones? 9.- ¿Qué es un sistema operativo? 10.- ¿Qué es un superordenador? 11.- ¿Cómo funcionan el sistema binario en un PC? 12.- ¿Qué es Hardware? 13.- ¿Qué es Software? 14.- ¿Qué son los sistemas digitales? 15.- ¿Qué es un código abierto? 16.- ¿Qué son las redes de ordenadores? 17.- ¿Qué tipos de redes existen y para que sirven? 18.- ¿Qué es un protocolo de red? 19.- ¿Qué son los lenguajes de programación? 20.- ¿Qué es un patrón de diseño?

Page 6: Sistemas computacionales

5

TIPOS DE HIPOTESIS.TIPOS DE HIPOTESIS.TIPOS DE HIPOTESIS.TIPOS DE HIPOTESIS.

a) HIPOTESIS DE INVESTIGACION.

1. Un sistema operativo es aquel que sirve para que una computadora funcione.

2. Un programa fuente es base para la elaboración de documentos.

3. El software son todos los programas internos de una computadora.

b) HIPOTESIS NULAS.

1. Un sistema operativo no sirve para que una computadora funcione.

2. Un programa fuente no es base para la elaboración de documentos.

3. El software no son todos los programas internos de una computadora.

c) HIPOTESIS ALTERNATIVAS.

1. Un sistema operativo sirve para navegar en Internet.

2. Los programas fuentes son programas internos.

3. El software son documentos creados por el humano.

Page 7: Sistemas computacionales

6

ANTECEDENTES HISTORICOS.ANTECEDENTES HISTORICOS.ANTECEDENTES HISTORICOS.ANTECEDENTES HISTORICOS.

La Ingeniería en Sistemas Computacionales es un campo de alta demanda en la actualidad. Los programas de esta carrera deben ser diseñados con la idea de mantenerse actualizados en cuanto a los adelantos científicos en esta área y las demandas de la sociedad en la que los profesionistas se han de desenvolver. Por esta razón los programas de esta carrera están en un constante proceso de actualización.

Un sistema computacional esta compuesto por uno o varios equipos (computadores u otros dispositivos) electro-mecánicos soportados por programas específicos para la realización de tareas o solución de problemas. Un sistema computacional es un sistema complejo que puede llegar a estar constituido por millones de componentes electrónicos elementales. Un sistema operativo (SO) es un conjunto de programas o software destinado a permitir la comunicación del usuario con un ordenador y gestionar sus recursos de manera cómoda y eficiente. Comienza a trabajar cuando se enciende el ordenador, y gestiona el hardware de la maquina desde los niveles más básicos. Pues si se puede poner por que los sistemas de cómputo hoy en día tienden a la globalización, una red mundial, ejemplo “Internet”, y todas esas facilidades para que se puedan comunicar las computadoras las dan los sistemas Operativos Los Sistemas Operativos, al igual que el Hardware de los computadores, han sufrido una serie de cambios revolucionarios llamados generaciones. En el caso del Hardware, las generaciones han sido marcadas por grandes avances en los componentes utilizados, pasando de válvulas (primera generación) a transistores (segunda generación), a circuitos integrados (tercera generación), a circuitos integrados de gran y muy gran escala (cuarta generación). Cada generación Sucesiva de hardware ha ido acompañada de reducciones substanciales en los costos, tamaño, emisión de calor y consumo de energía, y por incrementos notables en velocidad y capacidad.

Page 8: Sistemas computacionales

7

GenerGenerGenerGeneración Cero (década de 1940)ación Cero (década de 1940)ación Cero (década de 1940)ación Cero (década de 1940)

Los primeros sistemas computacionales no poseían sistemas operativos. Los usuarios tenían completo acceso al lenguaje de la maquina. Todas las instrucciones eran codificadas a mano.

Primera Generación (1945Primera Generación (1945Primera Generación (1945Primera Generación (1945----1955)1955)1955)1955)

""""Generación de tubos de vacío y tableros de conmutación"

Las primeras maquinas de calculo operaban mediante el uso de tubos de vacío, con estas máquinas un solo equipo de personas diseñaba, construía, programaba y daba mantenimiento a cada una de las máquinas. Toda la programación se realizaba en lenguaje de máquina absoluto. Los lenguajes de programación se desconocían, aun no existía el lenguaje ensamblador.

Los sistemas operativos de los años cincuenta fueron diseñados para hacer mas fluida la transición entre trabajos. Antes de que los sistemas fueran diseñados, se perdía un tiempo considerable entre la terminación de un trabajo y el inicio del siguiente. Este fue el comienzo de los sistemas de procesamiento por lotes, donde los trabajos se reunían por grupos o lotes. Cuando el trabajo estaba en ejecución, este tenia control total de la maquina. Al terminar cada trabajo, el control era devuelto al sistema operativo, el cual limpiaba y leía e iniciaba el trabajo siguiente.

Al inicio de los 50's esto había mejorado un poco con la introducción de tarjetas perforadas (las cuales servían para introducir los programas de lenguajes de máquina), puesto que ya no había necesidad de utilizar los tableros enchufables.

Para poder correr un trabajo (programa), tenían que escribirlo en papel (en Fortran o en lenguaje ensamblador) y después se perforaría en tarjetas. Enseguida se llevaría la pila de tarjetas al cuarto de introducción al sistema y la entregaría a uno de los operadores. Cuando la computadora terminara el trabajo, un operador se dirigiría a la impresora y desprendería la salida y la llevaría al cuarto de salida, para que la recogiera el programador.

Segunda Generación (1955Segunda Generación (1955Segunda Generación (1955Segunda Generación (1955----1965)1965)1965)1965)

""""Generación de Transistores y sistemas de lote"

La introducción del transistor a mediados de los 50's cambió la imagen radicalmente. Gracias a esto las computadoras se volvieron muy confiables. Estas máquinas se instalaban en cuartos especialmente acondicionados con aire, con un cuerpo de programadores profesionales para utilizarlas.

Page 9: Sistemas computacionales

8

Para poder correr un trabajo (programa), tenían que escribirlo en papel (en Fortran o en lenguaje ensamblador) y después se perforaría en tarjetas. Enseguida se llevaría la pila de tarjetas al cuarto de introducción al sistema y la entregaría a uno de los operadores. Cuando la computadora terminara el trabajo, un operador se dirigiría a la impresora y desprendería la salida y la llevaría al cuarto de salida, para que la recogiera el programador.

La característica de los sistemas operativos fue el desarrollo de los sistemas compartidos con multiprogramación, y los principios del multiprocesamiento. En los sistemas de multiprogramación, varios programas de usuario se encuentran al mismo tiempo en el almacenamiento principal, y el procesador se cambia rápidamente de un trabajo a otro. En los sistemas de multiprocesamiento se utilizan varios procesadores en un solo sistema computacional, con la finalidad de incrementar el poder de procesamiento de la maquina.

La independencia de dispositivos aparece después. Un usuario que desea escribir datos en una cinta en sistemas de la primera generación tenia que hacer referencia especifica a una unidad de cinta particular. En la segunda generación, el programa del usuario especificaba tan solo que un archivo iba a ser escrito en una unidad de cinta con cierto número de pistas y cierta densidad.

Dado a que el costo del equipo era muy alto, se buscaba la forma de reducir el tiempo perdido. La solución que se le dio fue el sistema de lote. La idea de este sistema era la de juntar un lote de trabajos y después leerlos en una cinta magnética con la ayuda de una computadora "relativamente" pequeña y poco costosa. (IBM 1401).

Después de recolectar por una hora estos trabajos se rebobinaba la cinta y se llevaba a donde estaba la máquina. Ya ahí el programador cargaba un programa que leía el primer programa de la cinta y lo ejecutaba, la salida se escribía en una segunda cinta en vez de imprimirse, después de terminar cada trabajo, el sistema operativo leía automáticamente el siguiente trabajo de la cinta, y comenzaba a ejecutarlo.

Tercera Generación (1965Tercera Generación (1965Tercera Generación (1965Tercera Generación (1965----1980)1980)1980)1980)

""""Generación de circuitos integrados y multiprogramación"

Al inicio de la década de 1960 (cabe destacar que esta generación se usa aun en nuestros días) muchos fabricantes de computadoras tenían dos líneas de trabajo distintas y totalmente incompatibles. Por un lado existían las computadoras científicas de grande escala orientadas a las palabras, como la 7094. Por el otro lado estaban las computadoras comerciales orientadas a los caracteres, como 1401. El desarrollo y mantenimiento de dos líneas de productos diferentes era una proposición costosa para los fabricantes.

IBM intento resolver esto con la introducción en el mercado del Sistema/360 que era un sistema compatible con el software que variaban del tamaño de la 1401 a mucho más poderosa que las 7094, diseñada para hacer cálculos tanto científicos como comerciales.

Page 10: Sistemas computacionales

9

EL 360 fue la primera línea de computadoras que utilizo circuitos integrados (CI), por lo tanto ofreció un mejor precio y rendimiento sobre las máquinas de la segunda generación.

Eran sistemas de modos múltiples, algunos de ellos soportaban simultáneamente procesos por lotes, tiempo compartido, procesamiento de tiempo real y multiprocesamiento. Eran grandes y costosos, nunca antes se había construido algo similar, y muchos de los esfuerzos de desarrollo terminaron muy por arriba del presupuesto y mucho después de lo que el planificador marcaba como fecha de terminación.

Estos sistemas introdujeron mayor complejidad a los ambientes computacionales; una complejidad a la cual, en un principio, no estaban acostumbrados los usuarios.

Otra característica de importancia en los sistemas operativos de la tercera generación era la capacidad de leer trabajos de tarjetas contenidas en el disco tan pronto como se llevaban al cuarto de computación. Siempre que se terminaba un trabajo, el sistema operativo podía cargar uno nuevo del disco en la partición no vacía y ejecutarlo, esta técnica se denomina manejo por cola de impresión. Los sistemas operativos de la tercera generación seguían siendo básicamente sistemas de lote. Con los sistemas operativos de la tercera generación, el tiempo entre la entrega de un trabajo y la devolución de la salida comprendía a menudo varias horas.

El primer sistema de tiempo compartido ( CTSS ) serio fue creado en MIT en una unidad 7094 especialmente modificada, no se volvió popular sino hasta que el hardware de protección necesario se disemino durante la tercera generación.

Cuarta Generación (1980Cuarta Generación (1980Cuarta Generación (1980Cuarta Generación (1980----1995199519951995))))

"Computadoras personales"

Los sistemas de la cuarta generación constituyen el estado actual de la tecnología. Muchos diseñadores y usuarios se sienten aun incómodos, después de sus experiencias con los sistemas operativos de la tercera generación.

Con la ampliación del uso de redes de computadores y del procesamiento en línea los usuarios obtienen acceso a computadores alejados geográficamente a través de varios tipos de terminales.

Un avance importante que empezó a tomar su sitio a mediados de la década de 1980 es el desarrollo de redes de computadoras personales que corren sistemas operativos en red y sistemas operativos distribuidos. En un sistema operativo en red, los usuarios tienen conocimiento de la existencia de múltiples computadoras y pueden ingresar en maquinas remotas y reproducir archivos de una maquina a la otra. Cada maquina ejecuta su sistema operativo local y tiene un usuario propio (o usuarios). Un sistema distribuido, es aquel que se presenta ante sus usuarios como un sistema uní procesador tradicional, aunque en realidad este compuesto de múltiples procesadores. En un sistema distribuido real, los usuarios no tienen conocimiento de donde se

Page 11: Sistemas computacionales

10

están ejecutando sus programas o de donde están ubicados sus archivos; todo esto se debe manejar en forma automática y eficiente por medio del sistema operativo.

Los sistemas de seguridad se han incrementado mucho ahora que la información pasa a través de varios tipos vulnerables de líneas de comunicación. La clave de cifrado esta recibiendo mucha atención; han sido necesario codificar los datos personales o de gran intimidad para que; aun si los datos son expuestos, no sean de utilidad a nadie mas que a los receptores adecuados.

El porcentaje de la población que tiene acceso a un computador en la década de los ochenta es mucho mayor que nunca y aumenta rápidamente.

El concepto de maquinas virtuales es utilizado. El usuario ya no se encuentra interesado en los detalles físicos de; sistema de computación que esta siendo accedida. En su lugar, el usuario ve un panorama llamado maquina virtual creado por el sistema operativo.

Los sistemas de bases de datos han adquirido gran importancia. Nuestro mundo es una sociedad orientada hacia la información, y el trabajo de las bases de datos es hacer que esta información sea conveniente accesible de una manera controlada para aquellos que tienen derechos de acceso.

*Cabe resaltar que esta generación marca: el reemplazo de las memorias con núcleos magnéticos, por las de chips de silicio y la colocación de muchos más componentes en un chip: producto de la micro miniaturización de los circuitos electrónicos. El tamaño reducido del microprocesador y de chips hizo posible la creación de las computadoras personales (PC)

Hoy en día las tecnologías LSI (Integración a gran escala) y VLSI (integración a muy gran escala) permiten que cientos de miles de componentes electrónicos se almacenen en un chip.

QuintaQuintaQuintaQuinta Generación (Generación (Generación (Generación (1995199519951995----Presente)Presente)Presente)Presente)

"Inteligencia Artificial"

Se puede intentar prever cuales van hacer los efectos de las invenciones que están a punto de llegar al mercado y que novedades tecnológicas configuran la sociedad del futuro. Ello solo es licito, sino, además, muy interesante. Pero lo cierto es que ni siquiera los mejores especialistas en las diversas tecnologías pueden ofrecer a ciencia cierta una visión medianamente aproximada de lo que nos deparara el futuro.

El esquema recoge algunas de las funciones que lleva a cabo una computadora personal en el entorno domestico. Están apareciendo sistemas que integran todas las funciones de la computadora y las relacionan con las de aparatos como la televisión, la cadena de alta fidelidad, el video, etc.

Page 12: Sistemas computacionales

11

“CAPITULO I”“CAPITULO I”“CAPITULO I”“CAPITULO I”

QUE SON LOS SISTEMAS COMPUTACIONALES.QUE SON LOS SISTEMAS COMPUTACIONALES.QUE SON LOS SISTEMAS COMPUTACIONALES.QUE SON LOS SISTEMAS COMPUTACIONALES. Un sistema computacional esta formado por un grupo de sistemas operativos. Es un campo de acción profesional bastante amplio ya que el desarrollo y aplicación de los sistemas de procesamiento de información tiene aplicación en todas las áreas de la actividad humana. En base a lo anterior el profesional de esta especialidad puede integrarse al trabajo productivo en cualquier empresa del sector público o privado que requiera a sus servicios; desarrollando sistemas o mejorando los ya existentes. También puede elaborar en centros de investigación en programas de desarrollo tanto de software como de hardware manteniéndose actualizado en áreas de especialización para aprovechar los avances tecnológicos y dar respuesta oportuna y eficaz a los problemas existentes.

MODERNIZACION SISTEMAS COMPUTACIONALES.MODERNIZACION SISTEMAS COMPUTACIONALES.MODERNIZACION SISTEMAS COMPUTACIONALES.MODERNIZACION SISTEMAS COMPUTACIONALES.

La modernización del país ha propiciado la incorporación de computadoras en todos los ámbitos de la vida productiva de México, esto ha generado la necesidad de contar con profesionistas competentes en el análisis, diseño, construcción, operación y mantenimiento de sistemas a fin de resolver procesos en las áreas industriales, de desarrollo, administrativas, sociales y científicas, que se apoyan en las herramientas informáticas y en el procesamiento electrónico de la información. Considerando que actualmente las ciencias computacionales son un área del conocimiento en constante cambio y evolución, y aunado a la necesidad de modernización del país, esto ha propiciado en mayor medida la incorporación de las computadoras en todos los ámbitos de la vida productiva de México, lo cual ha generado la necesidad de contar con profesionales capaces de desarrollar, implementar y evaluar sistemas de información. En PRE esto genera una disciplina que analiza, diseña y controla sistemas que se utilizan para resolver y representar procesos en las áreas industriales, de desarrollo, administrativos, sociales y científicos, apoyadas en las herramientas computacionales y en el procesamiento electrónico de la información.

Page 13: Sistemas computacionales

12

PROGRAMA FUENTE.PROGRAMA FUENTE.PROGRAMA FUENTE.PROGRAMA FUENTE. Conjunto de instrucciones ordenadas en cierta forma lógica que permiten realizar una o varias funciones en forma automática por una computadora. Las instrucciones deben de cumplir con ciertas características especiales y únicas (sintaxis) a ese lenguaje de programación como el COBOL, Visual Basic o C. El programa fuente es un conjunto de líneas de código que conforman un bloque de texto que normalmente genera otro código mediante un compilador o intérprete para ser ejecutado por una computadora. Normalmente se refiere a la programación de software. Un único programador o un equipo de ellos escriben el código fuente en el lenguaje de programación elegido. Posteriormente en un proceso de compilación el código fuente se traduce en código objeto. A diferencia del código objeto, el código fuente es texto simple, capaz de ser leído por cualquier editor de textos y lo que es más importante, entendible por cualquier programador. En él están escritas las instrucciones que deberá realizar la computadora, según la sintaxis de un lenguaje de programación. Tener el código fuente es vital si se necesita modificar un programa. El término de código fuente también se usa para el código de otros lenguajes, como los de marcado de textos, como el HTML, que posteriormente son interpretados por un programa especializado, en este caso el navegador Web, para su lectura. Ejemplo de código fuente en C: #include <stdio.h> int main(void) { printf("Hola como estas\n"); printf(“Yo bien y tu\n”) return 0; }

PROGRAMA OBJETOPROGRAMA OBJETOPROGRAMA OBJETOPROGRAMA OBJETO.... Un programa a nivel de lenguaje máquina que resulta de la compilación de un programa fuente. Se llama programa objeto en programación al código resultante de la compilación del código fuente, por lo general está codificado en código de máquina y distribuido en varios archivos resultantes de la compilación de cada archivo de código fuente. Para obtener un archivo ejecutable se han de enlazar todos los archivos de código fuente con un programa llamado enlazador (linker).

Page 14: Sistemas computacionales

13

El generador de código objeto es el encargado de producir a partir del fichero en ensamblador generado por nuestro compilador un fichero objeto. Este fichero posteriormente se convertirá en ejecutable por mediación del linker. Para el almacenamiento de las variables, se usan dos palabras de memoria. La posición baja indica el valor, y la alta indica el tipo. De esa manera, conservamos información sobre los tipos en tiempo de ejecución.

QUE ES Y PARA QUE SIRVE UN COMPILADORQUE ES Y PARA QUE SIRVE UN COMPILADORQUE ES Y PARA QUE SIRVE UN COMPILADORQUE ES Y PARA QUE SIRVE UN COMPILADOR.... Los primeros compiladores se realizaron programándolos directamente en lenguaje máquina o en ensamblador. Una vez que se dispone de un compilador, se pueden escribir nuevas versiones del compilador (u otros compiladores distintos) en el lenguaje que compila ese compilador. Un compilador acepta programas escritos en un lenguaje de alto nivel y los traduce a otro lenguaje, generando un programa equivalente independiente, que puede ejecutarse tantas veces como se quiera. Este proceso de traducción se conoce como compilación. En un compilador hay que distinguir tres lenguajes diferentes tales como: el de los programas de partida (LA), el de los programas equivalentes traducidos (LB), el lenguaje en que está escrito el propio compilador (LC), que puede ser igual o diferente a LA. Aumenta la portabilidad del compilador si está escrito en el mismo lenguaje, es decir, se puede compilar a sí mismo. Los programas interpretados suelen ser más lentos que los compilados, pero los intérpretes son más flexibles como entornos de programación y depuración. Comparando su actuación con la de un ser humano, un compilador equivale a un traductor profesional que, a partir de un texto, prepara otro independiente traducido a otra lengua, mientras que un intérprete corresponde al intérprete humano, que traduce de viva voz las palabras que oye, sin dejar constancia por escrito.

Page 15: Sistemas computacionales

14

Fases de un compilador. Las tres primeras fases, que forman la mayor parte de la porción de análisis de un compilador se analizan en la sección IX. Otras dos actividades, la administración de la tabla se símbolos y el manejo de errores, se muestran en interacción con las seis fases de análisis léxico, análisis sintáctico, análisis semántico, generación de código intermedio, optimación de código y generación de código. De modo informal, también se llamarán "fases" al administrador de la tabla de símbolos y al manejador de errores. Administrador de la tabla de símbolos. Una función esencial de un compilador es registrar los identificadores utilizados en el programa fuente y reunir información sobre los distintos atributos de cada identificador. Estos atributos pueden proporcionar información sobre la memoria asignada a un identificador, su tipo, su ámbito (parte del programa donde tiene validez) y, en el caso de nombres de procedimientos, cosas como el número y tipos de sus argumentos, el método de pasar cada argumento y el tipo que devuelve, si los hay.

Page 16: Sistemas computacionales

15

Una tabla de símbolos es una estructura de datos que contiene un registro por cada identificador, con los campos para los atributos del identificador. La estructura de datos permite encontrar rápidamente el registro de cada identificador y almacenar o consultar rápidamente datos en un registro Cuando el analizador léxico detecta un identificador en el programa fuente, el identificador se introduce en la tabla de símbolos. Sin embargo, normalmente los atributos de un identificador no se pueden determinar durante el análisis léxico. El tipo real no se conoce cuando el analizador léxico encuentra posición, inicial y velocidad. Las fases restantes introducen información sobre los identificadores en la tabla de símbolos y después la utilizan de varias formas. Por ejemplo, cuando se está haciendo el análisis semántico y la generación de código intermedio, se necesita saber cuáles son los tipos de los identificadores, para poder comprobar si el programa fuente los usa de una forma válida y así poder generar las operaciones apropiadas con ellos. El generador de código, por lo general, introduce y utiliza información detallada sobre la memoria asignada a los identificadores. Detección e información de errores. Cada frase puede encontrar errores. Sin embargo, después de detectar un error. Cada fase debe tratar de alguna forma ese error, para poder continuar la compilación, permitiendo la detección de más errores en el programa fuente. Un compilador que se detiene cuando encuentra el primer error, no resulta tan útil como debiera. Las fases de análisis sintáctico y semántico por lo general manejan una gran proporción de los errores detectables por el compilador. La fase léxica puede detectar errores donde los caracteres restantes de la entrada no forman ningún componente léxico del lenguaje. Los errores donde la cadena de componentes léxicos violan las reglas de estructura (sintaxis) del lenguaje son determinados por la fase del análisis sintáctico. Durante el análisis semántico el compilador intenta detectar construcciones que tengan la estructura sintáctica correcta, pero que no tengan significado para la operación implicada, por ejemplo, si se intenta sumar dos identificadores. Uno de los cuales es el nombre de una matriz, y el otro, el nombre de un procedimiento. Las fases de análisis. Conforme avanza la traducción, la representación interna del programa fuente que tiene el compilador se modifica. Para ilustrar esas representaciones, considérese la traducción de la proposición.

Page 17: Sistemas computacionales

16

Representación de una proposición. La fase de análisis léxico lee los caracteres de un programa fuente y los agrupa en una cadena de componentes léxicos en los que cada componente representa una secuencia lógicamente coherente de caracteres, como un identificador, una palabra clave (if, while, etc), un carácter de puntuación, o un operador de varios caracteres, como :=. La secuencia de caracteres que forman un componente léxico se denomina lexema del componente. A ciertos componentes léxicos se les agregará un "valor léxico". Así, cuando se encuentra un identificador como velocidad, el analizador léxico no sólo genera un componente léxico, por ejemplo, id, sino que también introduce el lexema velocidad en la tabla de símbolos, si aún no estaba allí. El valor léxico asociado con esta aparición de id señala la entrada de la tabla de símbolos correspondiente a velocidad. Usaremos id1 , id2 e id3 para posición, inicial y velocidad, respectivamente, para enfatizar que la representación interna de un identificador es diferente de la secuencia de caracteres que forman el identificador. Por tanto, la representación de (1) después del análisis léxico queda sugerida por: id1 := id2 + id3 * 60 (2) Se deberían construir componentes para el operador de varios caracteres:= y el número 60, para reflejar su representación interna. En la sección IX ya se introdujeron las fases segunda y tercera: los análisis sintáctico y semántico. El análisis sintáctico impone una estructura jerárquica a la cadena de componentes léxicos, que se representará por medio de árboles sintácticos, como se muestra en la figura 5A). Una estructura de datos típica para el árbol se muestra en la figura 5B), en la que un nodo interior es un registro con un campo para el operador y dos campos que contienen apuntadores a los registros de los hijos izquierdo y derecho. Una hoja es un registro con dos o más campos, uno para identificar el componente léxico de la hoja, y los otros para registrar información sobre el componente léxico. Se puede tener información adicional sobre las construcciones del lenguaje añadiendo más campos a les registros de los nodos. Generación de código intermedio. Después de los análisis sintáctico y semántico, algunos compiladores generan una representación intermedia explícita del programa fuente. Se puede considerar esta representación intermedia como un programa para una máquina abstracta. Esta representación intermedia debe tener dos propiedades importantes; debe ser fácil de producir y fácil de traducir al programa objeto.

Page 18: Sistemas computacionales

17

La representación intermedia puede tener diversas formas. Existe una forma intermedia llamada "código de tres direcciones", que es como el lenguaje ensamblador para una máquina en la que cada posición de memoria puede actuar como un registro. El código de tres direcciones consiste en una secuencia de instrucciones, cada una de las cuales tiene como máximo tres operándoos. El programa fuente de (1) puede aparecer en código de tres direcciones como: temp1 := entarea1(60) temp2 := id3 * temp1 (2) temp3 := id2 + temp2 id1 := temp3 Esta representación intermedia tiene varias propiedades. Primera, cada instrucción de tres direcciones tiene a lo sumo un operador, además de la asignación. Por tanto, cuando se generan esas instrucciones el compilador tiene que decidir el orden en que deben efectuarse, las operaciones; la multiplicación precede a la adición al programa fuente de (1). Segunda, el compilador debe generar un nombre temporal para guardar los valores calculados por cada instrucción. Tercera, algunas instrucciones de "tres direcciones" tienen menos de tres operadores, por ejemplo la primera y la última instrucciones de (2).

Optimación de Código. La fase de optimación de código trata de mejorar el código intermedio de modo que resulte un código de máquina más rápido de ejecutar.

Page 19: Sistemas computacionales

18

Algunas optimaciones son triviales. Por ejemplo, un algoritmo natural genera el código intermedio (2) utilizando una instrucción para cada operador de la representación del árbol después del análisis semántico, aunque hay una forma mejor de realizar los mismos cálculos usando las dos instrucciones Temp1 := id3 * 60.0 (3) Id1 := id2 + temp1 Este sencillo algoritmo no tiene nada de malo, puesto que el problema se puede solucionar en la fase de optimación de código. Esto es, el compilador puede deducir que la conversión de 60 de entero a real se puede hacer de una vez por todas en el momento de la compilación, de modo que la operación entreal se puede eliminar. Además, temp3 se usa sólo una vez, para transmitir su valor a id1. Entonces resulta seguro sustituir a id1 por temp3, a partir de lo cual la última proposición de (2) no se necesita y se obtiene el código de (3). Hay muchas variaciones en la cantidad de optimación de código que ejecutan los distintos compiladores. En lo que hacen mucha optimación llamados "compiladores optimadores", una parte significativa del tiempo del compilador se ocupa en esta fase. Sin embargo hay optimaciones sencillas que mejoran significativamente del tiempo del compilador se ocupa en esta fase. Sin embargo, hay optimaciones sencillas que mejoran sensiblemente el tiempo de ejecución del programa objeto sin retardar demasiado la compilación. Partes de un compilador. Normalmente los compiladores están divididos en dos partes: Front End: es la parte que analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores de la tabla de símbolos. Esta parte suele ser independiente de la plataforma o sistema para el cual se vaya a compilar. Back End: es la parte que genera el código máquina, específico de una plataforma, a partir de los resultados de la fase de análisis, realizada por el Front End. Esta división permite que el mismo Back End se utilice para generar el código máquina de varios lenguajes de programación distintos y que el mismo Front End que sirve para analizar el código fuente de un lenguaje de programación concreto sirva para la generación de código máquina en varias plataformas distintas. El código que genera el Back End normalmente no se puede ejecutar directamente, sino que necesita ser enlazado por un programa enlazador (linker). Tipos de compiladores. Esta taxonomía de los tipos de compiladores no es excluyente, por lo que puede haber compiladores que se adscriban a varias categorías:

Page 20: Sistemas computacionales

19

Compiladores cruzados: generan código para un sistema distinto del que están funcionando. Compiladores optimizadores: realizan cambios en el código para mejorar su eficiencia, pero manteniendo la funcionalidad del programa original. Compiladores de una sola pasada: generan el código máquina a partir de una única lectura del código fuente. Compiladores de varias pasadas: necesitan leer el código fuente varias veces antes de poder producir el código máquina. Compiladores JIT (Just In Time): forman parte de un intérprete y compilan partes del código según se necesitan. Autocompilador: compilador que está escrito en el mismo lenguaje que va a compilar. Evidentemente, no se puede ejecutar la primera vez. Sirve para hacer ampliaciones al lenguaje, mejorar el código generado, etc. Metacompilador: es sinónimo de compilador de compiladores y se refiere a un programa que recibe como entrada las especificaciones del lenguaje para el que se desea obtener un compilador y genera como salida el compilador para ese lenguaje. El desarrollo de los metacompiladores se encuentra con la dificultad de unir la generación de código con la parte de análisis. Lo que sí se han desarrollado son generadores de analizadores léxicos y sintácticos. Actualmente existen herramientas que facilitan la tarea de escribir compiladores ó intérpretes informáticos. Estas herramientas permiten generar el esqueleto del analizador sintáctico a partir de una definición formal del lenguaje de partida, especificada normalmente mediante una gramática formal, barata dejando únicamente al programador del compilador la tarea de programar las acciones semánticas asociadas. Ventajas de compilador fuente a intérprete fuente: Se compila una vez, se ejecuta n veces. En bucles, la compilación genera código equivalente al bucle, pero interpretándolo se traduce tantas veces una línea como veces se repite el bucle. El compilador tiene una visión global del programa, por lo que la información de mensajes de error es más detallada. Ventajas del intérprete fuente al compilador fuente: Un intérprete necesita menos memoria que un compilador. En principio eran más abundantes dado que los ordenadores tenían poca memoria. Permiten una mayor interactividad con el código en tiempo de desarrollo.

Page 21: Sistemas computacionales

20

Funciones de un compilador. A grandes rasgos un compilador es un programa que lee un programa escrito es un lenguaje, el lenguaje fuente, y lo traduce a un programa equivalente en otro lenguaje, el lenguaje objeto. Como parte importante de este proceso de traducción, el compilador informa a su usuario de la presencia de errores en el programa fuente. A primera vista, la diversidad de compiladores puede parecer abrumadora. Hay miles de lenguajes fuente, desde los lenguajes de programación tradicionales, como FORTRAN o Pascal, hasta los lenguajes especializados que han surgido virtualmente en todas las áreas de aplicación de la informática. Los lenguajes objeto son igualmente variados; un lenguaje objeto puede ser otro lenguaje de programación o el lenguaje de máquina de cualquier computador entre un microprocesador y un supercomputador. A pesar de existir una aparente complejidad por la clasificación de los compiladores, como se vio en el tema anterior, las tareas básicas que debe realizar cualquier compilador son esencialmente las mismas. Al comprender tales tareas, se pueden construir compiladores para una gran diversidad de lenguajes fuente y máquinas objeto utilizando las mismas técnicas básicas. Nuestro conocimiento sobre cómo organizar y escribir compiladores ha aumentado mucho desde que comenzaron a aparecer los primeros compiladores a principios de los años cincuenta. En la década de 1950, se consideró a los compiladores como programas notablemente difíciles de escribir. El primer compilador de FORTRAN, por ejemplo, necesitó para su implantación de 18 años de trabajo en grupo (Backus y otros [1975]). Desde entonces, se han descubierto técnicas sistemáticas para manejar muchas de las importantes tareas que surgen en la compilación. También se han desarrollado buenos lenguajes de implantación, entornos de programación y herramientas de software. Con estos avances, puede hacerse un compilador real incluso como proyecto de estudio en un curso de un semestre sobre diseño sobre de compiladores. Partes en las que trabaja un compilador. Conceptualmente un compilador opera en fases. Cada una de las cuales transforma el programa fuente de una representación en otra. “Ejemplo de un Compilador.” El nuevo Visual C++ de Microsoft (versión 6) proporciona un entorno general, actualizado, a nivel de producción para el desarrollo de todas las aplicaciones para Windows 95/98 y Windows NT. La versión 6 de Visual C++ de Microsoft abarca tres configuraciones diferentes: Ediciones Básicas, Profesionales y para Desarrollo.

Page 22: Sistemas computacionales

21

“CAPITULO II”“CAPITULO II”“CAPITULO II”“CAPITULO II”

CARGADOR,CARGADOR,CARGADOR,CARGADOR, Muchos cargadores permiten al usuario especificar opciones que modificar el procesamiento estándar descrito. Muchos cargadores tienen un lenguaje especial de mandatos que se utiliza para especificar opciones. Algunas veces existe un archivo independiente de entrada al cargador que contiene esas proposiciones de control. En ocasiones esas mismas proposiciones también pueden estar intercaladas en el flujo primario de entrada entre los programas objeto. En ciertos sistemas el programador puede incluso introducir proposiciones de control del cargador en el programa fuente, y el ensamblador o el compilador retienen esos mandatos como parte del programa objeto. Una opción típica del cargador permite la selección de fuentes alternativas de entrada, por ejemplo el mandato INCLUDE, puede indicar al cargador que lea el programa objeto designado en una biblioteca y que lo trate como si fuera parte de la entrada primaria del cargador. Otros mandatos permiten al usuario eliminar símbolos externos o secciones de control completas. También es posible cambiar referencias externas dentro del programa que se está cargando y ligando. Por ejemplo, el mandato DELETE, puede indicar al cargador que elimine la sección de control nombrada del conjunto de programas que se está cargando. El mandato CHANGE puede hacer que el símbolo externo nombre1 se cambie a nombre2 siempre que aparezca en los programas objeto. Otra opción común para el cargador implica la inclusión automática de rutinas de biblioteca para satisfacer referencias externas. La mayoría de los cargadores permiten al usuario especificar bibliotecas alternativas para búsqueda, por medio de una proposición del tipo LIBRARY MILIB. Suele buscar en esas bibliotecas especificadas por el usuario antes que en las bibliotecas estándar del sistema. Esto permite al usuario utilizar versiones especiales de esas rutinas estándar. Los cargadores que realizan la búsqueda automática en bibliotecas para satisfacer referencias externas, a menudo permiten al usuario especificar que no se resuelvan de esa forma algunas referencias. Si se sabe que el análisis estadístico no se va a realizar en una ejecución determinada de este programa, el usuario puede incluir un mandato como NOCALL DEVSTD, PLOT, CORREL para indicar al cargador que no se resuelvan esas referencias externas, evitando así el trabajo extra de cargar y ligar rutinas innecesarias, con el consiguiente ahorro del espacio de memoria que se requeriría.

Page 23: Sistemas computacionales

22

También se puede especificar que no se resuelva ninguna referencia externa por búsqueda en biblioteca, aunque eso daría como resultado un error si el programa intenta hacer esa referencia externa durante la ejecución. Esta opción es más útil cuando se van a ligar programas, pero no se van a ejecutar de inmediato. En tales casos suele ser conveniente posponer la resolución de referencias externas. Los cargadores a menudo incluyen otras opciones. Una de las tales opciones es la posibilidad de especificar la localidad donde se inicia la ejecución. Otra es la posibilidad de controlar si el cargador debe intentar o no la ejecución del programa si se detectaran errores durante la carga. Opciones de diseño del cargador. Los cargadores ligadores realizan el ligado y la relocalización en el momento de la carga. Se analizan dos opciones: los editores de ligado, que realizan el ligado antes del momento de la carga, y el ligado dinámico, en el cual la función de ligado se realiza en el momento de la ejecución. Un editor de ligado realiza el ligado y algo de relocalización; sin embargo, el programa ligado se escribe en un archivo o biblioteca, en lugar de cargarse inmediatamente en la memoria. Este enfoque reduce las operaciones adicionales al ejecutar el programa. Lo único que se necesita en el momento de la carga es una forma muy simple de relocalización. El ligado dinámico, que utilizan los dispositivos del sistema operativo para cargar subprogramas en el momento en que se llaman por primera vez. Al retardar el proceso de ligado de esta forma, se puede lograr flexibilidad adicional. Sin embargo, este enfoque suele implicar más operaciones que el del cargador ligador. Los cargadores de arranque que se pueden utilizar para ejecutar programas autónomos, independientes del sistema operativo o del cargador del sistema. También se pueden utilizar para cargar el sistema operativo o el cargador mismo en la memoria. Cargadores de arranque. Con la máquina vacía e inactiva, no hay necesidad de hacer relocalización de programas, tan solo se puede especificar la dirección absoluta del programa que se cargue en primer lugar. En la mayoría de los casos, este programa es el sistema operativo, que ocupa un lugar predefinido en la memoria. Esto significa que se necesitan algunos medios para realizar las funciones de un cargador absoluto. Una opción es que el operador introduzca en la memoria el código objeto de un cargador absoluto, utilizando los interruptores en la consola del computador. Algunos computadores requerían que el operador hiciera exactamente eso. Sin embargo, este proceso es demasiado incómodo y propenso a errores para ser una buena solución del problema.

Page 24: Sistemas computacionales

23

Otra posibilidad es que el programa del cargador absoluto resida permanentemente en una memoria sólo de lectura (ROM). Cuando se produce una señal de hardware, la máquina empieza a ejecutar este programa de la ROM. En algunos computadores, el programa se ejecuta directamente en la ROM; en otros, el programa se copia de la ROM a la memoria principal y se ejecuta allí. Sin embargo, algunas máquinas no tienen ese almacenamiento sólo de lectura. Además, puede no ser conveniente cambiar un programa en ROM si es necesario hacer modificaciones en el cargador absoluto. Una solución inmediata es tener una función de hardware incorporada que lea un registro de longitud fija de algún dispositivo en una localidad fija de la memoria; el dispositivo que se utilice puede seleccionarse mediante interruptores de la consola. Una vez completa la operación de lectura, el control se pasa automáticamente a la dirección de la memoria donde se almacenó el registro. Este registro contiene instrucciones de máquina que cargan el programa absoluto que sigue. Si el proceso de carga requiere más instrucciones de las que pueden leerse en un solo registro, el primer registro causa la lectura de otros y estos, a su vez, pueden originar la lectura aún de mas registros; de ahí el término arranque. El primer registro suele denominarse cargador de arranque, y se coloca al inicio de todos los programas objeto que se van a cargar en un sistema vacío o inactivo. Esto incluye, por ejemplo, al propio sistema operativo y a todos los programas independientes que se ejecutan sin sistema operativo. Cargador de cyber. Los programas CYBER suelen contener mucho más valores relocalizables que los programas de VAX o del sistema /370. Una palabra de CYBER puede contener más de una instrucción, por lo que no es posible usar un solo bit de relocalización por palabra. A causa de que en CYBER sólo las instrucciones de 30 bits pueden contener direcciones de memoria, existen cinco posibles de valores relocalizables dentro de una palabra. 1. Sin relocalización. 2. Valor relocalizable sólo en la mitad superior de la palabra. 3. Valor relocalizable sólo en la mitad inferior de la palabra. 4. Valores relocalizables en las mitades superior e inferior de la palabra. 5. Valor relocalizable en la mitad de los 30 bits de la palabra. Cuando se usa la técnica de la máscara de bits, hay un campo de cuatro bits asociado a cada palabra de código objeto. Esos cuatro bits se utilizan para codificar las posibles antes listadas, y también para especificar si la dirección base del programa se suma o resta a cada valor relocalizable.

Page 25: Sistemas computacionales

24

El cargador de CYBER puede utilizar programas de superposiciones de un tipo más restringido que el descrito. Una estructura de superposiciones está limitada a un máximo de tres niveles. Cada segmento está identificado por un par ordenado de enteros, y un segmento solamente puede tener un punto de entrada. Cada segmento, excepto el raíz, debe cargarse por medio de una solicitud explicita; no existe la carga automática de segmentos. El programa de aplicación puede solicitar la carga de un segmento por medio de una llamada de servicio al sistema operativo. Como alternativa, en el segmento raíz puede haber un pequeño cargador residente para manejar el proceso de superposición. Hay también una opción más poderosa que las superposiciones: la segmentación. Un programa segmentado también usa una estructura de árbol; sin embargo, puede haber más de tres niveles, y cada segmento puede tener varios puntos de entrada.

RELACIÓN ENTRE LA INFORMÁTICA Y LOS SISTEMAS RELACIÓN ENTRE LA INFORMÁTICA Y LOS SISTEMAS RELACIÓN ENTRE LA INFORMÁTICA Y LOS SISTEMAS RELACIÓN ENTRE LA INFORMÁTICA Y LOS SISTEMAS

COMPUTACIONALES.COMPUTACIONALES.COMPUTACIONALES.COMPUTACIONALES.

Son dos términos que están estrechamente ligados ya que la informática es el área de estudio, y se podría decir que un sistema computacional es una rama de esta área, cabe destacar como ya se ha mencionado anterior mente que un sistema computacional esta formado por varios sistemas operativos y un sistema operativo esta formado por diferentes componentes como es el caso de programas fuentes, programas objetos, compiladores, cargadores, ligadores, etc. Aquí veremos una breve definición de informática: conjunto de conocimientos científicos y de técnicas que hacen posible el tratamiento automático de la información por medio de computadoras. La informática combina los aspectos teóricos y prácticos de la ingeniería, electrónica, teoría de la información, matemáticas, lógica y comportamiento humano. Los aspectos de la informática cubren desde la programación y la arquitectura informática hasta la inteligencia artificial y la robótica.

PROGRAMAS DE SUPERPOSICIONESPROGRAMAS DE SUPERPOSICIONESPROGRAMAS DE SUPERPOSICIONESPROGRAMAS DE SUPERPOSICIONES Muchos sistemas que manejan programas de superposición requieren que este proceso sea una estructura de árbol, los nodos de la estructura se denominan segmentos: el segmento raíz se carga cuando comienza la ejecución del programa, y permanece en la memoria hasta que termina el programa.

Page 26: Sistemas computacionales

25

Los otros segmentos se cargan a medida que se llaman. Puesto que los segmentos del mismo nivel sólo pueden ser llamados desde el nivel superior, no se pueden requerir al mismo tiempo, de modo que se pueden asignar a las mismas localidades de la memoria. Si se carga un segmento debido a una transferencia de control, se superpone a cualquier segmento del mismo nivel que puede estar en memoria. De esta forma, se puede ejecutar todo el programa en una cantidad total menor de memoria, que es la razón principal de utilizar estructuras de superposiciones. En el resto de esta sección se examina con más detalle del proceso de superposiciones por el cargador. El cargador puede asignar una dirección real o inicial a todos los segmentos del programa de superposiciones una vez que se dispone de la dirección inicial de carga, con lo que se conocen las direcciones para todos los símbolos externos. Esto significa que todas las operaciones de relocalización y ligado se pueden realizar de la forma usual, con una excepción: la transferencia de control del padre a un segmento debe admitir la posibilidad de que el segmento llamado no esté en la memoria. El segmento raíz puede cargarse directamente en la memoria; los otros segmentos se escriben en un archivo de trabajo especial ARCHSEG creado por el cargador. El proceso de superposiciones en si, esto es, la carga de un segmento cuando se le transfiere el control, se puede manejar de varias formas distintas.

QUE ES UN SISTEMA OPERATIVOQUE ES UN SISTEMA OPERATIVOQUE ES UN SISTEMA OPERATIVOQUE ES UN SISTEMA OPERATIVO....

Sistema operativo, software básico que controla una computadora. El sistema operativo tiene tres grandes funciones: coordina y manipula el hardware del ordenador o computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el mouse; organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnéticas, y gestiona los errores de hardware y la pérdida de datos. Cómo funciona un sistema operativo Los sistemas operativos controlan diferentes procesos de la computadora. Un proceso importante es la interpretación de los comandos que permiten al usuario comunicarse con el ordenador. Algunos intérpretes de instrucciones están basados en texto y exigen que las instrucciones sean tecleadas. Otros están basados en gráficos, y permiten al usuario comunicarse señalando y haciendo clic en un icono. Por lo general, los intérpretes basados en gráficos son más sencillos de utilizar.

Page 27: Sistemas computacionales

26

Los sistemas operativos pueden ser de tarea única o multitarea. Los sistemas operativos de tarea única, más primitivos, sólo pueden manejar un proceso en cada momento. Por ejemplo, cuando la computadora está imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión. Todos los sistemas operativos modernos son multitarea y pueden ejecutar varios procesos simultáneamente. En la mayoría de los ordenadores sólo hay una UCP; un sistema operativo multitarea crea la ilusión de que varios procesos se ejecutan simultáneamente en la UCP. El mecanismo que se emplea más a menudo para lograr esta ilusión es la multitarea por segmentación de tiempos, en la que cada proceso se ejecuta individualmente durante un periodo de tiempo determinado. Si el proceso no finaliza en el tiempo asignado, se suspende y se ejecuta otro proceso. Este intercambio de procesos se denomina conmutación de contexto. El sistema operativo se encarga de controlar el estado de los procesos suspendidos. También cuenta con un mecanismo llamado planificador que determina el siguiente proceso que debe ejecutarse. El planificador ejecuta los procesos basándose en su prioridad para minimizar el retraso percibido por el usuario. Los procesos parecen efectuarse simultáneamente por la alta velocidad del cambio de contexto. Los sistemas operativos pueden emplear memoria virtual para ejecutar procesos que exigen más memoria principal de la realmente disponible. Con esta técnica se emplea espacio en el disco duro para simular la memoria adicional necesaria. Sin embargo, el acceso al disco duro requiere más tiempo que el acceso a la memoria principal, por lo que el funcionamiento del ordenador resulta más lento. Sistemas operativos actuales Los sistemas operativos empleados normalmente son UNIX, Mac OS, MS-DOS, OS/2 y Windows-NT. 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. Otros sistemas operativos multiusuario y multitarea son OS/2, desarrollado inicialmente por Microsoft Corporation e International Business Machines Corporation (IBM), y Windows-NT, desarrollado por Microsoft. El sistema operativo multitarea de las computadoras Apple se denomina Mac OS. El DOS y su sucesor, el MS-DOS, son sistemas operativos populares entre los usuarios de computadoras personales. Sólo permiten un usuario y una tarea. Sistemas Operativos de Red Los sistemas operativos de red se definen como aquellos que tiene la capacidad de interactuar con sistemas operativos en otras computadoras por medio de un medio

Page 28: Sistemas computacionales

27

de transmisión con el objeto de intercambiar información, transferir archivos, ejecutar comandos remotos y un sin fin de otras actividades. El punto crucial de estos sistemas es que el usuario debe saber la sintaxis de un conjunto de comandos o llamadas al sistema para ejecutar estas operaciones, además de la ubicación de los recursos que desee acceder. Sistemas Operativos Distribuidos Los sistemas operativos distribuidos abarcan los servicios de los de red, logrando integrar recursos (impresoras, unidades de respaldo, memoria, procesos, unidades centrales de proceso) en una sola máquina virtual que el usuario accesa en forma transparente. Es decir, ahora el usuario ya no necesita saber la ubicación de los recursos, sino que los conoce por nombre y simplemente los usa como si todos ellos fuesen locales a su lugar de trabajo habitual. Todo lo anterior es el marco teórico de lo que se desearía tener como sistema operativo distribuido, pero en la realidad no se ha conseguido crear uno del todo, por la complejidad que suponen: distribuir los procesos en las varias unidades de procesamiento, reintegrar sub-resultados, resolver problemas de concurrencia y paralelismo, recuperarse de fallas de algunos recursos distribuidos y consolidar la protección y seguridad entre los diferentes componentes del sistema y los usuarios. Sistemas Operativos por su Estructura Se deben observar dos tipos de requisitos cuando se construye un sistema operativo, los cuales son: Requisitos de usuario: Sistema fácil de usar y de aprender, seguro, rápido y adecuado al uso al que se le quiere destinar. Requisitos del software: Donde se engloban aspectos como el mantenimiento, forma de operación, restricciones de uso, eficiencia, tolerancia frente a los errores y flexibilidad. A) Estructura monolítica. Es la estructura de los primeros sistemas operativos constituidos fundamentalmente por un solo programa compuesto de un conjunto de rutinas entrelazadas de tal forma que cada una puede llamar a cualquier otra Las características fundamentales de este tipo de estructura son:

1. Construcción del programa final a base de módulos compilados separadamente que se unen a través del ligador.

2. Buena definición de parámetros de enlace entre las distintas rutinas existentes, que puede provocar mucho acoplamiento.

3. Carecen de protecciones y privilegios al entrar a rutinas que manejan diferentes aspectos de los recursos de la computadora, como memoria, disco, etc.

Page 29: Sistemas computacionales

28

Generalmente están hechos a medida, por lo que son eficientes y rápidos en su ejecución y gestión, pero por lo mismo carecen de flexibilidad para soportar diferentes ambientes de trabajo o tipos de aplicaciones.

B) Estructura jerárquica. A medida que fueron creciendo las necesidades de los usuarios y se perfeccionaron los sistemas, se hizo necesaria una mayor organización del software, del sistema operativo, donde una parte del sistema contenía subpartes y esto organizado en forma de niveles. Se dividió el sistema operativo en pequeñas partes, de tal forma que cada una de ellas estuviera perfectamente definida y con un claro interfase con el resto de elementos.

C) Cliente-servidor (Microkernel) El tipo más reciente de sistemas operativos es el denominado Cliente-servidor, que puede ser ejecutado en la mayoría de las computadoras, ya sean grandes o pequeñas. Este sistema sirve para toda clase de aplicaciones por tanto, es de propósito general y cumple con las mismas actividades que los sistemas operativos convencionales. D) Máquina Virtual. Se trata de un tipo de sistemas operativos que presentan una interfase a cada proceso, mostrando una máquina que parece idéntica a la máquina real subyacente. Estos sistemas operativos separan dos conceptos que suelen estar unidos en el resto de sistemas: la multiprogramación y la máquina extendida.

Page 30: Sistemas computacionales

29

El objetivo de los sistemas operativos de máquina virtual es el de integrar distintos sistemas operativos dando la sensación de ser varias máquinas diferentes. El núcleo de estos sistemas operativos se denomina monitor virtual y tiene como misión llevar a cabo la multiprogramación, presentando a los niveles superiores tantas máquinas virtuales como se soliciten. Estas máquinas virtuales no son máquinas extendidas, sino una réplica de la máquina real, de manera que en cada una de ellas se pueda ejecutar un sistema operativo diferente, que será el que ofrezca la máquina extendida al usuario

Sistemas Operativos por Servicios Esta clasificación es la más comúnmente usada y conocida desde el punto de vista del usuario final. A) Monousuarios Los sistemas operativos monousuarios son aquéllos que soportan a un usuario a la vez, sin importar el número de procesadores que tenga la computadora o el número de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales típicamente se han clasificado en este renglón. B) Multiusuarios Los sistemas operativos multiusuarios son capaces de dar servicio a más de un usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas en una red de comunicaciones. No importa el número de procesadores en la máquina ni el número de procesos que cada usuario puede ejecutar simultáneamente. C) Monotareas Los sistemas monotarea son aquellos que sólo permiten una tarea a la vez por usuario. Puede darse el caso de un sistema multiusuario y monotarea, en el cual se admiten varios usuarios al mismo tiempo pero cada uno de ellos puede estar haciendo solo una tarea a la vez.

Page 31: Sistemas computacionales

30

D) Multitareas Un sistema operativo multitarea es aquél que le permite al usuario estar realizando varias labores al mismo tiempo. Por ejemplo, puede estar editando el código fuente de un programa durante su depuración mientras compila otro programa, a la vez que está recibiendo correo electrónico en un proceso en background. Es común encontrar en ellos interfaces gráficas orientadas al uso de menús y el ratón, lo cual permite un rápido intercambio entre las tareas para el usuario, mejorando su productividad. E) Uniproceso Un sistema operativo uniproceso es aquél que es capaz de manejar solamente un procesador de la computadora, de manera que si la computadora tuviese más de uno le sería inútil. El ejemplo más típico de este tipo de sistemas es el DOS y MacOS. F) Multiproceso Un sistema operativo multiproceso se refiere al número de procesadores del sistema, que es más de uno y éste es capaz de usarlos todos para distribuir su carga de trabajo. Generalmente estos sistemas trabajan de dos formas: simétrica o asimétricamente. Cuando se trabaja de manera asimétrica, el sistema operativo selecciona a uno de los procesadores el cual jugará el papel de procesador maestro y servirá como pivote para distribuir la carga a los demás procesadores, que reciben el nombre de esclavos. Cuando se trabaja de manera simétrica, los procesos o partes de ellos (threads) son enviados indistintamente a cualesquiera de los procesadores disponibles, teniendo, teóricamente, una mejor distribución y equilibrio en la carga de trabajo bajo este esquema.

SUPERORDENADORES.SUPERORDENADORES.SUPERORDENADORES.SUPERORDENADORES. Son computadoras con capacidades computacionales muy superiores a las comúnmente disponibles en la época en que fue construida. Hoy en día el diseño de Superordenadores se sustenta en 3 importantes tecnologías: * La de Registros Vectoriales, creada por Seymour Cray, considerado el padre de la Súper computación, quien inventó y patentó diversas tecnologías que condujeron a la creación de máquinas de computación ultra-rápidas. Esta tecnología permite la ejecución de innumeradas operaciones aritméticas en paralelo. * El sistema conocido como M.P.P. por las siglas de Massively Parallel Processors o Procesadores Masivamente Paralelos, que consiste en la utilización de cientos y a veces miles de microprocesadores estrechamente coordinados. * Clusters de ordenadores de uso general y relativo bajo costo, interconectados por redes locales de baja latencia y el gran ancho de banda.

Page 32: Sistemas computacionales

31

“CAPITULO “CAPITULO “CAPITULO “CAPITULO IIIIIIIIIIII”””” FUNCION DEL SISTEMA BINARIO DENTRO DE UNA FUNCION DEL SISTEMA BINARIO DENTRO DE UNA FUNCION DEL SISTEMA BINARIO DENTRO DE UNA FUNCION DEL SISTEMA BINARIO DENTRO DE UNA

COMPUTADORACOMPUTADORACOMPUTADORACOMPUTADORA.... Puesto que sólo se necesitan dos dígitos (o bits), el sistema binario se utiliza en los ordenadores o computadoras. Un número binario cualquiera se puede representar, por ejemplo, con las distintas posiciones de una serie de interruptores. La posición "encendido" corresponde al 1, y "apagado" al 0. Además de interruptores, también se pueden utilizar puntos imantados en una cinta magnética o disco: un punto imantado representa al dígito 1, y la ausencia de un punto imantado es el dígito 0. Los biestables (dispositivos electrónicos con sólo dos posibles valores de voltaje a la salida y que pueden saltar de un estado al otro mediante una señal externa) también se pueden utilizar para representar números binarios. Los circuitos lógicos realizan operaciones con números en base 2. La conversión de números decimales a binarios para hacer cálculos, y de números binarios a decimales para su presentación, se realizan electrónicamente. Internamente, la máquina computadora representa los valores numéricos mediante grupos de bits. agrupados en bytes. Por ejemplo, el número 3 se representa mediante un byte que tiene "activos" los bits primero y segundo (contando desde la derecha); 00000011. Esta sería la forma de representación del número 3 en un sistema numérico de base 2, también conocido como BINARIO. El sistema que utilizamos normalmente es un sistema DECIMAL o de base 10. En un sistema DECIMAL, contamos desde el 0 hasta el 9 antes de añadir un nuevo dígito. El número 22 en un sistema decimal significa que tenemos dos conjuntos de 10s y 2 conjuntos de 1s. La computadora está diseñada sobre la base de numeración binaria (base 2). Por eso este caso particular merece mención aparte. Siguiendo las reglas generales para cualquier base expuestas antes, tendremos que: Existen dos dígitos (0 o 1) en cada posición del número. Numerando de derecha a izquierda los dígitos de un número, empezando por cero, el valor decimal de la posición es 2n.

HARDWAREHARDWAREHARDWAREHARDWARE.... Hardware, equipo utilizado para el funcionamiento de una computadora. El hardware se refiere a los componentes materiales de un sistema informático. La función de estos componentes suele dividirse en tres categorías principales: entrada, salida y almacenamiento. Los componentes de esas categorías están conectados a

Page 33: Sistemas computacionales

32

través de un conjunto de cables o circuitos llamado bus con la unidad central de proceso (CPU) del ordenador, el microprocesador que controla la computadora y le proporciona capacidad de cálculo. El soporte lógico o software, en cambio, es el conjunto de instrucciones que un ordenador emplea para manipular datos: por ejemplo, un procesador de textos o un videojuego. Estos programas suelen almacenarse y transferirse a la CPU a través del hardware de la computadora. El software también rige la forma en que se utiliza el hardware, como por ejemplo la forma de recuperar información de un dispositivo de almacenamiento. La interacción entre el hardware de entrada y de salida es controlada por un software llamado BIOS (siglas en inglés de 'sistema básico de entrada/salida'). Aunque, técnicamente, los microprocesadores todavía se consideran hardware, partes de su función también están asociadas con el software. Este hecho de que los microprocesadores presenten tanto aspectos de hardware como de software, hace que a veces se les aplique el término intermedio de microprogramación, o firmware. Hardware de entrada. El hardware de entrada consta de dispositivos externos —esto es, componentes situados fuera de la CPU de la computadora— que proporcionan información e instrucciones. Un lápiz óptico es un puntero con un extremo fotosensible que se emplea para dibujar directamente sobre la pantalla, o para seleccionar información en la pantalla pulsando un botón en el lápiz óptico o presionando el lápiz contra la superficie de la pantalla. El lápiz contiene sensores ópticos que identifican la parte de la pantalla por la que se está pasando. Un mouse, o ratón, es un dispositivo apuntador diseñado para ser agarrado con una mano. Cuenta en su parte inferior con un dispositivo detector (generalmente una bola) que permite al usuario controlar el movimiento de un cursor en la pantalla deslizando el mouse por una superficie plana. Para seleccionar objetos o elegir instrucciones en la pantalla, el usuario pulsa un botón del mouse. Un joystick es un dispositivo formado por una palanca que se mueve en varias direcciones y dirige un cursor u otro objeto gráfico por la pantalla de la computadora. Un teclado es un dispositivo parecido a una máquina de escribir, que permite al usuario introducir textos e instrucciones. Algunos teclados tienen teclas de función especiales o dispositivos apuntadores integrados, como trackballs (bolas para mover el cursor) o zonas sensibles al tacto que permiten que los movimientos de los dedos del usuario dirijan un cursor en la pantalla. Un digitalizador óptico (o escáner óptico) emplea dispositivos fotosensibles para convertir imágenes (por ejemplo, una fotografía o un texto) en señales electrónicas que puedan ser manipuladas por la máquina. Por ejemplo, es posible digitalizar una

Page 34: Sistemas computacionales

33

fotografía, introducirla en una computadora e integrarla en un documento de texto creado en dicha computadora. Los dos digitalizadores más comunes son el digitalizador de campo plano (similar a una fotocopiadora de oficina) y el digitalizador manual, que se pasa manualmente sobre la imagen que se quiere procesar. Existen cámaras digitales que permiten tomar imágenes que pueden ser tratadas directamente por el ordenador. Un micrófono es un dispositivo para convertir sonidos en señales que puedan ser almacenadas, manipuladas y reproducidas por el ordenador. Un módulo de reconocimiento de voz es un dispositivo que convierte palabras habladas en información que el ordenador puede reconocer y procesar. Un módem es un dispositivo que conecta una computadora con una línea telefónica y permite intercambiar información con otro ordenador a través de dicha línea. Todos los ordenadores que envían o reciben información deben estar conectados a un módem. El módem del aparato emisor convierte la información enviada en una señal analógica que se transmite por las líneas telefónicas hasta el módem receptor, que a su vez convierte esta señal en información electrónica para el ordenador receptor.

Hardware de salida. El hardware de salida consta de dispositivos externos que transfieren información de la CPU de la computadora al usuario informático. La pantalla convierte la información generada por el ordenador en información visual. Las pantallas suelen adoptar una de las siguientes formas: un monitor de rayos catódicos o una pantalla de cristal líquido (LCD, siglas en inglés). En el monitor de rayos catódicos, semejante a un televisor, la información procedente de la CPU se representa empleando un haz de electrones que barre una superficie fosforescente que emite luz y genera imágenes. Las pantallas LCD son más planas y más pequeñas que los monitores de rayos catódicos, y se emplean frecuentemente en ordenadores portátiles. Las impresoras reciben textos e imágenes de la computadora y los imprimen en papel. Las impresoras matriciales emplean minúsculos alambres que golpean una cinta entintada formando caracteres. Las impresoras láser emplean haces de luz para trazar imágenes en un tambor que posteriormente recoge pequeñas partículas de un pigmento negro denominado tóner. El tóner se aplica sobre la hoja de papel

Page 35: Sistemas computacionales

34

para producir una imagen. Las impresoras de chorro de tinta lanzan gotitas de tinta sobre el papel para formar caracteres e imágenes.

Hardware de almacenamiento. El hardware de almacenamiento sirve para almacenar permanentemente información y programas que el ordenador deba recuperar en algún momento. Los dos tipos principales de dispositivos de almacenamiento son las unidades de disco y la memoria. Existen varios tipos de discos: duros, flexibles o disquetes, magneto-ópticos y compactos. Las unidades de disco duro almacenan información en partículas magnéticas integradas en un disco; estas unidades, que suelen ser una parte permanente de la computadora, pueden almacenar grandes cantidades de información y recuperarla muy rápidamente. Las unidades de disquete también almacenan información en partículas magnéticas integradas en discos intercambiables, que de hecho pueden ser flexibles o rígidos. Los disquetes almacenan menos información que un disco duro, y la recuperación de la misma es muchísimo más lenta. Las unidades de disco magneto-óptico almacenan la información en discos intercambiables, sensibles a la luz láser y a los campos magnéticos; pueden almacenar tanta información como un disco duro, pero la velocidad de recuperación de la misma es algo menor. Las unidades de disco compacto, o CD-ROM, almacenan información en las cavidades grabadas en la superficie de un disco de material reflectante. La información almacenada en un CD-ROM no puede borrarse ni sustituirse por otra. Los CD-ROM pueden almacenar aproximadamente la misma información que un disco duro, pero la velocidad de recuperación de información es menor. Hay unidades que permiten escribir discos compactos y, si el soporte lo permite, reescribir la información hasta más de 1.000 veces sobre el mismo disco; son las unidades CD-RW que además de leer y reescribir discos CD-RW, también pueden leer y escribir discos compactos CD-R y leer CD-ROM. En la actualidad también es frecuente encontrar en los ordenadores unidades DVD, que permiten leer, y algunas también escribir, unidades del mismo tamaño que los CD pero con una capacidad de almacenamiento muy superior. La memoria está formada por chips que almacenan información que la CPU necesita recuperar rápidamente. La memoria de acceso aleatorio (RAM, siglas en inglés) se emplea para almacenar la información e instrucciones que hacen

Page 36: Sistemas computacionales

35

funcionar los programas de la computadora. Generalmente, los programas se transfieren desde una unidad de disco a la RAM. Esta memoria también se conoce como memoria volátil porque la información contenida en los chips de memoria se pierde cuando se desconecta el ordenador. La memoria de sólo lectura contiene información y software cruciales que deben estar permanentemente disponibles para el funcionamiento de la computadora, por ejemplo el sistema operativo, que dirige las acciones de la máquina desde el arranque hasta la desconexión. La ROM se denomina memoria no volátil porque los chips de memoria ROM no pierden su información cuando se desconecta el ordenador. Algunos dispositivos se utilizan para varios fines diferentes. Por ejemplo, los disquetes también pueden emplearse como dispositivos de entrada si contienen información que el usuario informático desea utilizar y procesar. También se pueden utilizar como dispositivos de salida si el usuario quiere almacenar en ellos los resultados de su computadora. Conexiones del hardware. Para funcionar, el hardware necesita unas conexiones materiales que permitan a los componentes comunicarse entre sí e interaccionar. Un bus constituye un sistema común interconectado, compuesto por un grupo de cables o circuitos que coordina y transporta información entre las partes internas de la computadora. El bus de una computadora consta de dos canales: uno que la CPU emplea para localizar datos, llamado bus de direcciones, y otro que se utiliza para enviar datos a una dirección determinada, llamado bus de datos. Un bus se caracteriza por dos propiedades: la cantidad de información que puede manipular simultáneamente la llamada “anchura de bus” y la rapidez con que puede transferir dichos datos. Una conexión en serie es un cable o grupo de cables utilizado para transferir información entre la CPU y un dispositivo externo como un mouse, un teclado, un módem, un digitalizador y algunos tipos de impresora. Este tipo de conexión sólo transfiere un dato de cada vez, por lo que resulta lento. La ventaja de una conexión en serie es que resulta eficaz a distancias largas. Una conexión en paralelo utiliza varios grupos de cables para transferir simultáneamente más de un bloque de información. La mayoría de los digitalizadores e impresoras emplean este tipo de conexión. Las conexiones en paralelo son mucho más rápidas que las conexiones en serie, pero están limitadas a distancias menores de 3 m entre la CPU y el dispositivo externo.

Page 37: Sistemas computacionales

36

SOFTWARE.SOFTWARE.SOFTWARE.SOFTWARE. Programas de computadoras. Son las instrucciones responsables de que el hardware (la máquina) realice su tarea. Como concepto general, el software puede dividirse en varias categorías basadas en el tipo de trabajo realizado. Las dos categorías primarias de software son los sistemas operativos, que controlan los trabajos del ordenador o computadora, y el software de aplicación, que dirige las distintas tareas para las que se utilizan las computadoras. Por lo tanto, el software del sistema procesa tareas tan esenciales, aunque a menudo invisibles, como el mantenimiento de los archivos del disco y la administración de la pantalla, mientras que el software de aplicación lleva a cabo tareas de tratamiento de textos, gestión de bases de datos y similares. Constituyen dos categorías separadas el software de red, que permite comunicarse a grupos de usuarios, y el software de lenguaje utilizado para escribir programas. Además de estas categorías basadas en tareas, varios tipos de software se describen basándose en su método de distribución. Entre estos se encuentran los así llamados programas enlatados, el software desarrollado por compañías y vendido principalmente por distribuidores, el freeware y software de dominio público, que se ofrece sin costo alguno, el shareware, que es similar al freeware, pero suele conllevar una pequeña tasa a pagar por los usuarios que lo utilicen profesionalmente y, por último, el infame vapourware, que es software que no llega a presentarse o que aparece mucho después de lo prometido. Existe una tendencia a identificar el proceso de creación de un programa informático con la programación, que es cierta cuando se trata de programas pequeños para uso personal, y que dista de la realidad cuando se trata de grandes proyectos. El proceso de creación de software desde el punto de vista de la Ingeniería tiene los siguientes pasos: 1. Reconocer la necesidad de un programa para solucionar un problema ó identificar la posibilidad de automatización de una tarea. 2. Recoger los requisitos del programa. Debe quedar claro qué es lo que debe hacer el programa y para qué se necesita. 3. Realizar el análisis de los requisitos del programa. Debe quedar claro cómo debe realizar el programa las cosas que debe hacer. Las pruebas que comprueben la validez del programa se pueden especificar en esta fase. 4. Diseñar la arquitectura del programa. Se debe descomponer el programa en partes de complejidad abordable.

Page 38: Sistemas computacionales

37

5. Implementar el programa. Consiste en realizar un diseño detallado, especificando completamente todo el funcionamiento del programa, tras lo cual la codificación debería resultar inmediata. 6. Implantar (instalar) el programa. Consiste en poner el programa en funcionamiento junto con los componentes que pueda necesitar (bases de datos, redes de comunicaciones, etc.) La Ingeniería del Software se centra en los pasos de planificación y diseño del programa, mientras que antiguamente (programación artesanal) la realización de un programa consistía únicamente en escribir el código.

SISTEMAS DIGITALESSISTEMAS DIGITALESSISTEMAS DIGITALESSISTEMAS DIGITALES....

En la actualidad, para actuar en el campo de estudio, donde se utilizan computadoras, se debe comprender la función de las interfaces con dispositivos externos y programar en lenguaje ensamblador. Los microprocesadores Intel han logrado amplia aceptación en muchas áreas de la electrónica, comunicaciones, sistemas de control y en particular en los sistemas de computadoras de mesa. La comprensión básica de la familia Intel en todos los aspectos de programación e interfaces, permite comparar lo relativo a versiones más avanzadas de microprocesadores que incluyen al 386, 486 y aún Pentium. Dado que estos chips son compatibles, los programas de software escrito para el 8086, pueden correr sin cambios en los descendientes de la familia Intel Partimos del hecho que este curso es la introducción al mundo de los microprocesadores, por lo que se hará uso del hardware ya disponible alambrado, con los dispositivos adecuados para su funcionamiento, que implica una PC basada en procesadores de Intel. El alumno tiene como antecedente de conocimientos Lógicos I y Lógicos II, por lo que se enfocarán los esfuerzos al microprocesador 8086. para el manejo de hardware externo, controlado por el puerto paralelo o por el puerto serie. Conocer como adquirir datos de convertidores A/D, procesar la información y controlar actuadores tanto analógicos como digitales. Aunque este tipo de memoria comparte muchas características con las EPROM y EEPROM, hay una diferencia fundamental en la generación actual de memorias Flash, es que las operaciones de borrado se efectúan en bloques. Todos estos tipos de memoria se han de borrar antes de rescribir en ellas, cuando se borra una EPROM mediante luz ultravioleta, se elimina su contenido de forma completa, mientras que en las flash se puede borrar todo el "chip", o por bloques como se ha indicado. Los bloques varían en tamaño, desde 4 kO a 128 kO. Sin embargo por motivos de seguridad hay un bloque, usualmente de 16 kO, que contiene el

Page 39: Sistemas computacionales

38

"firmware" y que está protegido contra borrado, puesto que la patilla de reinicio ("reset") se debe de poner a un voltaje muy alto, 12 Voltios. Las operaciones de escritura y lectura no son en bloques, sino al nivel de bit u octeto. Borrado y escritura automáticos. Un hecho importante de la generación actual de memorias flash, es que incorporan una "máquina de estados" que automatiza los proceso de escritura y borrado. Las de primera generación requerían algoritmos muy complejos por parte del programador. Durante la escritura la "máquina de estados" controla el tiempo de los pulsos, el número de pulsos y los voltajes aplicados, verificando seguidamente que los datos se han escrito correctamente. Cuando se ejecuta un borrado, la "máquina de estados" lo primero que hace es escribir las localizaciones que se van a procesar a cero, para que cada celdilla contenga carga uniforme. Entonces la "máquina de estados" emite los pulsos de borrado y verifica el proceso. En cualquier momento, ya sea de lectura o escritura se puede leer el registro de estado para hacer un seguimiento del proceso. Estructura de las celdillas flash. La mayoría de los dispositivos flash comparten la misma estructura que las EPROM. Ambos son transistores de poli silicio del tipo efecto campo (FET) CMOS puerta-flotante. La primera capa está aislada de la puerta de control por una capa dieléctrica (que no conduce la electricidad), y aislada del sustrato por una capa muy fina de óxido. Este aislamiento permite que se almacene carga eléctrica en la puerta flotante. La segunda capa está conectada a la línea de palabras y funciona como la puerta de control. Las flash, a diferencia de las EPROM, tienen la capa de óxido que se ha indicado, con un espesor de tan solo 100 ángstrom, que permite el efecto túnel Fowler-Nordheim, de los electrones de la puerta flotante durante el proceso de borrado. Durante el proceso de escritura, se efectúa una inyección de electrones para colocar cargas eléctricas en la puerta flotante. En la puerta de control se envía un voltaje alto, 12 V, que fuerza la aparición de una región de inversión en el sustrato que es de tipo p. El voltaje de drenado se incrementa a aproximadamente la mitad del de la puerta de control (a unos 6 V) mientras que el de la fuente es puesto a tierra (0 V), incrementándose la diferencia de voltaje entre colector y fuente. Con la región de inversión que se ha formado se incrementa la corriente entre el colector y la base. El elevado flujo de electrones de la base al colector, incrementa la energía cinética de los electrones, lo cual les permite alcanzar energía suficiente para sobrepasar la barrera de óxido y acceder a la puerta flotante. Una vez que se ha completado el proceso de escritura, la carga negativa sobre la puerta flotante eleva el umbral de voltaje por encima del voltaje lógico 1 de la puerta de control. Cuando una celdilla escrita (wordline) se lleva a un 1 lógico

Page 40: Sistemas computacionales

39

durante la lectura la celdilla no revierte al estado ON. El dispositivo amplificador detecta y amplifica la corriente de la celda y emite un 0 para una celda escrita. En el proceso de borrado se usa el efecto túnel para eliminar cargas de la puerta flotante (que es el elemento donde se almacena la información) y llevarla al estado de borrado. El emisor se lleva a 12 V, la puerta de control se lleva a tierra (0V) y el colector se desconecta. La gran cantidad de voltaje positivo en el emisor, en comparación con la puerta flotante, atrae a los electrones, que tiene carga negativa, de la puerta flotante a la base a través de la estrecha capa de óxido. Como el drenaje no está conectado el proceso de borrado esta operación requiere mucha menos corriente por celdilla que una de escritura que usa inyección de electrones. Una vez que se ha completado el proceso de borrado, la pérdida de carga en la puerta flotante baja el voltaje umbral (Vt) por debajo del valor 1 del de la puerta de control

CODIGO ABIERTOCODIGO ABIERTOCODIGO ABIERTOCODIGO ABIERTO.... Es el término por el que se conoce al software distribuido y desarrollado en una determinada forma. Este término empezó a distribuido y desarrollado en una determinada forma. Este término empezó a utilizarse en 1998 por algunos usuarios de la comunidad del software libre, tratando de usarlo como reemplazo al ambiguo nombre original, en inglés, del software libre. "Free software" puede significar diferentes cosas .Por un lado, permite pensar en "software por el que no hay que pagar", y se adapta al término de forma igualmente válida que el significado que se pretende. El término no resultó apropiado como reemplazo para el ya tradicional free software, pues eliminaba la idea de libertad (incluso hay quien usa --en inglés-- el término Libre Software para evitar la ambigüedad de free). En la actualidad open source es utilizado para definir un movimiento nuevo de software (la Open Source Initiative), diferente al movimiento del Software Libre, aunque no completamente incompatible con este, de modo que es posible (como de hecho ocurre) que ambos movimientos trabajen juntos en el desarrollo práctico de proyectos. El significado obvio del término "código abierto" es "se puede mirar el código fuente", lo cual es un criterio más débil y flexible que el del software libre; un programa de código abierto puede ser software libre, pero también puede serlo un programa semilibre o incluso uno completamente no libre. El software de código abierto (OSS por sus siglas en inglés) es software para el que su código fuente está disponible públicamente, aunque los términos de

Page 41: Sistemas computacionales

40

licenciamiento específicos varían respecto a lo que se puede hacer con ese código fuente. Función del Código Abierto en sistemas operativos y navegadores. Linux, sistema operativo derivado de UNIX que, manteniendo la generalidad de sus características, como el ser multitarea y basado en bibliotecas dinámicas, puede ser ejecutado en ordenadores o computadoras personales aunque su potencia sea limitada. En sus orígenes fue desarrollado, en 1990, por el informático finlandés Linus Torvalds, que publicó su código como un denominado código abierto, esto es, accesible para toda la comunidad, sin restricciones para modificarlo y ampliarlo. Este planteamiento, favorecido por su estructura modular, generó una nueva visión de desarrollo informático, ya que su expansión fue debida a la aportación, generalmente voluntaria y sin ánimo de lucro, de multitud de desarrolladores independientes. En la actualidad este sistema operativo ha obtenido un cierto apoyo por parte de la industria, de forma que empresas como IBM o Hewlett-Packard lo integran en algunos de sus ordenadores y prestan el soporte técnico correspondiente, normalmente como parte de los sistemas servidores. Su implantación en sistemas para usuarios finales, aún no ha alcanzado la extensión que tiene en algunos de los ámbitos más profesionales, muy especialmente en servidores de Internet. Netscape Communications Corporation, empresa de informática con sede en Mountain View (California, Estados Unidos). Produce software que facilita el intercambio de información a través de Internet y otras redes informáticas. El producto más conocido de la compañía es un explorador de Internet denominado Navigator, que permite navegar por la World Wide Web gracias a una interfaz gráfica de usuario. Netscape también se ha introducido en el software de servidores de Internet, con su producto Netscape Enterprise Server, que se ejecuta bajo Windows y Sun Solaris. Además, ha sido uno de los promotores más importantes de la inclusión de guiones interactivos, mediante el lenguaje JavaScript en las páginas Web con formato HTML, actualmente aceptado como un estándar por parte de toda la industria (formalmente denominado ECMA-262 o ECMAScript Language Specification, de la agencia European Computer Manufacturers Association). Ya tras la fusión de AOL con Time Warner, en 2001, la empresa matriz pasó a denominarse AOL Time Warner. La subsidiaria Netscape ha seguido su política de

Page 42: Sistemas computacionales

41

ceder el código fuente de sus productos como de libre utilización (código abierto), con el denominado proyecto Gecko.

“CAPITULO “CAPITULO “CAPITULO “CAPITULO IVIVIVIV””””

REDES DE ORDENADORESREDES DE ORDENADORESREDES DE ORDENADORESREDES DE ORDENADORES.... Definir el concepto de redes implica diferenciar entre el concepto de redes físicas y redes de comunicación. Respecto a la estructura física, los modos de conexión física, los flujos de datos, etc.; podemos decir que una red la constituyen dos o más ordenadores que comparten determinados recursos, sea hardware (impresoras, sistemas de almacenamiento, ...) sea software (aplicaciones, archivos, datos...). Desde una perspectiva más comunicativa y que expresa mejor lo que puede hacerse con las redes en la educación, podemos decir que existe una red cuando están involucrados un componente humano que comunica, un componente tecnológico (ordenadores, televisión, telecomunicaciones) y un componente administrativo (institución o instituciones que mantienen los servicios). Una red, más que varios ordenadores conectados, la constituyen varias personas que solicitan, proporcionan e intercambian experiencias e informaciones a través de sistemas de comunicación. Atendiendo al ámbito que abarcan, tradicionalmente se habla de: * Redes de Área Local (conocidas como LAN) que conectan varias estaciones dentro de la misma institución, * Redes de Área Metropolitana (MAN), * Área extensa (WAN), Por su soporte físico: * Redes de fibra óptica, * Red de servicios integrados (RDSI), Si nos referimos a las redes de comunicación podemos hablar de Internet, BITNET, USENET FIDONET o de otras grandes redes. Pero, en el fondo, lo que verdaderamente nos debe interesar como educadores es el flujo y el tipo de información que en estas redes circula. Es decir, que las redes deben ser lo más transparentes posibles, de tal forma que el usuario final no requiera tener conocimiento de la tecnología (equipos y programas) utilizada para la comunicación (o no debiera, al menos). Las distintas configuraciones tecnológicas y la diversidad de necesidades planteadas por los usuarios, lleva a las organizaciones a presentar cierta versatilidad en el acceso a la documentación, mediante una combinación de comunicación sincrónica y asincrónica.

Page 43: Sistemas computacionales

42

La comunicación sincrónica o comunicación a tiempo real contribuiría a motivar la comunicación, a simular las situaciones cara a cara, mientras que la comunicación asincrónica o retardada ofrece la posibilidad de participar e intercambiar información desde cualquier sitio y en cualquier momento, permitiendo a cada participante trabajar a su propio ritmo y tomarse el tiempo necesario para leer, reflexionar, escribir y revisar antes de compartir la información. Ambos tipos de comunicación son esenciales en cualquier sistema de formación apoyado en redes. Se trataría, por lo tanto, de configurar servicios educativos o, mejor, redes de aprendizaje apoyado en: * Videoconferencia que posibilitaría la asistencia remota a sesiones de clase presencial, a actividades específicas para alumnos a distancia, o a desarrollar trabajo colaborativo en el marco de la presencia continuada. * Conferencias electrónicas, que basadas en el ordenador posibilitan la comunicación escrita sincrónica, complementando y/o extendiendo las posibilidades de la intercomunicación a distancia. * Correo electrónico, listas de discusión,... que suponen poderosas herramientas para facilitar la comunicación asincrónica mediante ordenadores. * Apoyo hipermedia (Web) que servirá de banco de recursos de aprendizaje donde el alumno pueda encontrar los materiales además de orientación y apoyo. * Otras aplicaciones de Internet tanto de recuperación de ficheros (Gopher, FTP,...) como de acceso remoto (telnet). Ello implica, junto a la asistencia virtual a sesiones en la institución sean específicas o no mediante la videoconferencia y la posibilidad de presencia continuada, facilitar la transferencia de archivos (materiales básicos de aprendizaje, materiales complementarios, la consulta a materiales de referencia) entre la sede (o sedes, reales o virtuales) y los usuarios. Aunque el sistema de transferencia es variado dependiendo de múltiples factores (tipo de documento, disponibilidad tecnológica del usuario,...), está experimentando una utilización creciente la transferencia directamente a pantalla de materiales multimedia interactivos a distancia como un sistema de enseñanza a distancia a través de redes. Pero, también, utilizando otros sistemas de transferencia puede accederse a una variada gama de materiales de aprendizaje. Se trata, en todo caso, de un proceso en dos fases: primero recuperación y después presentación.

TIPOS DE REDESTIPOS DE REDESTIPOS DE REDESTIPOS DE REDES....

Page 44: Sistemas computacionales

43

Conjunto de técnicas, conexiones físicas y programas informáticos empleados para conectar dos o más ordenadores o computadoras. Los usuarios de una red pueden compartir ficheros, impresoras y otros recursos, enviar mensajes electrónicos y ejecutar programas en otros ordenadores.

Una red tiene tres niveles de componentes: software de aplicaciones, software de red y hardware de red. El software de aplicaciones está formado por programas informáticos que se comunican con los usuarios de la red y permiten compartir información “como archivos de bases de datos, de documentos, gráficos o vídeos” y recursos “como impresoras o unidades de disco”. Un tipo de software de aplicaciones se denomina cliente-servidor. Las computadoras cliente envían peticiones de información o de uso de recursos a otras computadoras, llamadas servidores, que controlan el flujo de datos y la ejecución de las aplicaciones a través de la red. Otro tipo de software de aplicación se conoce como “de igual a igual” (peer to peer). En una red de este tipo, los ordenadores se envían entre sí mensajes y peticiones directamente sin utilizar un servidor como intermediario. Estas redes son más restringidas en sus capacidades de seguridad, auditoria y control, y normalmente se utilizan en ámbitos de trabajo con pocos ordenadores y en los que no se precisa un control tan estricto del uso de aplicaciones y privilegios para el acceso y modificación de datos; se utilizan, un ejemplo, en redes domésticas o en grupos de trabajo dentro de una red corporativa más amplia. El software de red consiste en programas informáticos que establecen protocolos, o normas, para que las computadoras se comuniquen entre sí. Estos protocolos se aplican enviando y recibiendo grupos de datos formateados denominados paquetes. Los protocolos indican cómo efectuar conexiones lógicas entre las aplicaciones de la red, dirigir el movimiento de paquetes a través de la red física y minimizar las posibilidades de colisión entre paquetes enviados simultáneamente. El hardware de red está formado por los componentes materiales que unen las computadoras. Dos componentes importantes son los medios de transmisión que transportan las señales de los ordenadores (típicamente cables estándar o de fibra

Page 45: Sistemas computacionales

44

óptica, aunque también hay redes sin cables que realizan la transmisión por infrarrojos o por radiofrecuencias) y el adaptador de red, que permite acceder al medio material que conecta a los ordenadores, recibir paquetes desde el software de red y transmitir instrucciones y peticiones a otras computadoras. La información se transfiere en forma de dígitos binarios, o bits (1 y 0), que pueden ser procesados por los circuitos electrónicos de los ordenadores. Conexiones de red. Una red tiene dos tipos de conexiones: conexiones físicas que permiten a los ordenadores transmitir y recibir señales directamente y conexiones lógicas, o virtuales, que permiten intercambiar información a las aplicaciones informáticas, por ejemplo a un procesador de textos. Las conexiones físicas están definidas por el medio empleado para transmitir la señal, por la disposición geométrica de los ordenadores (topología) y por el método usado para compartir información. Las conexiones lógicas son creadas por los protocolos de red y permiten compartir datos a través de la red entre aplicaciones correspondientes a ordenadores de distinto tipo, como un Apple Macintosh y un PC de IBM. Algunas conexiones lógicas emplean software de tipo cliente-servidor y están destinadas principalmente a compartir archivos e impresoras. El conjunto de protocolos TCP/IP, desarrollado originalmente por el Departamento de Defensa estadounidense, es el conjunto de conexiones lógicas empleado por Internet, la red de redes planetaria. El TCP/IP, basado en software de aplicación de igual a igual, crea una conexión entre dos computadoras cualesquiera. Actualmente el TCP/IP tiene una muy amplia implantación, incluso en el caso de redes corporativas cliente/servidor, sustituyendo en muchas ocasiones a protocolos tradicionales como el NetBIOS para Windows. Medios de transmisión. El medio empleado para transmitir información limita la velocidad de la red, la distancia eficaz entre ordenadores y la topología de la red. Los cables de cobre de dos hilos o los cables coaxiales proporcionan velocidades de transmisión de algunos miles de bps (bits por segundo) a largas distancias y de unos 100 Mbps (millones de bits por segundo) a corta distancia. Las fibras ópticas permiten velocidades de entre 100 y 1.000 Mbps a largas distancias. Por lo que se refiere a las redes inalámbricas, se puede lograr transferir datos a una velocidad de 720 Kbps en un rango de distancias entre 10 y 100 metros. Topología. Las topologías más corrientes para organizar las computadoras de una red son las de punto a punto, de bus, en estrella y en anillo. La topología de punto a punto es la más sencilla, y está formada por dos ordenadores conectados entre sí. La

Page 46: Sistemas computacionales

45

topología de bus consta de una única conexión a la que están unidos varios ordenadores. Todas las computadoras unidas a esta conexión única reciben todas las señales transmitidas por cualquier computadora conectada. La topología en estrella conecta varios ordenadores con un elemento dispositivo central llamado hub. El hub puede ser pasivo y transmitir cualquier entrada recibida a todos los ordenadores —de forma semejante a la topología de bus— o ser activo, en cuyo caso envía selectivamente las entradas a ordenadores de destino determinados. La topología en anillo utiliza conexiones múltiples para formar un círculo de computadoras. Cada conexión transporta información en un único sentido. La información avanza por el anillo de forma secuencial desde su origen hasta su destino. Las redes de área local (LAN, siglas en inglés), que conectan ordenadores separados por distancias reducidas, por ejemplo en una oficina o un campus universitario, suelen usar topologías de bus, en estrella o en anillo. Las redes de área amplia (WAN, siglas en inglés), que conectan equipos distantes situados en puntos alejados de un mismo país o en países diferentes, emplean a menudo líneas telefónicas especiales arrendadas como conexiones de punto a punto. Compartir información. Cuando los ordenadores comparten conexiones físicas para transmitir paquetes de información, se emplea un conjunto de protocolos MAC (siglas en inglés de 'control de acceso al medio') para que la información fluya sin problemas a través de la red. Un protocolo MAC eficiente garantiza que el medio de transmisión no esté sin utilizar si alguna computadora tiene información que transmitir. También evita colisiones debidas a la transmisión simultánea, que desperdiciarían capacidad de transmisión. Los protocolos MAC también permiten que los distintos ordenadores accedan al medio de forma equitativa. Un tipo de protocolo MAC es el Ethernet, empleado en topologías de bus o en estrella. Un ordenador conectado al Ethernet comprueba antes de nada si el medio compartido está siendo utilizado. Si no es así, el ordenador transmite la información. Como el ordenador puede comprobar si el medio está en uso a la vez que envía paquetes, continúa vigilando la conexión compartida y deja de transmitir información si ocurre una colisión. Ethernet puede transmitir información a una velocidad de 100 Mbps. Las computadoras también pueden utilizar protocolos MAC del tipo Token Ring, que transmiten un mensaje especial a través de la red. Esta contraseña da permiso a la computadora que lo recibe para que envíe un paquete de información por la red. En caso de que no tenga ningún paquete que enviar, pasa la contraseña al

Page 47: Sistemas computacionales

46

siguiente ordenador. Como sólo hay una contraseña en toda la red, en cada momento no hay más que una computadora que pueda transmitir información. Funcionamiento y gestión de las redes. La gestión de la red y la administración del sistema son cruciales para que un sistema complejo de ordenadores y recursos interconectados pueda funcionar. El gestor de una red es la persona o el equipo responsable de configurar la red para que opere de forma eficiente. Por ejemplo, el gestor de la red puede tener que conectar directamente ordenadores que se comunican con frecuencia para reducir la interferencia con otros ordenadores. El administrador del sistema es la persona o el equipo responsable de configurar las computadoras y su software para emplear la red. Por ejemplo, el administrador del sistema puede instalar software de red y configurar el sistema de archivos de un servidor para que las computadoras clientes puedan acceder a los ficheros compartidos. Las redes pueden ser objeto de acceso ilegal, por lo que los archivos y recursos deben protegerse. Un intruso que se introdujera en la red podría espiar los paquetes enviados por la red o enviar mensajes ficticios. En el caso de información sensible, el cifrado de los datos (la codificación de la información mediante ecuaciones matemáticas) hace que un intruso no pueda leer los paquetes que lleguen a su poder. La mayoría de los servidores también emplean sistemas de autentificación para garantizar que una petición de leer o modificar un fichero o de utilizar recursos procede de un cliente legítimo y no de un intruso

PROTOCOLO DE REDPROTOCOLO DE REDPROTOCOLO DE REDPROTOCOLO DE RED.... TCP/IP, protocolo de control de transmisiones/protocolo de Internet, protocolos usados para el control de la transmisión en Internet. Permite que diferentes tipos de ordenadores o computadoras se comuniquen a través de redes heterogéneas. Se desarrolló por encargo del Departamento de Defensa estadounidense, que deseaba obtener un medio que permitiese la interconexión de computadoras distantes que operaban bajo distintos sistemas operativos. El protocolo fue inventado por el informático estadounidense Vinton Cerf y el ingeniero estadounidense Robert Kahn en 1973; originalmente permitía la comunicación de computadoras con sistema operativo UNIX a través de Arpanet, pero su uso se fue ampliando y ahora está disponible para establecer una conexión a través de Internet usando cualquier sistema operativo. El Departamento de Defensa estadounidense lo adoptó como el protocolo estándar para sus comunicaciones en 1983. TCP define distintos parámetros de transmisión de datos que aseguran que todos los bytes enviados se reciben correctamente en su destino. IP define el modo en que los datos se dividen en bloques, denominados paquetes, y establece el camino

Page 48: Sistemas computacionales

47

que recorre cada paquete hasta su destino; esta parte del protocolo proporciona capacidad de enrutamiento. Existen otros protocolos IP que se emplean para transmitir a través de Internet cierto tipo de datos; así el RTP (Realtime Transport Protocol, protocolo de transporte en tiempo real) se utiliza para transmitir voz y vídeo en tiempo real, y el RTCP (Realtime Control Protocol, protocolo de control en tiempo real) es un protocolo acompañante que se utiliza para mantener la calidad del servicio (QoS, Quality of Service). FTP, protocolo de transferencia de archivos que se utiliza en Internet y otras redes para transmitir archivos entre servidores o entre un usuario y un servidor. El protocolo asegura que el archivo se transmite sin errores, para lo que dispone de un sistema de corrección basado en un control de redundancia de datos y, en su caso, de la capacidad de retomar la descarga en el punto en que falló la conexión o el envío o la recepción de datos. El sistema que almacena archivos que se pueden solicitar por FTP se denomina servidor de FTP. FTP forma parte del conjunto de protocolos TCP/IP, que permite la comunicación en Internet entre distintos tipos de máquinas y redes. Los programas que son capaces de acceder a servidores FTP y descargar archivos de ellos y, en su caso, enviar otros al servidor, se denominan clientes FTP. Habitualmente precisan de claves de acceso (usuario y contraseña); los denominados servidores de FTP anónimo (Anonymous FTP Server) permiten el acceso libre, sin más que indicar datos como la dirección de correo electrónico del usuario que accede a ello como contraseña. Lo más común es que los servidores anónimos sólo permitan descargar archivos del servidor FTP, pero no enviar otros nuevos.

LENGUAJES DE PROGRAMACIONLENGUAJES DE PROGRAMACIONLENGUAJES DE PROGRAMACIONLENGUAJES DE PROGRAMACION.... Un lenguaje de programación es una técnica estándar de comunicación que permite expresar las instrucciones que han de ser ejecutadas en una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen un programa informático. Un lenguaje de programación permite a un programador especificar de manera precisa: sobre qué datos una computadora debe operar, cómo deben ser estos almacenados y transmitidos y, qué acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a través de un lenguaje que intenta estar relativamente próximo al lenguaje humano o natural.

Page 49: Sistemas computacionales

48

Un programa escrito en un lenguaje de programación necesita pasar por un proceso de compilación, es decir, ser traducido al lenguaje de máquina, o ser interpretado para que pueda ser ejecutado por el ordenador. Al desarrollarse las primeras computadoras electrónicas, se vio la necesidad de programarlas, es decir, de almacenar en memoria la información sobre la tarea que iban a ejecutar. Las primeras se usaban como calculadoras simples; se les indicaban los pasos de cálculo, uno por uno. John Von Neumann desarrolló el modelo que lleva su nombre, para describir este concepto de "programa almacenado". En este modelo, se tiene una abstracción de la memoria como un conjunto de celdas, que almacenan simplemente números. Estos números pueden representar dos cosas: los datos, sobre los que va a trabajar el programa; o bien, el programa en sí. ¿Cómo es que describimos un programa como números? Se tenía el problema de representar las acciones que iba a realizar la computadora, y que la memoria, al estar compuesta por switches correspondientes al concepto de bit, solamente nos permitía almacenar números binarios. La solución que se tomó fue la siguiente: a cada acción que sea capaz de realizar nuestra computadora, asociarle un número, que será su código de operación (opcode). Por ejemplo, una calculadora programable simple podría asignar los opcodes: 1 = SUMA, 2 = RESTA, 3 = MULTIPLICA, 4 = DIVIDE. Supongamos que queremos realizar la operación 5 * 3 + 2, en la calculadora descrita arriba. En memoria, podríamos "escribir" el programa de la siguiente forma: Localidad Opcode Significado Comentario 0 5 5 En esta localidad, tenemos el primer número de la fórmula 1 3 * En esta localidad, tenemos el opcode que representa la multiplicación. 2 3 3 En esta localidad, tenemos el segundo número de la fórmula 3 1 + En esta localidad, tenemos el opcode que representa la suma. 4 En esta localidad, tenemos el último número de la fórmula Podemos ver que con esta representación, es simple expresar las operaciones de las que es capaz el hardware (en este caso, nuestra calculadora imaginaria), en la memoria. La descripción y uso de los opcodes es lo que llamamos lenguaje de máquina .Es decir, la lista de códigos que la máquina va a interpretar como instrucciones, describe las capacidades de programación que tenemos de ella; es el lenguaje más primitivo, depende directamente del hardware, y requiere del programador que conozca el funcionamiento de la máquina al más bajo nivel.

Page 50: Sistemas computacionales

49

Los lenguajes más primitivos fueron los lenguajes de máquina. Esto, ya que el hardware se desarrolló antes del software, y además cualquier software finalmente tiene que expresarse en el lenguaje que maneja el hardware. La programación en esos momentos era sumamente tediosa, pues el programador tenía que "bajarse" al nivel de la máquina y decirle, paso a pasito, cada punto de la tarea que tenía que realizar. Además, debía expresarlo en forma numérica; y por supuesto, este proceso era propenso a errores, con lo que la productividad del programador era muy limitada. Sin embargo, hay que recordar que en estos momentos, simplemente aún no existía alternativa. El primer gran avance que se dio, como ya se comentó, fue la abstracción dada por el Lenguaje Ensamblador, y con él, el nacimiento de las primeras herramientas automáticas para generar el código máquina. Esto redujo los errores triviales, como podía ser el número que correspondía a una operación, que son sumamente engorrosos y difíciles de detectar, pero fáciles de cometer. Sin embargo, aún aquí es fácil para el programador perderse y cometer errores de lógica, pues debe bajar al nivel de la forma en que trabaja el CPU, y entender bien todo lo que sucede dentro de él. Con el desarrollo en los 50s y 60s de algoritmos de más elevado nivel, y el aumento de poder del hardware, empezaron a entrar al uso de computadoras científicos de otras ramas; ellos conocían mucho de Física, Química y otras ramas similares, pero no de Computación, y por supuesto, les era sumamente complicado trabajar con lenguaje Ensamblador en vez de fórmulas. Así, nació el concepto de Lenguaje de Alto Nivel, con el primer compilador de FORTRAN (Formula Translación), que, como su nombre indica, inició como un "simple" esfuerzo de traducir un lenguaje de fórmulas, al lenguaje ensamblador y por consiguiente al lenguaje de máquina. A partir de FORTRAN, se han desarrollado innumerables lenguajes, que siguen el mismo concepto: buscar la mayor abstracción posible, y facilitar la vida al programador, aumentando la productividad, encargándose los compiladores o intérpretes de traducir el lenguaje de alto nivel, al lenguaje de computadora. Hay que notar la existencia de lenguajes que combinan características de los de alto nivel y los de bajo nivel (es decir, Ensamblador). Mi ejemplo favorito es C: contiene estructuras de programación de alto nivel, y la facilidad de usar librerías que también son características de alto nivel; sin embargo, fue diseñado con muy pocas instrucciones, las cuales son sumamente sencillas, fáciles de traducir al lenguaje de la máquina; y requiere de un entendimiento apropiado de cómo funciona la máquina, el uso de la memoria, etcétera. Por ello, muchas personas consideramos a lenguajes como C (que fue diseñado para hacer sistemas operativos), lenguajes de nivel medio.

Page 51: Sistemas computacionales

50

PATRON DE DISEÑOPATRON DE DISEÑOPATRON DE DISEÑOPATRON DE DISEÑO.... Un patrón de diseño es una abstracción de una solución en un nivel alto. Los patrones solucionan problemas que existen en muchos niveles de abstracción. Hay patrones que abarcan las distintas etapas del desarrollo; desde el análisis hasta el diseño y desde la arquitectura hasta la implementación. Muchos diseñadores y arquitectos de software han definido el término de patrón de diseño de varias formas que corresponden al ámbito a la cual se aplican los patrones. Luego, se dividió los patrones en diferentes categorías de acuerdo a su uso. Los diseñadores de software extendieron la idea de patrones de diseño al proceso de desarrollo de software. Debido a las características que proporcionaron los lenguajes orientados a objetos (como herencia, abstracción y encapsulamiento) les permitieron relacionar entidades de los lenguajes de programación a entidades del mundo real fácilmente, los diseñadores empezaron a aplicar esas características para crear soluciones comunes y reutilizables para problemas frecuentes que exhibían patrones similares. El grupo de GoF clasificaron los patrones en 3 grandes categorías basadas en su PROPÓSITO: creacionales, estructurales y de comportamiento. *Creacionales: Patrones creacionales tratan con las formas de crear instancias de objetos. El objetivo de estos patrones es de abstraer el proceso de instanciación y ocultar los detalles de cómo los objetos son creados o inicializados. *Estructurales: Los patrones estructurales describen como las clases y objetos pueden ser combinados para formar grandes estructuras y proporcionar nuevas funcionalidades. Estos objetos adicionados pueden ser incluso objetos simples u objetos compuestos. *Comportamiento: Los patrones de comportamiento nos ayudan a definir la comunicación e iteración entre los objetos de un sistema. El propósito de este patrón es reducir el acoplamiento entre los objetos. *Creacional de la Clase: Los patrones creacionales de Clases usan la herencia como un mecanismo para lograr la instanciación de la Clase. Por ejemplo el método Factoría. *Creacional del objeto: Los patrones creacionales de objetos son más escalables y dinámicos comparados de los patrones creacionales de Clases. Por ejemplo la Factoría abstracta y el patrón Singleton. *Estructural de la Clase: Los patrones estructurales de Clases usan la herencia para proporcionar interfaces más útiles combinando la funcionalidad de múltiples Clases. Por ejemplo el patrón Adaptador (Clase).

Page 52: Sistemas computacionales

51

* Estructural de Objetos: Los patrones estructurales de objetos crean objetos complejos agregando objetos individuales para construir grandes estructuras. La composición de l patrón estructural del objeto puede ser cambiado en tiempo de ejecución, el cual nos da flexibilidad adicional sobre los patrones estructurales de Clases. Por ejemplo el Adaptador (Objeto), Facade, Bridge, Composite.

GLOSARIOGLOSARIOGLOSARIOGLOSARIO.... Almacenamiento: Guardar información, almacenar. Análisis: Estudio, mediante técnicas informáticas, de los límites, características y posibles soluciones de un problema al que se aplica un tratamiento por ordenador. Automático: Ciencia que trata de sustituir en un proceso el operador humano por dispositivos mecánicos o electrónicos. Binario: Compuesto de dos elementos, unidades o guarismos. C++: En informática (léase ce plus plus), una versión orientada a objetos derivada del lenguaje de programación de aplicación general denominado C. Calculo: Cómputo, cuenta o investigación que se hace de algo por medio de operaciones matemáticas. Cargador: Aplicación que permite cargar las instrucciones de un nuevo programa. Circuito: Conjunto de conductores que recorre una corriente eléctrica, y en el cual hay generalmente intercalados aparatos productores o consumidores de esta corriente. Change: Orden del C++ que significa cambiar o cargar. CMOS: En informática, acrónimo de Complementary Metal Oxide Semiconductor (semiconductor complementario de óxido metálico). COBOL: En informática, acrónimo de Common Bussines-Oriented Language (Lenguaje Común Orientado hacia Aplicaciones de Empresa), lenguaje de programación desarrollado entre 1959 y 1961 que utiliza como base el idioma inglés y que se caracteriza por su gran facilidad de lectura. Código: Combinación de signos que tiene un determinado valor dentro de un sistema establecido. Sistema de signos y de reglas que permite formular y comprender un mensaje. Compilador: Programa que convierte el lenguaje informático empleado por el usuario en lenguaje propio del computador. Conexión: Enlace, atadura, trabazón, concatenación de una cosa con otra. Conmutación: Acción y efecto de conmutar, cambiar una cosa por otra. CPU: Siglas en inglés, circuito microscópico que interpreta y ejecuta instrucciones. Unidad central de proceso o UCP.

Page 53: Sistemas computacionales

52

Decimal: Sistema de notación posicional para los números, basado en el 10 y sus potencias. Delete: Orden del C++ que significa borrar. Digital: Referente a los números dígitos y en particular a los instrumentos de medida que la expresan con ellos. Diseño: Forma de cada uno de estos objetos, diseñar, crear algo. Dispositivo: Mecanismo o artificio dispuesto para producir una acción prevista. Electro-mecánico: Dicho de un dispositivo o de un aparato mecánico; Accionado o controlado por medio de corrientes eléctricas. Electrónico: Perteneciente o relativo a la electrónica. Emisión: Programa o conjunto de programas emitidos sin interrupción una computadora. EMPROM: Memoria programable y borrable de sólo lectura o EPROM, en informática, tipo de memoria, también denominada reprogramable de sólo lectura (RPROM, acrónimo inglés de Reprogrammable Read Only Memory). Las EPROM (acrónimo inglés de Erasable Programmable Read Only Memory) son chips de memoria que se programan después de su fabricación. Ensamblador: Preparar un programa en lenguaje máquina a partir de un programa en lenguaje simbólico. Estructura: Distribución y orden con que está compuesto un programa. Finware: En informática, rutinas de software almacenadas en memoria de sólo lectura (ROM). FORTRAN: en informática, acrónimo de FORmula TRANslation (traducción de fórmulas). Fuente: Principio, fundamento u origen de algo. FTP: Acrónimo de File Transfer Protocol, protocolo de transferencia de archivos que se utiliza en Internet y otras redes para transmitir archivos entre servidores o entre un usuario y un servidor. Hardware: Conjunto de los componentes que integran la parte material de una computadora. Hardware de Almacenamiento: sirve para almacenar permanentemente información y programas que el ordenador deba recuperar en algún momento. Hardware de Entrada: Consta de dispositivos externos; esto es, componentes situados fuera de la CPU de la computadora— que proporcionan información e instrucciones. Hardware de Salida: Consta de dispositivos externos que transfieren información de la CPU de la computadora al usuario informático.

Page 54: Sistemas computacionales

53

HTML: Acrónimo de HyperText Markup Language, lenguaje de marcas de hipertexto. IBM: International Business Machines Corporation, IBM, fabricante estadounidense de ordenadores o computadoras, con sede en Armonk, Nueva York. Include: Orden del C++ que significa incluir. Informática: Conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático de la información por medio de ordenadores. Ingeniería: Estudio y aplicación, por especialistas, de las diversas ramas de la tecnología. Integrado: Combinación de elementos de circuito miniaturizados que se alojan en un único soporte o chip, generalmente de silicio. IP: Siglas en ingles Internet Protocol, Protocolo de Internet. JIT: Acrónimo de Just in Time, en un Tiempo Determinado. LAN: Redes de Área Local (conocidas como LAN) que conectan varias estaciones dentro de la misma institución. Lenguaje: Conjunto de signos y reglas que permite la comunicación con un ordenador. Linker: Conexión, unión. LSI: Acrónimo de Large Scale Integrated, Integración a gran escala. MAC: Siglas en inglés de 'control de acceso al medio. MAN: Redes de Área Metropolitana (MAN). Maquina: Conjunto de aparatos combinados para recibir cierta forma de energía y transformarla en otra más adecuada, o para producir un efecto determinado. Memoria: Dispositivo físico, generalmente electrónico, en el que se almacenan datos e instrucciones para recuperarlos y utilizarlos posteriormente. MIT: Instituto de Tecnología de Massachusetts (en inglés, Massachusetts Institute of Technology), una de las principales universidades de investigación del mundo, situada en Cambridge (Massachusetts, Estados Unidos). Monolítica: De uno solo. Monotarea: Que sólo permiten una tarea a la vez por usuario. Monousuario: Que soporto uno solo usuario a la vez. MS-DOS: Acrónimo de Microsoft Disk Operating System (sistema operativo de disco de Microsoft). Multiproceso: Se refiere al número de procesadores del sistema. Multitarea: Permite al usuario estar realizando varias labores al mismo tiempo. Multiusuario: Que soporto de 2 a mas usuarios en una sola vez. Multiprogramación: Técnica para la ejecución simultánea de dos o más programas en una misma computadora.

Page 55: Sistemas computacionales

54

Objeto: Fin o intento a que se dirige o encamina una acción u operación Ordenador: Máquina electrónica dotada de una memoria de gran capacidad y de métodos de tratamiento de la información, capaz de resolver problemas aritméticos y lógicos gracias a la utilización automática de programas registrados en ella. Operativo: Dispositivo Óptico: Aparato compuesto de lentes y espejos para ver estampas o dibujos agrandados. Optimación: Método matemático para determinar los valores de las variables que hacen máximo el rendimiento de un proceso o un sistema. OSS: Software de código abierto. Pascal: Lenguaje de programación de alto nivel, diseñado a principios de la década de 1970 por el profesor suizo Niklaus Wirth como un elemento de aprendizaje, y así denominado en honor a Blaise Pascal, matemático francés del siglo XVII que creó la primera máquina calculadora. Patrón: Modelo que sirve de muestra para sacar otra cosa igual. Programa: Conjunto unitario de instrucciones que permite a un ordenador realizar funciones diversas, como el tratamiento de textos, el diseño de gráficos, la resolución de problemas matemáticos, el manejo de bancos de datos, etc. Programación: Conjunto de los programas de una computadora. Protocolo: Serie ordenada de escrituras. QoS: Quality of Service; Servicios de Cualidad. RAM: Memoria de acceso aleatorio o RAM, en informática, memoria basada en semiconductores que puede ser leída y escrita por el microprocesador u otros dispositivos de hardware tantas veces como se quiera. RDSI: Red de servicios integrados (RDSI). Red: Conjunto de ordenadores o de equipos informáticos conectados entre sí que pueden intercambiar información. ROM: Memoria de sólo lectura o ROM, acrónimo de Read Only Memory, en informática, memoria basada en semiconductores que contiene instrucciones o datos que se pueden leer pero no modificar. RTP: Siglas de Real-Time Transport Protocol (protocolo de transporte en tiempo real). Servidor: Computadora conectada a una red que pone sus recursos a disposición del resto de los integrantes de la red. Sintaxis: Conjunto de reglas que definen las secuencias correctas de los elementos de un lenguaje de programación. Sistema: Conjunto de cosas que relacionadas entre sí ordenadamente contribuyen a determinado objeto.

Page 56: Sistemas computacionales

55

Software: Conjunto de programas, instrucciones y reglas informáticas para ejecutar ciertas tareas en una computadora. TCP/IP: Acrónimo de Transmission Control Protocol/Internet Protocol (protocolo de control de transmisiones/protocolo de Internet), protocolos usados para el control de la transmisión en Internet. Topología: Rama de las matemáticas que trata especialmente de la continuidad y de otros conceptos más generales originados de ella, como las propiedades de las figuras con independencia de su tamaño o forma. Transmisión: Conjunto de mecanismos que comunican el movimiento de un cuerpo a otro, alterando generalmente su velocidad, su sentido o su forma. Transistor: Semiconductor provisto de tres o más electrodos que sirve para rectificar y amplificar los impulsos eléctricos. Uniproceso: Es capaz de manejar solamente un procesador de la computadora. UNIX: En informática, sistema operativo multiusuario que incorpora multitarea. Usuario: Conjunto de componentes empleados por los usuarios para comunicarse e interaccionar con las computadoras. El usuario dirige el funcionamiento de la máquina mediante instrucciones, denominadas genéricamente entradas. Válvula: Elemento de los aparatos de radio y televisión, parecido en su origen a una lámpara eléctrica de incandescencia, y que en su forma más simple consta de tres electrodos metálicos: un filamento, una rejilla y una placa. Virtual: Que tiene virtud para producir un efecto, aunque no lo produce de presente, frecuentemente en oposición a efectivo o real. VLSI: Acrónimo de Very Large Scale Integrated; integración a muy gran escala. WAN: Área extensa (WAN). Windows: En informática, nombre común o coloquial de Microsoft Windows, un entorno multitarea dotado de una interfaz gráfica de usuario, que se ejecuta en computadoras diseñadas para MS-DOS.

Page 57: Sistemas computacionales

56

BIBLIOGRAFIABIBLIOGRAFIABIBLIOGRAFIABIBLIOGRAFIA.... Este trabajo tubo como base el Internet, la mayoría de información se saco de la red, también se saco información de la Encarta 2004 y 2005, tratando de tener una variedad en cuanto a la información de esta tesis. Las páginas de Internet que fueron fuente de información son:

� Enciclopedia: Mi Primaria Jumbar, 2002 REZZA EDITORES S.A. DE C.V. Coordinación Editorial, León Guanajuato, Edición 2002 Paginas: 240,

241, 242, 244, 245, 246, 247, 249, 256.

� www.google.com.mx

� www.tesisdejuan.com.mx

� www.informatica.com

� www.uag.mx/204/sistcom.htm

� www.monografias.com/trabajos/gloscompu/gloscompu.shtml

� www.monografias.com/Computacion/Programacion/more3.shtml

� www.monografias.com/trabajos/compvisc/compvisc.shtml

� www.monografias.com/trabajos11/compil/compil.shtml

� www.laopinion.com/glossary/p.html

� www.aeat.es/padres/sopcobol.html

� www.conclase.net/curso/index.php

� www.teleformacion.edu.aytolacoruna.es/PASCAL/document/intro.html

� www.addlink.es/productos.asp?pid=181

Page 58: Sistemas computacionales

57

� www.el-mundo.es/navegante/2004/11/05/esociedad/1099668934.html

� www.rincondelvago.com/cargadores-y-ligadores.html

� www.informatica.cl

� es.tldp.org/Tutoriales/UXO/uxo/

� es.wikipedia.org/wiki/Compilador

� es.wikipedia.org/wiki/Cargador

� es.wikipedia.org/wiki/Informatica

� es.wikipedia.org/wiki/Hardware

� es.wikipedia.org/wiki/Software

� es.wikipedia.org/wiki/Sistema_operativo

� es.wikipedia.org/wiki/Superordenador

� es.wikipedia.org/wiki/Protocolo_de_red

� es.wikipedia.org/wiki/Patrón_de_diseño

� Biblioteca de Consulta Microsoft ® Encarta ® 2004. ©

� Biblioteca de Consulta Microsoft ® Encarta ® 2005. ©

Héctor Eloy Jiménez EstradaHéctor Eloy Jiménez EstradaHéctor Eloy Jiménez EstradaHéctor Eloy Jiménez Estrada