Llamadas al sistema

¿Que es una llamada al sistema?


Cuando el programa necesita realizar algo que no puede solo o no tiene los permisos necesarios para hacerlo, la única opción que le queda es llamar al sistema para que lo haga por él. En la computación, una llamada al sistema es la manera en la cual un programa de computadora pide un servicio al kernel del sistema operativo que se esta ejecutando (no debemos confundir las llamadas al sistemas con un comando del sistema).

Existen mas de 344 llamadas al sistema, sin embargo podemos dividir las llamadas del sistema en 5 grupos diferentes:
  • Control de Procesos
  • Manejo de Archivos
  • Manejo de Dispositivos
  • Mantenimiento de Informacion
  • Comunicación
Implementar una llamada del sistema requiere de una transferencia de control del espacio del usuario al espacio del kernel. Una manera típica de hacer esto es usar una interrupción del sistema. La interrupción transfiere el control al kernel del sistema operativo y solo es necesario ingresar información en ciertos registros para saber la llamada que se desea hacer y los argumentos que se necesitarían.

En el caso del ensamblador que usamos en el curso de Arquitectura de Computadores, para hacer una llamada al sistema debemos seguir los siguientes pasos:
  1. Llenar desde el registro 0 al registro 6 con los argumentos que necesitemos para la llamada al sistema que queremos hacer.
  2. Ingresar en el registro 7 el numero de la llamada del sistema que vamos a utilizar.
  3. Usamos la instrucción svc #0 para hacer la llamada (también podemos usar swi, sin embargo la versión actualizada es svc) 
A continuación, se presentara una corta lista con algunas llamadas al sistema básicas que fueron muy importantes a la hora de desarrollar nuestro ultimo proyecto, un creador de laberintos.




Como podemos ver en esta lista se encuentran las llamadas del sistema que ayudan en el manejo de archivos. La llamada numero 3 funciona para leer un archivo y extraer la información que contiene ´para poder usarla.

La llamada numero 4 nos ayuda a escribir en un archivo la información que ingresemos en el registro y después nos permite guardarlo o desecharlo.

La llamada numero 5 nos permite abrir el archivo y dependiendo de las restricciones que definamos nos permite usar todas las funciones del archivo o solo algunas, por ejemplo podríamos buscar abrir un archivo que ya este creado o crear uno en caso de que no exista.

Por ultimo la llamada numero 6, nos da la opción de cerrar un archivo. Recordemos que para poder cerrar un archivo es necesario que este este primero abierto Ademas, si el archivo no se cierra correctamente puede que la información dentro de el termine corrupta o dañada.


Referencias
w3Challs.(s.f.). System Calls. W3Challs. Recuperado de: https://w3challs.com/syscalls/?arch=arm_strong

VivenAcademy. (8 agosto). Viven Embeded Academy. Recuperado de: http://vivenembedded.blogspot.com/2013/08/how-system-call-is-works-in-armx86-and.html

Comentarios

Entradas populares de este blog

Arquitectura del Set de Instrucciones y Conjunto de Instrucciones

Representación de Números: Punto Fijo

Explicación de código para contar letras - Simple