Sistemas operativos y su funcionamiento: Windows
SISTEMAS OPERATIVOS Y SU FUNCIONAMIENTO
WINDOWS
Historia
La historia de Windows comienza con un sistema operativo muy diferente, desarrollado por Microsoft para el primer computador personal IBM y conocido como MS-DOS o PC-DOS. La versión inicial, DOS 1.0 apareció en 1981.
Cuando IBM desarrolló un computador personal basado en disco duro, el PC XT, Microsoft desarrolló DOS 2.0, que salió al mercado en 1983. Este sistema daba soporte al disco duro y proporcionaba jerarquía de directorios. Hasta ese momento, un disco podía contener sólo un directorio con ficheros, soportando un máximo de 64 ficheros.
La nueva versión también contenía un conjunto de mandatos más rico dentro del sistema operativo, que proporcionaban funciones que eran realizadas como programas externos con la versión 1. Entre las capacidades añadidas se encontraban algunas características de los sistemas UNIX, como la redirección de E/S, que consiste en la capacidad para modificar la entrada o salida de una determinada aplicación, y la impresión en segundo plano. La porción de memoria residente creció a 24 Kbyte.
Cuando IBM anunció el PC AT en 1984, Microsoft introdujo DOS 3.0. El sistema AT contenía el procesador Intel 80286, que proporcionaba características de direccionamiento extendido y protección de memoria. Estas no eran utilizadas por DOS. Para que fuera compatible con versiones anteriores, el sistema operativo simplemente utilizaba el 80286 como un «8086 rápido».
DOS 3.3, que apareció en 1987, daba soporte a la nueva línea de máquinas IBM, las PS/2. De nuevo, esta versión no se beneficiaba de las capacidades del procesador del PS/2, proporcionadas por el 80286 y los chips de 32 bits 80386.
Mientras tanto, al comienzo de los años 80, Microsoft comenzó a desarrollar una interfaz gráfica de usuario (GUI: Graphical User Interface) que sería interpuesta entre el usuario y el sistema operativo DOS. El objetivo de Microsoft era competir con Macintosh, cuyo sistema operativo era insuperable por facilidad de uso. En 1990, Microsoft tenía una versión de la GUI, conocida como Windows 3.0, que incorporaba algunas de las características más amigables de Macintosh. Sin embargo, estaba todavía limitada por la necesidad de ejecutar encima de DOS.
Microsoft intentó el desarrollo de un sistema operativo de nueva generación con IBM para explotar la potencia de los nuevos microprocesadores, el cual incorporaría las características de facilidad de uso de Windows, pero este proyecto fue finalmente abortado. Después de este intento fallido, Microsoft desarrolló un nuevo y propio sistema operativo desde cero, que denominó Windows NT. Windows NT explota las capacidades de los microprocesadores contemporáneos y proporciona multitarea en un entorno mono o multiusuario.
Después de varias versiones de NT 3.x, Microsoft produjo NT 4.0. NT 4.0 tiene esencialmente la misma arquitectura interna que 3.x. El cambio externo más notable es que NT 4.0 proporciona la misma interfaz de usuario que Windows 95. El cambio arquitectónico más importante es que varios componentes gráficos que ejecutaban en modo usuario como parte del subsistema Win32 en 3.x se mueven al sistema ejecutivo de Windows NT, que ejecuta en modo núcleo. El beneficio de este cambio consiste en la aceleración de estas funciones importantes. La desventaja potencial es que estas funciones gráficas ahora tienen acceso a servicios de bajo nivel del sistema, que pueden impactar en la fiabilidad del sistema operativo.
En 2000, Microsoft introdujo la siguiente principal actualización, que se materializó en el sistema Windows 2000. El énfasis en Windows 2000 es la adición de servicios y funciones que dan soporte al procesamiento distribuido. Un punto final general sobre Windows 2000 es la distinción entre Windows 2000 Server y el escritorio de Windows 2000. En esencia, el núcleo, la arquitectura ejecutiva y los servicios son los mismos, pero Windows 2000 Server incluye algunos servicios requeridos para su uso como servidor de red.
Multitarea monousuario
Dos principales desarrollos han disparado la necesidad de multitarea en computadores personales, estaciones de trabajo y servidores. En primer lugar, con el incremento de la velocidad y la capacidad de memoria de los microprocesadores, junto al soporte para memoria virtual, las aplicaciones se han vuelto más complejas e interrelacionadas.
En un entorno multitarea, el usuario abre cada aplicación cuando la necesita, y la deja abierta. La información se puede mover entre las aplicaciones fácilmente. Cada aplicación tiene una o más ventanas abiertas, y una interfaz gráfica con un dispositivo puntero tal como un ratón permite al usuario navegar fácilmente en este entorno.
Una segunda motivación para la multitarea es el aumento de la computación cliente/servidor. En este paradigma, un computador personal o estación de trabajo (cliente) y un sistema host (servidor) se utilizan de forma conjunta para llevar a cabo una aplicación particular. Los dos están enlazados, y a cada uno se le asigna aquella parte del trabajo que se adapta a sus capacidades.
Arquitectura
La Figura muestra la estructura global de Windows 2000; posteriores versiones de Windows tienen esencialmente la misma estructura a este nivel de detalle. Su estructura modular da a Windows una considerable flexibilidad. Se ha diseñado para ejecutar en una variedad de plataformas hardware y da soporte a aplicaciones escritas para una gran cantidad de sistemas operativos.
Organización del sistema operativo
Los desarrolladores de Windows descubrieron que utilizando la técnica micronúcleo pura, muchas funciones fuera del micronúcleo requerían varios intercambios entre procesos o hilos, cambios de modo y el uso de buffers de memoria extra. Los componentes en modo núcleo son los siguientes:
- Sistema ejecutivo. Contiene los servicios básicos del sistema operativo, como la gestión de memoria, la gestión de procesos e hilos, seguridad, E/S y comunicación entre procesos.
· Contiene módulos:
· Gestor de E/S
· Gestor de caché
· Gestor de objetos
· Gestor de plug and play
· Gestor de potencia
· Monitor de referencia de seguridad
· Gestor de memoria virtual
· Gestor de procesos e hilos
· Gestor de configuración
· Utilidad de llamada a procedimiento local
- Núcleo. Está formado por los componentes más fundamentales del sistema operativo. El núcleo gestiona la planificación de hilos, el intercambio de procesos, las excepciones, el manejo de interrupciones y la sincronización de multiprocesadores.
- Capa de abstracción de hardware (HAL: Hardware Abstraction Layer). Realiza una proyección entre mandatos y respuestas hardware genérico y aquéllos que son propios de una plataforma específica. Aísla el sistema operativo de las diferencias de hardware específicas de la plataforma.
- Controladores de dispositivo. Incluye tanto sistemas de ficheros como controladores de dispositivos hardware que traducen funciones de E/S de usuario en peticiones específicas a dispositivos hardware de E/S.
- Gestión de ventanas y sistemas gráficos. Implementa las funciones de la interfaz gráfica de usuario (GUI), tales como la gestión de ventanas, los controles de la interfaz de usuario y el dibujo.
Procesos en modo usuario
Hay cuatro tipos básicos de procesos en modo usuario en Windows:
· Procesos de sistema especiales. Incluye servicios no proporcionados como parte del sistema operativo Windows, como el proceso de inicio y el gestor de sesiones.
· Procesos de servicio. Otros servicios de Windows como por ejemplo, el registro de eventos.
· Subsistemas de entorno. Expone los servicios nativos de Windows a las aplicaciones de usuario y por tanto, proporciona un entorno o personalidad de sistema operativo. Los subsistemas soportados son Win32, Posix y OS/2. Cada subsistema de entorno incluye bibliotecas de enlace dinámico (Dynamic Link Libraries, DLL), que convierten las llamadas de la aplicación de usuario a llamadas Windows.
· Aplicaciones de usuario. Pueden ser de cinco tipos: Win32, Posix, OS/2, Windows 3.1 o MS-DOS.
Modelo cliente/servidor
Las ventajas de la arquitectura cliente/servidor son las siguientes:
· Simplifica el sistema ejecutivo. Es posible construir diversos API sin conflictos o duplicaciones en el sistema ejecutivo. Se pueden añadir fácilmente nuevas interfaces.
· Mejora la fiabilidad. Cada módulo de los servicios ejecutivos se ejecuta como un proceso separado, con su propia partición de memoria, protegida de otros módulos. Además, los clientes no pueden acceder directamente al hardware o modificar la zona de memoria en la cual se almacena el sistema ejecutivo. Un único servidor puede fallar sin provocar el fallo o corromper el resto del sistema operativo.
· Proporciona a las aplicaciones maneras uniformes de comunicarse con el sistema ejecutivo a través de los LPC sin restringir la flexibilidad. Las aplicaciones cliente esconden el proceso de paso de mensajes a través de resguardos de funciones, que son contenedores no ejecutables almacenados en bibliotecas de enlace dinámicas (Dynamic Link Libraries, DLL).
· Proporciona una base adecuada para la computación distribuida. Normalmente, la computación distribuida utiliza el modelo cliente/servidor, con llamadas a procedimientos remotos implementadas utilizando módulos distribuidos cliente y servidor y el intercambio de mensajes entre clientes y servidores.
Objetos de Windows
Entre los conceptos clave del diseño orientado a objetos utilizados por Windows se encuentran los siguientes:
- Encapsulación. Un objeto está compuesto por uno o más elementos de información, denominados atributos y uno o más procedimientos que se podrían llevar a cabo sobre esos datos, denominados servicios. La única forma de acceder a los datos en un objeto es invocando uno de los servicios del objeto. Por tanto, los datos de un objeto se pueden proteger fácilmente del uso no autorizado o incorrecto (por ejemplo, intentando ejecutar una pieza de datos no ejecutable).
- Clases e instancias de objetos. Una clase de objeto es una plantilla que lista los atributos y los servicios de un objeto y define ciertas características de los objetos. El sistema operativo puede crear instancias específicas de una clase de objetos cuando lo necesite.
- Herencia. Esta característica no es soportada a nivel de usuario sino por alguna extensión dentro del sistema ejecutivo.
- Polimorfismo. Internamente, Windows utiliza un conjunto común de funciones para manipular objetos de cualquier tipo. Sin embargo, Windows no es completamente polimórfico, porque hay muchas API que son específicas para tipos de objetos específicos.
No todas las entidades de Windows son objetos. Los objetos se utilizan en casos donde los datos se usan en modo usuario y cuando el acceso a los datos es compartido o restringido.
Los objetos pueden tener información de seguridad asociada con ellos, en la forma de un descriptor de seguridad (Security Descriptor, SD). Esta información de seguridad se puede utilizar para restringir el acceso al objeto.
Como ejemplo de los objetos gestionados por Windows, a continuación se listan las dos categorías de objetos que gestiona el núcleo:
- Objetos de control. Utilizados para controlar las operaciones del núcleo en áreas que no corresponden a la planificación y la sincronización.
- Objetos dispatcher. Controla la activación y la sincronización de las operaciones del sistema.
Comentarios
Publicar un comentario