Debe introducir al menos 3 caracteres en el buscador.
Inicio / Wikis / Cursos gratis / Manual de Programación en OS/2 - Historia de los sistemas operativos multitarea

Manual de Programación en OS/2 - Historia de los sistemas operativos multitarea

 ----- 
Creative Commons Curso gratis de Supertutoriales - 24 de Agosto de 2005
Temas Relacionados: OS/2
1. Historia de los sistemas operativos multitarea
Cuando aparecieron los primeros ordenadores, la programación de estos era hecha íntegramente en código máquina, lo cual resultaba una tarea extremadamente pesada: cada vez que se escribía un nuevo programa, además de escribir el algoritmo adecuado era preciso añadir todo el código necesario para que el ordenador pudiese leer datos desde una cinta perforada, imprimir en un teletipo, etc. Dado que, en general, todas estas rutinas eran exactamente iguales para todos los programas que se hacían, pronto los programadores de aquellas máquinas aprendieron a organizarlas en bibliotecas de rutinas. Cada vez que había que escribir un nuevo programa, solo tenían que ir a su libreta y copiar las rutinas de Entrada/Salida que necesitaban, lo cual les simplificaba un poco el trabajo. Otro sistema era el que la propia empresa que fabricaba el ordenador incluyese un paquete de fichas perforadas con dichas rutinas, de modo que el programador solo tenía que coger las que le interesasen y añadirlas estratégicamente en su paquete.

El siguiente paso fue generalizar este conjunto de rutinas. La idea era incluir juntas todas las rutinas necesarias para acceder al hardware, y hacerlas accesibles a cualquier programador en forma de llamadas a subrutina. De este modo, cada vez que se hacía un programa no era preciso incluir en él todas esas rutinas. Había nacido el Sistema Operativo.

Los primeros 'Sistemas Operativos' (si es que podían recibir ese nombre) no eran más que un conjunto de subrutinas que ayudaban al programador, ofreciéndole servicios básicos como lectura de caracteres desde un teletipo, escritura en tambor, disco, etc.

Sin embargo, pronto se vio la necesidad de un nuevo enfoque. Los ordenadores eran caros, y su mantenimiento también, por lo que solo algunas grandes empresas y universidades podían disponer de ellos. Para amortizarlos, se alquilaba tiempo de proceso, de modo que se podía ir allí con un programa, ejecutarlo, y pagar por el tiempo que le llevase hacerlo al ordenador.

El primer problema que había era que se tardaba mucho en cargar cada programa. Cuando el ordenador terminaba de ejecutar uno, el operador tenía que insertar el siguiente, lo cual era una tarea bastante pesada y larga. Durante el tiempo que se hacía esto, el ordenador estaba totalmente inactivo, se estaba desperdiciando tiempo. Fue entonces cuando surgieron los sistemas de proceso por lotes (batch).

En los sistemas de proceso por lotes, los programas se almacenan en una cinta, todos seguidos. Cada vez que el ordenador terminaba de ejecutar un programa, leía el siguiente de dicha cinta. Si llegaba alguien con un programa, este se añadía a continuación del último que hubiese, mientras el ordenador iba ejecutando el que ya tenía en memoria. El coste de mantenimiento del nuevo sistema era ligeramente superior, pues había que añadir al sistema el lector de cintas en donde se escribían los programas; pero como podía ejecutar muchos más programas en el mismo tiempo (porque no se perdía parte de este en cargar los programas), el precio de alquiler bajó drásticamente, permitiendo que más gente tuviese acceso a los ordenadores.

Es en los sistemas de proceso por lotes donde empieza a aparecer realmente lo que hoy conocemos como Sistema Operativo: un programa principal que es el que va cargando los distintos programas desde la cinta, les cede el control de la CPU pero ofreciéndoles una serie de servicios de Entrada/Salida, y cuando terminan, recupera el control del ordenador.

Pronto los programadores se dieron cuenta de que había aún más tiempos muertos de los que parecía: si un ordenador tenía que leer algo de una cinta o una tarjeta con datos, como el sistema era mecánico tardaba mucho tiempo en encontrarlo (mucho tiempo de cara al ordenador, claro. Una décima de segundo es algo muy relativo). Así mismo, se empezaban a usar terminales para dar entrada de datos en tiempo real al ordenador, y el tiempo que éste esperaba a que el usuario pulsase cada tecla también era una eternidad. Entonces se empezó a pensar en los Sistemas Operativos multitarea.

La idea consistía en tener varios programas simultáneamente en memoria, si bien, como el ordenador es único, solo uno estaría activo en cada momento. Cuando dicho programa hace una operación de Entrada/Salida en la que se pierde tiempo de CPU (como leer una tarjeta, por ejemplo), mientras la mecánica realiza la operación de búsqueda y lectura, el ordenador conmuta al siguiente programa que tiene en memoria, el cual continuará ejecutándose hasta que haga una operación de Entrada/Salida. Cuando se llega al último, se vuelve a empezar. Para ese momento, la operación de Entrada/Salida pedida por el primer programa ya estará lista, con lo que podrá seguir su ejecución. De esta forma, hemos aprovechado un tiempo que antes perdíamos.

Finalmente, llegamos a los sistemas distribuidos. Generalmente, lo que tenemos es una red de ordenadores (por ejemplo, en una universidad es normal tener una gran cantidad de PC's) conectados entre sí. Si nos fijamos, normalmente solo unos cuantos están en uso en cada momento, y el resto simplemente se dedican a ejecutar un bonito salvapantallas, o peor aún, a realizar la estética función de caro pisapapeles. En otras palabras, estamos desperdiciando una vez más tiempo de proceso. Para solucionarlo, se han ideado los Sistemas Operativos distribuidos. Estos sistemas operativos son el siguiente paso en la evolución de los Sistemas Operativos multitarea.

La idea consiste en que en los Sistemas Operativos multitarea los programas suelen estar divididos en varios Threads o hilos de ejecución. Cada uno de estos Threads se puede ver como un programa absolutamente independiente de los demás, si bien, trabajando todos en conjunto forman el programa completo. Dado que cada Thread es independiente de los demás, nada impediría, en principio, que se ejecutase cada uno en un procesador diferente. Esa es la base de los Sistemas Operativos distribuidos: cada nuevo Thread es ejecutado en una máquina distinta, de modo que la potencia de cálculo se halla distribuida por toda la red. De esta forma, los equipos que estaban inactivos son aprovechados al máximo. Por desgracia, esta idea resulta extremadamente compleja de implementar, por lo que esta clase de Sistemas Operativos se encuentran todavía poco extendidos.
Autor y licencia de 'Manual de Programación en OS/2 - Historia de los sistemas operativos multitarea'
Supertutoriales Extraído de: http://www.publispain.com/supertutoriales

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.

Wikis relacionados con 'Manual de Programación en OS/2 - Historia de los sistemas operativos multitarea'

Este documento describe los conceptos clave y los pasos necesarios para instalar un segundo sistema operativo... Más »
El sistema operativo es la unidad lógica que hace de mediador entre el ordenador y... Más »
Hasta hace poco, para actualizar o probar la nueva versión de un sistema operativo era... Más »
El propósito de este articulo es de mostrarnos una amplia y precisa descripción de lo... Más »
Debian es el nombre de una organización dedicada al desarrollo y mantenimiento de sistemas operativos... Más »
Gente Wiki
Mario H. Martínez M.
Experto en implementaciones de meta4. Formador de profesionales técnicos y funcionales de meta4.
Cesar Edgardo
Lic. En economia y catedratico en ciencias sociales, origen: torreón coahuila,méxico. ,aficiones: multimedia,diseño,fotografia,video,musica.
Alejandrina Leal
Antropóloga social con una especialidad en igualdad de género. Mi formación profesional me permite realizar poyectos relacionados con el desarrollo...
Antropología
Alfredo De León
Docente universitario con especialidad en química y procesos ambientales. Educación y gestión medioambiental. Consultor.
Certificación de calidad medioambiental, Ecología,...
Javier Mejia
Trabajo en la universidad autonoma del caribe en el area de procesos técnicos, me gusta mucho mi trabajo y siempre...
Victor Manuel
Soy locutor de radio y television, trabajo en una institucion publica como relacionista publico, me encanta las comunicaciones.
Radios y televisiones públicas
Suscribirse
¿Estás seguro de que deseas eliminar este capítulo?