UNIDAD 1 - INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS

Escrito por itcancunso 05-03-2018 en Tecnologia. Comentarios (0)

1.1 Definición y concepto.

Sistema Operativo: Colección de mecanismos de software destinados a servir de interface entre un sistema informático y sus usuarios, el cual ofrece herramientas y facilidades para simplificar las tareas de diseño, codificación, depuración, actualización, etc. 

Administra los recursos hardware y software que constituyen el sistema informático a explotar. Nació con la necesidad de llevar el control de quién utiliza los recursos software (usuario(s)). 

Componentes principales: manejo de procesos, entrada/salida, manejo de memoria y del sistema de archivos. Un sistema de computación consta de hardware, programas del sistema y programas de aplicación. 

1.2 Funciones y características. 

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

  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 porque 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. 
  • 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. Convenicencia: Un sistema operativo hace mas conveniente el uso de la  computadora
  2. Eficiencia: Un sistema operativo permite que los recursos de una computadora se usen de la manera mas eficiente posible.
  3. Habilidad para evolucionar: Un sistema operativo deberá construirse de manera que permita el desarrolla, 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 atravéz del kernel): El sistema operativo debe de encargar de comunicar a los dispositivos cuando el usuario asi 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 ordenadores.
  8. Procesamiento por bytes de flujo a travez 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 esta 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

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 (etapas) de como han ido evolucionando los Sistemas Operativos:

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

Despues de los infructuosos esfuerzos de Babbage, hubo poco progreso en la construccion de las computadoras digitales, hasta la Segunda Guerra Mundial. A mitad de la decada 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 maquinas de calculo mediante bulbos. Estas maquinas eran enormes y llenaban cuartos completos con decenas de miles de bulbos, pero eran mucho mas lentas que la computadora casera mas economica en nuestros dias. 

Toda la programacion se llevaba a cabo en lenguaje de maquina absoluto y con frecuencia se utilizaban conexiones para controlar las funciones basicas de la maquina. Los lenguajes de programacion eran desconocidos (incluso el lenguaje ensamblador). No se oia de los Sistemas Operativos el modo usual de operacion consistia en que el programador reservaba cierto periodo en una hoja de reservacion pegada a la pared, iba al cuarto de la maquina, insertaba su conexion a la computadora y pasaba unas horas esperando que ninguno de los 20,000 o mas bulbos se quemara durante la ejecucion. La inmensa mayoria de los problemas eran calculos numericos directos, por ejemplo, el calculo de valores para tablas de senos y cosenos. 

A principio de la decada de los 50's la rutina mejoro un poco con la introduccion de las tarjetas perforadas. Fue entonces posible escribir los programas y leerlas en vez de insertar conexiones, por lo demas el proceso era el mismo. 

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

La introduccion del transistor a mediados de los años 50's modifico en forma radical el panorama. Las computadoras se volvieron confiables de forma que podian 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 demas rapidas vias para reducir el tiempo invertido. La solucion que, por lo general se adopto, fue la del sistema de procesamiento por lotes.

3ra Etapa (1965-1980): Circuitos integrados y multiprogramacion

La 360 de IBM fue la primera linea principal de computadoras que utilizo los circuitos integrados, lo que proporciono una gran ventaja en el precio y desempeno con respecto a las maquinas de la segunda generacion, construidas a partir de transistores individuales. Se trabajo con un sistema operativo enorme y extraordinariamente complejo. A pesar de su enorme tamano y sus problemas el sistema operativo de la linea IBM 360 y los sistemas operativos similares de esta generacion producidos por otros fabricantes de computadoras realmente pudieron satisfacer, en forma razonable a la mayoria de sus clientes. Tambien popularizaron varias tecnicas fundamentales, ausentes de los sistemas operativos de la segunda generacion, de las cuales la mas importante era la de multiprogramacion.


Otra caracteristica era la capacidad de leer trabajos de las tarjetas al disco, tan pronto como llegara al cuarto de computo. Asi, siempre que concluyera un trabajo el sistema operativo podia cargar un nuevo trabajo del disco en la particion 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 ochenta 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 estan conscientes de la existencia de varias computadoras y pueden conectarse con maquinas remotas y copiar archivos de una maquina a otra. Cada maquina 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 esta compuesto por varios procesadores. En un sistema distribuido verdadero, los usuarios no deben ser conscientes del lugar donde su programa se ejecute o de lugar donde se encuentren sus archivos; eso debe ser manejado en forma automatica y eficaz por el sistema operativo.

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 ordenador 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 ordenador aunque las estrategias de negocio al respecto nunca llegaban. Una vez 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. 

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 Labs, y luego en conjunto con Dennis Ritchie (quien junto a Brian Kerningan desarrollaron el lenguaje de programación C) y otros miembros del Bell Labs que se fueron incorporando. Ritchie ya tenia 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 a 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: password's 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 ordenadores de Apple, la primera del mercado que no era compatible con IBM.

Fue el primer ordenador 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 ordenadores 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 ordenador Macintosh, lanzado al mercado en 1984, contaba únicamente con una disquetera una memoria de 128K y una pantalla monocromo 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 los años 90, 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 coma 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 ordenadores. 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 ordenadores. 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 ordenador 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 específicamente para máquinas de 64 bits, tales como distribuciones de Linux y la versión de Windows XP para 64 bits.

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. 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 secuenciabilidad 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.
  • 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.

 Sistemas Operativos de tiempo real.Los Sistemas Operativos de tiempo real son aquelos 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.
  • 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 sisterma computacional, en breve tiempo o dentro de ciertos plazos.
  • Se utlizan 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 utliza 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 utlización eficiente del recurso.

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 (UCP) 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 inndividuales.
  • Requieren validación de usuario para seguridad y protección.
  • Proporcionan contabilidad del uso de los recursos por parte de los usuarios.
  • Multitarea sin soprte 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 de tiempo compartido.

Permiten la simulación de que el sistema y sus recursos son todos para cada usuarios. 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, 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 computador, procesamiento de texto, etc.
  • Dan la ilusión de que cada usuario tiene una máquina para  sí.
  • Mayoría utilizan algoritmo de reparto circular.
  • Programas se ejcutan 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 slot).
  • Gestión de memoria proporciona protección a programas residentes.
  • Gestión de archivo  debe proporcionar protección y control de acceso debido a que  pueden existir múltiples usuarios accesando un mismo archivos.

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.

Caracteristicas de los Sistemas Operativos distribuidos:

  • Colección de sistemas autónomos capaces de comunicación y cooperación mediante interconexiones hardware y software .
  • Gobierna 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 de red

Son aquellos sistemas que mantienen a dos o más computadoras unidas através de algún medio de comunicación (fisico 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.

Sistemas Operativos paralelos.

En estos tiposde 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, sinulando 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.


1.5 Estructura: niveles o estratos de diseño

Internamente los sistemas operativos estructuralmente de se clasifican según como se hayan organizado intérnamente 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 la 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.

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 mas intensas o nucleo están mas protegidas de posibles accesos indeseados desde las capas mas externas.
  • Tienes un contacto mas próximo con el hardware.
  • Núcleo mínimo, mas 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”

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 estarto 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

Estructura por microkernel

Las funciones centrales de un SO son controladas por el núcleo (kernel) mientras que la interfaz del us

uario 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 interprete 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.

Estructura cliente – servidor

Una tendencia de los sistemas operativos modernos es la de explotar la idea de mover el códi

go 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 ún

ico 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 servidorSe puede conectar a varios servidores a la vez .
  • Servidor:
  • Esclavo, espera las solicitudes del cliente
  • Aceptan conexiones desde un gran numero de clientes.

EJEMPLOS

  • Sistema operativo Novell NetWare 1983, plataforma mas 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

  • 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 maquina virtual esta aislada de las otras y no puede inferir.

EJEMPLOS

  • Nachos: sistema operativo se ejecuta en una virtual mips, cuyo emulador corre sobre Linux.
  • IBM IV: ofrecía a cada usuario su propia maquina virtual no multiprogramado.