Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Apuntes sobre Cómo funciona un Sistema Operativo, Apuntes de Sistemas Operativos

Apuntes de Sistemas Operativos sobre Cómo funciona un Sistema Operativo, Sistemas Operativos por la Forma de Ofrecer sus Servicios, Sistemas Operativos de Red, Qué es un sistema operativo, Historia de los sistemas operativos.

Tipo: Apuntes

2013/2014

Subido el 23/01/2014

el_pancho
el_pancho 🇲🇽

4.4

(114)

577 documentos

1 / 13

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Sistemas Operativos
Sistema Operativo
Software básico que controla una computadora. El sistema operativo tiene tres grandes funciones: coordina y
manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado
o el mouse; organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos
duros, discos compactos o cintas magnéticas, y gestiona los errores de hardware y la pérdida de datos.
Cómo funciona un Sistema Operativo
Los sistemas operativos controlan diferentes procesos de la computadora. Un proceso importante es la
interpretación de los comandos que permiten al usuario comunicarse con el ordenador. Algunos intérpretes de
instrucciones están basados en texto y exigen que las instrucciones sean tecleadas. Otros están basados en
gráficos, y permiten al usuario comunicarse señalando y haciendo clic en un icono. Por lo general, los
intérpretes basados en gráficos son más sencillos, pero muchos usuarios expertos prefieren los intérpretes de
instrucciones basados en texto porque son más potentes.
Los sistemas operativos pueden ser de tarea única o multitarea. Los sistemas operativos de tarea única, más
primitivos, sólo pueden manejar un proceso en cada momento. Por ejemplo, cuando la computadora está
imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se
termine la impresión.
Todos los sistemas operativos modernos son multitarea y pueden ejecutar varios procesos simultáneamente.
En la mayoría de los ordenadores sólo hay una UCP; un sistema operativo multitarea crea la ilusión de que
varios procesos se ejecutan simultáneamente en la UCP. El mecanismo que se emplea más a menudo para
lograr esta ilusión es la multitarea por segmentación de tiempos, en la que cada proceso se ejecuta
individualmente durante un periodo de tiempo determinado.
Sistemas Operativos por la Forma de Ofrecer sus Servicios
1
pf3
pf4
pf5
pf8
pf9
pfa
pfd

Vista previa parcial del texto

¡Descarga Apuntes sobre Cómo funciona un Sistema Operativo y más Apuntes en PDF de Sistemas Operativos solo en Docsity!

Sistemas Operativos

Sistema Operativo

Software básico que controla una computadora. El sistema operativo tiene tres grandes funciones: coordina y manipula el hardware de la computadora, como la memoria, las impresoras, las unidades de disco, el teclado o el mouse ; organiza los archivos en diversos dispositivos de almacenamiento, como discos flexibles, discos duros, discos compactos o cintas magnéticas, y gestiona los errores de hardware y la pérdida de datos.

Cómo funciona un Sistema Operativo

Los sistemas operativos controlan diferentes procesos de la computadora. Un proceso importante es la interpretación de los comandos que permiten al usuario comunicarse con el ordenador. Algunos intérpretes de instrucciones están basados en texto y exigen que las instrucciones sean tecleadas. Otros están basados en gráficos, y permiten al usuario comunicarse señalando y haciendo clic en un icono. Por lo general, los intérpretes basados en gráficos son más sencillos, pero muchos usuarios expertos prefieren los intérpretes de instrucciones basados en texto porque son más potentes.

Los sistemas operativos pueden ser de tarea única o multitarea. Los sistemas operativos de tarea única, más primitivos, sólo pueden manejar un proceso en cada momento. Por ejemplo, cuando la computadora está imprimiendo un documento, no puede iniciar otro proceso ni responder a nuevas instrucciones hasta que se termine la impresión.

Todos los sistemas operativos modernos son multitarea y pueden ejecutar varios procesos simultáneamente. En la mayoría de los ordenadores sólo hay una UCP; un sistema operativo multitarea crea la ilusión de que varios procesos se ejecutan simultáneamente en la UCP. El mecanismo que se emplea más a menudo para lograr esta ilusión es la multitarea por segmentación de tiempos, en la que cada proceso se ejecuta individualmente durante un periodo de tiempo determinado.

Sistemas Operativos por la Forma de Ofrecer sus Servicios

Esta clasificación también se refiere a una visión externa, que en este caso se refiere a la del usuario, el cómo aceza los servicios. Bajo esta clasificación se pueden detectar dos tipos principales: sistemas operativos de red y sistemas operativos distribuidos.

ð Sistemas Operativos de Red

Los sistemas operativos de red se definen como aquellos que tiene la capacidad de interactuar con sistemas operativos en otras computadoras por medio de un medio de transmisión con el objeto de intercambiar in1formación, transferir archivos, ejecutar comandos remotos y un sin fin de otras actividades.

El punto crucial de estos sistemas es que el usuario debe saber la sintaxis de un conjunto de comandos o llamadas al sistema para ejecutar estas operaciones, además de la ubicación de los recursos que desee acezar. Por ejemplo, si un usuario en la computadora hidalgo necesita el archivo matriz.pas que se localiza en el directorio /software/código en la computadora modelos bajo el sistema operativo UNIX, dicho usuario podría copiarlo a través de la red con los comandos siguientes: hidalgo % hidalgo % rcp modelos:/software/código/matriz.pas. hidalgo%

En este caso, el comando rcp que significa "remote copy" trae el archivo indicado de la computadora modelos y lo coloca en el directorio donde se ejecutó el mencionado comando. Lo importante es hacer ver que el usuario puede acezar y compartir muchos recursos.

1. ¿Qué es un sistema operativo?

Un sistema operativo es el programa que oculta la verdad del hardware al programador y presenta una vista simple y agradable de los archivos nominados que pueden leerse y escribirse. Es sistema operativo resguarda al programador del hardware del disco y presenta una interfaz simple orientada al archivo, también disimula mucho del trabajo concerniente a interrupciones, relojes o cronómetros, manejo de memoria y otras características de bajo nivel.

La función del sistema operativo es la de presentar al usuario con el equivalente de una máquina ampliada o máquina virtual que sea más fácil de programar que el hardware implícito.

2. Historia de los sistemas operativos

sistemas de la primera generación tenia que hacer referencia especifica a una unidad de cinta particular. En la segunda generación, el programa del usuario especificaba tan solo que un archivo iba a ser escrito en una unidad de cinta con cierto numero de pistas y cierta densidad.

Se desarrollo sistemas compartidos, en la que los usuarios podían acoplarse directamente con el computador a través de terminales. Surgieron sistemas de tiempo real, en que los computadores fueron utilizados en el control de procesos industriales. Los sistemas de tiempo real se caracterizan por proveer una respuesta inmediata.

Tercera Generación (mitad de década 1960 a mitad década de 1970)

Se inicia en 1964, con la introducción de la familia de computadores Sistema/360 de IBM. Los computadores de esta generación fueron diseñados como sistemas para usos generales. Casi siempre eran sistemas grandes, voluminosos, con el propósito de serlo todo para toda la gente. Eran sistemas de modos múltiples, algunos de ellos soportaban simultáneamente procesos por lotes, tiempo compartido, procesamiento de tiempo real y multiprocesamiento. Eran grandes y costosos, nunca antes se había construido algo similar, y muchos de los esfuerzos de desarrollo terminaron muy por arriba del presupuesto y mucho después de lo que el planificador marcaba como fecha de terminación.

Estos sistemas introdujeron mayor complejidad a los ambientes computacionales; una complejidad a la cual, en un principio, no estaban acostumbrados los usuarios.

Cuarta Generación (mitad de década de 1970 en adelante)

Los sistemas de la cuarta generación constituyen el estado actual de la tecnología. Muchos diseñadores y usuarios se sienten aun incómodos, después de sus experiencias con los sistemas operativos de la tercera generación.

Con la ampliación del uso de redes de computadores y del procesamiento en línea los usuarios obtienen acceso a computadores alejados geográficamente a través de varios tipos de terminales.

Los sistemas de seguridad se ha incrementado mucho ahora que la información pasa a través de varios tipos vulnerables de líneas de comunicación. La clave de cifrado esta recibiendo mucha atención; han sido necesario codificar los datos personales o de gran intimidad para que; aun si los datos son expuestos, no sean de utilidad a nadie mas que a los receptores adecuados.

El porcentaje de la población que tiene acceso a un computador en la década de los ochenta es mucho mayor que nunca y aumenta rápidamente.

El concepto de maquinas virtuales es utilizado. El usuario ya no se encuentra interesado en los detalles físicos de; sistema de computación que esta siendo accedida. En su lugar, el usuario ve un panorama llamado maquina virtual creado por el sistema operativo.

Los sistemas de bases de datos han adquirido gran importancia. Nuestro mundo es una sociedad orientada hacia la información, y el trabajo de las bases de datos es hacer que esta información sea conveniente accesible de una manera controlada para aquellos que tienen derechos de acceso.

3. Conceptos de los Sistemas Operativos

Llamadas al Sistema:

La interfaz entre el sistema operativo y los programas del usuario se define por medio del conjunto de

"instrucciones extendidas" que el sistema operativo proporciona. Estas instrucciones extendidas se conocen como llamadas al sistema. Las llamadas al sistema varían de un sistema operativo a otro (aunque los conceptos fundamentales tienden a ser análogos).

Las llamadas al sistema se clasifican normalmente en dos categorías generales: aquellas que se relacionan con procesos y la que lo hacen con el sistema de archivo.

Por Procesos: Un proceso es básicamente un programa en ejecución. Consta del programa ejecutable y la pila o stack del programa, su contador de programa, apuntador de pila y otros registros, así como la otra información que se necesita para ejecutar el programa. En si el proceso en el concepto de los sistemas operativos es como el sistema de tiempo compartido. Esto es, que en forma periódica, el sistema operativo decide suspender la ejecución de un proceso y dar inicio a la ejecución de otro, por ejemplo, porque el primero haya tomado ya más de su parte del tiempo de la CPU, en terrenos del segundo.

Cuando un proceso se suspende temporalmente, debe reiniciarse después exactamente en el mismo estado en que se encontraba cuando se detuvo. Esto significa que toda la información relativa al proceso debe guardarse en forma explícita en algún lugar durante la suspensión. En muchos sistemas operativos, toda la información referente a cada proceso, diferente del contenido de su espacio de direcciones, se almacena en una tabla de sistema operativo llamada tabla de procesos, la cual es un arreglo (lista enlazada) de estructuras, una para cada proceso en existencia.

Por lo tanto, un proceso (suspendido) consta de su espacio de direcciones, generalmente denominado imagen del núcleo (en honor de las memorias de imagen de núcleo magnético que se utilizaron en tiempos antiguos) y su registro de la tabla de procesos, que contiene sus registros entre otras cosas.

Por Sistema de Archivo: Una función importante del S.O. consiste en ocultar las peculiaridades de los discos y otros dispositivos de E/S y presentar al programador un modelo abstracto, limpio y agradable de archivos independientes del dispositivo. Las llamadas al sistema se necesitan con claridad para crear archivos, eliminarlos, leerlos y escribirlos. Antes de que se pueda leer un archivo, éste debe abrirse y después de que se haya leído debe cerrarse, de modo que las llamadas se dan para hacer estas cosas.

Antes de que un archivo pueda leerse o escribirse, éste debe abrirse, en cuyo instante se verifican los permisos. Si se permite el acceso, el sistema produce un entero pequeño llamado descriptor del archivo para utilizarse en operaciones subsiguientes. Si se prohibe el acceso, se produce un código de error.

4. Shell (intérprete de comandos):

El sistema operativo es el código que realiza las llamadas al sistema. Los editores, compiladores, ensambladores, enlazadores e intérpretes de comandos definitivamente no son parte del sistema operativo, aunque son importantes y útiles. El Shell es el intérprete de comandos, a pesar de no ser parte del sistema operativo, hace un uso intenso de muchas características del sistema operativo y por tanto sirve como un buen ejemplo de la forma en que se pueden utilizar las llamadas al sistema. También es la interfaz primaria entre un usuario situado frente a su terminal y el sistema operativo.

Cuando algún usuario entra al sistema, un "shell" se inicia. El shell tiene la terminal como entrada y como salida estándar. Este da inicio al teclear solicitud de entrada, carácter como un signo de pesos, el cual indica al usuario que el shell está esperando un comando. En MS−DOS normalmente aparece la letra de la unidad, seguida por dos puntos (:), el nombre del directorio en que se encuentra y por último el signo de "mayor que" (>). Esto es: C:>

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.

MINIX

Este sistema operativo fue escrito por A. S. Tanenbaun para ser estudiado en universidades y a modo personal. El autor lo escribió como una copia exacta de UNIX en su versión 7, ya que a partir de esta versión el código de UNIX ya no era de manejo público. Es sistema operativo esta escrito íntegramente en C y se puede ejecutar en Pc's compatibles sin necesidad de disco duro. Al ser una copia de UNIX posee todas sus características como la capacidad de soportar multiusuario, multitarea, etc.

Al ser copia de UNIX las llamadas al sistema de minix cumplen con el Standard Posixx. En concreto minix posee un total de 41 llamadas al sistema para ser utilizadas por lo programadores. Este conjunto de llamadas se pueden dividir en dos grandes grupos: Las llamadas al sistema para la gestión de procesos y Las llamadas al sistema para la gestión de ficheros. Estos dos grupos de llamadas son los más importantes ya que en minix al igual que en UNIX todo el sistema se basa en procesos y ficheros.

El conjunto de llamadas para la gestión de procesos nos permiten la manipulación total de los procesos. Las llamadas más importantes de este grupo son fork , que permite la creación de un proceso hijo, exec la cual permite cambiar la memoria de un proceso, wait que hace que el proceso padres espere a que el hijo termine, y exit que hace terminar a un proceso. Con estas cuatro llamadas principales y alguna más podemos conseguir crear los procesos necesarios para ejecutar varias tareas sin que se produzcan enfrentamientos entre ellos.

Los procesos que se crean en minix necesitan comunicarse y en este sistema operativo la comunicación entre procesos se realiza mediante señales y es por esto que también existe un grupo de llamadas que se encarga de gestionar las señales. Este grupo de llamadas nos permite mandar señales de un proceso a otro y preparar a los procesos para recibir las señales para de esta forma poderse comunicar.

El conjunto de llamadas para la gestión de ficheros es el más numeroso en minix y parece normal porque todos los dispositivos en este sistema operativo se tratan como archivos. Este conjunto de llamadas nos permite manejar totalmente los ficheros, proporciona funciones para crear , leer , escribir y cerrar ficheros así como otro grupo de instrucciones que nos la creación de ficheros intermedios (tubos), para que se comuniquen también los procesos, y funciones que nos permiten obtener información sobre los ficheros. Como he dicho antes este grupo de llamadas es importante ya que al tomarse todos los dispositivos (teclado, impresora, monitor..) como archivos esto nos proporciona independencia de los dispositivos que tengamos.

Existen tres grupos más de llamadas al sistema que se encargan de la gestión de directorios, protección y gestión de tiempo.

El primero de ellos nos permite entre otras cosas establecer vínculos entre ficheros de esta forma un fichero se

encuentra en un directorio y puede ser compartido por los usuarios teniéndolo en sus directorios con nombres distintos. El conjunto de llamadas también permite montar directorios, esto es muy importante ya que significa que podemos montar un sistema de archivos y después desmontarlo como si no hubiera existido nunca, y hacer referencias a archivos que se encuentran en diferentes directorios.

El segundo grupo encargado de la protección nos permite realizar operaciones sobre los permisos de los ficheros y directorios y por ultimo el tercer grupo en el que cabe destacar la llamada TIMES que devuelve información sobre el tiempo de procesador empleado por un proceso.

En relación a los objetivos principales del sistema operativo minix, los cuales eran ser un mini−unix, para ser estudiado en las universidades, observamos que el conjunto de llamadas al sistema que realiza es muy completo ya que permite, al igual que UNIX, multiusuario y multitarea con el conjunto de llamadas que realiza para gestionar los procesos y ficheros. Además con las llamadas al sistema para la protección se pueden proteger los ficheros más importantes.

En conclusión el sistema operativo minix tiene un conjunto de llamadas apropiado para los objetivos que se plantearon Tanenbawn y sus alumnos cuando lo escribieron.

LINUX

El sistema operativo Linux nace en la Universidad de Helsinki, en Finlandia de las manos de Linux Trovalds que contaba con la ayuda de muchos colaboradores expertos en Unix. Este sistema operativo en un principio sólo fue un proyecto de aficionado de Linux Trovalds pero en la actualidad se ha convertido en uno de los sistemas operativos mejor diseñados del mundo.

Éste es un sistema de libre distribución donde cualquier persona puede participar en la escritura del código. Esto lo hace todavía más interesante porque todos los fuentes del sistema se pueden consultar y ver.

En lo referente a la arquitectura el sistema Linux en un principio se inspiraba en Minix y en la actualidad es un clónico de Unix capaz de ejecutar el entorno gráfico X−windows, TCP/IP, Emacs, UUCP y software de correo y News.

Linux es un sistema operativo completo multitarea u multiusuario como cualquier sistema Unix. Linux es compatible con ciertos estándares como IEE, POSIX.1, System V y BSD.

Al ser un sistema operativo clónico de Unix, los conceptos sobre procesos y archivos son iguales que el , es decir iguales que Minix. En Linux los dispositivos hardware son tratados como archivos y los software como procesos. Es por esto que el conjunto de llamadas al sistema de Linux sea muy parecido al de minix si bien Linux incluye más llamadas porque es un sistema operativo más completo capaz de soportar redes y entornos gráficos si bien el entorno gráfico no forma parte del sistema operativo y se puede tener Linux en perfecto funcionamiento sin X−windows.

La gestión de procesos en Linux y mínix se realiza de las misma forma y por tanto las llamadas al sistema que se utilizan en los dos sistemas son las mismas. Utiliza la llamada fork() para la creación de procesos hijos y al igual que minix execv() para cambiar la memoria del proceso hijo. Des esta forma consigue hacer que el padre ejecute un código mientras que el hijo ejecuta otro diferente. En Línux también existe la llamada wait() para que un padre espere a que el hijo termine de ejecutar un código. La llamada utilizada para que un proceso termine es exit(). Existen otras llamadas más para la gestión de procesos pero estas son las principales. Estos procesos pueden estar ejecutándose en paralelo y por tanto es necesario que puedan comunicarse para establecer un orden de ejecución o simplemente para que de unos a otros puedan pasarse la información que

la misma máquina que el Shell, en lugar de esto el sistema busca automáticamente la máquina con menor carga para ejecutar cada nuevo comando. Otra de las características que lo diferencian es que todos los recursos pertenecen al Sistema, no son de usuarios específicos.

Éste sistema operativo esta basado en el modelo cliente servidor en el cual los clientes ( procesos de usuario) realizan llamadas a los servidores para que les proporcionen lo pedido. Estos servidores son utilizados para gestionas los objetos ya que en Amoeba todo esta considerado como un objeto que tiene predefinido una serie de operaciones que se realizan sobre él. Se trata como objeto a los procesos, las CPU's, los archivos, los directorios, los discos, etc. y por tanto existen servidores que se encargan de gestionar todo esto.

Además del concepto de Proceso amoeba soporta varios hilos de control dentro de un mismo proceso. Estos hilos de control se encuentran dentro de un mismo espacio de memoria pero poseen su propia pila. Un proceso con un sólo hilo es igual que un proceso en Minix o Linux , aunque en Amoeba los procesos se crean de forma distinta a Minix y Linux. Amoeba permite crear un proceso nuevo específico donde la imagen de memoria comience al principio, pero los procesos pueden ejecutarse en paralelo. Las llamadas para la gestión de procesos más importantes son EXEC que realiza un RPC al servidor de procesos específico, GETLOAD que regresa información sobre la velocidad de la CPU y STUM que permite que un hijo bloquee la ejecución del proceso padre.

Para la gestión de los hilos existen llamadas para crear hilos y destruir hilos así como para la sincronización de hilos. Estas llamadas realizan la misma función que las señales en Linux o Minix pero en este caso la comunicación se realiza entre hilos y no entre procesos.

La gestión del sistema de archivos en amoeba la lleva a cabo el servidor de archivos que soporta las ordenes más comunes para los archivos pero a diferencia de otros los archivos en Amoeba son inmutables y estos a su vez puede estar comprometidos o no. Los archivos comprometidos no pueden ser modificados. Por otro lado tenemos el servidor de directorios el cual como función principal tiene la de proporcionar una asociación entre los nombres legibles para nosotros (código ASCII) y las posibilidades. Una de las llamadas más comunes que se utilizan de este servidor es una que regresa el conjunto de posibilidades que corresponden a un nombre en concreto. Para poder realizar copias de los objetos que proporciona el servidor de directorios se utiliza el servidor de réplicas. Este servidor además de utilizarse para la función anterior permite también comprobar los objetos que son útiles mediante la llamada TOUCH.

Existen varios modos de comunicación en Amoeba y por cada uno de ellos existe un servidor que se encarga de gestionarlos.

La primera de ellas es la llamadas a procedimiento remoto RPC. Para realizar este tipo de comunicación el servidor de RPC utiliza tres llamadas principalmente que son GET_REQUEST, PUT_REPLY y TRANS que permite la comunicación entre clientes y servidores.

La segunda forma de comunicación en Amoeba es la comunicación en grupo y las llamadas que proporciona para este tipo de comunicación nos permiten crear nuevos grupos, unir procesos a grupos existentes, enviar información a grupos y una serie tareas más para gestionar esta comunicación.

La capa más baja es el protocolo de internet fast local(FLIP) que se utiliza para la transmisión real de mensajes. FLIP está diseñado para su integración dentro del hardware por esta razón se le ha especificado un interfaz preciso con la capa inmediatamente superior(RPC y Comunicación por grupo). Este interfaz consta de nueve llamadas, siete para el tráfico de salida y dos para el tráfico de llegada.

Amoeba también posee un servidor de TC/IP que realiza las gestiones oportunas para comunicarse con máquinas que no son Amoeba y con máquinas Amoeba a través de internet.

A parte de todos los servidores anteriores amoeba posee un servidor de arranque al cual utiliza llamadas para comprobar que todos los servidores necesarios están en ejecución.

Con todo esto se observa que el sistema Operativo Amoeba es un sistema compartido ideal donde cada usuario del sistema cree que está ejecutando el sistema en modo exclusivo pero en realidad no sabe donde se están ejecutando sus procesos y donde está guardando sus archivos. Es por esto que uno de los bloque más potentes de llamadas al sistema sea el de la comunicación.

WINDOWS NT

Windows NT es aparece en el mercado como la primera propuesta de la empresa Microsoft de construir un sistema operativo serio capaz de competir con UNIX. La arquitectura de este sistema operativo no tiene nada que ver con el otro sistema operativo de Microsoft para aplicaciones de 32 bits.

Uno de los objetivos principales que se propone Microsoft con el diseño de este sistema operativo es que posea un núcleo tan pequeño como fuera posible y que en el estuvieran integrados alguno módulos que dieran respuestas a algunas llamadas que necesariamente se tuvieran que ejecutar en modo privilegiado y que las demás llamadas fueran atendidas por otras entidades. De esta forma se conseguiría tener un núcleo compacto y estable.

Para realizar este diseño Microsoft, al igual que Amoeba, se basa en el modelo cliente servidor donde el kernel se encarga de recibir llamadas y pasarlas a procesos servidores que se encargan de ejecutarlas. También al igual que en Amoeba en Windows

NT todo son objetos los cuales poseen unos atributos y unas funciones específicas que se encargan de modificar estos atributos. Los objetos son ficheros, procesos y dispositivos físicos a diferencia de Linux, Mínix o Ms−Dos donde los dispositivos físicos son tratados como archivos.

Cómo he dicho anteriormente (en el punto referido a W95) en Windows las llamadas al sistema reciben el nombre de API. Estas llamadas al sistema en Windows NT son atendidas principalmente por subsistemas, al igual que pasaba con Amoeba con los servidores.

Existen varios subsitemas encargados de ejecutar las llamadas al sistema. Estos son:

El Subsistema win32 el cual es el más importantes de todos ya que no sólo atiende las aplicaciones nativas de Windows NT, sino que para aquellos programas no Win32 reconoce su tipo y los lanza hacia el subsistema. Este subsistema soporta una buena parte del Api Win32 y se encarga de todo lo relacionado con la interfaz gráfica con el usuario (GUI), controlando las entradas del usuario y las salidas de la aplicación. Por otra parte tenemos el subsistema Posix y el OS/2 que se ejecutan interaccionando con el Executive y se encargan de proporcionar soporte para aplicaciones Unix y OS/2 respectivamente. Por ultimo tenemos dos subsistemas más que son el de Proceso de inicio que se encarga de gestionar los usuarios locales así como los remotos, y el subsistema de seguridad que interacciona con el de proceso de inicio atendiendo las peticiones de accesos al sistema.

Por otra parte tenemos el Executive que no se trata del núcleo del sistema sino que dentro de él se encuentra el núcleo del sistema, pero aparte esta formado pos otros servidores o administradores que se encargan también de recibir las llamadas al sistema. Dentro de estos administradores tenemos el administrador de objetos , que se encarga de crear, destruir y gestionar todos los objetos. Cómo he dicho antes en Windows NT la gran mayoría de cosas son objetos, los procesos, los subprocesos (hilos de ejecución), ficheros, segmentos de memoria, etc. Por esto existen llamadas que permiten crear y destruir objetos y éstas van a ser atendidas por este servidor. También posee un administrador de procesos que, en colaboración que el administrador de objetos se encarga de crear, destruir y gestionar los procesos y los subprocesos. Algunas de las llamadas que

llamada wait y para que el padre sepa como termina el hijo tenemos la llamada GET_CHILD_STATUS. La disposición de memoria de MS−DOS es más complicada que en sistemas como Unix y Linux y por esto el conjunto de llamadas al sistema que se encarga de la administración de memoria es más complejo. En MS−DOS existen llamadas para asignas, liberar y cambiar el tamaño de los bloques de memoria mientras que en Linux por ejemplo esto se realiza mediante las funciones de las librerías de C y no desde el S.O.

Por ultimo tenemos el bloque más importante de llamadas que es el de la gestión de archivos, este bloque es muy parecido al de Linux y Minix ya que al igual que estos, el sistema operativo considera todos los dispositivos como archivos. Estas llamadas al sistema nos permiten crear y destruir ficheros, abrir ficheros, etc. Pero en Ms−dos no hay protección de archivos, como en los demás Sistemas operativos, aunque existen atributos para los archivos. Podríamos incluir dentro de este grupo de llamadas al sistema las relacionadas con entrada y salida de datos ya que éstas son un conjunto de llamadas que nos permiten manejar archivos especiales.

Como se puede observar en MS−DOS no existen llamadas para la gestión del tiempo y tampoco existen llamadas que nos permitan montar sistemas de archivos ni nada por el estilo esto es debido a que la gestión de archivos se hace de forma diferente. Tampoco encontramos llamadas que nos permitan la comunicación entre procesos, cosa normal ya que en este sistema operativo no pueden coexistir procesos.

En resumen podemos decir que este sistema operativo contiene el más reducido grupo de llamadas al sistema de todos y en consecuencia es el menos potente.

WINDOWS 95

Windows 95 se diseña como un sistema operativo de propósito general para mejorar la facilidad de uso con respecto a Windows 3.11. Para ello se realiza una nueva interfaz de usuario de modo "intuitiva". El lo referente al código de Windows 95 se escribe para poder ejecutar programas escritos en código de 32 bits. Para que los programadores puedan escribir su código en este formato es preciso cambiar las llamadas al sistema. El Windows 3.11 utiliza un conjunto de llamadas denominadas API(Application Programming Interfaces). Para este nuevo sistema operativo se crea al API Win 32 que también es utilizado por Windows NT aunque de un modo más desarrollado. Esta API Win 32 es compatible con la de Windows 3.11 y posee más de 2.000 funciones y macros.

Los objetivos que se plantea microsoft para la creación de WIN 32 son : Amplio soporte lo cual significaba hacerla compatible con la de Windows 3.11, Capacidad para ampliarla y dar soporte a las nuevas tecnologías y que fuese adecuada para ajustarse a las diferentes plataformas de Hardware.

La parte incluida en Windows 95 de la API total es muy reducida ya que ésta consta de 2246 macros y mensajes, de los que sólo 114 están en Windows 95.

Sobre la arquitectura un modo de funcionamiento de Windows 95 es muy difícil encontrar información pero se puede observar que es de todos los sistemas operativos el que menos aprovecha las capacidades de la máquina. En lo referente a las llamadas al sistema las API incluidas en Windows 95 son:

El API OLE que es el más importante y proporciona las llamadas para la gestión de objetos, El API de consola que proporciona un entorno para aplicaciones que requieren características de E/S en modo carácter. Aunque este API no está incluido por completo ya que windows 95 permite la gestión de una sola consola mientras que windows NT permite la gestión de múltiples consolas. También existen otra serie de API más como la de controles, descompresión, conexión lógica a red, comunicaciones, multimedia, y por último RPC que da soporte para las llamadas al procedimientos remotos.