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 call_exec() invoca a otro programa, sobreponiendo el espacio de memoria del proceso con el programa ejecutable.

Link to original

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 a fork() es llamado proceso padre, el nuevo proceso creado es llamado hijo.

#include <sys/types.h>
#include <unistd.h>
 
pid_t fork(void);
Link to original

wait()


Definición


La System call wait() permite sincronizar procesos, esperando a que finalice el proceso hijo.

#include <sys/types.h>
#include <sys/wait.h>
 
pid_t wait(int *_wstatus_);
Link to original

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
#include <stdlib.h>
 
void exit(int status);
Link to original

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 el PID (process identification). Originalmente en UNIX el PID 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.

#include <sys/types.h>
#include <unistd.h>
 
pid_t getpid(void);
Link to original

getppid()


Definición


La System call getppid() permite obtener el PID (process identification) del proceso padre.

#include <sys/types.h>
#include <unistd.h>
 
pid_t getppid(void);
Link to original

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 sbrk() es la dirección exacta donde el nuevo break debe estar. Por otro lado en sbrk() se pasa el incremento al cual se le sumará al viejo break para setear el nuevo break. Si se ejecuta sbrk(0) se obtiene la dirección del break actual.

Link to original

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