Usuario, supervisor, ejecutivo y núcleo

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 573,95 KB

n+7dSAAAAAAIMjfepCLIgkGAGAnfDg4P4yvgfwAAAAASUVORK5CYII=


Organización del sistema operativo

Capa de abstracción del hardware (HAL):


aísla el sistema operativo de las diferencias de hardware específicas de cada plataforma. El SO da órdenes que pasan por la HAL y ésta las “transforma” para que el hardware específico las entienda; y al revés, el hardware da órdenes a al SO a través de la HAL para que el SO las entienda. Así no hay dependencia entre el SO y el hardware.

Núcleo (kernel):


formado por los componentes más usados y fundamentales del sistema operativo (planificación de hilos, cambios de contexto, gestión de excepciones e interrupciones y sincronización de microprocesadores).

Controladores de dispositivos


Incluye los drivers de dispositivos que traducen las llamadas a funciones de E/S del usuario a peticiones a dispositivos hardware de E/S específicos.

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.


Procesos de usuario

Procesos de soporte de sistemas especiales:


proceso de inicio de sesíón y la gestión de sesíón.

Procesos de servicio:

otros servicios como el registro de sucesos.

Subsistemas de entorno:


ofrecen servicios nativos de Windows a las aplicaciones de usuario y de este modo proporcionan un entorno de SO. Cada subsistema incluye DLLs (bibliotecas de enlace dinámico) que convierten las llamadas de las aplicaciones de usuario en llamadas que interprete Windows.

Aplicaciones de usuario:

programas que se ejecutan sobre el SO. Pueden ser Win32, Posix, OS/2, MS-DOS, etc.

Archivo:


Son unidades lógicas de información creada por los procesos. Espacio de direcciones lógicas contiguas. Son un mecanismo de abstracción.

Modo de usuario:


Ofrece un conjunto limitado de instrucciones que no permiten acceder a determinados elementos del sistema. Para cambiar a modo usuario es “sencillo”, consiste en perder privilegios.

Modo núcleo:


Aquí el software tiene control completo sobre el procesador y de todas sus instrucciones, registros y memoria. El cambio a modo núcleo se realiza cuando un proceso ejecuta una llamada al sistema o interrupción.


Modelo cliente/servidor

Cada subsistema de entorno y subsistema del servicio ejecutivo se implementan como uno o más procesos. Cada proceso espera la solicitud de un cliente para uno de sus servicios. Un cliente (un programa de aplicación u otro módulo del SO) solicita un servicio enviando un mensaje. El mensaje es encaminado a través del sistema ejecutivo hasta el servidor apropiado. El servidor lleva a cabo la operación solicitada y devuelve el resultado o la información de estado por medio de otro mensaje, que se encamina de vuelta al cliente mediante el servicio ejecutivo.
Ventajas: Simplifica el sistema ejecutivo. Es posible construir diversos API. 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, protegido de otros módulos. Un cliente puede fallar sin corromper el resto del SO.
Proporciona una base adecuada para la computación distribuida.


Nodos-i:


asocia a cada archivo una estructura de datos llamada nodo-i (nodo índice) que contiene los atributos y direcciones de disco de los bloques del archivo. Dado el nodo-i, es posible hallar todos los bloques del archivo. Es usado en Linux.

Ventaja:


- El nodo-i sólo está en memoria cuando el archivo correspondiente está abierto.

Desventaja:


- Cada nodo-i tiene espacio para un número fijo de dirección de disco, haciendo que se llene cuando el archivo crece. Para solucionar esto se reserva la última dirección de disco no para un bloque de datos, sino para dirección de un bloque que contenga más direcciones de bloques de disco. Para archivos más grandes, una de las direcciones en el nodo–i es la dirección de un bloque en el disco llamado bloque simplemente indirecto, el cual contiene direcciones en disco adicionales. Si con esto no es suficiente, otra dirección del nodo–i, el bloque doblemente indirecto contiene la dirección de un bloque que tiene una lista de bloques simplemente indirectos, donde cada uno de estos apunta a unos centenares de bloques de datos. Si aún esto no basta, se puede utilizar un bloque triplemente indirecto.


Enlace duro:


los directorios que comparten un archivo, no poseen los bloques de disco, sino que apuntan al mismo nodo-i que corresponde al archivo. Este es el esquema de UNIX.
Desventaja: si el propietario elimina el archivo y se limpia el nodo-i, algún directorio con un enlace a ese archivo, apuntara a un nodo-i no válido. Si el nodo-i se reasignara a otro archivo, el enlace apuntará a un archivo incorrecto. Una solución es eliminar el archivo original, pero mantener el nodo-i para el enlace, manteniendo la cuenta en 1.
Enlace simbólico (accesos directos): el enlace se genera creando un archivo de tipo LINK en el directorio que quiere crear el enlace. Este archivo sólo contiene el nombre de ruta del archivo con el cual está enlazado, que es utilizado para buscar el archivo original cuando se lo quiere leer.

Desventajas

Cuando el dueño elimina el archivo original, este se destruye, quedando los archivos de enlace obsoletos, ya que el sistema no lo va a poder localizar. Pasa algo similar cuando se mueve el archivo.- Necesitan un procesamiento adicional: leer la ruta, analizarla, seguirla, componente por componente hasta llegar al nodo-i. Puede requerir muchos accesos a disco.- Se necesita un nodo-i adicional por cada enlace, y si el nombre de ruta es largo, se necesita otro bloque adicional para almacenarla.

Ventaja

Pueden servir para enlazar archivos por red, especificando la dirección de red de la máquina en la que está el archivo.


Sector de arranque de partición:


En los primeros 8kb se contiene la información sobre el volumen (tipo de partición, largo, etc), junto con el bloque de código básico para iniciar al sistema operativo. Contiene también un puntero a la MFT.

MFT – Máster File Table:


La Tabla Maestra de archivos contiene el dónde y como están almacenados los archivos, junto con todos los atributos asociados a estos.

Archivos de Sistema:


Contienen la información sobre los datos y operaciones que se realizan sobre el sistema de archivos: espacio libre, log de transaccionalidad, etc.

Área de archivos:


Donde realmente se almacenan los datos del usuario.

NTFS:


ve todo en el sistema como un archivo, incluyendo a los metadatos. El corazón de tal esquema es la MFT, que contiene la información de donde están los archivos y sus atributos.

Proceso:


es un programa ejecutándose, el programa está en la memoria principal al ejecutarlo, sino está en el disco. Es una unidad de actividad que se caracteriza por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistema asociados.

Programa != Proceso

El programa es pasivo. – Código + datos
El proceso es un programa en ejecución. – Pila, registros, contador de programa.


Modelo de cinco estados: Ejecución:


proceso actualmente en ejecución.

Listo:

proceso preparado listo para ejecutarse.

Bloqueado:

procesos que no se va a ejecutar hasta que se produzca cierto suceso (como una operación de E/S).

Nuevo:

proceso que se acaba de crear, pero que no ha sido admitido por el SO en el grupo de procesos ejecutables. Normalmente permanece almacenado en disco.

Terminado:

el proceso ha sido excluido del grupo de ejecutables, porque se detuvo o porque fue abandonado por alguna razón. El SO conserva temporalmente las tablas y otra información asociado al proceso terminado para que le dé tiempo a otros programas para extraer información necesaria de él, luego se borran del sistema.

Modelo de siete estados

Al emplear el intercambio, se debe añadir un nuevo estado al modelo del comportamiento de los procesos, el estado Suspendido. A su vez, un proceso en estado Suspendido puede estar Bloqueado o Listo, por eso se necesitan cuatro estados:

Listo:

proceso en memoria principal y listo para la ejecución.

Bloqueado

Proceso en memoria principal, esperando un suceso.

Bloqueado y suspendido:

proceso en memoria secundaria esperando un suceso.

Listo y suspendido:

proceso en memoria secundaria disponible para la ejecución en cuanto se cargue en la memoria principal


Transiciones Modelo de cinco estados:


Nulo → Nuevo:


se crea un nuevo proceso para ejecutar un programa.

Nuevo → Listo:

el SO está preparado para aceptar un proceso más.

Listo → Ejecución

Momento de seleccionar un nuevo proceso para ejecutar, el SO elige uno de los procesos del estado Listo.

Ejecución → Terminado:

el proceso en ejecución es finalizado por el SO.

Ejecución → Listo:

la razón más común es que el proceso en ejecución ha alcanzado el tiempo máximo permitido de ejecución ininterrumpida. Hay otras causas, como los niveles de prioridad o que un proceso ceda voluntariamente el control del procesador.

Ejecución → Bloqueado:

un proceso solicita por algo por lo que debe esperar.

Bloqueado → Listo:

se produce el suceso que el proceso estaba esperando.

Listo → Terminado:

por ejemplo, un padre termina con un proceso hijo, o el mismo padre termina, terminando con él todos sus hijos.

Bloqueado → Terminado:

mismo caso de Listo → Terminado.


Transiciones Modelo de siete estados


Bloqueado → Bloqueado y suspendido:


si no hay procesos Listos, entonces al menos un proceso Bloqueado se expulsa para dar cabida a otro proceso que no esté Bloqueado.

Bloqueado y suspendido → Listo y suspendido:

se produce un suceso que estaba esperando en memoria secundaria.

Listo y suspendido → Listo:

cuando no hay procesos Listos en memoria principal, el SO tendrá que traer uno para continuar la ejecución.

Listo → Listo y suspendido:

puede ser necesario suspender un proceso Listo si ésta es la única forma de liberar espacio en memoria principal. El SO puede suspender un proceso Listo de más baja prioridad en lugar de uno Bloqueado que sea de prioridad más alta, si cree que el proceso Bloqueado pronto estará Listo.

Nuevo → Listo y suspendido, Nuevo → Listo:

cuando se crea un nuevo proceso, se lo puede añadir a la cola de Listos o a la de Listos y suspendidos. En el segundo caso puede deberse a poco espacio en memoria principal. 

Bloqueado y suspendido → Bloqueado:

un proceso termina y se libera memoria; hay un proceso en Bloqueados y suspendidos que tiene una prioridad mayor a la de cualquier proceso de Listos y suspendidos, así que el SO supone que ocurrirá el suceso que espera pronto.

Ejecución → Listo y suspendido:

hay un proceso en Bloqueados y suspendidos de prioridad alta que se acaba de desbloquear, para ello expulsa al proceso en ejecución y lo suspende.

Varios → Terminado:

un proceso en cualquier estado puede pasar al estado Terminado.


Estructuras de control del sistema operativo

Si el SO va a administrar los procesos y los recursos, entonces tiene que disponer de información sobre el estado actual de cada proceso y de cada recurso; para ello, el SO construye y mantiene tablas de información sobre cada entidad que está administrando. Los SO organizan la información principalmente en cuatro categorías:

Tablas de memoria:


se utiliza para seguir la pista de la memoria principal (real) y secundaria (virtual). Parte de la memoria principal está reservada para uso del SO, el resto es para los procesos. Incluyen información como asignación de memoria principal y secundaria a los procesos, información de protección de regiones compartidas (por los procesos) de memoria.

Tablas de dispositivos de E/S:


utilizadas por los SO para administrar los dispositivos y canales de E/S, los cuales pueden estar disponibles o asignados a un proceso en particular.

Tablas de archivos:


ofrecen información sobre la existencia de los archivos, su posición en la memoria secundaria, su estado actual y otros atributos.

Tablas de procesos:


sirve para administrar los procesos. Se genera un número para cada proceso, para poder identificarlo. 


Asociado a cada proceso hay una serie de atributos utilizados por el SO para su control. Estos atributos se conocen como bloque de control del proceso (PCB). Esta colección de programas, datos, pila y atributos se conoce como imagen del proceso.

La importancia del PCB

El PCB es la estructura de datos más importante de un SO. Cada PCB contiene toda la información de un proceso necesaria para el SO. Puede decirse que el conjunto de los PCB definen el estado del SO.

Identificación del proceso:


cada proceso tiene un identificador (PID).

Información de estado del procesador:


formada por el contenido de los registros del procesador.

Información de control del proceso:


información adicional para que el SO controle y coordine los procesos activos.

Pila de usuario


Espacio privado de direcciones de usuario (programas y datos)



Espacio compartido de direcciones


Cambio de proceso


Un cambio de proceso puede producirse en cualquier momento en que el SO haya tomado el control a partir del proceso que está actualmente ejecutándose. Los posibles sucesos que pueden dar el control al SO son:

Interrupción

originada por un suceso externo e independiente del proceso en ejecución. El control se transfiere a un gestor de interrupciones quien se encarga del tipo de interrupción ocurrida:
o Interrupción de reloj: el SO determina si el proceso ha consumido el tiempo máximo permitido. Si esto pasa, el proceso que se está ejecutando pasa a Listo y se debe expedir otro proceso.O Interrupción de E/S: el SO determina que acción de E/S se ha producido. Si es un suceso que muchos procesos estaban esperando, se los pasa a Listo, luego el SO debe decidir si reanudar la ejecución o ejecutar uno de los procesos Listos de mayor prioridad.O Fallo de memoria: El proceso que cometíó el fallo pasa a estar Bloqueado hasta que se cargue el bloque en memoria, donde cambia a Listo.

Trap:

condición de error o excepción generada dentro del proceso en ejecución. Si es un error fatal, el proceso pasa a Terminado. Si no es fatal, depende del error y del SO, puede intentar una recuperación o informar al usuario.

Llamada al sistema:

el uso de una llamada al sistema hace que el proceso de usuario pase al estado Bloqueado y el control pase al SO.


8p84l2kayeXjCQAAAABJRU5ErkJggg==


5trhXP2ruc0y5vEoATaWzyBmF0w5UzWfBGoVAoTidKqCvOeuSUN1nYAidqzcvmd37N5nW5tCtr8Rx4N1orlzcAsqlfoVAoxgJKqCsUCoVCcY6gVBCFQqFQKM4RlFBXKBQKheIcQQl1hUKhUCjOEf4bY5Yu9AxRGfQAAAAASUVORK5CYII=

Entradas relacionadas: