¿Qué es una llamada al sistema en el sistema operativo?
UNA. llamada al sistema es un mecanismo que proporciona la interfaz entre un proceso y el sistema operativo. Es un método de programación en el que un programa de computadora solicita el servicio del kernel del sistema operativo.
La llamada al sistema proporciona servicios del sistema operativo a los programas de usuario a través de API (interfaz de programación de aplicaciones). Las llamadas al sistema son los únicos puntos de entrada para el sistema del núcleo.
En este tutorial sobre el sistema operativo, aprenderá:
Ejemplo de una llamada al sistema
Por ejemplo, si necesitamos escribir código de programa para leer datos de un archivo, copie esos datos en otro archivo. La primera información requerida por el programa es el nombre de los dos archivos, los archivos de entrada y salida.
En un sistema interactivo, este tipo de ejecución de programa requiere varias llamadas al sistema desde el sistema operativo.
- La primera llamada es escribir un mensaje de aviso en la pantalla.
- En segundo lugar, lea los caracteres que definen ambos archivos desde el teclado.
¿Cómo funcionan los sistemas de llamadas?
Estos son los pasos para los sistemas de llamadas:
Como puede ver en el diagrama de arriba.
Paso 1) Los procesos realizados en modo usuario hasta el momento requerido por un sistema.
Paso 2) A continuación, la llamada al sistema se ejecuta en modo kernel de forma prioritaria.
Paso 3) Cuando finaliza la ejecución de la llamada al sistema, el control vuelve al modo de usuario.
Paso 4) Los procesos de usuario se han restaurado en modo Kernel.
¿Por qué necesita llamadas al sistema en el sistema operativo?
Las siguientes son situaciones que requieren llamadas al sistema en el sistema operativo:
- Requiere lectura y escritura de archivos de llamadas al sistema.
- Si un sistema de archivos desea crear o eliminar archivos, se requieren llamadas al sistema.
- Las llamadas al sistema se utilizan para crear y gestionar nuevos procesos.
- Las conexiones de red requieren llamadas al sistema para enviar y recibir paquetes.
- Se requiere una llamada al sistema para acceder a dispositivos de hardware como escáner, impresora.
Tipos de llamadas al sistema
Estos son los cinco tipos de llamadas al sistema que se utilizan en el sistema operativo:
- Control de procesos
- Gestión de archivos
- Gestión de dispositivos
- Mantenimiento de información
- Comunicación
Control de procesos
Las llamadas de este sistema realizan la tarea de creación de procesos, terminación de procesos, etc.
Funciones:
- Fin y aborto
- Cargar y ejecutar
- Crear proceso y proceso de terminación
- Evento de estancia y firma
- Asignación y memoria gratuitas
Gestión de archivos
Las llamadas al sistema de administración de archivos manejan tareas de manipulación de archivos como creación, lectura y escritura de archivos, etc.
Funciones:
- Crea un archivo
- Borrar archivo
- Abrir y cerrar un archivo
- Leer, escribir y reposicionar
- Buscar y establecer atributos de archivo
Gestión de dispositivos
La administración de dispositivos hace el trabajo de manipular dispositivos como leer desde búfer de dispositivo, escribir en búfer de dispositivo, etc.
Funciones
- Dispositivo solicitado y liberado
- Conectar / desconectar dispositivos de forma lógica
- Buscar y establecer atributos de dispositivo
Mantenimiento de información
Maneja y transfiere información entre el sistema operativo y el programa de usuario.
Funciones:
- Buscar o establecer una fecha y hora
- Encuentre atributos de proceso y dispositivo
Comunicación:
Estos tipos de llamadas al sistema se utilizan especialmente para la comunicación entre procesos.
Funciones:
- Crear, eliminar enlaces de comunicación
- Envía, recibe un mensaje
- Ayuda a transferir información de estado
- Conectar o desconectar dispositivos remotos
Reglas para pasar parámetros para llamadas al sistema
A continuación, se muestran algunas reglas generales para reenviar parámetros a la llamada del sistema:
- El sistema operativo debería enviar o extraer parámetros de la pila.
- Los parámetros se pueden pasar en programas.
- Cuando hay más parámetros que programas, debe almacenarse en un bloque y la dirección del bloque debe pasarse como parámetro para un programa.
Llamadas importantes al sistema utilizadas en el sistema operativo
ventilador ()
En algunos sistemas, un proceso debe esperar a que otro proceso complete su ejecución. Este tipo de situación ocurre cuando un proceso de crianza crea el proceso de un niño, y la ejecución del proceso de crianza permanece suspendida hasta que el proceso de su hijo opera.
La suspensión del proceso de crianza se produce automáticamente con una llamada al sistema en espera (). Cuando el proceso del niño finaliza su ejecución, el control vuelve al proceso de crianza.
tenedor ()
Los procesos utilizan esta llamada al sistema para crear procesos que son una copia de sí mismos. Con la ayuda de este sistema, el proceso de llamada de los padres crea un proceso hijo y la ejecución del proceso parental se suspende hasta que se activa el proceso hijo.
ejecutivo ()
Esta llamada al sistema se ejecuta cuando se ejecuta un archivo ejecutable en el contexto de un proceso que ya se está ejecutando y reemplaza el archivo ejecutable anterior. Sin embargo, el identificador de proceso original permanece ya que no se crea un nuevo proceso, pero el nuevo proceso se reemplaza por apilamiento, datos, cabeza, datos, etc.
matar ():
El sistema operativo usa la llamada al sistema kill () para enviar una señal de terminación a un proceso que ocupa el proceso de salida. Sin embargo, una llamada al sistema de matanza no significa necesariamente el proceso y puede tener diferentes significados.
la salida ():
La llamada al sistema de salida () se utiliza para finalizar la ejecución del programa. Especialmente en el entorno de subprocesos múltiples, esta llamada define la ejecución del subproceso completado. El sistema operativo reutiliza los recursos utilizados por el proceso después de utilizar la llamada al sistema de salida ().
Resumen:
Categorias | Ventanas | Unix |
---|---|---|
Control de procesos | CreateProcess () ExitProcess () WaitForSingleObject () | tenedor () salida () espera () |
Manipulación de dispositivos | SetConsoleMode () ReadConsole () WriteConsole () | loctl () leer () escribir () |
Manipulación de archivos | CreateFile () ReadFile () WriteFile () CloseHandle () | Abrir () Leer () escribir () cerrar!) |
Mantenimiento de la información | GetCurrentProcessID () SetTimer () Sleep () | getpid () alarma () dormir () |
Comunicación | CreatePipe () CreateFileMapping () MapViewOfFile () | Tubería () shm_open () mmap () |
Proteccion | SetFileSecurity () InitlializeSecurityDescriptor () SetSecurityDescriptorGroup () | Chmod () Umask () Chown () |