Está en la página 1de 29

Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

Unidad 1 Introducción a los Sistemas Operativos

Competencia específica a desarrollar:

Identificar los componentes de los sistemas operativos, así como el objetivo, la función y las
características de diferentes sistemas operativos

1.1 Definición y concepto

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.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 1


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

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.

Se puede definir de la siguiente manera:

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.

Como concepto mas general podríamos decir que:

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.

1.2 Funciones y características

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:

 Proporcionar más comodidad en el uso de un computador.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 2


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

 Gestionar de manera eficiente los recursos del equipo, ejecutando servicios para los procesos
(programas)

 Brindar una interfaz al usuario, ejecutando instrucciones (comandos).

 Permitir que los cambios debidos al desarrollo del propio SO se puedan realizar sin interferir
con los servicios que ya se prestaban (evolutividad).

Un sistema operativo desempeña 5 funciones básicas en la operación de un sistema informático:


suministro de interfaz al usuario, administración de recursos, administración de archivos, administración
de tareas y servicio de soporte y utilidades.

1. Interfaces del usuario

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

Un sistema de información contiene programas de administración de archivos que controlan la


creación, borrado y acceso de archivos de datos y de programas. También implica mantener el registro
de la ubicación física de los archivos en los discos magnéticos y en otros dispositivos de
almacenamiento secundarios.

4. Administración de tareas

Los programas de administración de tareas de un sistema operativo administran la realización de las


tareas informáticas de los usuarios finales. Los programas controlan que áreas tiene acceso al CPU y
por cuánto tiempo. Las funciones de administración de tareas pueden distribuir una parte específica
del tiempo del CPU para una tarea en particular, e interrumpir al CPU en cualquier momento para
sustituirla con una tarea de mayor prioridad.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 3


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

5. Servicio de soporte

Los servicios de soporte de cada sistema operativo dependerán de la implementación particular de


éste con la que estemos trabajando. Entre las más conocidas se pueden destacar las implementaciones
de Unix, desarrolladas por diferentes empresas de software, los sistemas operativos de Apple Inc.,
como Mac OS X para las computadoras de Apple Inc., los sistemas operativos de Microsoft, y las
implementaciones de software libre, como GNU/Linux o BSD producidas por empresas, universidades,
administraciones públicas, organizaciones sin fines de lucro y/o comunidades de desarrollo.

Estos servicios de soporte suelen consistir en:

 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).

 Corrección de errores de software.

 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).

Tareas que realiza un sistema operativo

 Realizar el interfaz sistema-usuario.

 Compartir los recursos de Hardware entre los usuarios.

 Permitir a los usuarios compartir sus datos entre ellos.

 Prevenir que las actividades de un usuario no interfieran en las de los demás usuarios.

 Calendarizar los recursos de los usuarios.

 Facilitar el acceso a los dispositivos de E/S.

 Recuperarse de fallas o errores.

 Llevar el control sobre el uso de los recursos, entre otras.

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.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 4


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

 Manejo de Memoria.

 Manejo del Sistema de Archivos.

El sistema operativo indica a la computadora la manera de utilizar otros programas de software y


administra todo el hardware, tanto el interno como el externo, que está instalado en la computadora.
Los sistemas operativos pueden ser basados en caracteres o gráficos. Un sistema operativo basado
en caracteres, tal como MS-DOS, le permite escribir comandos en un indicador para controlar la
computadora. Un interfaz gráfico del usuario, o GUI, le permite enviar comandos a la computadora al
hacer clic en iconos o al seleccionar elementos en los menús. Windows 95 cuenta con un GUI.
La mayoría de los sistemas operativos pueden manejar programas de 16 ó 32 bits, o ambos. Microsoft
Windows 3.x ejecuta únicamente los programas de 16 bits; Windows 95 de Microsoft puede ejecutar
ambos programas de 16 ó 32 bits.

CARACTERÍSTICAS

En general puede decirse que un sistema operativo tiene las siguientes características:

1. Conveniencia: Un sistema operativo hace más conveniente el uso de la computadora

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.

4. Encargado de administrar el hardware: El sistema operativo de encarga de administrar de


una mejor manera los recursos de una computadora en cuanto a hardware se refiere, esto es,
asignar a cada proceso una parte del procesador para compartir los recursos.

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.

6. Organizar datos para acceso rápido y seguro.

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.

8. Procesamiento por bytes de flujo a través del bus de datos.

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.

10. Técnicas de recuperación de errores.

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.

12. Generación de estadísticas

13. Permite que se puedan compartir el hardware y los datos entre los usuarios.

1.3 Evolución histórica.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 5


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

Para tratar de comprender los requisitos de un Sistema Operativo y el significado de las


principales características de un Sistema Operativo contemporáneo, es útil considerar como
han ido evolucionando éstos con el tiempo.

Existen diferentes enfoques o versiones de cómo han ido evolucionando los Sistemas Operativos

La primera de estas versiones podría ser esta:

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.

La conectividad se facilita gracias a estándares y protocolos de sistemas abiertos por organizaciones


como la Organización Internacional de Normas, fundación de software abierto, todo estará más
controlado por los protocolos de comunicación OSI y por la red de servicios digital ISDN.

Se ha desarrollado otra versión, la cual se ha hecho en base a etapas o generaciones:

1a. Etapa (1945-1955): Bulbos y conexiones.

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.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 6


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

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.

2a. Etapa. (1955-1965): Transistores y Sistemas de Procesamiento por lotes.

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.

3ra Etapa (1965-1980): Circuitos integrados y multiprogramación

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

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 7


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

otros fabricantes de computadoras realmente pudieron satisfacer, en forma razonable a la mayoría de


sus clientes. También popularizaron varias técnicas fundamentales, ausentes de los sistemas
operativos de la segunda generación, de las cuales la mas importante era la de multiprogramación.

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.

4ta Etapa (1980-Actualidad): Computadoras personales

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.

A continuación se presenta de manera individual los inicios de los principales sistemas


operativos.

Los comienzos de DOS, los comienzos de la informática

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'.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 8


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

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.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 9


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

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.

Consecuentemente, el 27 de julio de 1981, el sistema operativo se convirtió en propiedad de Microsoft.


Sin embargo, creo que las dos empresas tuvieron un final feliz: la alianza se cerró pocas semanas
antes de que el procesador se anunciara. Es decir, Microsoft fue de confianza'

Unix como base de sistemas operativos

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

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 10


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

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.

Soporta el procesamiento en tiempo real (ejecución de procesos en intervalos de tiempo especificados


sin retardo), el cual se utiliza en aplicaciones de robótica y base de datos.

Los sistemas UNIX son esenciales para la Internet.

Los sistemas de archivos con árboles multiniveles permiten que el SO trate tanto a directorios y archivos
como simples secuencias de bytes.

Posee distintos niveles de seguridad: passwords de ingreso y permisos de archivos y directorios.

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.

Macintosh, el primero con interfaz gráfica de usuario

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.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 11


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

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.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 12


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

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.

System 7 (7.0 a 7.6.1): se completaba la integración de procesamiento de multitarea cooperativo dentro


del sistema. Este sistema gradualmente integraba funcionalidades referidas a las aplicaciones
multimedia e Internet. Ciertas versiones tenían problemas de estabilidad.

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.

Actualidad de los Sistemas Operativos

La actualidad de los Sistemas Operativos, la acaparan mayoritariamente “los tres grandes”, Windows,
Unix y Mac Os, en sus respectivas versiones actuales.

Paralelamente, estamos ante la evolución de los microprocesadores pasando de 32 a 64 bits,


aumentando con ello el rendimiento y capacidad, ya existen sistemas operativos desarrollados

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 13


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

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:

Sistemas Operativos por lotes.

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.

 Permiten poca o ninguna interacción usuario/programa en ejecución.

 Mayor potencial de utilización de recursos que procesamiento serial simple en sistemas


multiusuarios.

 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.)

 Se encuentra en muchos computadores personales combinados con procesamiento serial.

 Planificación del procesador sencilla, típicamente procesados en orden de llegada.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 14


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

 Planificación de memoria sencilla, generalmente se divide en dos: parte residente del S.O. y
programas transitorios.

 No requieren gestión crítica de dispositivos en el tiempo.

 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.

Sistemas Operativos de tiempo real.

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

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 15


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

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.

 Sistemas de fabricación integrada.

 Producción y distribución de energía eléctrica.

 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.

 Se utilizan en control industrial, conmutación telefónica, control de vuelo, simulaciones en tiempo


real., aplicaciones militares, etc.

 Objetivo es proporcionar rápidos tiempos de respuesta.

 Procesa ráfagas de miles de interrupciones por segundo sin perder un solo suceso.

 Proceso se activa tras ocurrencia de suceso, mediante interrupción.

 Proceso de mayor prioridad expropia recursos.

 Por tanto generalmente se utiliza planificación expropiativa basada en prioridades.

 Gestión de memoria menos exigente que tiempo compartido, usualmente procesos son residentes
permanentes en memoria.

 Población de procesos estática en gran medida.

 Poco movimiento de programas entre almacenamiento secundario y memoria.

 Gestión de archivos se orienta más a velocidad de acceso que a utilización eficiente del recurso.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 16


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

Sistemas Operativos de multiprogramación (o Sistemas Operativos de multitarea).

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.

Las características de un Sistema Operativo de multiprogramación o multitarea son las siguientes:

 Mejora productividad del sistema y utilización de recursos.

 Multiplexa recursos entre varios programas.

 Generalmente soportan múltiples usuarios (multiusuarios).

 Proporcionan facilidades para mantener el entorno de usuarios individuales.

 Requieren validación de usuario para seguridad y protección.

 Proporcionan contabilidad del uso de los recursos por parte de los usuarios.

 Multitarea sin soporte multiusuario se encuentra en algunos computadores personales o en


sistemas de tiempo real.

 Sistemas multiprocesadores son sistemas multitareas por definición ya que soportan la ejecución
simultánea de múltiples tareas sobre diferentes procesadores.

 En general, los sistemas de multiprogramación se caracterizan por tener múltiples programas


activos compitiendo por los recursos del sistema: procesador, memoria, dispositivos periféricos.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 17


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

Sistemas Operativos de tiempo compartido.

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.

Ejemplos de Sistemas Operativos de tiempo compartido son Multics, OS/360 y DEC-10.

Características de los Sistemas Operativos de tiempo compartido:

 Populares representantes de sistemas multiprogramados multiusuario, ej.: sistemas de diseño


asistido por computadora, procesamiento de texto, etc.

 Dan la ilusión de que cada usuario tiene una máquina para sí.

 La mayoría utilizan algoritmo de reparto circular (Round Robin).

 Programas se ejecutan con prioridad rotatoria que se incrementa con la espera y disminuye
después de concedido el servicio.

 Evitan monopolización del sistema asignando tiempos de procesador (time slice).

 Gestión de memoria proporciona protección a programas residentes.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 18


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

 Gestión de archivo debe proporcionar protección y control de acceso debido a que pueden existir
múltiples usuarios accesando un mismo archivo.

Sistemas Operativos distribuidos.

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.

Características de los Sistemas Operativos distribuidos:

 Colección de sistemas autónomos capaces de comunicación y cooperación mediante


interconexiones hardware y software.

 Gobierna la operación de un S.C. y proporciona abstracción de máquina virtual a los usuarios.

 Objetivo clave es la transparencia.

 Generalmente proporcionan medios para la compartición global de recursos.

 Servicios añadidos: denominación global, sistemas de archivos distribuidos, facilidades para


distribución de cálculos (a través de comunicación de procesos internodos, llamadas
a procedimientos remotos, etc.).

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 19


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

Sistemas Operativos de red

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.

Figura. Se muestra un Sistema Operativo en red.

Sistemas Operativos paralelos.

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.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 20


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

Ejemplos de estos tipos de Sistemas Operativos están: Alpha, PVM, la serie AIX, que es utilizado en los
sistemas RS/6000 de IBM.

1.5 Estructura: niveles o estratos de diseño

Internamente los sistemas operativos estructuralmente de se clasifican según como se hayan


organizado internamente en su diseño, por esto la clasificación más común de los S.O. son:

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.

 Buena definición de parámetros de enlace entre las rutinas existentes.

 Carecen de protección y privilegios al entrar y manejan diferentes aspectos de la computadora.

 Generalmente están hechos a la medida.

 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.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 21


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

En términos de ocultamiento de información, esencialmente no existe ninguno; todo procedimiento es


visible para todos (al contrario de una estructura que contiene módulos o paquetes, en los cuales mucha
información es local a un módulo y sólo pueden llamar puntos de registro designados oficialmente del
exterior del módulo)

Esta organización sugiere una estructura básica del sistema operativo:

1.- Un programa central que invoque el procedimiento de servicio solicitado (Shell o Kernel)

2.- Un conjunto de procedimientos de servicios que realice las llamadas al sistema.

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.

 Tienes un contacto más próximo con el hardware.

 Núcleo mínimo, más seguro y ágil.

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”

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 22


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

EJEMPLOS

Multics y Unix

El sistema tenía 6 estratos, estos se muestran en la siguiente imagen:

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.

En otras palabras, el estrato 0 ofrecía la multiprogramación básica de la CPU.

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 2 manejaba la comunicación entre cada proceso y la consola de operador.

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

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 23


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

Estructura por microkernel

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.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 24


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

Estructura cliente – servidor

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

Si un cliente se comunica con un servidor mediante mensajes, el cliente no necesita saber si el


mensaje se maneja en forma local, en su máquina, o si se envía por medio de una red a un servidor en
una máquina remota. En lo que respecta al cliente, lo mismo ocurre en ambos casos: se envió una
solicitud y se recibió una respuesta

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:

 Esclavo, espera las solicitudes del cliente

 Aceptan conexiones desde un gran número de clientes.

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.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 25


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

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

 Se puede hacer varios sistemas operativos sin necesidad de crear particiones.

 Se puede simular el hardware Gran capacidad de disco duro-memoria RAM.

 Protección cada máquina virtual está aislada de las otras y no puede inferir.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 26


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

EJEMPLOS

 Nachos: sistema operativo se ejecuta en una virtual mips, cuyo emulador corre sobre Linux.

 IBM IV: ofrecía a cada usuario su propia máquina virtual, no multiprogramada.

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.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 27


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

El núcleo de un sistema operativo normalmente contiene el código necesario para realizar las siguientes
funciones:

 Manejo de interrupciones.

 Creación y destrucción de procesos.

 Cambio de estado de los procesos.

 Despacho.

 Suspensión y reanudación de procesos.

 Sincronización de procesos.

 Comunicación entre procesos.

 Manipulación de los bloques de control de procesos.

 Apoyo para las actividades de entrada/salida.

 Apoyo para asignación y liberación de memoria.

 Apoyo para el sistema de archivos.

 Apoyo para el mecanismo de llamada y retorno de un procedimiento.

 Apoyo para ciertas funciones de contabilidad del sistema.

 Núcleo o Kernel y niveles de un Sistema Operativo.

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:

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 28


Tecnológico Nacional de México Instituto Tecnológico de Nuevo Laredo

 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.

 Nivel 4. Información o Aplicación o Intérprete de Lenguajes: Facilita la comunicación con los


lenguajes y el sistema operativo para aceptar las órdenes en cada una de las aplicaciones.
Cuando se solicitan ejecutando un programa el software de este nivel crea el ambiente de
trabajo e invoca a los procesos correspondientes.

 Nivel 5. Control de Archivos: Proporciona la facilidad para el almacenamiento a largo plazo y


manipulación de archivos con nombre, va asignando espacio y acceso de datos en memoria.

Sistemas Operativos. Ing. Javier Castañeda Ambriz M. C. Pág. 29

También podría gustarte