Clase

Estructura del sistema operativo | Sistemas operativos 1


Servicios del sistema operativo

El sistema operativo tiene un conjunto de módulos internos que proveen servicios, y para poder acceder a estos servicios es necesario que las aplicaciones usen las llamadas al sistema.

  1. Program execution: Módulo que se encarga de poner un programa en ejecución
  2. I/O operations: Este módulo se encarga de las operaciones de entrada y salida , este conoce los dispositivos conectados y organiza la comunicación con esos dispositivos.
  3. File systems: Este módulo nos crea la ilusión de un sistema de archivos, tiene toda una lógica para manejar el espacio.
  4. Communication: Las comunicaciones se dan entre procesos, es local si los proceso están en el mismo equipo o remota si están en diferentes PC.
  5. Resource allocation: Este módulo se encarga de asignar recursos a determinados usuarios o procesos. Hay recursos que son compartidos y otros que no, como la impresora, por lo tanto alguien tiene que administrar su uso.
  6. Accounting/Loggin: El módulo de contabilidad hace un seguimiento de qué programas usan cuánto y qué tipo de recursos informáticos. Este mantenimiento de registros se puede utilizar para contabilidad. Esta información es valiosa para los administradores de sistemas que deseen reconfigurar el sistema para mejorar los servicios informáticos.
  7. Error detection: Módulo encargado de la detección de errores, para cada tipo de error actúa de una manera adecuada.
  8. Protection and security: Módulo encargado de la protección. La protección implica garantizar que todos los accesos al sistema se controlan los recursos. La seguridad del sistema frente a personas ajenas también es importante. Dicha seguridad comienza con el requisito de que cada usuario se autentique.

Untitled

Sobre las llamadas al sistema y su implementación

En la parte superior del gráfico, por fuera del sistema operativo, se encuentra los programas de usuario y del sistema, estos para poder acceder a los módulos mencionados tienen que hacer uso de las llamadas al sistema.

Por ejemplo si un programa quiere acceder a un archivo, necesita invocar a un servicio del S.O a través de una llamada al sistema y el módulo de filesystem recibe el pedido.

Dicha llamada al sistema se implementa mediante una interrupción por software, esa interrupción tiene un número, el vector de interrupciones tiene la dirección en donde está la rutina de atención a interrupciones y eso por hardware carga la dirección al registro de próxima instrucción, se cambia el estado del procesador de modo usuario a modo supervisor y comienza a ejecutar el módulo del sistema operativo.

Untitled

En el siguiente gráfico tenemos un programa de aplicación que quiere abrir un archivo, el programa corre cuando el procesador está funcionando en modo usuario, cuando invoca al system call open, entra a la interfaz de llamadas al sistema y pasa al procesador de modo usuario a modo kernel para luego invocar a la función que hace el open.