1. 1.HISTORIA DE LA COMPUTADORA (1ª GENERACION, 2ª GENERACION, 3ª GENERACION, 4ª GENERACION,
5ª GENERACION)
-Primera Generación (1938-1958)
En esta época las computadoras funcionaban con válvulas, usaban tarjetas perforadas para entrar los datos
y los programas, utilizaban cilindros magnéticos para almacenar información e instrucciones internas y se
utilizaban exclusivamente en el ámbito científico o militar. La programación implicaba la modificación
directa de los cartuchos y eran sumamente grandes, utilizaban gran cantidad de electricidad, generaban
gran cantidad de calor y eran sumamente lentas.
Segunda Generación (1958-1963)
Características de ésta generación: Usaban transistores para procesar información. Los transistores eran
más rápidos, pequeños y más confiables que los tubos al vacío. 200 transistores podían acomodarse en la
misma cantidad de espacio que un tubo al vacío. Usaban pequeños anillos magnéticos para almacenar
información e instrucciones. Producían gran cantidad de calor y eran sumamente lentas. Se mejoraron los
programas de computadoras que fueron desarrollados durante la primera generación. Se desarrollaron
nuevos lenguajes de programación como COBOL y FORTRAN, los cuales eran comercialmente accesibles. Se
usaban en aplicaciones de sistemas de reservaciones de líneas aéreas, control del tráfico aéreo y
simulaciones de propósito general. La marina de los Estados Unidos desarrolla el primer simulador de vuelo,
Computadora Whirlwind Surgieron las minicomputadoras y los terminales a distancia. Se comenzó a
disminuir el tamaño de las computadoras. Aparecen muchas compañías y las computadoras eran bastante
avanzadas para su época como la serie 5000 de Burroughs y la ATLAS de la Universidad de Manchester.
Algunas computadoras se programaban con cintas perforadas y otras por medio de cableado en un tablero.
Tercera Generación (1964-1970)
Comienza a utilizarse los circuitos integrados, lo cual permitió abaratar costos al tiempo que se aumentaba
la capacidad de procesamiento y se reducía el tamaño de las máquinas. La tercera generación de
computadoras emergió con el desarrollo de circuitos integrados (pastillas de silicio) en las que se colocan
miles de componentes electrónicos en una integración en miniatura. El PDP-8 de la Digital
EquipmentCorporation fue el primer miniordenador.
Cuarta Generación (1971-1983)
Fase caracterizada por la integración de los componentes electrónicos, lo que propició la aparición del
microprocesador, es decir, un único circuito integrado en el que se reúnen los elementos básicos de la
máquina. Se desarrolló el microprocesador. Se colocan más circuitos dentro de un "chip". "LSI - Large Scale
Integration circuit"."VLSI - Very Large Scale Integration circuit".Cada "chip" puede hacer diferentes tareas.
Un "chip" sencillo actualmente contiene la unidad de control y la unidad de aritmética/lógica. El tercer
componente, la memoria primaria, es operado por otros "chips". Se reemplaza la memoria de anillos
magnéticos por la memoria de "chips" de silicio. Se desarrollan las microcomputadoras, o sea,
computadoras personales o PC. Se desarrollan las supercomputadoras.
Características de está generación: Se desarrollaron circuitos integrados para procesar información. Se
desarrollaron los "chips" para almacenar y procesar la información. Un "chip" es una pieza de silicio que
contiene los componentes electrónicos en miniatura llamados semiconductores. Los circuitos integrados
recuerdan los datos, ya que almacenan la información como cargas eléctricas. Surge la multiprogramación.
Las computadoras pueden llevar a cabo ambas tareas de procesamiento o análisis matemáticos. Emerge la
industria del "software". Se desarrollan las minicomputadoras IBM 360 y DEC PDP-1. Otra vez las
2. computadoras se tornan más pequeñas, más ligeras y más eficientes. Consumían menos electricidad, por lo
tanto, generaban menos calor.
Quinta Generación (1984 -1999)
Surge la PC tal cual como la conocemos en la actualidad. IBM presenta su primera computadora personal y
revoluciona el sector informativo. En vista de la acelerada marcha de la microelectrónica, la sociedad
industrial se ha dado a la tarea de poner también a esa altura el desarrollo del software y los sistemas con
que se manejan las computadoras.
Sexta Generación (1999 hasta la fecha)
Como supuestamente la sexta generación de computadoras está en marcha desde principios de los años
noventas, debemos por lo menos, esbozar las características que deben tener las computadoras de esta
generación. También se mencionan algunos de los avances tecnológicos de la última década del siglo XX y lo
que se espera lograr en el siglo XXI. Las computadoras de esta generación cuentan con arquitecturas
combinadas Paralelo / Vectorial, con cientos de microprocesadores vectoriales trabajando al mismo tiempo;
se han creado computadoras capaces de realizar más de un millón de millones de operaciones aritméticas
de punto flotante por segundo (teraflops); las redes de área mundial (Wide Area Network, WAN) seguirán
creciendo desorbitadamente utilizando medios de comunicación a través de fibras ópticas y satélites, con
anchos de banda impresionantes. Las tecnologías de esta generación ya han sido desarrolladas o están en
ese proceso. Algunas de ellas son: inteligencia / artificial distribuida; teoría del caos, sistemas difusos,
holografía, transistores ópticos, etc.
2. Software: Se conoce como software1 al equipamiento lógico o soporte lógico de un sistema informático,
que comprende el conjunto de los componentes lógicos necesarios que hacen posible la realización de
tareas específicas, en contraposición a los componentes físicos que son llamados hardware.
3.Un sistema operativo (SO, frecuentemente OS, del inglés OperatingSystem) es un programa o conjunto de
programas que en un sistema informático gestiona los recursos de hardware y provee servicios a los
programas de aplicación, ejecutándose en modo privilegiado respecto de los restantes.-La función de un
Sistema Operativo es administrar Todos los procesos, programas, recursos del hardware de un sistema.
5. EVOLUCION DE LOS SISTEMAS OPERATIVOS
-Primera etapa: Procesamiento en serie. En un principio no existían sistemas operativos, programándose
sobre el hardware básico. Los programas se escribían en lenguaje máquina, y se introducían en el
ordenador, junto a los datos, en octal o hexadecimal mediante una consola con interruptores manuales. Se
iniciaban los programas cargando el registro contador de programa con la dirección de memoria de la
primera instrucción del programa. Los resultados de la ejecución se obtenían examinando el contenido de
los registros y posiciones de memoria relevantes. Los dispositivos de E/S se controlaban directamente,
escribiendo y leyendo en los puertos de E/S. Evidentemente la programación del hardware básico resulta
baja en productividad, tanto para los usuarios, como para la máquina. El proceso largo y tedioso de la
introducción de programas y datos excluye prácticamente la ejecución de programas medios y grandes. El
mecanismo de desarrollo de programas sigue siendo engorroso. En una secuencia típica, se carga el
programa editor para preparar el código fuente del programa de usuario. El siguiente paso es cargar y
ejecutar el traductor, y alimentarlo con el código fuente del programa de usuario. Los traductores de paso
múltiple pueden requerir que se vuelva a poner el código fuente durante cada paso para leerlo. Una vez
corregido sintácticamente el programa se ejecuta el código objeto. Si se detectan errores en la ejecución, se
3. puede examinar y modificar el contenido de la máquina mediante los interruptores de la consola, o con la
ayuda de un programa denominado depurador.
La mayoría de los programas utilizaban dispositivos de E/S. Una mejora lógica fue el proporcionar unas
rutinas estándares de E/S que fueran usadas por todos los programas. Al principio, las rutinas de E/S se
introducían con las demás tarjetas del programa de usuario. Posteriormente, se guardaba en memoria las
rutinas compiladas, y mediante un programa enlazador se combinaban con el código objeto del usuario.
Segunda etapa: Procesamiento por lotes. Hasta ahora la utilización del procesador es muy baja, pues el
tiempo empleado en leer un programa almacenado en tarjetas suele ser mucho mayor que el empleado en
ejecutar el programa. Cuando aparecieron las cintas magnéticas, cuya lectura y escritura era muy inferior en
tiempo a las tarjetas, se pensó que se utilizaría más el procesador si todas las entradas y salidas se
realizaban sobre cintas. Para realizar esto se utilizó una técnica de off-lining (fuera de línea). La idea era
dedicar un ordenador periférico, de menor costo y potencia, a convertir las tarjetas o la cinta perforada en
información sobre cinta magnética, y la salida sobre cinta magnética en salida sobre impresora o cinta
perforada. Una vez que se procesaban varios trabajos a cinta, ésta se desmontaba del ordenador periférico,
y se llevaba a mano para su procesamiento por el ordenador principal. Cuando el ordenador principal
llenaba una cinta de salida, ésta se llevaba al ordenador periférico para su paso a impresora o cinta
perforada. Una de las implicaciones de esta forma de trabajo era que en una cinta de entrada podían existir
los trabajos de varios programadores. Para diferenciar los trabajos (o tareas) de distintos programadores se
introducían tarjetas de control que interpretaba un sistema operativo embrionario. Así, por ejemplo, un
trabajo podía empezar con una tarjeta $JOB de comienzo, con un identificativo del programador. Después
una tarjeta $FORTRAN para indicarle al sistema operativo que cargue el compilador de FORTRAN de una
cinta del sistema. A continuación vendrían las tarjeta del código fuente. Una tarjeta $LOAD para que se
cargue en memoria el programa compilado (pues usualmente se guardaba en cinta). La tarjeta $RUN
indicaba que se ejecutara el programa con los datos que vienen en las tarjetas siguientes. Por fin, una tarjeta
$END indicaba el fin del trabajo. El sistema operativo residía en memoria y tenía un programa de control que
interpretaba las tarjetas de control, las cuales representaban un lenguaje de control de tareas. Dependiendo
del tipo de tarjeta de control el sistema operativo realizaba una acción determinada. Este programa de
control es un antecedente de los modernos intérpretes de órdenes. De cara a eliminar la dependencia de las
E/S en lugar de tan sólo reducirla, hay que emplear técnicas mediante las cuales se puedan superponer las
E/S al proceso a ejecutar. Ello es posible con la ayuda de dos elementos del hardware: el canal y la
interrupción. Un canal es un elemento que controla uno o más dispositivos, llevando a cabo transferencias
de datos entre estos dispositivos y la memoria sin involucrar prácticamente al procesador central. Una
interrupción es una señal que transfiere el control del procesador central a una posición fija de memoria,
almacenando al mismo tiempo el valor anterior del contador de programa, y, posiblemente, la palabra de
estado del procesador. De esta forma, se suspende temporalmente la ejecución del programa que estaba
siendo llevado a cabo en el momento de la interrupción, aunque podrá reemprenderse dicha ejecución más
tarde (o sea, el programa es interrumpido). Una interrupción de un canal actúa como señal que indica que
se ha completado una transferencia de datos. De esta forma es posible que el procesador central inicie una
transferencia a un dispositivo, continúe el proceso que estaba llevando a cabo mientras el canal controla la
transmisión y reciba a través de una interrupción la notificación de haberse completado dicha transferencia.
4. Tercera etapa: Multiprogramación y tiempo compartido. La principal desventaja de un sistema de cola única
es la total dedicación de la máquina a la ejecución de una sóla tarea, no importa lo larga o lo corta que sea.
Este inconveniente puede superarse mediante la multiprogramación, o sea, la ejecución simultánea de
varios programas que residen en la memoria principal, dividiendo el procesador central su tiempo entre
ellos de acuerdo con los recursos (tal como canales o dispositivos) que necesite en cada momento cada uno
de ellos. De esta forma es posible, teniendo almacenado un conjunto adecuado de tareas en cada momento,
obtener una utilización óptima de los recursos disponibles. Ello incluye la utilización del procesador central,
ya que en tanto que una tarea esté esperando el final de una transferencia de E/S, este procesador puede
pasar a trabajar en alguna otra tarea que esté pendiente en la máquina. La carga que recae sobre el sistema
operativo consiste en el control de los recursos, así como la protección de cada tarea frente a las actividades
de las otras. Un sistema operativo de este tipo recibe el nombre de monitor de batch de varios flujos.
En el estadio actual de la progresión que hemos llevado a cabo tenemos un sistema notablemente
sofisticado que hace bastante buen uso de la electrónica disponible. Sin embargo, desde el punto de vista
del usuario el sistema adolece de falta de interactividad, tan necesaria en el proceso de desarrollo de
programas, y útil también para desarrollar programas interactivos que respondan instantáneamente a las
peticiones del usuario. Para hacer posible esta interacción, el sistema de batch de varios flujos debe
modificarse con el fin de que pueda adquirir la información que le suministren los usuarios desde los
respectivos terminales: es decir, debe convertirse en un sistema multiusuario. Un sistema de este tipo, en el
cual existen varios usuarios con un terminal en línea (usuarios interactivos), se llama sistema de tiempo
compartido. En estos sistemas se divide el tiempo del procesador central, y de los demás recursos del
ordenador, de forma que cada usuario tiene la ilusión de que todo el ordenador se le dedica exclusivamente
a él, al recibir unos tiempos de respuesta aceptables.
Cuarta etapa: redes de ordenadores. En una red de ordenadores se tiene una configuración de varios
ordenadores conectados físicamente. Los ordenadores de una red pueden tener sistemas operativos de red
o sistemas operativos distribuidos. En un sistema operativo de red los usuarios son conscientes de la
existencia de varios ordenadores, y pueden conectarse con máquinas remotas para, por ejemplo, copiar
ficheros. Cada máquina ejecuta su propio sistema operativo local y tiene su propio usuario (o grupo de
usuarios). Los sistemas operativos de red no difieren de los sistemas operativos tradicionales de un sólo
procesador. Necesitan un controlador de red, algunas rutinas de E/S para utilizar dicho controlador, y
programas que permitan la conexión y el acceso a ordenadores remotos, pero esas características
adicionales no modifican la estructura esencial del sistema operativo.