Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Identificar los componentes de los sistemas operativos, así como el objetivo, la función y las
características de diferentes sistemas operativos
Sin el software, una computadora solo es una masa metálica sin utilidad. Con el software, una
computadora puede almacenar, procesar y recuperar información, encontrar errores de ortografía en
manuscritos, tener aventuras e intervienen muchas otras valiosas actividades para ganar el sustento. El
software de computadoras puede clasificarse en general en 2 clases: los programas de sistemas que
controlan las operaciones de la computadora en sí y los programas de aplicación, los cuales resuelven
los problemas de los usuarios.
El programa fundamental de todos los programas es el sistema operativo (SO), que controla todos los
recursos de la computadora y proporciona los recursos por los cual pueden escribirse los programas de
aplicación.
Programa informático que se inicia al encender el procesador para coordinar su funcionamiento y permitir
la comunicación eficaz de la máquina con el usuario.
Un Sistema Operativo es un conjunto de programas que controlan los programas de los usuarios
(cargándolos, ejecutándolos, etc.) y los dispositivos de entrada/salida (repartiéndolos entre varios
usuarios), y que tiene por objeto facilitar el uso de la computadora y conseguir que ésta se utilice
eficientemente.
Dicho de otra forma, un sistema Operativo es un conjunto de programas que controlan permanentemente
todos los recursos del sistema y que tienen por objeto minimizar el tiempo de respuesta de la
computadora y maximizar su rendimiento. Así, el sistema operativo hace asignaciones en memoria,
controla las operaciones de E/S, maneja errores, coordina la comunicación entre el usuario y el sistema,
etc.
FUNCIONES
Los sistemas operativos, en su condición de capa software que posibilitan y simplifica el manejo de la
computadora, desempeñan una serie de funciones básicas esenciales para la gestión del equipo. Entre
las más destacables, cada una ejercida por un componente interno (módulo en núcleos monolíticos y
servidor en micronúcleos), podemos reseñar las siguientes:
Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para los procesos
(programas)
Permitir que los cambios debidos al desarrollo del propio SO se puedan realizar sin interferir
con los servicios que ya se prestaban (evolutividad).
Es la parte del sistema operativo que permite comunicarse con él, de tal manera que se puedan cargar
programas, acceder archivos y realizar otras tareas. Existen tres tipos básicos de interfaces: las que se
basan en comandos, las que utilizan menús y las interfaces gráficas de usuario.
2. Administración de recursos
Sirven para administrar los recursos de hardware y de redes de un sistema informático, como la CPU,
memoria, dispositivos de almacenamiento secundario y periféricos de entrada y de salida.
3. Administración de archivos
4. Administración de tareas
5. Servicio de soporte
Actualización de versiones.
Mejoras de seguridad.
Inclusión de alguna nueva utilidad (un nuevo entorno gráfico, un asistente para administrar
alguna determinada función,...).
Controladores para manejar nuevos periféricos (este servicio debe coordinarse a veces con el
fabricante del hardware).
Otros.
No todas las utilidades de administración o servicios forman parte del sistema operativo, además de
éste, hay otros tipos importantes de software de administración de sistemas, como los sistemas de
administración de base de datos o los programas de administración de redes. El soporte de estos
productos deberá proporcionarlo el fabricante correspondiente (que no tiene por qué ser el mismo que
el del sistema operativo).
Prevenir que las actividades de un usuario no interfieran en las de los demás usuarios.
Un sistema operativo está formado por varios programas que en conjunto presentan al usuario una
vista integrada del sistema, los componentes principales de un sistema operativo son los siguientes
módulos:
Manejo de procesos.
Manejo de E/S.
Manejo de Memoria.
CARACTERÍSTICAS
En general puede decirse que un sistema operativo tiene las siguientes características:
2. Eficiencia: Un sistema operativo permite que los recursos de una computadora se usen de la
manera más eficiente posible.
3. Habilidad para evolucionar: Un sistema operativo deberá construirse de manera que permita
el desarrollo, prueba o introducción efectiva de nuevas funciones del sistema sin interferir con
el servicio.
5. Relacionar los dispositivos (gestionar a través del kernel): El sistema operativo debe de
encargarse de comunicar a los dispositivos cuando el usuario así lo requiera.
7. Manejar comunicación en red: El sistema operativo permite al usuario manejar con alta
facilidad todo lo referente a la instalación y el uso de las redes de los procesadores.
9. Facilitar las entradas y salidas: Un sistema operativo debe hacerle fácil al usuario el acceso
y manejo de los dispositivos de entrada/salida de la computadora.
11. Evita que otros usuarios interfieran. El Sistema Operativo evita que los usuarios se bloqueen
entre ellos, informándoles si esa aplicación está siendo ocupada por otro usuario.
13. Permite que se puedan compartir el hardware y los datos entre los usuarios.
Existen diferentes enfoques o versiones de cómo han ido evolucionando los Sistemas Operativos
En los 40's, se introducen los programas bit a bit, por medio de interruptores mecánicos y después
se introdujo el lenguaje de máquina que trabajaba con tarjetas perforadas.
Con las primeras computadoras, desde finales de los años 1940 hasta la mitad de los años 1950, el
programador interactuaba de manera directa con el hardware de la computadora, no existía realmente
un Sistema Operativo; las primeras computadoras utilizaban bulbos, la entrada de datos y los
programas se realizaban a través del lenguaje máquina (bits) o a través de interruptores.
Durante los años 50's y 60's.- A principio de los años 1950, la compañía General Motors implanto el
primer sistema operativo para su IBM 170. Empiezan a surgir las tarjetas perforadas las cuales permiten
que los usuarios (que en ese tiempo eran programadores, diseñadores, capturistas, etc.), se encarguen
de modificar sus programas. Establecían o apartaban tiempo, metían o introducían sus programas,
corregían y depuraban sus programas en su tiempo. A esto se le llamaba trabajo en serie. Todo esto
se traducía en pérdida de tiempo y tiempos de programas excesivos.
En los años 60's y 70's se genera el circuito integrado, se organizan los trabajos y se generan los
procesos Batch (por lotes), lo cual consiste en determinar los trabajos comunes y realizarlos todos
juntos de una sola vez. En esta época surgen las unidades de cinta y el cargador de programas, el cual
se considera como el primer tipo de Sistema Operativo.
En los 80's, inició el auge de la internet en los Estados Unidos de América. A finales de los años 80's
comienza el gran auge y evolución de los Sistemas Operativos. Se descubre el concepto de
multiprogramación que consiste en tener cargados en memoria a varios trabajos al mismo tiempo, tema
principal de los Sistemas Operativos actuales.
Los 90's y el futuro, entramos a la era de la computación distribuida y del multiprocesamiento a través
de múltiples redes de computadoras, aprovechando el ciclo del procesador.
Se tendrá una configuración dinámica con un reconocimiento inmediato de dispositivos y software que
se añada o elimine de las redes a través de procesos de registro y localizadores.
Después de los infructuosos esfuerzos de Babbage, hubo poco progreso en la construcción de las
computadoras digitales, hasta la Segunda Guerra Mundial. A mitad de la década de los 40's, Howard
Aiken (Harvard), John Von Newman (Instituto de Estudios Avanzados, Princeton), J. Prespe R. Eckert
y Williams Mauchley (Universidad de Pennsylvania), asi como Conrad Zuse (Alemania), entre otros
lograron construir máquinas de cálculo mediante bulbos. Estas máquinas eran enormes y llenaban
cuartos completos con decenas de miles de bulbos, pero eran mucho más lentas que la computadora
casera más económica en nuestros días.
Toda la programación se llevaba a cabo en lenguaje de maquina absoluto y con frecuencia se utilizaban
conexiones para controlar las funciones básicas de la máquina. Los lenguajes de programación eran
desconocidos (incluso el lenguaje ensamblador). No se hablaba de los Sistemas Operativos, el modo
usual de operación consistía en que el programador reservaba cierto periodo en una hoja de
reservación pegada a la pared, iba al cuarto de la máquina, insertaba su conexión a la computadora y
pasaba unas horas esperando que ninguno de los 20,000 o más bulbos se quemara durante la
ejecución. La inmensa mayoría de los problemas eran cálculos numéricos directos, por ejemplo, el
cálculo de valores para tablas de senos y cosenos.
A principio de la década de los años 1950 la rutina mejoro un poco con la introducción de las tarjetas
perforadas. Fue entonces posible escribir los programas y leerlas en vez de insertar conexiones, por lo
demás el proceso era el mismo.
La introducción del transistor a mediados de los años 50's modifico en forma radical el panorama. Las
computadoras se volvieron confiables de forma que podían fabricarse y venderse a clientes, con la
esperanza de que ellas continuaran funcionando lo suficiente como para realizar un trabajo en forma.
Dado el alto costo del equipo, no debe sorprender el hecho de que las personas buscaron en forma por
demás rápidas vías para reducir el tiempo invertido. La solución que, por lo general se adoptó, fue la
del sistema de procesamiento por lotes.
La 360 de IBM fue la primera línea principal de computadoras que utilizo los circuitos integrados, lo que
proporciono una gran ventaja en el precio y desempeño con respecto a las máquinas de la segunda
generación, construidas a partir de transistores individuales. Se trabajó con un sistema operativo
enorme y extraordinariamente complejo. A pesar de su enorme tamaño y sus problemas el sistema
operativo de la línea IBM 360 y los sistemas operativos similares de esta generación producidos por
Otra característica era la capacidad de leer trabajos de las tarjetas al disco, tan pronto como llegara al
cuarto de cómputo. Así, siempre que concluyera un trabajo el sistema operativo podía cargar un nuevo
trabajo del disco en la partición que quedara desocupada y ejecutarlo.
Un interesante desarrollo que comenzó a llevarse a cabo a mediados de la década de los años 1980
ha sido el crecimiento de las redes de computadoras personales, con sistemas operativos de red y
sistemas operativos distribuidos.
En los sistemas operativos de red, los usuarios están conscientes de la existencia de varias
computadoras y pueden conectarse con máquinas remotas y copiar archivos de una maquina a otra.
Cada máquina ejecuta su propio sistema operativo local y tiene su propio usuario.
Por el contrario, un sistema operativo distribuido es aquel que aparece ante sus usuarios como un
sistema tradicional de un solo procesador, aun cuando está compuesto por varios procesadores. En un
sistema distribuido verdadero, los usuarios no deben ser conscientes del lugar donde su programa se
ejecute o del lugar donde se encuentren sus archivos; eso debe ser manejado en forma automática y
eficaz por el sistema operativo.
Bajo el concepto de 'la vida empieza con un disco duro', Tim Paterson define la informática en un
período en el que la única manera de obtener un procesador era comprar los componentes y
ensamblarlos uno mismo.
Tim Paterson, principal artífice del que sería uno de los sistemas operativos más conocidos del
mercado, con varios cursos universitarios a sus espaldas y un poco de práctica en el mercado de
distribución, empezó a diseñar sus propias estrategias sobre lo que tenía delante de los ojos: los
periféricos. 'Rod Brock me contrató en junio de 1978 por 50 dólares al día y, tras unas semanas
trabajando en el departamento de consultoría, me convertí en empleado de Seattle Computer'.
Durante su época de estudiante, Paterson había mostrado mucho interés por los sistemas operativos,
al igual que por las soluciones de hardware y compiladores. Sin embargo, gradualmente, la desilusión
se iba incrementando.
'Todo lo que nos hacían estudiar era demasiado teórico y no lo que yo necesitaba'.
En Seattle Computer, Tim Paterson trabajó en varios proyectos, como rediseñar memorias S-100. No
obstante, las cosas empezaron a cambiar cuando 'la promesa de la programación' acudió a un
seminario sobre el chip 8086 de Intel en julio de 1978.
'Me gané el respeto de Rod Brock e hice algunas sugerencias. Le di unas cuantas vueltas al procesador
8086 mientras Brock me dio carta blanca. De hecho, el primer diseño de la placa 8086 se terminó a
finales de enero pero nosotros teníamos ya el prototipo en mayo de 1979. Creamos tres placas, aunque
sin ningún vínculo que las relacionara. Existían ambos factores, tanto errores de presentación como de
diseño, pero conseguimos que dos prototipos funcionaran'.
Por su parte, Seattle Computer se planteaba ya por aquellos años la idea de crear su propio procesador
aunque las estrategias de negocio al respecto nunca llegaban. Una vez que el prototipo 8085 estuvo
funcionando, Seattle se acercó a Digital Research, para comprobar si podía lograr que CP/M trabajara
con él. Junto a esto, Microsoft, que se había trasladado a Seattle en enero de 1979, quería observar si
algunos de sus programas funcionaban. Y, a finales de mayo de 1979, Paterson se incorporó a
Microsoft para trabajar con Bob O'Rear. 'Microsoft ya había desarrollado buenas herramientas, como
un ensamblador para usar con la PDP-10. Había unos cuantos virus pero básicamente la
placa trabajaba correctamente junto con las soluciones que se habían desarrollado recientemente'.
En la Conferencia Nacional Computer celebrada en Nueva York en el año 1979, Seattle Computer fue
invitado por Microsoft y Lifeboat. Estas mostraron Basic-86, entonces el único software diseñado para
el 8086. Mientras, Seattle Computer empezaba a comercializar el producto con su placa en noviembre,
inicialmente preparado para desarrolladores de software.
En abril de 1980, Paterson empezó a trabajar por primera vez en un sistema operativo. 'Necesitábamos
una solución en Seattle Computer para nuestros propios procesadores y yo quería construir una, así
que nos decidimos de lleno.
Además, siempre quise escribir mi propio sistema operativo. Nunca me gustó CP/M y, de hecho,
pensaba que yo podía hacerlo mucho mejor'.
LA GESTACIÓN
Como resultado, en la primavera de 1980, Paterson empezó a trabajar en lo que se convertiría en MS-
DOS. En julio, ya se había terminado cerca del 50 por ciento del sistema conocido como QDOS 0.10
aunque rápidamente se presentó QDOS 0.11. 'El primer paso fue escribir lo que CP/M-80 podía
realizar. El segundo fue diseñar un sistema de archivos rápido y eficiente'. Una de las diferencias más
significativas entre CP/M-86 y MS-DOS, cuando ya se hizo realidad, fue el sistema de gestión de
archivos. CP/M generalmente ofrece una ventana de no más de 16 o 32K; sin embargo, con MS-DOS,
hay más capacidad.
De hecho, Paterson creó P el módulo de gestión de archivos de QDOS empleando el mismo método
que en Basic-86. 'Todo programador sabe que se van a necesitar ciertas funcionalidades antes o
después, razón por la que yo construyo herramientas en las que se basa el próximo sustrato'. A finales
de agosto de 1980, QDOS 0.11 trabajaba y se comercializaba bastante bien.
Paterson trabajó duro para incluir todas las características propias de un sistema operativo completo.
'Sin embargo, me quedé horrorizado cuando escuche que IBM lo estaba utilizando y que no lo había
tirado por la ventana'.
En diciembre de 1980, Paterson y compañía presentaron 86-DOS, 0.33, que representaba mejoras
significativas sobre QDOS. '86-DOS reflejaba todo lo que habíamos aprendido hasta entonces. El
ensamblador, originalmente escrito en el Z-80, se hizo más rápido. También hicimos algunos cambios
en las denominaciones del sistema'. Así, a finales de 1980, Seattle Computer vendió 86-DOS a OEMs
(integradores) y a otras compañías como Microsoft.
En otro sentido, a principios de 1981, el procesador personal de IBM todavía no se había anunciado,
aunque ciertos rumores planeaban sobre el producto del Gigante Azul. 'Todos nosotros
sospechábamos que IBM y Microsoft habían llegado a algún tipo de acuerdo pero no estábamos
seguros'.
En abril del mismo año, mientras Paterson se centraba en algunos cambios internos del 86-DOS, como
modificar las llamadas del sistema o incluir gestión de errores para discos duros, Paterson decidió
abandonar Seattle Computer. En mayo, se fue a trabajar a Microsoft a tiempo completo en la versión
PC-DOS de 86-DOS. 'Trabajé en Microsoft durante 11 meses.
En mayo, junio y julio me volqué sobre ciertos aspectos que nunca había terminado, estaba
remodelando PC-DOS'. Este fue el comienzo de una vorágine de 11 meses. Casi a diario, Paterson se
entrevistaba con la plantilla de Baton Rouge, para conseguir la aprobación de IBM e, instantáneamente,
la compañía respondía con críticas, modificaciones y problemas.
A pesar de todo, Paterson terminó PC-DOS en julio, un mes antes de que el procesador fuera
anunciado oficialmente a nivel mundial. En ese momento, 86-DOS se había convertido en MS-DOS.
'Microsoft quería tenerlo en su poder, de manera que las dos firmas, Microsoft y Seattle Computer,
llegaron a un acuerdo dado que esta segunda empresa no tenía la cuota de mercado de Microsoft.
En 1969, algo maravilloso sucedió en el mundo de la informática: nació UNIX. En principio como un
trabajo solitario de Ken Thompson, de Bell Laboratories, y luego en conjunto con Dennis Ritchie (quien
junto a Brian Kerningan desarrollaron el lenguaje de programación C) y otros miembros del Bell
Laboratories que se fueron incorporando. Ritchie ya tenía experiencia dado que había trabajado en otro
proyecto llamado MULTICS, el cual fue de gran influencia sobre el nuevo SO, como por ejemplo en la
organización básica del sistema de archivos, la idea de un intérprete de comando (el Shell) como un
proceso de usuario, etc.
La primera versión de UNIX estaba hecha íntegramente en ensamblador. Esto se cambió con la versión
posterior, que fue escrita en lenguaje C lo que lo hizo sumamente portable; así mismo también se le
agrego una característica por demás de importante, la multiprogramación. Esto y la entrega de licencias
gratuitas con fines educativos extendieron su uso, desarrollo y la investigación en las universidades. El
uso de UNIX se fue ampliando a medida que se le fueron adicionando herramientas de software y
entornos de programación, apoyo a protocolos de red Internet (TCP/IP), mejoras en el editor de texto
(Vi), compiladores de C, PASCAL y LISP, mejora en el control de congestionamiento de redes y el
rendimiento de TCP/IP. Al crecer la popularidad de UNIX, se ha transportado a distintas plataformas
de hardware (PC, MAC, ALPHA) y se han creado una gran cantidad de SO's UNIX y parecidos a UNIX
(XENIX de Microsoft, AIX de IBM, SOLARIS de SunSoft).
Las características principales de este SO es que se diseñó como un sistema de tiempo compartido.
Esto quiere decir que varios usuarios estarán usando el sistema al mismo tiempo, sin notar la presencia
de los demás en su ámbito de trabajo, lo que logra el SO asignándole un tiempo de atención para el
CPU a cada usuario.
La interfaz estándar con el usuario (el Shell) puede ser cambiada si se quiere. La mayoría del código
fuente original está disponible por lo que los usuarios podrán ajustar el SO a sus requerimientos
específicos. Es multitarea, es decir que permite que se puedan ejecutar varios procesos al mismo
tiempo compartiendo el uso de la CPU.
Los sistemas de archivos con árboles multiniveles permiten que el SO trate tanto a directorios y archivos
como simples secuencias de bytes.
Un proceso puede fácilmente generar otro, también es posible el manejo de procesos en determinado
tiempo. Puede planearse la utilización de la CPU.
El kernel y biblioteca del SO están preparados para que el SO pueda extenderse y crecer, lo que
permitió a UNIX mantenerse siempre a la cabeza de los SO's estando permanentemente actualizado.
El sistema operativo Macintosh está directamente relacionado con la familia de procesadores de Apple,
la primera del mercado que no era compatible con IBM.
Fue el primer procesador que popularizó la interfaz gráfica de usuario (GUI) que, junto con su hardware,
se hizo famoso en el mundo de la informática por su facilidad de uso.
Otra de las características de Macintosh es que fue en sus tiempos, y sigue siendo, la serie de
procesadores personales no compatibles con IBM. Es decir los Macintosh, o Mac, sólo ejecutan
aplicaciones Mac, aunque pueden acceder a Windows a través de emuladores como SoftWindows,
que les permiten ejecutar aplicaciones de Windows y de Dos. Hacer funcionar el Mac como una
máquina Mac/Windows nunca ha sido muy popular y en el mercado de la informática ha habido, hay y
siempre habrá, un enfrentamiento entre ambos sistemas.
El primer procesador Macintosh, lanzado al mercado en 1984, contaba únicamente con una disquetera
una memoria de 128K y una pantalla monocromática que formaban un único bloque. Mantenido
durante cierto número de años, los sucesivos diseños se centraron en suavizar las curvas en sus
modelos Classic y separar los monitores de las CPUs. A principios de la década de los años 1990,
Apple vuelve a sus raíces y lanza la línea iMac y posteriormente el G4 Cube, regresando a los diseños
compactos.
Los primeros modelos contaban con una familia de CPUs de 32bits 680x0 de Motorola. En 1994 Apple
presentó en el mercado los PowerMacs, que utilizaban Chips PowerPC de alto rendimiento diseñados
por Apple, Motorola e IBM. De esta forma, los PowerMac ejecutaban aplicaciones nativas PowerPC y
emulaban las tradicionales aplicaciones de los Mac 680x0. A lo largo de los años, los chips PowerPC
han sufrido sustanciales incrementos en su rendimiento.
Lanzado al mercado en 1999, el chip G4 permitía que Macintosh ejecutara 1,000 millones de
operaciones en punto flotante por segundo, lo que suponía una máquina extremadamente rápida para
las aplicaciones basadas en gráficos e imágenes tales como Photoshop.
Uno de los principales logros de Macintosh fue que popularizó las interfaces gráficas de usuario (GUI)
y simuló escritorios en las pantallas de los procesadores. Fue el primer sistema que permitía ejecutar
archivos arrastrándolos desde una carpeta a una aplicación directamente, lo que atrajo, desde el
momento de su lanzamiento, a las personas no muy habituadas a los procesadores. Y sigue siendo
una de las razones, su facilidad de uso, por lo que en Estados Unidos los Macintosh son ampliamente
utilizados en colegios.
La interfaz gráfica de usuario fue realmente desarrollada por Xerox, que lo introdujo en su estación de
trabajo Star en 1981. Apple se apropió de Star y, consecuentemente, otros copiaron a Mac, trasladando
la interfaz gráfica de usuario al sistema operativo Windows y Unix.
LisaDesk: lanzado en enero de 1983 para el procesador lisa de Apple. En enero de 1985, lisa 2.10 se
incluyó en MacWorks y su nombre pasó a ser Macintosh XL.
System 1 (1.0 y 1.1): lanzadas respectivamente en enero y mayo de 1984, ambas versiones procedían
directamente de LisaDesk y, aunque ofrecía menos funcionalidad, era más estable. Ciertas funciones
de LisaDesk fueron incluidas en posteriores versiones de Mac OS, incluyendo Mac OS X.
System 2 (1.2 a 2.1): aunque se integraban nuevas funciones, el principal objetivo del sistema fue
permitir una mejor gestión con el fin de compensar la ausencia de disco duro de los primeros modelos
de Macintosh.
System 3 (2.2 a 3.3): este sistema acompañó, en 1986, a los nuevos modelos de Macintosh. Contaba
con más funciones y más potencia, permitiendo la integración del nuevo formato de archivos HFS,
nuevas funcionalidades de comunicaciones, y soportaba impresoras láser.
System 4 y 5 (4.0 a 5.1): acompañaron a los primeros modelos de Macintosh con monitores a color, y
permitían la transición entre sistemas de tarea única a sistemas multitarea cooperativa con la primera
generación de Mutifinder, que hacía posible la gestión de varias aplicaciones de forma simultánea.
System 6 (6.0 a 6.0.8): se mejoraron los sistemas multitarea cooperativos con una segunda generación
de Multifinder. Fue lanzado en versiones muy especializadas conforme a modelos que estaban
equipados para necesidades específicas, particularmente para aplicaciones gráficas.
Mac OS8 (7.7 a 8.6). Este sistema fue el primero que ofrecía una completa integración de aplicaciones
multimedia e Internet, y mejoraban las funcionalidades y la estabilidad. Además, este sistema marcó el
fin del soporte a las viejas arquitecturas 680x0.
Mac OS 9 (8.7 a 9.2.2): primer sistema multiusuario, este sistema permitía la transición hacia el nuevos
sistema Unix basado en Mac OS X. Este sistema marcó el final del soporte de los procedimientos de
multitareas cooperativos y el soporte de la primera y segunda generación de arquitecturas PowerPC.
Mac OS X (Rhapsody DR1 a 10.2.4): nueva generación de sistema con base Unix, multiprocesamiento
simétrico, multitareas y protección de memoria.
Lanzada inicialmente en una versión Server para profesionales, fue mejorado gradualmente para
ofrecer, en un segundo momento, una versión para consumidores.
La actualidad de los Sistemas Operativos, la acaparan mayoritariamente “los tres grandes”, Windows,
Unix y Mac Os, en sus respectivas versiones actuales.
específicamente para máquinas de 64 bits, tales como distribuciones de Linux y las versiones desde
Windows XP para 64 bits enadelante.
Se podría decir que el futuro es de los “dobles”, junto a los procesadores de 64 bits han aparecido los
Microprocesadores de doble núcleo, en un primer momento “virtual” y ahora implementando
físicamente dos núcleos en un mismo chip.
La aplicación principal del doble núcleo es la división de tareas y por tanto mayor rapidez al realizarlas
(“Divide y vencerás”)
1.4 Clasificación
Con el paso del tiempo, los Sistemas Operativos fueron clasificándose de diferentes maneras,
dependiendo del uso o de la aplicación que se les daba. A continuación se mostrarán diversos tipos de
Sistemas Operativos que existen en la actualidad, con algunas de sus características:
Los Sistemas Operativos por lotes, procesan una gran cantidad de trabajos con poca o ninguna interacción
entre los usuarios y los programas en ejecución. Se reúnen todos los trabajos comunes para realizarlos al
mismo tiempo, evitando la espera de dos o más trabajos como sucede en el procesamiento en serie o
procesamiento secuencial (línea por línea). Estos sistemas son de los más tradicionales y antiguos, y
fueron introducidos alrededor de 1956 para aumentar la capacidad de procesamiento de los programas.
Cuando estos sistemas son bien planeados, pueden tener un tiempo de ejecución muy alto, porque el
procesador es mejor utilizado y los Sistemas Operativos pueden ser simples, debido a la secuencialidad
de la ejecución de los trabajos.
Algunos ejemplos de Sistemas Operativos por lotes exitosos son el SCOPE, del DC6600, el cual está
orientado a procesamiento científico pesado, y el EXEC II para el UNIVAC 1107, orientado a
procesamiento académico.
Algunas otras características con que cuentan los Sistemas Operativos por lotes son:
Requiere que el programa, datos y órdenes al sistema sean remitidos todos juntos en forma de
lote.
No conveniente para desarrollo de programas por bajo tiempo de retorno y depuración fuera de
línea.
Conveniente para programas de largos tiempos de ejecución (ej, análisis estadísticos, nóminas de
personal, etc.)
Planificación de memoria sencilla, generalmente se divide en dos: parte residente del S.O. y
programas transitorios.
Suelen proporcionar gestión sencilla de manejo de archivos: se requiere poca protección y ningún
control de concurrencia para el acceso.
Figura. Trabajos más comunes que realiza el Sistema Operativo por lotes.
Los Sistemas Operativos de tiempo real son aquellos en los cuales no tiene importancia el usuario, sino
los procesos. Por lo general, están subutilizados sus recursos con la finalidad de prestar atención a los
procesos en el momento que lo requieran. Se utilizan en entornos donde son procesados un gran número
de sucesos o eventos.
Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy específicas como
control de tráfico aéreo, bolsas de valores, control de refinerías, control de laminadores. También en el
ramo automovilístico y de la electrónica de consumo, las aplicaciones de tiempo real están creciendo muy
rápidamente. Otros campos de aplicación de los Sistemas Operativos de tiempo real son los siguientes:
Control de trenes.
Telecomunicaciones.
Control de edificios.
Sistemas multimedia.
Algunos ejemplos de Sistemas Operativos de tiempo real son: VxWorks, Solaris, Lyns OS y Spectra. Los
Sistemas Operativos de tiempo real, cuentan con las siguientes características:
Se dan en entornos en donde deben ser aceptados y procesados gran cantidad de sucesos, la
mayoría externos al sistema computacional, en breve tiempo o dentro de ciertos plazos.
Procesa ráfagas de miles de interrupciones por segundo sin perder un solo suceso.
Gestión de memoria menos exigente que tiempo compartido, usualmente procesos son residentes
permanentes en memoria.
Gestión de archivos se orienta más a velocidad de acceso que a utilización eficiente del recurso.
Se distinguen por sus habilidades para poder soportar la ejecución de dos o más trabajos activos (que se
están ejecutado) al mismo tiempo. Esto trae como resultado que la Unidad Central de Procesamiento
(CPU) siempre tenga alguna tarea que ejecutar, aprovechando al máximo su utilización.
Su objetivo es tener a varias tareas en la memoria principal, de manera que cada uno está usando el
procesador, o un procesador distinto, es decir, involucra máquinas con más de una UCP.
Sistemas Operativos como UNIX, Windows 95, Windows, Windows NT, MAC-OS, OS/2, soportan la
multitarea.
Proporcionan contabilidad del uso de los recursos por parte de los usuarios.
Sistemas multiprocesadores son sistemas multitareas por definición ya que soportan la ejecución
simultánea de múltiples tareas sobre diferentes procesadores.
Permiten la simulación de que el sistema y sus recursos son todos para cada usuario. El usuario hace una
petición a la computadora, esta la procesa tan pronto como le es posible, y la respuesta aparecerá en la
terminal del usuario.
Los principales recursos del sistema; el procesador, la memoria, dispositivos de E/S y la información o
datos, son continuamente utilizados entre los diversos usuarios, dando a cada usuario la ilusión de que
tiene el sistema dedicado para sí mismo. Esto trae como consecuencia una gran carga de trabajo al
Sistema Operativo, principalmente en la administración de memoria principal y secundaria.
Dan la ilusión de que cada usuario tiene una máquina para sí.
Programas se ejecutan con prioridad rotatoria que se incrementa con la espera y disminuye
después de concedido el servicio.
Gestión de archivo debe proporcionar protección y control de acceso debido a que pueden existir
múltiples usuarios accesando un mismo archivo.
Permiten distribuir trabajos, tareas o procesos, entre un conjunto de procesadores. Puede ser que este
conjunto de procesadores esté en un equipo o en diferentes, en este caso es trasparente para el usuario.
Existen dos esquemas básicos de éstos. Un sistema fuertemente acoplado esa es aquel que comparte la
memoria y un reloj global, cuyos tiempos de acceso son similares para todos los procesadores. En un
sistema débilmente acoplado los procesadores no comparten ni memoria ni reloj, ya que cada uno cuenta
con su memoria local.
Los sistemas distribuidos deben de ser muy confiables, ya que si un componente del sistema se compone
otro componente debe de ser capaz de reemplazarlo.
Entre los diferentes Sistemas Operativos distribuidos que existen tenemos los siguientes: Sprite, Solaris-
MC, Mach, Chorus, Spring, Amoeba, Taos, etc.
Son aquellos sistemas que mantienen a dos o más computadoras unidas a través de algún medio de
comunicación (físico o no), con el objetivo primordial de poder compartir los diferentes recursos y la
información del sistema.
El primer Sistema Operativo de red estaba enfocado a equipos con un procesador Motorola 68000,
pasando posteriormente a procesadores Intel como Novell NetWare.
Los Sistemas Operativos de red mas ampliamente usados son: Novell NetWare, Personal
NetWare, LAN Manager, Windows NT Server, UNIX, LANtastic.
En estos tipos de sistemas operativos se pretende que cuando existan dos o más procesos que compitan
por algún recurso se puedan realizar o ejecutar al mismo tiempo.
En UNIX existe también la posibilidad de ejecutar programas sin tener que atenderlos en forma interactiva,
simulando paralelismo (es decir, atender de manera concurrente varios procesos de un mismo usuario).
Así, en lugar de esperar a que el proceso termine de ejecutarse (como lo haría normalmente), regresa a
atender al usuario inmediatamente después de haber creado el proceso.
Ejemplos de estos tipos de Sistemas Operativos están: Alpha, PVM, la serie AIX, que es utilizado en los
sistemas RS/6000 de IBM.
Sistemas monolíticos
En estos sistemas operativos se escriben como un conjunto de procedimientos, cada uno de los cuales
puede llamar a cualquiera de los otros siempre que lo necesite. Cuando se emplea esta técnica, cada
procedimiento del sistema tiene una interfaz bien definida en términos de parámetros y resultados, y
cada una tiene la libertad de llamar a cualquiera otra, si la última ofrece algún cálculo útil que la primera
necesite.
CARACTERÍSTICAS
Construcción de programa final a base de módulos compilados separadamente que se une a través
del editor de enlaces.
Por ejemplo los cajeros automáticos donde sólo tienen que cumplir una determinada función
siguiendo una serie de procesos ya determinados.
Para construir el programa objeto real del sistema operativo cuando se usa este método, se compilan
todos los procedimientos individuales a archivos que contienen los procedimientos y después se
combinan todos en un solo archivo objeto con el enlazador.
1.- Un programa central que invoque el procedimiento de servicio solicitado (Shell o Kernel)
3.- Un conjunto de procedimientos de uso general que ayude a los procedimientos de servicio
Sistemas en estratos
Estos sistemas operativos se organizan como una jerarquía de estratos, cada uno construido arriba del
que está debajo de él. El primer sistema construido en esta forma fuel el sistema THE que se fabricó
en Technische Hogeschool Eindhoven de Holanda por E. W Dijkstra (1968) y sus alumnos. El sistema
THE era un sistema de lote para una computadora alemana, la Electrológica X8, que tenía 32K de
palabras de 27 bits ( los bits eran costosos en aquellos días)
CARACTERÍSTICAS.
Las zonas más intensas o núcleo están más protegidas de posibles accesos indeseados desde
las capas más externas.
En esta estructura se basan prácticamente la mayoría de los SO actuales. Otra forma de ver este tipo
de sistema es la denominación de anillos concéntricos o “RINGS”
EJEMPLOS
Multics y Unix
El estrato 0 trabajaba con la distribución del procesador, cambiando entre procesos cuando ocurrían
interrupciones o los relojes expiraban. Sobre el estrato 0, el sistema constaba de procesos
secuenciales, cada uno de los cuales podía programarse sin tener que preocuparse por el hecho de
que múltiples procesos estuvieran corriendo en un solo procesador.
El estrato 1 realizaba el manejo de memoria. Este distribuía espacio para procesos contenidos en la
memoria central y en un tambor de 512K palabras que se usaba para contener partes de procesos
(páginas) para las cuales no había espacio en la memoria central. Sobre el estrato 1, los procesos no
tenía que preocuparse de si estaban en la memoria o en el tambor; el software del estrato 1 se hacía
cargo de asegurar que las páginas se trajeran a la memoria siempre que se necesitaran.
El estrato 3 se hacía cargo de manejar los dispositivos de E/S y de separar la información en flujo que
entraba y salí de ellos. Sobre el estrato 3 cada proceso podía trabajar con dispositivos de E/S abstractos
con propiedades agradables, en vez de dispositivos reales con muchas peculiaridades
El estrato 4 era donde se encontraban los programas de los usuarios. No tenían que preocuparse por
el manejo de los procesos, memoria, consola o E/S. El proceso operador del sistema se localizaba en
el estrato 5
Las funciones centrales de un SO son controladas por el núcleo (kernel) mientras que la interfaz del
usuario es controlada por el entorno (Shell). Por ejemplo, la parte más importante del DOS es un
programa con el nombre "COMMAND.COM" Este programa tiene dos partes. El kernel, que se
mantiene en memoria en todo momento, contiene el código máquina de bajo nivel para manejar la
administración de hardware para otros programas que necesitan estos servicios, y para la segunda
parte del COMMAND.COM el Shell, el cual es el intérprete de comandos
Las funciones de bajo nivel del SO y las funciones de interpretación de comandos están separadas, de
tal forma que puedes mantener el kernel DOS corriendo, pero utilizar una interfaz de usuario diferente.
Esto es exactamente lo que sucede cuando cargas Microsoft Windows, el cual toma el lugar del Shell,
reemplazando la interfaz de línea de comandos con una interfaz gráfica del usuario. Existen muchos
"shells" diferentes en el mercado, ejemplo: NDOS (Norton DOS), XTG, PCTOOLS, o inclusive el mismo
SO MS-DOS a partir de la versión 5.0 incluyó un Shell llamado DOS SHELL.
Una tendencia de los sistemas operativos modernos es la de explotar la idea de mover el código a
capas superiores y eliminar la mayor parte posible del sistema operativo para mantener un núcleo
mínimo. El punto de vista usual es el de implantar la mayoría de las funciones del sistema operativo en
los procesos del usuario. Para solicitar un servicio, como la lectura de un bloque de cierto archivo, un
proceso del usuario (denominado proceso cliente) envía la solicitud a un proceso servidor, que realiza
entonces el trabajo y regresa la respuesta. En este modelo, que se muestra en la figura 4, lo único que
hace el núcleo es controlar la comunicación entre los clientes y los servidores. Al separar el sistema
operativo en partes, cada una de ellas controla una faceta del sistema, como el servicio a archivos,
servicios a procesos, servicio a terminales o servicio a la memoria, cada parte es pequeña y controlable.
Además como todos los servidores se ejecutan como procesos en modo usuario y no en modo núcleo,
no tienen acceso directo al hardware. En consecuencia si hay un error en el servidor de archivos, éste
puede fallar, pero esto no afectará en general a toda la máquina.
Otra de las ventajas del modelo cliente-servidor es su capacidad de adaptación para su uso en los
sistemas distribuidos
CARACTERÍSTICAS
Coordina, permite el trabajo entre iguales. Cliente; inicia las solicitudes o peticiones (maestro)
Espera y recibe respuesta del servidor .Se puede conectar a varios servidores a la vez.
Servidor:
EJEMPLOS
Sistema operativo Novell NetWare 1983, plataforma más fiable para ofrecer acceso seguro.
Windows 2000
Cualquiera de este puede compartir sus recursos con otro Windows 2000
Windows XP.
Máquina Virtual
Se trata de un tipo de sistemas operativos que presentan una interface 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. 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
CARACTERÍSTICAS
Protección cada máquina virtual está aislada de las otras y no puede inferir.
EJEMPLOS
Nachos: sistema operativo se ejecuta en una virtual mips, cuyo emulador corre sobre Linux.
1.6 Núcleo
Todas las operaciones en las que participan procesos son controladas por la parte del sistema operativo
denominada núcleo (nucleus, core o kernel, en inglés). El núcleo normalmente representa sólo una
pequeña parte de lo que por lo general se piensa que es todo el sistema operativo, pero es tal vez el
código que más se utiliza. Por esta razón, el núcleo reside por lo regular en la memoria principal,
mientras que otras partes del sistema operativo son cargadas en la memoria principal sólo cuando se
necesitan.
Los núcleos se diseñan para realizar "el mínimo" posible de procesamiento en cada interrupción y dejar
que el resto lo realice el proceso apropiado del sistema, que puede operar mientras el núcleo se habilita
para atender otras interrupciones.
El Kernel consiste en la parte principal del código del sistema operativo, el cual se encarga de controlar
y administrar los servicios y peticiones de recursos y de hardware con respecto a uno o varios procesos,
en otras palabras, el kernel es el corazón del sistema operativo.
Cada sistema operativo tiene un tipo distinto de kernel: así los Unix más tradicionales como FreeBSD
usan un kernel "monolítico" en el que está todo compilado dentro, otros usan los llamados "microkernel"
como el Darwin, Hurd e incluso Windows (krnl32.dll). GNU/Linux usa un kernel "modular" (vmlinuz); un
núcleo bastante grande comparado con un microkernel, pero que es capaz de delegar funciones en los
llamados "módulos" , partes independientes del núcleo que pueden ser incorporadas dinámicamente si
hacen falta y luego descargadas si molestan. Así se pueden cargar "drivers" para hardware, firewall o
funciones especiales de red (PPP, RDSI, etc.) cuando se necesiten y cuando por ejemplo, se cierre la
conexión a internet, liberar la memoria que usaba ese modulo.
El núcleo de un sistema operativo normalmente contiene el código necesario para realizar las siguientes
funciones:
Manejo de interrupciones.
Despacho.
Sincronización de procesos.
El Kernel consiste en la parte principal del código del sistema operativo, el cual se encargan de controlar
y administrar los servicios y peticiones de recursos y de hardware con respecto a uno o varios procesos,
este se divide en 5 capas:
Nivel 1. Gestión de Memoria: que proporciona las facilidades de bajo nivel para la gestión de
memoria secundaria necesaria para la ejecución de procesos.
Nivel 2. Procesador: Se encarga de activar los quantums de tiempo para cada uno de los
procesos, creando interrupciones de hardware cuando no son respetadas.
Nivel 3. Entrada/Salida: Proporciona las facilidades para poder utilizar los dispositivos de E/S
requeridos por procesos.