UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO FACULTAD DE CONTADURIA Y ADMINISTRACION SISTEMAS OPERATIVOS Erika M. Barón González Sistemas Operativos Multiusuario Maihuadira@comunidad.unam.mx dispositivos que van desde teléfonos celulares y consolas de juegos hasta equipos para redes de computadoras, entre otros. Abstract Un Sistema Operativo (SO) es una colección organizada de rutinas de control que hacen funcionar una computadora y proporcionan un entorno para la ejecución de software de aplicación Un SO también provee un canal de comunicación entre el usuario y el hardware a través de una interfaz. 2. Sistemas operativos. Un sistema operativo es el encargado de realizar tareas básicas como reconocimiento de la conexión del teclado, envío de información a la pantalla, almacenamiento de archivos y directorios en distintos discos, control de dispositivos periféricos, etc. El objetivo principal de un SO es lograr que el sistema de computo se empleé de manera cómoda y el hardware de forma eficiente., así como asegurar el correcto funcionamiento del sistema informático. Se comunica con el equipo a través de dos tipos de impulsos eléctricos que son la base del lenguaje binario, mismo que se considera un lenguaje de bajo nivel y es prácticamente incomprensible para el ser humano, una de las funciones del sistema operativo en convertirlo a uno de alto nivel que sea inteligible a las personas. 1. Introducción El sistema operativo, constituido por varios programas y subprogramas, reside dentro de un sistema de cómputo y, efectúa la función de un intermediario entre el usuario y el hardware y software de la computadora; así, éste recibe las peticiones del usuario, interactúa con la computadora para indicarle a ésta las instrucciones que debe seguir para realizar una tarea solicitada. Para operar, el sistema operativo debe administrar tanto los recursos de hardware como los de software. Los primeros equipos de computo operaron sin un sistema operativo, sin embargo, considerando que las tareas del operador generalmente se trataban de una secuencia de pasos repetitivos, se pensó en la posibilidad de plasmar estas secuencias en un programa, mismo que más tarde se convirtió en un SO. Actualmente son una herramienta cotidiana y de fácil utilización y han ampliado su rango de acción, pues ofrecen gran flexibilidad de operación y una gran variedad de funciones para Existen diversos componentes que constituyen un sistema operativo, entre los cuales se distribuyen todas las tareas que éste realiza. · · · · · Administrador de procesos. Se encarga de dirigir todas y cada una de las aplicaciones que se ejecutes Administrador de memoria. Controla las partes de la memoria para conocer el espacio disponible de las misma, los datos guardados en cada una de ellas, etc. Administrador de archivos. Crea y elimina archivos y carpetas y controla los accesos. Administrador de entrada/salida. Organiza y prioriza todas las peticiones de entrada y salida de información. Administración de redes. Al establecer una conexión entre diversos equipos estos se identifican entre di de manera única, por lo que el 1 UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO FACULTAD DE CONTADURIA Y ADMINISTRACION · · sistema operativo debe controlar el acceso a la información del resto de los equipos conectados a la red. Sistema de protección. Identifica a los usuarios y restringe el acceso a determinados procesos. Interprete de comandos (Shell). Actúa como conexión o enlace entre el usuario y el propio sistema operativo, mostrándole un ambiente de trabajo al que se le denomina interfaz. La interfaz, que un sistema operativo muestra al usuario, puede estar basada simplemente en caracteres o también en imágenes. Una interfaz basada en caracteres se conoce como de línea de comando y en ella el usuario debe teclear cada una de las órdenes que desee que el sistema ejecute; ejemplos de este tipo de sistema son: MS-DOS de Microsoft; DR-DOS de Digital Research y Unix de los Laboratorios Bell. En una interfaz grafica el usuario se comunica a través de un ambiente plagado de imágenes donde no requiere escribir comando alguno, sino solamente utilizar algún dispositivo de entrada, para elegir comandos cuyos símbolos se encuentran distribuidos en diversas secciones de la pantalla, tal es el caso de Windows de Microsoft; Linux y Mac OSX de Apple. Sin embargo, la clasificación de los sistemas operativos no es única, existen otras categorizaciones de acuerdo a las características que los definen, como el número de usuarios que pueden acceder a ellos simultáneamente. Independientemente del tipo de sistema operativo que utilicemos, éstos poseen básicamente un solo funcionamiento el cual se basa en proporcionar una plataforma de software que se utilizará para que los otros programas, conocidos como “aplicaciones”, puedan funcionar. 2.1. S.O. Multiusuario. En general se le llama multiusuario a la característica de un sistema operativo o programa que permite proveer servicio y procesamiento a múltiples usuarios simultáneamente, es decir, se comparten recursos, que generalmente son una combinación de: · · · · · Procesador. Memoria. Almacenamiento Programas. Periféricos 1. Estructura básica de un SO multiusuario De tal modo que los múltiples usuarios tienen la impresión de utilizar un ordenador y un sistema operativo unificado, que les están dedicados por completo. La compartición de los recursos de procesamiento, almacenaje y periféricos facilita la reducción de tiempo ocioso en el procesador, e indirectamente implica reducción de los costos de energía y equipamiento para resolver las necesidades de cómputo de los usuarios. Ejemplos de sistemas operativos con característica de multiusuario son VMS y Unix, así como sus múltiples derivaciones y los sistemas tipo Unix como Linux, FreeBSD y Mac OS X. En la familia de los sistemas operativos Microsoft Windows, desde Windows 95 hasta la versión Windows 2000, proveen soporte para ambientes personalizados por usuario, pero no admiten la ejecución de múltiples sesiones de usuario mediante el entorno gráfico, las versiones de Windows 2003 server y Windows 2008 server ofrecen el servicio Terminal Server el cual permite la ejecución remota de diferentes sesiones de usuario. 2.2. Arquitecturas internas El objetivo principal de una estructura en un SO es proporcionar un régimen de organización interna que facilite la comprensión, incremente la portabilidad y extensión, favorezca el mantenimiento y optimice la gestión de servicios, entre los que se encuentran: · Interfaz de usuario (GUI, CLI) 2 UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO FACULTAD DE CONTADURIA Y ADMINISTRACION · · · · · · · Ejecución de programas Administración de procesos Administración de memoria Administración de E/S Administración del sistema de archivos Comunicación Detección de errores Protección y seguridad Un sistema operativo multiusuario consta de dos partes indispensables para su funcionamiento: el kernel y el Shell. El primero gestiona las funciones del sistema operativo, es decir, facilita a los distintos programas acceso seguro al hardware, decide que programa podrá hacer uso de un dispositivo y durante cuánto tiempo, garantiza la carga y ejecución de los procesos, entre otros, y el Shell, que es la interface entre el usuario y el kernel, para ello utiliza una ventana a través de la cual el usuario introduce ordenes escritas; se puede decir que funciona como un intérprete. 2. Sistemas de capas. Consiste en organizar el sistema operativo mediante una jerarquía de capas que permite disminuir la complejidad, cada capa tiene una función claramente definida. Las estructuras internas y los algoritmos de una capa son independientes y algunas de ellas puedes ser transparentes si sus servicios no son necesarios. 4. Diagrama de una estructura por capas. Microkernels. La idea de esta estructura es dividir el sistema operativo en módulos pequeños, ejecutándose solo uno en modo kernel. , de esta forma el error de un modulo no afecta todo el sistema, además tienen la ventaja de ser fáciles de mantener debido a la estructura modular. Un sistema con microkernel es, por ejemplo, MacOS X. Diagrama de la función básica del núcleo. Existen diversas estructuras utilizadas para desarrollar los diferentes sistemas operativos, entre ellas: 5. Sistemas monolíticos. El sistema operativo está formado por un conjunto de procedimientos de forma que cada uno puede llamar a los demás cuando los necesite. Todas las funciones que realiza el sistema operativo se llevan a cabo con un solo programa que se ejecuta en modo kernel. 3. Diagrama de una estructura monolítica. Diagrama básico de una estructura microkernel. Maquinas virtuales. Se trata de realizar copias exactas del hardware que tiene la maquina real, incluyendo modo kernel y modo usuario, la entrada y salida, etc. Cada máquina virtual es idéntica al verdadero hardware y cada una puede ejecutar un sistema operativo distinto. 6. Diagrama de una estructura de maquina virtual. 3 UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO FACULTAD DE CONTADURIA Y ADMINISTRACION Exokernels. Consiste en dividir recursos y asignar a cada usuario una parte de esos recursos. Permite que el desarrollador tome todas las decisiones respecto al rendimiento del hardware. Se llaman así porque toda la funcionalidad deja de estar residente en memoria y pasa a estar en librerías dinámicas. 7. Diagrama básico de una estructura exokernel. Dependiendo de la estructura de sistema operativo, este tendrá unos elementos u otros (procedimientos, rutinas, bibliotecas, drivers) y estos se podrán ejecutar en modo kernel o modo usuario. 2.2.1. Windows 7 La arquitectura de Windows es altamente modular y se basa en dos capas principales: § § Modo usuario: Cuyos programas y subsistemas están limitados a los recursos del sistema a los que tienen acceso. Modo núcleo: Tiene acceso total a la memoria del sistema y los dispositivos externos. Los núcleos de los sistemas operativos de esta línea son todos conocidos como núcleos híbridos, aunque hay que aclarar que este término está en discusión ya que este núcleo es esencialmente un núcleo monolítico que está estructurado al estilo de un microkernel. La arquitectura dentro del modo núcleo se compone de: 1. 2. 3. 4. El modo núcleo está compuesto por subsistemas capaces de pasar peticiones de E/S a los controladores apropiados usando el gestor de E/S. Dos subsistemas crean la capa del modo usuario: el subsistema de Entorno (ejecuta aplicaciones escritas para distintos tipos de sistemas operativos), y el subsistema Integral (maneja funciones específicas de sistema de parte del subsistema de Entorno). El modo núcleo en Windows tiene acceso total al hardware y a los recursos del sistema de la computadora, impide a los servicios del modo usuario y las aplicaciones acceder a áreas críticas del sistema operativo a las que no deberían tener acceso. El Executive se relaciona con todos los subsistemas del modo usuario. Se ocupa de la entrada/salida, la gestión de objetos, la seguridad y la gestión de procesos. El núcleo se sitúa entre la Capa de Abstracción de Hardware y el Executive para proporcionar sincronización multiprocesador, hilos y programación y envío de interrupciones, y envío de excepciones. El núcleo también es responsable de la inicialización de los controladores de dispositivos al arrancar. Hay tres niveles de controladores en el modo núcleo: controladores de alto nivel, controladores intermedios y controladores de bajo nivel. El modelo de controladores de Windows se encuentra en la capa intermedia y fue diseñado principalmente para mantener la compatibilidad en binario y en código fuente entre versiones diferentes. Un núcleo híbrido. Una Capa de Abstracción de Hardware. Controladores o drivers. Executive. Sobre el cual son implementados todos los servicios de alto nivel. 8. Arquitectura de un sistema operativo Windows. 4 UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO FACULTAD DE CONTADURIA Y ADMINISTRACION Para establecer relaciones entre las diferentes capas se dispone de cuatro posibilidades: 2.2.2. UNIX · · Es un sistema operativo interactivo de tiempo compartido, controla los recursos de una computadora y los asigna entre los usuarios. Permite a los usuarios correr sus programas y controla los dispositivos de periféricos conectados a la máquina. El sistema se basa en un Kernel, que reside permanentemente en la memoria, y que atiende a todas las llamadas del sistema, administra el acceso a los archivos y el inicio o la suspensión de las tareas de los usuarios. La comunicación con el sistema UNIX se da mediante el shell, cuyas características lo hacen sumamente flexible para las tareas de un centro de cómputo Diferentes usuarios pueden tener acceso a versiones distintas del sistema operativo debido a la capacidad del shell para configurar diversos ambientes de ejecución. · · Llamadas al sistema. Procedimientos estándar característicos de lenguaje C. Utilidades suministradas con el sistema. Controladores de E/S suministrados con el sistema, variables de una instalación a otra. 2.2.3. Linux La arquitectura LINUX se divide en tres capas: 1. Modo usuario, donde se ejecutan todos los procesos de usuario, sin capacidad para ejecutar las instrucciones más privilegiadas del procesador. 2. Modo núcleo, es el privilegiado del procesador donde pueden ejecutarse todas sus instrucciones sin restricciones. 3. El nivel del hardware, correspondiente al hardware especifico conectado en el sistema. 9. Arquitectura de un sistema operativo UNIX. En UNIX se distinguen esencialmente tres capas: · · · La comunicación entre los procesos de usuario y el núcleo se realiza a través de la librería del sistema, que genera una interrupción de software cada vez que se realiza una llamada al sistema para obtener un servicio del núcleo. Respecto a la estructura interna del núcleo, LINUX utiliza una arquitectura monolítica tradicional. Procesos de usuarios Núcleo Controladores de periféricos Estas constituyen dominios a través de los cuales las peticiones de las aplicaciones experimentan diferentes tratamientos antes de llegar a su destino. Un usuario puede crear directamente procesos a todos los niveles, excepto en el núcleo. 10. Arquitectura del sistema operativo LINUX. 5 UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO FACULTAD DE CONTADURIA Y ADMINISTRACION 2.2.4. MacOS X El Mac OS X posee una arquitectura modular que se construye a partir de cuatro componentes básicos: el sistema operativo central Darwin, un conjunto de estructuras de aplicaciones, sistemas de gráficos basados en estándares y la interfaz de usuario. El kernel de Mac OS es un sistema originalmente basado en una estructura de microkernel. Sin embargo, el uso que se hace de este sistema en Mac OS X no es como microkernel, sino que ha sido adaptado a las necesidades de Mac OS X. En este caso concreto, Mach esta enlazado con el resto de componentes del sistema, de forma que todo ello pertenece a un único espacio de direcciones. Este diseño está motivado por razones de eficiencia, ya que una llamada directa entre módulo directamente enlazados es más rápida que una llamada a procedimiento remoto o el envío de un mensaje. En cualquier caso, el kernel de Mac OS X sigue manteniendo un alto grado de modularidad ofreciendo más flexibilidad y sencillez que un kernel puramente monolítico. de núcleo avanzada ofrece capacidad para múltiples procesadores, un alto rendimiento, ancho de banda de entrada/salida modular y un penetrante sistema multihilo para su sistema de procesos multitarea reentrante, flexibilidad gráfica y respuesta en tiempo real. 12. Arquitectura de BeOS, sobre la cual se basa Haiku. 3. Referencias [1] Andrew S. Tanenbaum, “Sistemas Operativos Modernos”, Prentice Hall, 2a edición, 2003. [2] Gary Nutt, “Sistemas Operativos”, Addison Wesley; 3a edición, 2004. [3] Clases virtuales, Sistemas operativos multiusuarios, Plataforma SUA. 11. Arquitectura del sistema operativo MacOS X. 2.2.5. Haiku Haiku es un sistema operativo de código abierto que se centra específicamente en la informática personal y multimedia. Inspirado por BeOS, Haiku aspira a convertirse en un sistema rápido, eficiente, fácil de usar y fácil de aprender, sin descuidar su potencia para los usuarios de todos los niveles; cuenta con un micronúcleo modular propio, el cual será altamente optimizado para trabajo con audio, vídeo, gráficos, y animaciones en tres dimensiones. Su arquitectura 6