SlideShare une entreprise Scribd logo
1  sur  58
Télécharger pour lire hors ligne
SISTEMAS COMPUTACIONALES




                Héctor Eloy Jiménez Estrada
                Investigacion documental




                    Preparatoria Regional de
                  Sayula modulo San Gabriel
INDICE.
                               INDICE.
Í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


1
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


2
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.




3
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?




4
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.




5
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.




6
Generación
                        Generació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.

                                            (1945-
                         Primera Generación (1945-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.

                                           (1955-
                        Segunda Generación (1955-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.




7
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.

                                            (1965-
                         Tercera Generación (1965-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.


8
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 (1980-1995)
                                           (1980-1995)
                             "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


9
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.

                                        (1995
                                         1995-
                      Quinta Generación (1995-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.




10
“CAPITULO I”

      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.
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.




11
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 estasn");
  printf(“Yo bien y tun”)
   return 0;
}
                                   OBJETO.
                          PROGRAMA 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).

12
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.




                                 COMPILADOR.
      QUE 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.

13
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.


14
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.


15
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.



16
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.

17
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:


18
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.


19
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.


20
“CAPITULO II”

                                 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.


21
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.


22
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.



23
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
             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 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.



24
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.

                                 OPERATIVO.
               QUE 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.


25
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


26
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.


27
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.


28
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.




29
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.
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.




30
III”
                               “CAPITULO III”

 FUNCION DEL SISTEMA BINARIO DENTRO DE UNA
               COMPUTADORA.
               COMPUTADORA.
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.
                                 HARDWARE.
                                 HARDWARE.
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


31
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


32
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

33
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

34
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.




35
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.


36
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.

                                DIGITALES.
                       SISTEMAS 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

37
"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


38
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
                                   ABIERTO.
                            CODIGO 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

39
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


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

                             ORDENADORES.
                    REDES 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.

41
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 REDES.
                                     REDES.



42
Sistemas computacionales
Sistemas computacionales
Sistemas computacionales
Sistemas computacionales
Sistemas computacionales
Sistemas computacionales
Sistemas computacionales
Sistemas computacionales
Sistemas computacionales
Sistemas computacionales
Sistemas computacionales
Sistemas computacionales
Sistemas computacionales
Sistemas computacionales
Sistemas computacionales

Contenu connexe

Tendances

La evolución de la Contabilidad de Costos a través del Tiempo
La evolución de la Contabilidad de Costos a través del TiempoLa evolución de la Contabilidad de Costos a través del Tiempo
La evolución de la Contabilidad de Costos a través del TiempoSaul Alvarado
 
Conceptos y diferencias del costeo directo y costeo absorbente
Conceptos y diferencias del costeo directo y costeo absorbenteConceptos y diferencias del costeo directo y costeo absorbente
Conceptos y diferencias del costeo directo y costeo absorbenteALFREDO GARCIA
 
Glosario de terminos del modelo entidad relacion extendido
Glosario de terminos del modelo entidad relacion extendidoGlosario de terminos del modelo entidad relacion extendido
Glosario de terminos del modelo entidad relacion extendidoRafael Miranda
 
Primeros artefactos de análisis. casos de uso
Primeros artefactos de análisis. casos de usoPrimeros artefactos de análisis. casos de uso
Primeros artefactos de análisis. casos de usoJuan Pablo Bustos Thames
 
Ejercicio de costos por proceso continuo
Ejercicio de costos por proceso continuo Ejercicio de costos por proceso continuo
Ejercicio de costos por proceso continuo LuisRomero990357
 
Costos Estandar Pesamatic Trabajo
Costos Estandar Pesamatic TrabajoCostos Estandar Pesamatic Trabajo
Costos Estandar Pesamatic Trabajosistelectronica
 
13 Familias Dominan el Mundo son “La Orden Mundial”
13 Familias Dominan el Mundo son “La Orden Mundial”13 Familias Dominan el Mundo son “La Orden Mundial”
13 Familias Dominan el Mundo son “La Orden Mundial”Crónicas del despojo
 
Costo indirecto de fabricación ronny garza
Costo indirecto de fabricación  ronny garzaCosto indirecto de fabricación  ronny garza
Costo indirecto de fabricación ronny garzargarza79
 
Unidad iv los costos de produccion
Unidad iv los costos de produccionUnidad iv los costos de produccion
Unidad iv los costos de produccionJESUS MARCANO
 
Mapa conceptual de arquitectura orientada a servicios
Mapa conceptual de arquitectura orientada a serviciosMapa conceptual de arquitectura orientada a servicios
Mapa conceptual de arquitectura orientada a serviciosLuis Figueroa Ponce
 
11 ejercicios mano de obra directa
11 ejercicios mano de obra directa11 ejercicios mano de obra directa
11 ejercicios mano de obra directaJosué Zapeta
 
Base de datos laboratorio
Base de datos laboratorioBase de datos laboratorio
Base de datos laboratoriofreddy Fred
 
Costos por ordenes especificas
Costos por ordenes especificasCostos por ordenes especificas
Costos por ordenes especificasEze Carloz
 
Academia y administraci los estados financieros de las empresas industriales ...
Academia y administraci los estados financieros de las empresas industriales ...Academia y administraci los estados financieros de las empresas industriales ...
Academia y administraci los estados financieros de las empresas industriales ...INOCENCIO MELÉNDEZ JULIO
 
CONTABILIZACIÓN DE LA MANO DE OBRA - COSTOS " ADMINISTRACIÓN DE EMPRESAS"
CONTABILIZACIÓN DE LA MANO DE OBRA - COSTOS " ADMINISTRACIÓN DE EMPRESAS"CONTABILIZACIÓN DE LA MANO DE OBRA - COSTOS " ADMINISTRACIÓN DE EMPRESAS"
CONTABILIZACIÓN DE LA MANO DE OBRA - COSTOS " ADMINISTRACIÓN DE EMPRESAS"Jhorvy Cuyate Larios
 

Tendances (20)

Unidad 2 - Sistema de costos por ordenes de produccion
Unidad 2 - Sistema de costos por ordenes de produccionUnidad 2 - Sistema de costos por ordenes de produccion
Unidad 2 - Sistema de costos por ordenes de produccion
 
La evolución de la Contabilidad de Costos a través del Tiempo
La evolución de la Contabilidad de Costos a través del TiempoLa evolución de la Contabilidad de Costos a través del Tiempo
La evolución de la Contabilidad de Costos a través del Tiempo
 
Conceptos y diferencias del costeo directo y costeo absorbente
Conceptos y diferencias del costeo directo y costeo absorbenteConceptos y diferencias del costeo directo y costeo absorbente
Conceptos y diferencias del costeo directo y costeo absorbente
 
Glosario de terminos del modelo entidad relacion extendido
Glosario de terminos del modelo entidad relacion extendidoGlosario de terminos del modelo entidad relacion extendido
Glosario de terminos del modelo entidad relacion extendido
 
Primeros artefactos de análisis. casos de uso
Primeros artefactos de análisis. casos de usoPrimeros artefactos de análisis. casos de uso
Primeros artefactos de análisis. casos de uso
 
Ejercicio de costos por proceso continuo
Ejercicio de costos por proceso continuo Ejercicio de costos por proceso continuo
Ejercicio de costos por proceso continuo
 
Costos Estandar Pesamatic Trabajo
Costos Estandar Pesamatic TrabajoCostos Estandar Pesamatic Trabajo
Costos Estandar Pesamatic Trabajo
 
13 Familias Dominan el Mundo son “La Orden Mundial”
13 Familias Dominan el Mundo son “La Orden Mundial”13 Familias Dominan el Mundo son “La Orden Mundial”
13 Familias Dominan el Mundo son “La Orden Mundial”
 
Costo indirecto de fabricación ronny garza
Costo indirecto de fabricación  ronny garzaCosto indirecto de fabricación  ronny garza
Costo indirecto de fabricación ronny garza
 
Unidad iv los costos de produccion
Unidad iv los costos de produccionUnidad iv los costos de produccion
Unidad iv los costos de produccion
 
Unidad iii tema_1
Unidad iii tema_1Unidad iii tema_1
Unidad iii tema_1
 
Gastos indirectos de fabricacion
Gastos indirectos de fabricacion Gastos indirectos de fabricacion
Gastos indirectos de fabricacion
 
Mapa conceptual de arquitectura orientada a servicios
Mapa conceptual de arquitectura orientada a serviciosMapa conceptual de arquitectura orientada a servicios
Mapa conceptual de arquitectura orientada a servicios
 
Elementos del Costo y Clasificacion
Elementos del Costo y ClasificacionElementos del Costo y Clasificacion
Elementos del Costo y Clasificacion
 
11 ejercicios mano de obra directa
11 ejercicios mano de obra directa11 ejercicios mano de obra directa
11 ejercicios mano de obra directa
 
Base de datos laboratorio
Base de datos laboratorioBase de datos laboratorio
Base de datos laboratorio
 
Costos por ordenes especificas
Costos por ordenes especificasCostos por ordenes especificas
Costos por ordenes especificas
 
Contabilidad De Costos
Contabilidad De CostosContabilidad De Costos
Contabilidad De Costos
 
Academia y administraci los estados financieros de las empresas industriales ...
Academia y administraci los estados financieros de las empresas industriales ...Academia y administraci los estados financieros de las empresas industriales ...
Academia y administraci los estados financieros de las empresas industriales ...
 
CONTABILIZACIÓN DE LA MANO DE OBRA - COSTOS " ADMINISTRACIÓN DE EMPRESAS"
CONTABILIZACIÓN DE LA MANO DE OBRA - COSTOS " ADMINISTRACIÓN DE EMPRESAS"CONTABILIZACIÓN DE LA MANO DE OBRA - COSTOS " ADMINISTRACIÓN DE EMPRESAS"
CONTABILIZACIÓN DE LA MANO DE OBRA - COSTOS " ADMINISTRACIÓN DE EMPRESAS"
 

En vedette

Sistema computacional
Sistema computacionalSistema computacional
Sistema computacionalnelson0007
 
Evolucion de los sistemas computacionales
Evolucion de los sistemas computacionalesEvolucion de los sistemas computacionales
Evolucion de los sistemas computacionalesDanny Mejia
 
Sistema informático
Sistema informáticoSistema informático
Sistema informáticojuanivalen
 
Historia y evolucion de la Ingeniería de Sistemas
Historia  y evolucion de la Ingeniería de SistemasHistoria  y evolucion de la Ingeniería de Sistemas
Historia y evolucion de la Ingeniería de SistemasKelly Pao Gonzalez Martinez
 
La informática aplicada a la salud.
La informática aplicada a la salud.La informática aplicada a la salud.
La informática aplicada a la salud.guestfd41cf
 
La informática aplicada a la salud
La informática aplicada a la saludLa informática aplicada a la salud
La informática aplicada a la saludguestd34a6e
 
Concepto de Sistema Informático.
Concepto de Sistema Informático. Concepto de Sistema Informático.
Concepto de Sistema Informático. eugeminoli
 
LA INFORMATICA APLICADA A LA SALUD
LA INFORMATICA APLICADA A LA SALUDLA INFORMATICA APLICADA A LA SALUD
LA INFORMATICA APLICADA A LA SALUDManuelAntonioPerez
 
La informática aplicada a la salud
La informática aplicada a la saludLa informática aplicada a la salud
La informática aplicada a la saludSOMANA
 

En vedette (10)

Sistema computacional
Sistema computacionalSistema computacional
Sistema computacional
 
Evolución de ing. en sistemas computacionales
Evolución de ing. en sistemas computacionalesEvolución de ing. en sistemas computacionales
Evolución de ing. en sistemas computacionales
 
Evolucion de los sistemas computacionales
Evolucion de los sistemas computacionalesEvolucion de los sistemas computacionales
Evolucion de los sistemas computacionales
 
Sistema informático
Sistema informáticoSistema informático
Sistema informático
 
Historia y evolucion de la Ingeniería de Sistemas
Historia  y evolucion de la Ingeniería de SistemasHistoria  y evolucion de la Ingeniería de Sistemas
Historia y evolucion de la Ingeniería de Sistemas
 
La informática aplicada a la salud.
La informática aplicada a la salud.La informática aplicada a la salud.
La informática aplicada a la salud.
 
La informática aplicada a la salud
La informática aplicada a la saludLa informática aplicada a la salud
La informática aplicada a la salud
 
Concepto de Sistema Informático.
Concepto de Sistema Informático. Concepto de Sistema Informático.
Concepto de Sistema Informático.
 
LA INFORMATICA APLICADA A LA SALUD
LA INFORMATICA APLICADA A LA SALUDLA INFORMATICA APLICADA A LA SALUD
LA INFORMATICA APLICADA A LA SALUD
 
La informática aplicada a la salud
La informática aplicada a la saludLa informática aplicada a la salud
La informática aplicada a la salud
 

Similaire à Sistemas computacionales

Sistema Operativo 2015
Sistema Operativo 2015Sistema Operativo 2015
Sistema Operativo 2015ladislao
 
sistemas operativos
sistemas operativossistemas operativos
sistemas operativosladislao
 
Trabajosistemaoperativomily24
Trabajosistemaoperativomily24Trabajosistemaoperativomily24
Trabajosistemaoperativomily24ladislao
 
Trabajosistemaoperativos
TrabajosistemaoperativosTrabajosistemaoperativos
Trabajosistemaoperativosladislao
 
Conceptos Basicos De La Iformatica 2
Conceptos Basicos De La Iformatica 2Conceptos Basicos De La Iformatica 2
Conceptos Basicos De La Iformatica 2ortiramirez
 
Sistema operatico mac
Sistema operatico macSistema operatico mac
Sistema operatico macSanty Avila
 
Euro lopez wind.pdf
Euro lopez wind.pdfEuro lopez wind.pdf
Euro lopez wind.pdfEURO LOPEZ
 
Generaciones de los sistemas operativos1
Generaciones de los sistemas operativos1Generaciones de los sistemas operativos1
Generaciones de los sistemas operativos1Santy Avila
 
Fundamento y antecedente de la computadora
Fundamento y antecedente de la computadoraFundamento y antecedente de la computadora
Fundamento y antecedente de la computadoracinthia moran
 
Cuantos sistemas operativos existen
Cuantos sistemas operativos existenCuantos sistemas operativos existen
Cuantos sistemas operativos existenpaulina_2013_15
 
Inteligencia artificial etc(avance1) samuel_tiburcio_parra
Inteligencia artificial etc(avance1) samuel_tiburcio_parraInteligencia artificial etc(avance1) samuel_tiburcio_parra
Inteligencia artificial etc(avance1) samuel_tiburcio_parratiburciosam
 

Similaire à Sistemas computacionales (20)

Sistema Operativo 2015
Sistema Operativo 2015Sistema Operativo 2015
Sistema Operativo 2015
 
sistemas operativos
sistemas operativossistemas operativos
sistemas operativos
 
Trabajosistemaoperativomily24
Trabajosistemaoperativomily24Trabajosistemaoperativomily24
Trabajosistemaoperativomily24
 
Trabajosistemaoperativos
TrabajosistemaoperativosTrabajosistemaoperativos
Trabajosistemaoperativos
 
SISTEMAS OPERATIVOS 1
SISTEMAS OPERATIVOS 1SISTEMAS OPERATIVOS 1
SISTEMAS OPERATIVOS 1
 
Proyecto #2 word
Proyecto #2 wordProyecto #2 word
Proyecto #2 word
 
Conceptos Basicos De La Iformatica 2
Conceptos Basicos De La Iformatica 2Conceptos Basicos De La Iformatica 2
Conceptos Basicos De La Iformatica 2
 
Manuel vasquez wind
Manuel vasquez windManuel vasquez wind
Manuel vasquez wind
 
Sistema operatico mac
Sistema operatico macSistema operatico mac
Sistema operatico mac
 
Euro lopez wind.pdf
Euro lopez wind.pdfEuro lopez wind.pdf
Euro lopez wind.pdf
 
Informática
Informática Informática
Informática
 
Generaciones de los sistemas operativos1
Generaciones de los sistemas operativos1Generaciones de los sistemas operativos1
Generaciones de los sistemas operativos1
 
JULIO REAÑO
JULIO REAÑOJULIO REAÑO
JULIO REAÑO
 
Brandon G. 9-4
Brandon G. 9-4Brandon G. 9-4
Brandon G. 9-4
 
El Computador
El Computador El Computador
El Computador
 
documentacion
documentaciondocumentacion
documentacion
 
Fundamento y antecedente de la computadora
Fundamento y antecedente de la computadoraFundamento y antecedente de la computadora
Fundamento y antecedente de la computadora
 
Cuantos sistemas operativos existen
Cuantos sistemas operativos existenCuantos sistemas operativos existen
Cuantos sistemas operativos existen
 
Inteligencia artificial etc(avance1) samuel_tiburcio_parra
Inteligencia artificial etc(avance1) samuel_tiburcio_parraInteligencia artificial etc(avance1) samuel_tiburcio_parra
Inteligencia artificial etc(avance1) samuel_tiburcio_parra
 
Asignacion 3
Asignacion 3Asignacion 3
Asignacion 3
 

Sistemas computacionales

  • 1. SISTEMAS COMPUTACIONALES Héctor Eloy Jiménez Estrada Investigacion documental Preparatoria Regional de Sayula modulo San Gabriel
  • 2. INDICE. INDICE. Í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 1
  • 3. 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 2
  • 4. 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. 3
  • 5. 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? 4
  • 6. 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. 5
  • 7. 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. 6
  • 8. Generación Generació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. (1945- Primera Generación (1945-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. (1955- Segunda Generación (1955-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. 7
  • 9. 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. (1965- Tercera Generación (1965-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. 8
  • 10. 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 (1980-1995) (1980-1995) "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 9
  • 11. 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. (1995 1995- Quinta Generación (1995-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. 10
  • 12. “CAPITULO I” 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. 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. 11
  • 13. 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 estasn"); printf(“Yo bien y tun”) return 0; } OBJETO. PROGRAMA 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). 12
  • 14. 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. COMPILADOR. QUE 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. 13
  • 15. 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. 14
  • 16. 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. 15
  • 17. 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. 16
  • 18. 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. 17
  • 19. 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: 18
  • 20. 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. 19
  • 21. 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. 20
  • 22. “CAPITULO II” 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. 21
  • 23. 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. 22
  • 24. 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. 23
  • 25. 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 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 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. 24
  • 26. 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. OPERATIVO. QUE 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. 25
  • 27. 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 26
  • 28. 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. 27
  • 29. 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. 28
  • 30. 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. 29
  • 31. 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. 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. 30
  • 32. III” “CAPITULO III” FUNCION DEL SISTEMA BINARIO DENTRO DE UNA COMPUTADORA. COMPUTADORA. 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. HARDWARE. HARDWARE. 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 31
  • 33. 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 32
  • 34. 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 33
  • 35. 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 34
  • 36. 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. 35
  • 37. 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. 36
  • 38. 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. DIGITALES. SISTEMAS 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 37
  • 39. "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 38
  • 40. 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 ABIERTO. CODIGO 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 39
  • 41. 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 40
  • 42. ceder el código fuente de sus productos como de libre utilización (código abierto), con el denominado proyecto Gecko. IV” “CAPITULO IV” ORDENADORES. REDES 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. 41
  • 43. 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 REDES. REDES. 42