Generacion de Sistemas Operativos y Ruby

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 5

Primera Generacin (1945-1955):

La lgica o software de los ordenadores se ha complicado conforme han evolucionado stos.


Los primeros ordenadores, a partir de 1944 en que Aiken construy el Mark-I, slo podan
programarse en lenguaje mquina, y puede decirse que el Sistema Operativo an no exista.
J. V. Neumann fue quien dio el primer paso en la informtica y en las relaciones hombremquina con el concepto de programa almacenado, que consiste en archivar en el ordenador
un conjunto de instrucciones mquina para posteriormente ejecutarlas. La aparicin del
Assembler, lenguaje nemotcnico-simblico, constituy un gran avance sobre la primitiva
programacin en cdigo mquina. La forma de explotar los sistemas ha ido evolucionando con
el tiempo; los ms sencillos funcionaban con monoprogramacin. Monoprogramacin o
monoejecucin es el sistema de explotacin en el que se ejecuta solamente un programa
cada vez y no comienza la ejecucin de otro hasta terminar con el anterior.
En 1948, con Noam Chomsky, surge la teora de las gramticas generativas
transformacionales, que es la base de los traductores de lenguajes. En 1955 comenz el
desarrollo de los lenguajes de alto nivel, y al mismo tiempo se empez a dividir el trabajo entre
personas: operadores y programadores. Las funciones del operador tenan ms directamente
que ver con la administracin y control de los recursos del Sistema Operativo y la carga de
trabajos, y las de los programadores con la codificacin de los programas.
El monitor es el programa antepasado del Sistema Operativo. Abarca funciones muy
elementales, como visualizar y modificar los contenidos de la memoria principal, el
lanzamiento automtico para la ejecucin de un programa, la introduccin de puntos de
ruptura en los programas para puesta a punto, etc. Gracias al monitor apareci el concepto de
secuencia automtica de trabajos.
Actualmente, al estar superado el concepto de monoprogramacin, es frecuente que
tengamos que familiarizarnos con los conceptos de multiprogramacin, tiempo compartido,
multiproceso y tiempo real.
Segunda Generacin (1955-1965):
Multiprocesamiento : Durante la segunda generacin , al menos un proveedor ofreca un
sistema de multiprocesamiento, que era un sistema de computo que tena ms de una unidad
central de proceso. En realidad el sistema consista en dos computadoras completas; las
computadora ms pequea tena un sistema operativo y controlaba ambas mquinas. La
computadora ms grande era esclava de la ms pequea. La computadora pequea
procesaba la entrada de informacin y ordenaba e imprima toda la salida utilizando todos los
discos como entrada de almacenamiento temporal. Un sistema operativo ubicado en la
computadora ms grande indicaba a la mquina de control que necesitaba servicio.
Sistemas en lnea :Los primeros sistemas en lneas presentaban programas de sistema
operativo diseados especialmente para controlar los recursos de la computadora. Los

programas de aplicacin de un sistema en linea expresan la lgica de aplicacin y los


llamados mediante programas de sistemas.
El supervisor de un sistema en lnea establece una serie de colas y programa el servicio.
Primero se arma un mensaje de entrada en un buffer de comunicaciones; puede cambiarse el
cdigo de este mensaje y trasladarse a una cola de entrada en la memoria mediante un
programa de aplicacin. El sistema operativo registra este mensaje en la cola de mensajes a
procesarse.
Cuando la unidad central de proceso esta disponible el supervisor le ordena que atienda una
cola, por ejemplo la que contiene un mensaje de entrada. Un programa de aplicacin llamado
mediante el sistema operativo puede verificar la correccin del mensaje, despus de lo cual el
mensaje se coloca en una cola de trabajo.
El nacimiento del tiempo compartido : Los primeros sistemas de negocios tambin estaban
utilizando sistemas operativos para sus equipos de segunda generacin. Cuando fue
anunciada la tercera generacin de computadoras los fabricantes claramente haban abrazado
la idea de un sistema operativo. La lnea 360 de la IBM no poda funcionar sin la ayuda de tal
sistema operativo maneja toda la entrada/salida por medio de interrupciones. De hecho
existen interrupciones especiales que la computadora solo puede ejecutar cuando est en
estado supervisor, bajo el control de los sistemas operativos.
Esta generacin se caracteriza por la utilizacin de la tecnologa que
incluye transistores. Estos proporcionan mejores caractersticas que los tubos al vaco: son
ms pequeos, disipan menos calor y son ms rpidos.
En esta poca, ya no hay un solo grupo que se dedica a disear, construir, operar y mantener
el sistema computacional, sino que la mantencin la realizan otras personas. La
programacin, en este perodo se ve apoyada por la creacin de lenguajes
ensambladores ylenguajes de alto nivel; como Fortran y Cobol .
Para optimizar el tiempo de utilizacin del sistema computacional, se adopt
el Procesamiento por Lotes. Este procedimiento se puede resumir en los siguientes pasos:

Varios trabajos son ledos desde tarjetas perforadas y almacenados en cinta

El computador ejecuta programas que lee de una cinta y escribe los resultados en
otra cinta.

Los resultados escritos en la cinta son desplegados a travs de la impresora.


Como consecuencia de la utilizacin de tecnologa de mejores caractersticas, el
procesamiento por lotes, la utilizacin de un operador de sistema y un sistema operativo
primitivo se logr minimizar el tiempo ocioso de los computadores.
Tercera Generacin (1965-1980):

Multisistemas : El estudio del hardware se menciona el desarrollo de los canales de datos


para absorber algo de carga de E/S de la CPU. Sin embargo, todava exista un equilibrio
entre la UCP y la E/S an con la ayuda de los canales en la mayor parte de los sistemas
comerciales que tienen mucha actividad de E/S se puede tener la UCP ociosa ms del 50%
del tiempo principalmente debido a la espera de la terminacin de operaciones de
entrada/salida.
Los sistemas operativos en batch de la tercera generacin introdujeron el concepto de
multiprogramacin, proceso muy similar a las tcnicas de sacar y meter programas
desarrollados para el tiempo compartido. En la multiprogramacin hay ms de un programa
semiactivo en la memoria a la vez. La multiprogramacin intenta ocultar retrasos de E/S
cambiando a UCP a otro programa cuando no puede procesar por ms tiempo el que estaba
procesando, debido a un solicitud de E/S.
La multiprogramacin ha ayudado a incrementar la productividad, o sea el nmero de trabajos
por unidad de tiempo. Sin embargo, puede tomar ms tiempo correr un solo trabajo bajo
multiprogramacin que bajo un procesador unitario, a causa de las interrupciones.
No debe confundirse la multiprogramacin con el multiprocesamiento. En un sistema de
multiprogramacin, la unidad central de procesamiento ejecuta solamente un programa a la
vez. Varios programas estn presentes en la memoria en un estado semiactivo; su ejecucin
ha sido suspendida temporalmente. Algunos sistemas de la tercera generacin tambin
presentan el multiprocesamiento, o sea la presencia de ms de una unidad central de
proceso. Estos procesadores estn controlados por el sistema operativo y, por supuesto, son
multiprogramados ya que por lo menos existe el potencial para ejecutar un programa en cada
procesador al mismo tiempo. Estos sistemas multiprocesadores con atractivos en un ambiente
de fuerte actividad computacional o como respaldo. Varios sistemas de tiempo compartido, por
ejemplo, utilizan el multiprocesamiento.
Sistemas en lnea : Durante la tercera generacin, los sistemas operativos vinieron con ms
mdulos para facilitar el desarrollo de los sistemas en lnea, especialmente para respaldar el
procesamiento de terminales y telecomunicaciones. Los sistemas estaban diseados para
apoyar una mezcla de procesamiento batch y consultas en lnea.
Tiempo compartido: Durante la tercera generacin, el proyecto MAC del MIT desarroll
tambin un nuevo sistema de tiempo compartido llamado MULTICS. Este sistema presenta
una importante innovacin que influy en los sistemas de cmputo posteriores. Un objetivo del
MULTICS era proporcionar al programador la apariencia de una memoria real. La memoria
virtual puede producirse combinando la segmentacin y la paginacin enfoque que tambin
facilita el desarrollo de los procedimientos re-entrantes. Bsicamente, un programa y sus
datos se dividen en pginas. Solamente se cargan en un momento dado, las pginas
necesarias en el almacenamiento primario; las otras pginas se mantienen en dispositivos de
almacenamiento secundario.
La tecnologa utilizada en este perodo corresponde a la de circuitos integrados, lo cual
permiti construir mquinas ms baratas y con mejor rendimiento. La empresa IBM fue la
primera en utilizar esta tecnologa.

Una de las principales caractersticas de los sistemas operativos de hoy, que aparecen en esta
generacin es la Multiprogramacin. Esta tcnica consiste en particionar la memoria de
manera de contener simultneamente muchos trabajos, lo que permite independencia en las
acciones de la mquina. Por ejemplo, si un trabajo est esperando por Entrada/Salida, otro
trabajo puede estar utilizando la CPU. Con la utilizacin de la multiprogramacin, se mejora el
tiempo de utilizacin de la CPU, pero se crean problemas de proteccin y seguridad, debido al
particionamiento de la memoria.
Otra caracterstica importante de los sistemas operativos de esta generacin es la aparicin
de la tcnica de Spooling (Operacin simultnea y en lnea de perifricos ). Esta consiste en
la capacidad de leer los trabajos de cinta al disco, haciendo posible que a medida que hubiera
espacio en memoria se poda pasar al siguiente trabajo. De esta manera las operaciones de
perifricos se realizan en paralelo con la utilizacin de la CPU.
Durante esta generacin aparecen los primeros sistemas de Tiempo compartido, esto
consiste en que se le asigna a cada trabajo un tiempo fijo de utilizacin de CPU, este perodo
de tiempo (denominado time slot) es pequeo, pues el uso de tiempo compartido tiene como
objetivo manejar a distintos usuarios mediante terminales que tengan la ilusin de estar
ocupando la mquina como si fueran nicos. El primer sistema operativo importante de tiempo
compartido es el (CTSS) y fue desarrollado en MIT (Massachusetts Institute of
Technology).
Otros de los sistemas que surgi en este periodo es MULTICS, el que sirvi de base para el
desarrollo del sistema UNIX.
RUBY
Ruby es un lenguaje de programacin interpretado, reflexivo y orientado a objetos, creado por
el programador japons Yukihiro "Matz" Matsumoto, quien comenz a trabajar en Ruby
en 1993, y lo present pblicamente en 1995. Combina una sintaxis inspirada
en Python yPerl con caractersticas de programacin orientada a objetos similares a Smalltalk.
Comparte tambin funcionalidad con otros lenguajes de programacin
como Lisp, Lua, Dylan y CLU. Ruby es un lenguaje de programacin interpretado en una sola
pasada y su implementacin oficial es distribuida bajo una licencia de software libre.

Historia[editar]
El lenguaje fue creado por Yukihiro "Matz" Matsumoto, quien empez a trabajar en Ruby el 24
de febrero de 1993, y lo present al pblico en el ao 1995. En el crculo de amigos de
Matsumoto se le puso el nombre de "Ruby" (en espaol rub) como broma aludiendo al
lenguaje de programacin "Perl" (perla). La ltima versin estable de la rama 1.8 es la
1.8.7_p248, de la rama 1.9 es la 1.9.2_p180 . La versin en 1.9 que incorpora mejoras
sustanciales en el rendimiento del lenguaje, que se espera queden reflejadas en la prxima
versin estable de produccin del lenguaje, Ruby 1.9.0.1 Diferencias en rendimiento entre la
actual implementacin de Ruby (1.8.6) y otros lenguajes de programacin ms arraigados han

llevado al desarrollo de varias mquinas virtuales para Ruby. Entre sas se encuentra JRuby,
un intento de llevar Ruby a la plataforma Java, y Rubinius, un intrprete modelado basado en
las mquinas virtuales de Smalltalk. Los principales desarrolladores han apoyado la mquina
virtual proporcionada por el proyecto YARV, que se fusion en el rbol de cdigo fuente de
Ruby el31 de diciembre de 2006, y se dio a conocer como Ruby 1.9

Objetivo[editar]
El creador del lenguaje, Yukihiro "Matz" Matsumoto, ha dicho que Ruby est diseado para la
productividad y la diversin del desarrollador, siguiendo los principios de una buena interfaz de
usuario.1 Sostiene que el diseo de sistemas necesita enfatizar las necesidades humanas ms
que las de la mquina:2
A menudo la gente, especialmente los ingenieros en computacin, se centran en las mquinas. Ellos
piensan, "Haciendo esto, la mquina funcionar ms rpido. Haciendo esto, la mquina funcionar de
manera ms eficiente. Haciendo esto..." Estn centrados en las mquinas, pero en realidad necesitamos
centrarnos en las personas, en cmo hacen programas o cmo manejan las aplicaciones en los
ordenadores. Nosotros somos los jefes. Ellos son los esclavos.

Ruby sigue el "principio de la menor sorpresa", lo que significa que el lenguaje debe
comportarse de tal manera que minimice la confusin de los usuarios experimentados. Matz
ha dicho que su principal objetivo era hacer un lenguaje que le divirtiera a l mismo,
minimizando el trabajo de programacin y la posible confusin. l ha dicho que no ha aplicado
el principio de menor sorpresa al diseo de Ruby,3 pero sin embargo la frase se ha asociado al
lenguaje de programacin Ruby. La frase en s misma ha sido fuente de controversia, ya que
los no iniciados pueden tomarla como que las caractersticas de Ruby intentan ser similares a
las caractersticas de otros lenguajes conocidos. En mayo de 2005 en una discusin en el
grupo de noticias comp.lang.ruby, Matz trat de distanciar Ruby de la mencionada filosofa,
explicando que cualquier eleccin de diseo ser sorprendente para alguien, y que l usa un
estndar personal de evaluacin de la sorpresa. Si ese estndar personal se mantiene
consistente habr pocas sorpresas para aquellos familiarizados con el estndar.[1]
Matz lo defini de esta manera en una entrevista [2]:
Todo el mundo tiene un pasado personal. Alguien puede venir de Python, otro de Perl, y pueden verse
sorprendidos por distintos aspectos del lenguaje. Entonces podran decir 'Estoy sorprendido por esta
caracterstica del lenguaje, as que Ruby viola el principio de la menor sorpresa.' Espera, espera. El
principio de la menor sorpresa no es slo para ti. El principio de la menor sorpresa significa el principio
de 'mi' menor sorpresa. Y significa el principio de la menor sorpresa despus de que aprendes bien
Ruby. Por ejemplo, fui programador de C++ antes de empezar a disear Ruby. Program
exclusivamente en C++ durante dos o tres aos. Y despus de dos aos de programar en C++, todava
me sorprenda.

También podría gustarte