PUERTA | PUERTA CS 2021 | Conjunto 1 | Pregunta 24

¿Cuál de las siguientes funciones estándar de la biblioteca C invocará siempre una llamada al sistema cuando se ejecute desde un proceso de subproceso único en un sistema operativo UNIX/Linux?
(A) salir
(B) malloc
(C) dormir
(D) strlen

Respuesta: (A) (C)
Explicación:

  • (A). salir de las funciones de la biblioteca C :
    finaliza el proceso normalmente, realizando la limpieza regular para finalizar los programas.
  • (B). malloc :
    esta es una función definida en la biblioteca C estándar y no siempre invoca la llamada del sistema. Cuando se crea un proceso, ya se le asigna cierta cantidad de memoria de almacenamiento dinámico, cuando se requiere expandir o reducir esa memoria, utiliza internamente la llamada al sistema sbrk/brk en Unix/Linux.
  • (C). sleep:
    ni siquiera es una función de biblioteca C estándar, es una función de biblioteca C estándar POSIX que siempre invoca la llamada del sistema.
  • (D). strlen :
    esta es una función definida en la biblioteca C estándar y no requiere ninguna llamada al sistema para realizar su función de calcular la longitud de la string.

Manera alternativa –

lib fun es compatible con el compilador, mientras que syscall es compatible con el sistema operativo.
A continuación se ilustran varias llamadas de sistema equivalentes para el sistema operativo UNIX:

1. Control de Procesos –

fork(),
exit(),
wait()

2. Gestión de archivos –

open(),
read(),
write(),
close()

3. Gestión de dispositivos –

ioctl(),
read(),
write()

4. Mantenimiento de la información –

getpid(),
alarm(),
sleep(),

5. Comunicación –

pipe(),
shm_open(),
mmap()

6. Protección –

chmod(),
umask(),
chown()

Por lo tanto, exit() es la llamada al sistema de control de procesos y sleep() la llamada al sistema de mantenimiento de información en el sistema operativo UNIX.

Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *