Documente Academic
Documente Profesional
Documente Cultură
OBJETIVOS DEL MODULO: Dar los conceptos básicos sobre la evolución histórica de los
Sistemas Operativos Computacionales en general e introducir los conocimientos necesarios para
encarar la materia, en particular sobre datos, información, conocimiento, inteligencia, ambientes
informatizados, realidad virtual.
Dar los conceptos de modelos de objetos y su vivencia como también sobre Trabajos y procesos.
OBJETIVOS DEL APRENDIZAJE: Después de la lectura y del estudio del presente módulo el
alumno deberá conocer:
tiempo de ejecución
UP(utilización del Procesador)=
tiempo total
P (producción) = número de trabajos ejecutados por unidad de tiempo
Cabe señalar que una de las características de la máquinas de esa época era que solo admitían un trabajo por vez, y
por lo tanto no podían, bajo ningún punto de vista, superponerse en el tiempo una operación de E/S con la ejecución
de un programa.
Es así como se llega a un SO del tipo “batch”, donde los usuarios entregaban al operador los lotes de tarjetas, con la
diferencia que estas tarjetas se grababan en cinta magnética según su orden de llegada. Para realizar esta tarea,
generalmente, se usaba una pequeña computadora externa al sistema, dedicada y de bajo costo, cuya única función
era leer tarjetas y grabarlas en una Cinta. Así nació el concepto de periférico.
El esquema de un batch sería:
Grabación de Cinta Procesamiento Cinta
Trabajo Proceso de Listados
(Job) los Job en Cinta Entrada del conjunto Salida impresión de
de Trabajos los Resultados
Después de la grabación, la cinta era íntegramente leída por la computadora principal, para luego ser procesados los
trabajos de a uno por vez, y una vez que el trabajo era terminado, todos sus resultados se grababan en una cinta, la
cual era leída por otra computadora pequeña especializada llamada impresora de línea que generaba los listados de
los resultados.
El usar una computador pequeña, además de la principal, permitía que durante la ejecución de un batch en la
computadora principal, el operador pudiera utilizar la computadora pequeña para imprimir la salida de un batch
anterior y ejecutar la grabación de entrada del batch siguiente.
De esta manera tanto la computadora principal como los dispositivos de E/S estaban ocupados el máximo tiempo lo
que hacía posible la disminución de las demoras de la computadora principal al no realizar las E/S y éstas trabajar en
paralelo superponiéndose en el tiempo las actividades de entrada y las de salida .
Colocando un solo trabajo por cinta se lograba un bajísimo rendimiento del procesador (menor a 10 %). Esto se debe
a que el montaje y desmontaje se realizaba por el operador. Entonces se decidió colocar mas trabajos por cada cinta.
Esto mejoró el rendimiento llevándolo al 30 %. Para calcular el rendimiento se utilizaban las siguientes fórmulas:
El objetivo era lograr el máximo de rendimiento del procesador. Hoy día aun se utiliza el concepto de batch para el
procesamiento secuencial de ciertas aplicaciones.
Notas sobre Sistemas Operativos Evolución Histórica de los S.O. y programas de sistemas - Módulo Repaso – Parte D -
5
T E B ( tie m p o d e e je c u c ió n d e l b a tc h )
U P =
T R B (tie m p o d e re s p u e s ta d e l b a tc h )
d o n d e :
T R B (tie m p o d e re s p u e s ta d e l b a tc h ) = tie m p o d e m o n ta je d e l b a tc h + tie m p o d e e je c u c ió n d e l
ta m b ié n s e p o d ría e x p re s a r:
tie m p o d e m o n ta je d e l b a tc h
T R B (tie m p o d e re s p u e s ta d e l b a tc h ) =
1 - (U tiliz a c ió n d e l P r o c e s a d o r )
Procesamiento
del conjunto de Grabación de las
Trabajos (bajo el Salidas en Disco
Programa Ordenador) (Módulo de Salida)
Listados
Disco Proceso de
Salida
En el sistema interactivo, el computador es capaz de generar un respuesta inmediata ante una ación o solicitud
externa. Por consiguiente, la relación entre el usuario y la máquina es interactiva. Es multiprogramado.
Al introducir una orden, como por ejemplo a través del teclado, la computadora la ejecuta entregando el resultado
inmediatamente. Cuando el usuario necesita mantener un diálogo constante con la máquina, por ejemplo, para recibir
respuestas a requerimientos o consultas que se efectúan al computador, se debe optar por este tipo de sistema. La
Notas sobre Sistemas Operativos Evolución Histórica de los S.O. y programas de sistemas - Módulo Repaso – Parte D -
6
expresión "inmediato" debe entenderse que la computadora satisface los requerimientos de los usuarios a la
velocidad del ser humano que es lenta comparada con la velocidad que procesa la computadora.
Una misma computadora puede responder a varios usuarios en pocos segundos cuando el tiempo de procesamiento
de cada solicitud es muy corto y el diálogo se limita por el tiempo que requiere el usuario para pensar o actuar.
El esquema de un proceso interactivo puede ser el siguiente:
C o n m u ta c ió n d e tie m p o
S IS T E M A O P E R A T IV O
S IS T E M A d e C Ó M P U T O
F IG U R A D 1 .0 3 E s q u e m a d e u n s is te m a d e tie m p o c o m p a r tid o
El tiempo de procesador que se requiere para atender cada transacción desde una terminal es del orden de los
milisegundos y su organización no puede depender de estimaciones previstas por el usuario.
Esto obliga al administrador de Trabajos del S.O. a entregar el procesador durante breves intervalos de tiempo, de
longitud fija a un grupo de usuarios que están usando el equipo, Esta regla llamada “Round Robin” asigna el tiempo
de procesador en rebanadas. Estas porciones de tiempo reciben el nombre de “Time Slice”. A cada trabajo se le
asigna un time slice fijo, y, si no se completa durante ese intervalo, el trabajo es interrumpido y retorna a la cola de
trabajos en espera del procesador. Los trabajos que van llegando también se incorporan a la cola. Este tipo de sistema
puede trabajar tanto en tiempo real como en tiempo diferido.
Trabajar en tiempo real significa que el computador responde a la velocidad en que se produce el fenómeno
(Velocidad de respuesta en el tiempo que sea necesario, generalmente es a la velocidad del ser humano o en su escala
de tiempos).
Trabajar en tiempo diferido significa que el usuario envía su programa o datos en forma remota y a partir de ese
momento el programa queda fuera del control de usuario, y se ejecutará en algún instante posterior.
Si el programa ingresa en tiempo diferido, el S.O. lo identifica y procede a organizar su lista de programas, en el
cual se agrega la prioridad que le corresponde entre todos los programas que también trabajan en tiempo diferido.
Si la computadora trabaja en tiempo real y hay recursos disponibles para ejecutar otros trabajos y en la cola hay jobs
diferidos, el S.O. puede proceder a ejecutar el trabajo mas prioritario de los diferidos simultáneamente con los de
tiempo real dado que hay disponibilidad de recursos.
Si en el momento en que se ejecuta un trabajo en tiempo diferido, se presenta un trabajo en tiempo real, el que se
estaba ejecutando es detenido para que se comience a ejecutar el de tiempo real. En éste caso no había demanda de
ejecución en tiempo real. Este último siempre tiene máxima prioridad.
Si no hay recursos, los trabajos van engrosando la cola de programas a la espera de su ejecución.
Se dió en llamar procesamiento centralizado al sistema de procesamiento de datos en que todas las funciones de
procesamiento están centralizados en una CPU y un S.O. y en cambio, procesamiento distribuido al Sistema de
Procesamiento descentralizado de datos que se ejecutan en nodos dispersos geográficamente interconectados
mediante una red y que utiliza una función de comunicaciones para la transferencia de datos o programas.
El procesamiento distribuido se caracteriza por realizar un procesamiento cooperativo entre distintas máquinas y en
particular está caracterizado por:
1. Fragmentar los elementos que componen una aplicación sobre dos o mas sistemas interconectados, de igual o
diferente arquitectura operativa.
2. Los recursos de los sistemas cooperantes se controlan y administran en forma independiente
3. La relación entre ambos sistemas puede tomar diferentes formas. Por ejemplo:
Notas sobre Sistemas Operativos Evolución Histórica de los S.O. y programas de sistemas - Módulo Repaso – Parte D -
7
• Client - Server es un modelo de procesamiento distribuido caracterizado en que uno de los sistemas cooperante
asume el rol de cliente para solicitar un servicio especifico a un proceso servidor.
• Peer to Peer es otro modelo en que cada nodo es igual a otro (cada uno es un par del otro). Cada uno ofrece los
mismos servicios.
El objetivo básico es buscar un procesamiento rápido en paralelo y de este modo incre-mentar la eficiencia para
lograr un mayor rendimiento general del sistema.
Al procesamiento distribuido lo profundizaremos en el módulo 9 de éste texto
D1.1.5. TENDENCIAS.
De lo dicho podemos extraer de la historia retrospectiva, que inicialmente el hardware era sencillo, aislado, simple,
cada individuo podía emplear en forma exclusiva al Sistema y como se fueron presentando algunos problemas de
organización, se produjo un gran avance tecnológico desde ese estado al de los grandes Sistemas, con complejas
organizaciones de multiprogramación, multiprocesadores, sistemas de memoria virtual, etc. para luego, con el
advenimiento de los chips y los microprocesadores pasar a sistemas económicos actuales como se las Computadoras
Personales (PC) y estaciones de trabajos conectadas en redes como servidores.
Las tendencias se pueden resumir en:
• de un usuario, a varios usuarios sobre un mismo Sistema o sistemas distribuidos.
• de usuarios aislados, a usuarios que comparten y cooperan entre sí.
• de una operación secuencial en batch a la multiprogramación y al tiempo compartido.
• de un procesamiento centralizado a un procesamiento distribuido basado en las comunicaciones.
• tanto en el hardware como en el software, presentan un aumento en el paralelismo y concurrencia de ejecución.
• y, muy importante, una tendencia a la administración de recursos no físicos.
y Programa cargador (loader): Forma parte del núcleo (Kernel) del S.O. y su función es
cargar el resto de las rutinas del S.O. cuando se lo requiera y también se ocupa de los programas del usuario. Asigna
espacio en memoria central para programas; carga o introduce la instrucción en memoria junto con sus datos;
encadena las referencias entre lotes de objetos; reasigna y ajusta todas las posiciones dependientes del direcciona-
miento.
y Programa cargador inicial (I.P.L.): Hay dos modalidades para inicializar un sistema, uno manual y otro
automático. El manual se hace a través de una tecla de la consola o del teclado se manda un impulso que pone en
marcha al I.P.L., quién carga el núcleo del S.O. en memoria central cada vez que el sistema se pone en marcha. El
automático utiliza una función electrónica para hacer el mismo trabajo sin intervención humana. Esta acción se
conoce en la jerga informática como booteo
y Cargadores absolutos o reubicables: Es un software que coloca las instrucciones del programa que se pretende
ejecutar con sus datos en las locaciones de Memoria Central. Un cargador absoluto lo hace en las locaciones
indicadas por el programa a ejecutar en lenguaje de máquina; mientras que un cargador con reubicación puede
cargar un programa en diversos lugares de memoria de acuerdo a la disponibilidad de espacio en el momento de
su carga. Es mejor este último.
y Intérprete de mandatos o comandos: Su función principal es obtener desde el teclado, el siguiente mandato
especificado por el usuario y ejecutarlo. Ejemplo el Command.com del MS-DOS. Hace de interfase del sistema
con el usuario.
Ver Módulo 2 punto 2.5.2 como máquina extendida y 2.11.1 como servicios que brinda el S.O. al usuario
Notas sobre Sistemas Operativos Evolución Histórica de los S.O. y programas de sistemas - Módulo Repaso – Parte D -
8
y Programa de control de trabajo (Job Control): Puede o no estar en el núcleo y sus funciones son encadenar el
flujo de trabajo; interpretar los comandos; suministrar al “loader” las referencias de ubicación del próximo
programa a cargar. En general se busca reducir la intervención humana en un flujo de trabajos por lotes (Batch), a
ser propuesto para ejecutar, mediante acciones automáticas al S.O. Estas acciones son incorporadas en el flujo de
los trabajos y esto se hace mediante una serie de sentencias que se ocupan de:
◊ comienzo y finalización de un trabajo (Job).
◊ Ordenes para cargar y ejecutar los programas.
◊ Ordenes de reserva de recursos o tiempos de uso de los mismos. Se ejecutan con un interprete asociado al Kernel
o monitor.
• Programa supervisor, núcleo o Kernel (ejecutivo, monitor o residente): Establece las comunicaciones con el
operador enviando o recibiendo los mensajes a través de la consola; organiza la operación de los periféricos y a
través de los canales atiende las interrupciones, sincroniza los procesos, contiene las llamadas al sistema con las
que administra todos los incidentes tales como errores de programas, fallas en los dispositivos, errores del
sistema, etc. Es la parte del S.O. que queda residente en Memoria central en todo momento.
• Compiladores (Compilers): son un conjunto de programas que permiten la traducción de los lenguajes de alto
nivel que generalmente acompañan al equipo, al lenguaje de esa máquina o sea su juego de instrucciones. Hay
tantos compiladores como lenguajes haya disponibles. Se construyen a medida para cada S.O. y por ello se los
denominan programas utilitarios.
Hay dos tipos de compiladores:
1. los rápidos y sucios, que producen un programa objeto en un código poco eficiente;
2. los optimizadores que generan un código de máquina de alta calidad y eficientizados, aunque son algo más
lentos.
• Interpretes: Son traductores de instrucción de programa fuente a instrucción del lenguaje de máquina y no
producen programas objetos evitando con ello el ensamblado o la compilación y su correspondiente ahorro de
tiempo.
• Editores de Enlaces (Linkeditors): Son programas que permiten crear un programa ejecutable resolviendo las
referencias de objetos del código objeto (salida del compilador) mediante direcciones definitivas a los objetos
reubicables. También incorporan en el programa ejecutable las rutinas de bibliotecas (library) necesarias para su
ejecución.
En general a estos programas (compiladores y editores de enlaces) se suelen englobar como programas traductores ya que se
ocupan de traducir lenguajes o vinculaciones.
• Debuggers (Depuradores): son programas que permiten encontrar y depurar fácilmente errores en otros
programas.
D1.3.1.MODELOS BÁSICOS
Dado un universo u del cual tomamos un objeto o y construimos un modelo del objeto que representará a ese objeto
ya sea para estudiarlo o entenderlo. Para ello se seleccionan un conjunto de parámetros que caracterizará el objeto en
el modelo. La base de ésta construcción es la observación y la relación entre el objeto y su modelo lo definen la
cantidad de parámetros distintos que se usan en la abstracción, tal como se ve en la Fig. D1.04.
Consideramos a esta abstracción y sus parámetros como datos del objeto. Por otro lado el ser humano le asigna un
significado a dicho modelo. A esto lo llamaremos información y si hace una elaboración estructural y conceptual,
creando las adecuadas sinápsis en su cerebro, lo llamaremos conocimiento. Diferenciamos un aprendizaje del
conocimiento porque el aprendizaje surge de las modificaciones que se realizan sobre los esquemas previos que se
posee almacenado en el cerebro como mapas mentales.
Tanto los datos, como la información y el conocimiento involucran un conjunto de procesos característicos de cada
uno de ellos.
Los modelos están compuestos por entidades o elementos que tienen una organización y una estructura de
objetivos. Además todo esto está integrado en un ambiente en el que dinámicamente se organizan, administran y
funcionan. Esta es la concepción de un sistema. Como vemos la base de los modelos son los datos, la información y
el conocimiento que el ser humano manipula en su ambiente o realidad. Por sobre los sistemas ubicamos a los
fenómenos (que son inexplicables).
Ambiente informaizado
EL FENOMENO Ambientes
Mundo Mundo
Elementos Físico Simbó-
Organización lico
LOS SISTEMAS
Objetivos
Mapas Mentales
u Observación + Modelos
u de Memoria
propiedades ENTIDADES
UNIVERSO
R{Relación}R
MODELO DEL
Elaboración Mundo Mundo
o OBJETO Interno
conceptual y Externo
Abstracción estructural
de la realidad Asignación
(observación) de significado Realidad Virtual
Representación y
Virtualización
(ARCHIVOS SINTETICOS
)
.VISIÓN
. SONIDOS
. TACTO
Datos Información Conocimiento
Generación Análisis Síntesis
Registro Interpretación Inferencia
Identificación Planeamiento Deducción
Procesos Clasificación Elaboración Comprensión
Operación Decisión Juicio
Comunicación Acción Relación
Almacenamiento Control Transformación
Evaluación Percepción
Fig. D1.04 Modelo explicativo de Dato, información, conocimiento y sus interrelaciones
Notas sobre Sistemas Operativos Evolución Histórica de los S.O. y programas de sistemas - Módulo Repaso – Parte D -
10
Los ambientes informatizados se deben a que el hombre convive en un mundo físico cotidiano y un mundo
simbólico (básicamente construido por esquemas, modelos y mapas). De esta forma construye su realidad. Esta
realidad se establece entre el mundo externo y el mundo interno (conocimientos, abstracciones, mapas mentales,
razonamientos, etc.). Entre estos dos mundos, el ser humano, maneja o manipula un conjunto de archivos sintéticos,
altamente virtualizados, como ser archivos de visión, de sonidos, de tactos, de olfatos y de gustos. Con ello construye
y procesa su realidad que es virtual. El futuro pasa por el procesamiento de éstos archivos. El estudio de lo virtual se
denomina Realidad Virtual.
Las técnicas de la Realidad Virtual (RV) son técnicas de presentación de lo virtual que está latente en lo real, sin
contradicciones.
Existen básicamente dos tipos de aplicaciones:
1. Las científicas y cognitivas ,
2. Las lúdicas o artísticas.
Lo virtual incluye tres conceptos:
1. La inmersión,
2. La interacción,
3. La navegación.
La inmersión a su vez se subdivide en dos tipos:
a) la inmersión física en la imagen por medio de cascos estereoscopicos o de láser retinados que provocan la
sensación de “haber penetrado en el ambiente virtual”, o sea, la imagen, y
b) la inmersión mental que consiste en estar dentro de la imagen mediante un proceso de pensamiento (espacio
tridimensional).
La interacción , generalmente en tiempo real con la imagen, permite manipularla, formarla y transformarla como si
fuera un elemento o materia prima de la naturaleza.
La navegación se refiere a las posibilidad de evolucionar, de encontrarse en “verdaderos universos virtuales” que son
creados por las redes de comunicaciones.
En la RV la virtualización se hace por medio de objetos matemáticos. El mundo se representa y manipula por
modelos matemáticos como ser económicos, financieros, sociológicos, modelos de guerras, etc.
Gracias a la capacidad pseudoreal de la imagen virtual, el mundo matematizado se convertirá en un lugar accesible
para un gran número de personas, a partir de la cual se actuará sobre el mundo real, influenciándolo o generando
reglas lógicas impredecibles e incontrolables a través de imágenes y nuevas normas de representación, es decir, que
se generará un nuevo código o sistema de escritura y aprendizaje, que el ser humano utilizará en el futuro como
representación de su realidad (la representación en el sentido del comentario, de la interpretación, de la presencia y
de su conocimiento) como fue el alfabeto en su oportunidad o anteriormente la oratoria.
En la virtualización un proceso importante es la simulación. La simulación permite simular diferentes niveles de
realidad y diferentes niveles de representaciones, tanto de lo sensible como de lo inteligible (a pesar de que en lo
filosófico estos dos se oponen y en lo virtual se enlazan). Toda sensación se basa en un modelo y toda sensación
recibida puede ser modelada, por lo que entra en el orden de lo inteligible y a todo modelo puede darse una
traducción sensible mediante la escritura numérica o su simulación (o sea imágenes). Imágenes y modelos son dos
caras de una misma realidad: una cara sensible y una cara inteligible.
Desde el punto de vista informático se presentan nuevos periféricos que conectados al computador proveerán las
interfases necesarias para manipular este nuevo lenguaje o código que dominará el conocimiento y el
comportamiento del ser humano en un futuro cercano.
La inteligencia es natural y una de las principales virtudes del ser humano.
A m b ie n te A M B IE N T E .
Ampliaremos el concepto de modelo de objeto presentado en la Fig. D1.04, dado que se usará en varias
oportunidades durante el desarrollo del presente texto.
Un Objeto es una entidad pasiva, conceptualmente similar a una instancia de un tipo de dato abstracto y es
persistente (una vez creado existe hasta que explícitamente se lo destruya).
En éste modelo el énfasis es colocado en caracterizar los componentes de un Sistema Abstracto o físico programado.
Los componentes, aunque sean pasivos, son llamados OBJETOS.
Propiedades :
Una vez creado el Objeto queda determinado por un conjunto de propiedades invariantes que son preservados por un
juego de operaciones que lo hacen manipulable y que, a su vez, determinan su comportamiento.
Los Objetos tienen cierta integridad que no deben ser violados de hecho.
Un objeto solamente puede cambiar de estado, comportarse, ser manipulado o estar en relación con otro objeto en
una apropiada forma.
Ya declarado, existen propiedades invariantes que caracterizan al Objeto y su comportamiento.
Generalmente los Objetos tienen, esencialmente, características de comportamiento comunes, por lo que conviene
definir un Juego de Operaciones simples, fundamentalmente parametrizados, que se pueden aplicar igualmente a
otros Objetos.
Definimos: Dos Objetos son del mismo tipo si tienen el mismo juego de operaciones.
Los Objetos que poseen una misma estructura y un comportamiento común se dice que pertenecen a la misma clase.
De esta forma vemos a cada objeto como una instancia de una clase particular.
creació n d el
In stalació n U so d el D estru cció n
o b jeto
d el
O b jeto d el O b jeto
O b jeto
DESTRUIR
CREAR USAR
INSTALAR
. D efin ir . In vocar
SE
. Iden tificar . In icializar . M an ipular
A C T UA LIZA LA
. E specificar . Probar . D esin vocar
IN FO RM A C IÓ N
. C odificar . E valuar
. Juego de O peracion es . A justar
Fig. D1.06 Vivencia de un objeto en el tiempo
S O F T W A R E S O F T W A R E
A P L IC A C IO N S IS T E M A
S O F T W A R E d e c o n tro l
d e c o m u n ic a c io n e s
S O F T W A R E
A d m in is tr a c ió n
B A S E D A T O S
S O F T W A R E
B A S E
S IS T E M A U T IL IT A R IO S
O P E R A T IV O
Monitor Compiladores
Job Scheduler Debuggers
Process Scheduler Profilers
I/O System Versión control
Reloj tiempo real Editores
etc. etc.
Fig. D1 .07 Distintos tipos de software de un computador
El S.O. vincula el espacio de direccionamiento de los procesos en la Memoria central con la máquina real en el
momento de ejecución. Esto es la ubicación de dichas instrucciones en la memoria física realizadas por hardware en
Notas sobre Sistemas Operativos Evolución Histórica de los S.O. y programas de sistemas - Módulo Repaso – Parte D -
14
la mayoría de los casos. La ejecución significa que se suceden los procesos del usuario cada cambio. Este cambio de
contexto se efectúa por "sincronización" o por "códigos puros" (pure code) es decir, que no se modifican a sí
mismos.
P R O C E S S
C r e a d o p o r e l S .O .
J O B S T E P S
P ro c e s s
J O B
U S E R
J o b S T E P S P ro c e s s
E s p e c ific a d o P R O C E S S
cread o p or el U ser
(d ir . sim b ó lic a s)
E s p a c io d e D ire c c io n a m ie n to
C P U O p e ra c io n e s
P ro c e s o
I/O
S .O . P G R D a ta S T A C K H e a p
e tc .
D ir e c c io n e s sim b ó lic a s (m c )
Fig. D1.08 Representación de los pasos desde Trabajo a Procesos y su espacio de direccionamiento
Resumiendo:
usuario (user): Es aquel que somete un trabajo (Job) a un sistema de cómputos.
trabajo (Job): Conjunto de programas y datos sometidos al Sistema Operativo.
paso de trabajo (Job Steps): Unidad del Job que debe ejecutarse en forma secuencial mediante una serie de procesos o tareas.
proceso o tarea (Process or Task): Sucesión de operaciones que se ejecutan secuencialmente en el tiempo (luego se ampliará
este concepto).
Operación
Datos de Reglas Datos de
entrada salida
Una vez iniciada una operación debe terminar en un período de tiempo determinado. La
salida debe ser función únicamente de los datos de entrada y no del tiempo de ejecución.
Figura D1.09 Esquema de procesamiento de datos.
Sincronización: Ordenamiento expreso en el tiempo de eventos u operaciones entre procesos o entre procesos y el
S.O.
Multiprocesamiento: significa que se usan varios procesadores para ejecutar los programas.
1. El computador Pensante por Bertram Raphael. Editorial: Cátedra, colección teorema serie Mayor (!976)
2. Puede Pensar una Máquina por Alan M Turing. Editoprial Sudamericana (Bs. As.) (1958)
3. Perspectivas de la Revolución de los Computadores por: H. Aiken, Ch. Babbage, J. von Neumann, C.E. Shannon,
A. M. Turing,, et all. Editorial: Alianza Editorial Madrid. (1975)
4. Teoría de la Información y codificación por N. Abramson Editorial Paraninfo - Madrid (1961)
5. Philosophy and Artificial Inteligence por Moody, Prentice Hall - 1993 - 175 pages
6. Computing Fundamentals Concepts 3th Edition - W.S. Davis - Addisin Wesley - 1991- 244Pages
7. History of Programming Language - T.J. Bergin Editor - Addison Wesley - ACM Press 1996- 864 Pages.
8. Virtual Reality System - J. Wince - Addison Wesley - 1995 - 384 Pages.
9. Sensation and Perseption 4th. Edition- Matlin M.W. & Foley H.J. - Prentice Hall - 1996 - 560 Pages.