Definición
Las system calls de procesos pueden separar en
- Al manejo de los proceso
- La intercomunicación entre los procesos
exec()
Definición
La System call
exec()
tiene 6 variantes
exec()
execl()
execle()
execlp()
execv()
execcvp()
Pero todas estas son variaciones de la system call
excec()
#include <unistd.h> int execve(const char* fihlhebhbname, const char* argv[], const char* envp[]);
La system
Link to originalcall_exec()
invoca a otro programa, sobreponiendo el espacio de memoria del proceso con el programa ejecutable.
fork()
Definición
La System call
fork()
es la única forma que un usuario cree un proceso en el sistema operativo UNIX. El proceso que invoca afork()
es llamado proceso padre, el nuevo proceso creado es llamado hijo.Link to original #include <sys/types.h> #include <unistd.h> pid_t fork(void);
wait()
Definición
La System call
wait()
permite sincronizar procesos, esperando a que finalice el proceso hijo.Link to original #include <sys/types.h> #include <sys/wait.h> pid_t wait(int *_wstatus_);
exit()
Definición
La System call
exit()
permite terminar el proceso.
- Ignora todas las signal
- Cierra todos los archivos abiertos
- En consecuencia se libera todos los locks mantenidos por este proceso sobre esos archivos
- Libera el directorio actual
- Los segmentos de memoria compartida de los procesos se separan.
- Los contadores de los semáforos son actualizados
- Libera todas las secciones y memoria asociada al proceso
- Registra información sobre el proceso
- Pone el estado del proceso en “zombie”
- Le asigna el parent PID de los procesos hijos al PID de
init
- Le manda una signal o señal de muerte al proceso padre
- Context switch
Link to original #include <stdlib.h> void exit(int status);
getuid()
Transclude of Getuid-system-call#definición
geteuid()
Transclude of Geteuid-system-call#definición
getgid()
Transclude of Getgid-system-call#definición
getegid()
Transclude of Getegid-system-call#definición
getpid()
Definición
La System call
getpid()
permite determinar elPID
(process identification). Originalmente en UNIX elPID
era un número positivo hasta, una vez alcanzado ese número se resetea a y se vuelve a asignar esos valores nuevamente. Esto pasaba en Linux, hasta la versión 2.6 del kernel, en la cual dependiendo de la plataforma ese valor es ajustable. Link to original #include <sys/types.h> #include <unistd.h> pid_t getpid(void);
getppid()
Definición
La System call
getppid()
permite obtener elPID
(process identification) del proceso padre.Link to original #include <sys/types.h> #include <unistd.h> pid_t getppid(void);
signal()
Transclude of Signal-system-call#definición
kill()
Transclude of Kill-system-call#definición
alarm()
Transclude of Alarm-system-call#definición
brk()
Definición
La System call
brk()
es necesario para entender el layout o estructura real de memoria de un proceso en Linux.#inlude <unistd.h> int brk(void* addr); void *sbrk(intptr_t increment);
El parámetro de
Link to originalsbrk()
es la dirección exacta donde el nuevobreak
debe estar. Por otro lado ensbrk()
se pasa el incremento al cual se le sumará al viejo break para setear el nuevo break. Si se ejecutasbrk(0)
se obtiene la dirección delbreak
actual.
pipe()
Transclude of Pipe-system-call#definición
msgget()
Transclude of Msgget-system-call#definición
msgsnd()
Transclude of Msgsnd-system-call#definición
msgrcv()
Transclude of Msgrcv-system-call#definición
msgctl()
Transclude of Msgctl-system-call#definición
semget()
Transclude of Semget-system-call#definición
semop()
Transclude of Semop-system-call#definición
shmget()
Transclude of Shmget-system-call#definición
shmat()
Transclude of Shmat-system-call#definición
shmdt()
Transclude of Shmdt-system-call#definición