¿Qué es una estructura?
Los sistemas operativos actuales son grandes y complejos, estos deben poseer una ingeniería correcta para su fácil actualización y para que puedan cumplir su función correctamente. La estructura es generalmente modular, cada modulo cumple una función determinada e interactúa con los demás módulos.
Estructura simple o sistema
monolítico
El sistema MS-DOS es, sin
duda, el mejor sistema operativo para microcomputadoras. Sin embargo, sus
interfaces y niveles de funcionalidad no están bien definidos. Los programas de
aplicación pueden acceder a operaciones básicas de entrada / salida para
escribir directamente en pantalla o discos. Este libre acceso, hace que el
sistema sea vulnerable, ya que un programa de aplicación puede eliminar por
completo un disco rígido por alguna falla. Además este sistema, también esta
limitado al hardware sobre el que corre.
Otra estructura simple es la
utilizada por la versión original de UNIX, esta consiste de dos partes
separadas, el kernel y los programas de sistemas . El kernel fue posteriormente
separado en manejadores (drivers) de dispositivos y una serie de interfaces. El
kernel provee el sistema de archivos, la programación de CPU, el administrador
de memoria y otras funciones del sistema operativo que responden a las llamadas
del sistema enunciadas anteriormente.
los
sistemas operativos que usaron este sistema fueron freedbsd, unix y linux.
Estructura
por capas (layers)
Las
nuevas versiones de UNIX se diseñaron para hardware más avanzado. Para dar
mayor soporte al hardware, los sistemas operativos se dividieron en pequeñas
partes. Ahora los sistemas operativos tienen mayor control sobre el hardware y
las aplicaciones que se ejecutan sobre este.
La modularizarían
de un sistema se puede presentar de varias formas, la más utilizada es la de
capas, la cual consiste en dividir al sistema operativo en un numero de capas.
La capa de menor nivel es el hardware y la de mayor nivel es la interfaz con el
usuario.
La
principal ventaja es que cada capa cumple con una serie de funciones y
servicios que brinda a las otras capas, esto permite una mejor organización del
sistema operativo y una depuración más fácil de este.
Es una estructura organizada
jerárquicamente cada una construidas de menor a mayor.
Cada
capa se implementa solo utilizando las operaciones provistas por la capa de
nivel inferior. Una capa no necesita saber cómo se implementan estas funciones,
solo necesita saber que operaciones puede realizar.
Los
procesos de usuario emiten peticiones de E/S al sistema operativo. Cuando un
proceso solicita una operación de E/S, el sistema operativo prepara dicha operación
y bloquea al proceso hasta que se recibe una interrupción del controlador del
dispositivo indicando que la operación está completa.
En el
manejo de los dispositivos de E/S es necesario, introducir dos nuevos términos:
BUFFERING
(uso de memoria interna)
Trata
de mantener ocupados tanto la CPU como los dispositivos de E/S. Los datos se
leen y se almacenan en un buffer, una vez que los datos se han leído y la CPU
va a iniciar inmediatamente la operación con ellos, el dispositivo de entrada
es introducido para iniciar inmediatamente la siguiente lectura.
La CPU
y el dispositivo de entrada permanecen ocupados. Cuando la CPU este libre para
el siguiente grupo de datos, el dispositivo de entrada habrá terminado de
leerlos. La CPU podrá empezar el proceso de los últimos datos leídos, mientras
el dispositivo de entrada iniciara la lectura de los datos siguientes.
SPOOLING
Esta
forma de procesamiento de denomina spooling, utiliza el disco como un buffer
muy grade para leer tan por delante como sea posible de los dispositivos de
entrada y para almacenar los ficheros hasta que los dispositivos de salida sean
capaces de aceptarlos.
Es una
característica utilizada en la mayoría de los sistemas operativos.
Los
procesos de usuario emiten peticiones de entrada/salida al sistema operativo.
Cuando un proceso solicita una operación de E/S, el sistema operativo prepara
dicha operación y bloquea al proceso hasta que se recibe una interrupción del
controlador del dispositivo indicando que la operación está completa. Las
peticiones se procesan de forma estructurada en las siguientes capas:
- Manejadores de interrupción.
- Manejadores de dispositivos o drivers.
- Software de EIS independiente de los dispositivos. Este software está formado por la parte de alto nivel de los manejadores, el gestor de cache, el gestor de bloques y el servidor de archivos.
- Interfaz del sistema operativo. Llamadas al sistema que usan las aplicaciones de usuario.
El
sistema operativo estructura el software de gestión de E/S de esta forma para
ofrecer a los usuarios una serie de servicios de E/S independientes de los
dispositivos. Esta independencia implica que deben emplearse los mismos
servicios y operaciones de E/S para leer datos de un disquete, de un disco
duro, de un CD-ROM o de un teclado.
Manejadores
de interrupción
Los
manejadores de interrupción se encargan de tratar las interrupciones que
generan los controladores de dispositivos una vez que éstos están listos para
la transferencia de datos o bien han leído o escrito los datos de memoria
principal en caso de acceso directo a memoria. Para tratar dicha interrupción
se ejecuta el correspondiente manejador de interrupción cuyo efecto es el de
salvar los registros, comunicar el evento al manejador del dispositivo y
restaurar la ejecución de un proceso (que no tiene por qué ser el
interrumpido).
Los
manejadores de interrupción suelen hacer algo más que comunicar el evento al
manejador de dispositivo. Cuando una interrupción ocurre muy frecuentemente,
caso del reloj, o cuando la cantidad de información a transferir es muy
pequeña, caso del teclado, sería muy costoso comunicar siempre el evento al
manejador de dispositivo asociado. En estos casos, el propio manejador de
interrupción registra la ocurrencia del evento, bien mediante el incremento de
una variable global para el reloj o la acumulación de caracteres en un buffer
del teclado. La notificación al manejador se hace únicamente cada cierto número
de ocurrencias del evento, en el caso del reloj, o activando unflag que indica
que hay datos en el buffer del teclado.
No hay comentarios.:
Publicar un comentario