SlideShare una empresa de Scribd logo
1 de 18
Procesos
En Linux los procesos se identifican con un numero
entero denominado ID de proceso o PID.
Al proceso que ejecuta la solicitud para la creación
de un proceso se le suele llamar proceso padre, y al
proceso creado se le suele llamar proceso hijo.
El comando ps
El comando ps sirve para mostrar información sobre
procesos, su sintaxis (POSIX) es la siguiente:
ps [-aA] [-G grouplist] [-o format] ... [-p proclist] [-t
termlist] [-U userlist]
Ver: man ps
Librerías
• stdio.h (cd /usr/include)
• unistd.h (cd /usr/include)
• sys/types.h (cd /usr/include/sys)
• En general, son típicas librerías en la
codificación en C ya que contiene una
serie de funciones comúnmente
utilizados.
<stdio.h>: Librería que contiene funciones
de cabeceras de entrada/salida.
<unistd.h>: Librería que contiene funciones
para el manejo de directorios y archivos.
<sys/types.h>: Librería que contiene
funciones de búsqueda y ordenamiento de
directorios y manipulación de archivos
Librerías
Identificadores de Usuarios y
Procesos
• Las funciones C que se utilizan para
obtener el identificador del proceso (PID)
o el identificador de usuario (UID) son:
– getpid
– getppid
– getuid
getpid y getppid
• NOMBRE
getpid, getppid: obtiene el identificador de proceso.
• SINTAXIS
#include <unistd.h> (define a getpid y getppid)
pid_t getpid(void);
pid_t getppid(void);
• (pid_t es un entero largo con el ID del proceso)
• DESCRIPCIÓN
– getpid devuelve el identificador de proceso del proceso actual.
Esto es usado normalmente por rutinas que generan nombres
únicos de ficheros temporales.
– getppid devuelve el identificador de proceso del padre del
proceso actual.
getuid
• NOMBRE
getuid, geteuid: devuelve la identidad del usuario.
• SINOPSIS
#include <unistd.h>
#include <sys/types.h> uid_t getuid(void);
uid_t geteuid(void);
• DESCRIPCIÓN
getuid devuelve el identificador de usuario real del proceso actual.
El identificador real corresponde con el del proceso invocador.
• ERRORES
Estas funciones siempre funcionan.
fork
• NOMBRE
Fork: crean un proceso hijo.
• SINOPSIS
#include <unistd.h>
pid_t fork(void);
• DESCRIPCIÓN
fork crea un proceso hijo que difiere de su proceso padre sólo en su PID y PPID, y en el
hecho de que el uso de recursos esté asignado a 0. Los candados de fichero (file locks) y
las señales pendientes no se heredan. En linux, fork está implementado usando páginas
de copia-en-escritura (copy-on-write), así que la única penalización en que incurre fork es
en el tiempo y memoria requeridos para duplicar las tablas de páginas del padre, y para
crear una única estructura de tarea (task structure) para el hijo.
• VALOR DEVUELTO
En caso de éxito, se devuelve el PID del proceso hijo en el hilo de ejecución de su padre,
y se devuelve un 0 en el hilo de ejecución del hijo. En caso de fallo, se devolverá un -1 en
el contexto del padre, no se creará ningún proceso hijo, y se pondrá en errno un valor
apropiado.
• ERRORES
EAGAIN: fork no puede reservar sufficiente memoria para copiar las tablas de
páginas del padre y alojar una estructura de tarea para el hijo.
ENOMEM: fork no pudo obtener las necesarias estructuras del núcleo porque la
cantidad de memoria era escasa.
Compilación y ejecución de un
programa en C
• Comando de compilación:
gcc -o <nombre archivo que se crea> <nombre archivo fuente con extensión .c>
Ejemplo:
gcc -o prueba archivo.c
• Comando de ejecución:
./<nombre archivo ejecutable que se creó en gcc>
Ejemplo:
./prueba
Ejemplo 1:
#include <stdio.h>
int main()
{
int num1,num2,suma;
scanf(“Ingrese Primer Número”, num1);
scanf(“Ingrese Segundo Número”, num2);
int suma=num1+num2;
printf(“La suma de %d + %d = %d”; num1,num2,suma);
}
Grabar el archivo como: numero.c
Compilación:
gcc -o numero numero.c
Ejecución:
./numero
Ejemplo 2:
#include <stdio.h>
int main()
{
printf(“Hola a todos!!n”);
exit(0);
}
Grabar el archivo como: hola.c
Compilación:
gcc –o hola hola.c
Ejecución:
./hola
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main(void)
{
printf("ID de proceso: %ldn", (long)getpid());
printf("ID de proceso padre: %ldn", (long)getppid());
printf("ID de usuario propietario: %ldn",
(long)getuid());
return 0;
}
NOTA: Al finalizar de codificar, grabarlo con el nombre: proceso.c
El siguiente programa imprime el identificador del
proceso actual, del proceso padre y del propietario:
#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>
int main(void)
{
int i;
int padre;
padre=1;
for (i=0; i<3; i++)
{
if (padre==1)
{
if (fork()== 0) /* Proceso hijo */
{
fprintf(stdout, "Este es el proceso hijo con padre %ldn",
(long)getppid());
padre = 0;
}
else /* Proceso padre */
{
fprintf(stdout, "Este es el proceso padre con ID %ldn",
(long)getpid());
padre = 1;
}
}
}
sleep(50);
return 0;
} NOTA: grabrar con el nombre: padrehijo.c
El siguiente código produce un árbol de procesos
como el de la figura:

Más contenido relacionado

La actualidad más candente

Clase 1 conceptos básicos de los SO
Clase 1  conceptos básicos de los SOClase 1  conceptos básicos de los SO
Clase 1 conceptos básicos de los SOTensor
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesosayreonmx
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoJosé Antonio Sandoval Acosta
 
Algoritmos de dekker
Algoritmos de dekkerAlgoritmos de dekker
Algoritmos de dekkernerexi
 
Analisis de algoritmos complejidad en tiempo y espacio
Analisis de algoritmos complejidad en tiempo y espacioAnalisis de algoritmos complejidad en tiempo y espacio
Analisis de algoritmos complejidad en tiempo y espacioAdamari Cortes
 
Estructuras lineales unidad 3
Estructuras lineales unidad 3Estructuras lineales unidad 3
Estructuras lineales unidad 3eliezerbs
 
Modos de Direccionamiento
Modos de DireccionamientoModos de Direccionamiento
Modos de Direccionamientogbermeo
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Osiris Mirerus
 
Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltosJansel M
 
REGISTRO DE BANDERAS
REGISTRO DE BANDERASREGISTRO DE BANDERAS
REGISTRO DE BANDERASFabian Rojas
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesJosé Antonio Sandoval Acosta
 
Diferencias entre arquitectura y organización
Diferencias entre arquitectura y organizaciónDiferencias entre arquitectura y organización
Diferencias entre arquitectura y organizaciónAngel Aguilar
 
Algoritmo divide y vencerás
Algoritmo divide y vencerásAlgoritmo divide y vencerás
Algoritmo divide y vencerásloco8888
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativosadriel91
 

La actualidad más candente (20)

Clase 1 conceptos básicos de los SO
Clase 1  conceptos básicos de los SOClase 1  conceptos básicos de los SO
Clase 1 conceptos básicos de los SO
 
Sistemas operativos procesos
Sistemas operativos   procesosSistemas operativos   procesos
Sistemas operativos procesos
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
 
Semaforos
SemaforosSemaforos
Semaforos
 
Pilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datosPilas, colas, y listas estructura de datos
Pilas, colas, y listas estructura de datos
 
Gestion de memoria en windows
Gestion de memoria en windowsGestion de memoria en windows
Gestion de memoria en windows
 
Algoritmos de dekker
Algoritmos de dekkerAlgoritmos de dekker
Algoritmos de dekker
 
Analisis de algoritmos complejidad en tiempo y espacio
Analisis de algoritmos complejidad en tiempo y espacioAnalisis de algoritmos complejidad en tiempo y espacio
Analisis de algoritmos complejidad en tiempo y espacio
 
Estructuras lineales unidad 3
Estructuras lineales unidad 3Estructuras lineales unidad 3
Estructuras lineales unidad 3
 
Modos de Direccionamiento
Modos de DireccionamientoModos de Direccionamiento
Modos de Direccionamiento
 
Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1Alfabetos-Lenguajes y Automatas 1
Alfabetos-Lenguajes y Automatas 1
 
Prolog ejercicios resueltos
Prolog ejercicios resueltosProlog ejercicios resueltos
Prolog ejercicios resueltos
 
REGISTRO DE BANDERAS
REGISTRO DE BANDERASREGISTRO DE BANDERAS
REGISTRO DE BANDERAS
 
Estructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no linealesEstructura de Datos - Unidad 4 Estructuras no lineales
Estructura de Datos - Unidad 4 Estructuras no lineales
 
Ensamblador y lenguaje c
Ensamblador y lenguaje cEnsamblador y lenguaje c
Ensamblador y lenguaje c
 
Diferencias entre arquitectura y organización
Diferencias entre arquitectura y organizaciónDiferencias entre arquitectura y organización
Diferencias entre arquitectura y organización
 
HA2NV50 EQ8-StarUML
HA2NV50 EQ8-StarUMLHA2NV50 EQ8-StarUML
HA2NV50 EQ8-StarUML
 
Algoritmo divide y vencerás
Algoritmo divide y vencerásAlgoritmo divide y vencerás
Algoritmo divide y vencerás
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
 

Destacado

Destacado (16)

Bibliotecas en c
Bibliotecas en cBibliotecas en c
Bibliotecas en c
 
Procesos e Hilos
Procesos e HilosProcesos e Hilos
Procesos e Hilos
 
GESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOSGESTION DE PROCESOS EN SISTEMAS OPERATIVOS
GESTION DE PROCESOS EN SISTEMAS OPERATIVOS
 
Fundamentos Computadores II
Fundamentos Computadores IIFundamentos Computadores II
Fundamentos Computadores II
 
Como crear un robot de sumo autónomo y barato
Como crear un robot de sumo autónomo y baratoComo crear un robot de sumo autónomo y barato
Como crear un robot de sumo autónomo y barato
 
Procesos e hilos_parte_3
Procesos e hilos_parte_3Procesos e hilos_parte_3
Procesos e hilos_parte_3
 
Posix
PosixPosix
Posix
 
Monitores-sistemas operativos
Monitores-sistemas operativosMonitores-sistemas operativos
Monitores-sistemas operativos
 
Sistemas Operativos - Semáforos
Sistemas Operativos - SemáforosSistemas Operativos - Semáforos
Sistemas Operativos - Semáforos
 
Manual Code::Blocks lenguaje C++
Manual Code::Blocks lenguaje C++Manual Code::Blocks lenguaje C++
Manual Code::Blocks lenguaje C++
 
Algoritmos de planificación de procesos en sistemas operativos
Algoritmos de planificación de procesos en sistemas operativosAlgoritmos de planificación de procesos en sistemas operativos
Algoritmos de planificación de procesos en sistemas operativos
 
Proyecto programacion
Proyecto programacionProyecto programacion
Proyecto programacion
 
Librerias en-lenguaje-c
Librerias en-lenguaje-cLibrerias en-lenguaje-c
Librerias en-lenguaje-c
 
C++ y sus librerias
C++ y sus libreriasC++ y sus librerias
C++ y sus librerias
 
Capitulo iii. metodologia de investigación ejemplo pdf
Capitulo iii. metodologia de investigación ejemplo pdfCapitulo iii. metodologia de investigación ejemplo pdf
Capitulo iii. metodologia de investigación ejemplo pdf
 
Sistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesosSistemas Operativos Gestion de procesos
Sistemas Operativos Gestion de procesos
 

Similar a Procesos

Actividad v administración y comandos básicos if04 emerson
Actividad v administración y comandos básicos if04 emersonActividad v administración y comandos básicos if04 emerson
Actividad v administración y comandos básicos if04 emersonEmerson Gonzalez IF04 T I
 
Clase 03
Clase 03Clase 03
Clase 03Tensor
 
Quasi - Compilación en C de Linux
Quasi - Compilación en C de LinuxQuasi - Compilación en C de Linux
Quasi - Compilación en C de Linuxdegarden
 
9 managing processes
9  managing processes9  managing processes
9 managing processesyimfer1
 
9 managing processes
9  managing processes9  managing processes
9 managing processescyberleon95
 
9 managing processes
9  managing processes9  managing processes
9 managing processesJuan Camilo
 
Presentacion: ¿Que es Compilador?
Presentacion: ¿Que es Compilador?  Presentacion: ¿Que es Compilador?
Presentacion: ¿Que es Compilador? Luis Stifler
 
Como instalar unix ...lili
Como instalar unix ...liliComo instalar unix ...lili
Como instalar unix ...lilijassley 2000
 
Humanizacion de java script con typescript para d365
Humanizacion de java script con typescript para d365Humanizacion de java script con typescript para d365
Humanizacion de java script con typescript para d365Demian Raschkovan
 
Semana 10 administracion de procesos
Semana 10 administracion de procesosSemana 10 administracion de procesos
Semana 10 administracion de procesosvictdiazm
 
Miranda castillo UNIX
Miranda castillo UNIXMiranda castillo UNIX
Miranda castillo UNIXmiranda696
 
Introducción Android NDK
Introducción Android NDKIntroducción Android NDK
Introducción Android NDKFe
 
Introducción android ndk
Introducción android ndkIntroducción android ndk
Introducción android ndkBarcelona GTUG
 
Documentacion Final Proyecto UNIX
Documentacion Final Proyecto UNIXDocumentacion Final Proyecto UNIX
Documentacion Final Proyecto UNIXMoisesAlvarez38
 
Cristian medina Instalar unix
Cristian medina Instalar unixCristian medina Instalar unix
Cristian medina Instalar unixCRISTIAN23MEDINA
 

Similar a Procesos (20)

Dev c++
Dev c++Dev c++
Dev c++
 
Actividad v administración y comandos básicos if04 emerson
Actividad v administración y comandos básicos if04 emersonActividad v administración y comandos básicos if04 emerson
Actividad v administración y comandos básicos if04 emerson
 
Clase 03
Clase 03Clase 03
Clase 03
 
Quasi - Compilación en C de Linux
Quasi - Compilación en C de LinuxQuasi - Compilación en C de Linux
Quasi - Compilación en C de Linux
 
Procesos
ProcesosProcesos
Procesos
 
9 managing processes
9  managing processes9  managing processes
9 managing processes
 
9 managing processes
9  managing processes9  managing processes
9 managing processes
 
9 managing processes
9  managing processes9  managing processes
9 managing processes
 
Presentacion: ¿Que es Compilador?
Presentacion: ¿Que es Compilador?  Presentacion: ¿Que es Compilador?
Presentacion: ¿Que es Compilador?
 
Como instalar unix ...lili
Como instalar unix ...liliComo instalar unix ...lili
Como instalar unix ...lili
 
Mary cervantes
Mary cervantesMary cervantes
Mary cervantes
 
Humanizacion de java script con typescript para d365
Humanizacion de java script con typescript para d365Humanizacion de java script con typescript para d365
Humanizacion de java script con typescript para d365
 
Semana 10 administracion de procesos
Semana 10 administracion de procesosSemana 10 administracion de procesos
Semana 10 administracion de procesos
 
Genesis campos
Genesis camposGenesis campos
Genesis campos
 
Miranda castillo UNIX
Miranda castillo UNIXMiranda castillo UNIX
Miranda castillo UNIX
 
Introducción Android NDK
Introducción Android NDKIntroducción Android NDK
Introducción Android NDK
 
Introducción android ndk
Introducción android ndkIntroducción android ndk
Introducción android ndk
 
Documentacion Final Proyecto UNIX
Documentacion Final Proyecto UNIXDocumentacion Final Proyecto UNIX
Documentacion Final Proyecto UNIX
 
Cristian medina Instalar unix
Cristian medina Instalar unixCristian medina Instalar unix
Cristian medina Instalar unix
 
Taller PyGTK
Taller PyGTKTaller PyGTK
Taller PyGTK
 

Último

La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptxJunkotantik
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docxAgustinaNuez21
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas123yudy
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdfOswaldoGonzalezCruz
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para eventoDiegoMtsS
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIACarlos Campaña Montenegro
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.José Luis Palma
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...fcastellanos3
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxJUANSIMONPACHIN
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDUgustavorojas179704
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxOscarEduardoSanchezC
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteJuan Hernandez
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 

Último (20)

La Función tecnológica del tutor.pptx
La  Función  tecnológica  del tutor.pptxLa  Función  tecnológica  del tutor.pptx
La Función tecnológica del tutor.pptx
 
CIENCIAS NATURALES 4 TO ambientes .docx
CIENCIAS NATURALES 4 TO  ambientes .docxCIENCIAS NATURALES 4 TO  ambientes .docx
CIENCIAS NATURALES 4 TO ambientes .docx
 
periodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicasperiodico mural y sus partes y caracteristicas
periodico mural y sus partes y caracteristicas
 
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
5° SEM29 CRONOGRAMA PLANEACIÓN DOCENTE DARUKEL 23-24.pdf
 
programa dia de las madres 10 de mayo para evento
programa dia de las madres 10 de mayo  para eventoprograma dia de las madres 10 de mayo  para evento
programa dia de las madres 10 de mayo para evento
 
DIA INTERNACIONAL DAS FLORESTAS .
DIA INTERNACIONAL DAS FLORESTAS         .DIA INTERNACIONAL DAS FLORESTAS         .
DIA INTERNACIONAL DAS FLORESTAS .
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIARAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
RAIZ CUADRADA Y CUBICA PARA NIÑOS DE PRIMARIA
 
Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.Clasificaciones, modalidades y tendencias de investigación educativa.
Clasificaciones, modalidades y tendencias de investigación educativa.
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
Estas son las escuelas y colegios que tendrán modalidad no presencial este lu...
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docxPLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
PLANIFICACION ANUAL 2024 - INICIAL UNIDOCENTE.docx
 
Repaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia GeneralRepaso Pruebas CRECE PR 2024. Ciencia General
Repaso Pruebas CRECE PR 2024. Ciencia General
 
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDUFICHA DE MONITOREO Y ACOMPAÑAMIENTO  2024 MINEDU
FICHA DE MONITOREO Y ACOMPAÑAMIENTO 2024 MINEDU
 
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptxPPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
PPT GESTIÓN ESCOLAR 2024 Comités y Compromisos.pptx
 
Unidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parteUnidad II Doctrina de la Iglesia 1 parte
Unidad II Doctrina de la Iglesia 1 parte
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
Sesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdfSesión de clase: Defendamos la verdad.pdf
Sesión de clase: Defendamos la verdad.pdf
 

Procesos

  • 2. En Linux los procesos se identifican con un numero entero denominado ID de proceso o PID. Al proceso que ejecuta la solicitud para la creación de un proceso se le suele llamar proceso padre, y al proceso creado se le suele llamar proceso hijo. El comando ps El comando ps sirve para mostrar información sobre procesos, su sintaxis (POSIX) es la siguiente: ps [-aA] [-G grouplist] [-o format] ... [-p proclist] [-t termlist] [-U userlist] Ver: man ps
  • 3. Librerías • stdio.h (cd /usr/include) • unistd.h (cd /usr/include) • sys/types.h (cd /usr/include/sys) • En general, son típicas librerías en la codificación en C ya que contiene una serie de funciones comúnmente utilizados.
  • 4. <stdio.h>: Librería que contiene funciones de cabeceras de entrada/salida. <unistd.h>: Librería que contiene funciones para el manejo de directorios y archivos. <sys/types.h>: Librería que contiene funciones de búsqueda y ordenamiento de directorios y manipulación de archivos Librerías
  • 5. Identificadores de Usuarios y Procesos • Las funciones C que se utilizan para obtener el identificador del proceso (PID) o el identificador de usuario (UID) son: – getpid – getppid – getuid
  • 6. getpid y getppid • NOMBRE getpid, getppid: obtiene el identificador de proceso. • SINTAXIS #include <unistd.h> (define a getpid y getppid) pid_t getpid(void); pid_t getppid(void); • (pid_t es un entero largo con el ID del proceso) • DESCRIPCIÓN – getpid devuelve el identificador de proceso del proceso actual. Esto es usado normalmente por rutinas que generan nombres únicos de ficheros temporales. – getppid devuelve el identificador de proceso del padre del proceso actual.
  • 7. getuid • NOMBRE getuid, geteuid: devuelve la identidad del usuario. • SINOPSIS #include <unistd.h> #include <sys/types.h> uid_t getuid(void); uid_t geteuid(void); • DESCRIPCIÓN getuid devuelve el identificador de usuario real del proceso actual. El identificador real corresponde con el del proceso invocador. • ERRORES Estas funciones siempre funcionan.
  • 8. fork • NOMBRE Fork: crean un proceso hijo. • SINOPSIS #include <unistd.h> pid_t fork(void); • DESCRIPCIÓN fork crea un proceso hijo que difiere de su proceso padre sólo en su PID y PPID, y en el hecho de que el uso de recursos esté asignado a 0. Los candados de fichero (file locks) y las señales pendientes no se heredan. En linux, fork está implementado usando páginas de copia-en-escritura (copy-on-write), así que la única penalización en que incurre fork es en el tiempo y memoria requeridos para duplicar las tablas de páginas del padre, y para crear una única estructura de tarea (task structure) para el hijo. • VALOR DEVUELTO En caso de éxito, se devuelve el PID del proceso hijo en el hilo de ejecución de su padre, y se devuelve un 0 en el hilo de ejecución del hijo. En caso de fallo, se devolverá un -1 en el contexto del padre, no se creará ningún proceso hijo, y se pondrá en errno un valor apropiado. • ERRORES EAGAIN: fork no puede reservar sufficiente memoria para copiar las tablas de páginas del padre y alojar una estructura de tarea para el hijo. ENOMEM: fork no pudo obtener las necesarias estructuras del núcleo porque la cantidad de memoria era escasa.
  • 9. Compilación y ejecución de un programa en C • Comando de compilación: gcc -o <nombre archivo que se crea> <nombre archivo fuente con extensión .c> Ejemplo: gcc -o prueba archivo.c • Comando de ejecución: ./<nombre archivo ejecutable que se creó en gcc> Ejemplo: ./prueba
  • 10. Ejemplo 1: #include <stdio.h> int main() { int num1,num2,suma; scanf(“Ingrese Primer Número”, num1); scanf(“Ingrese Segundo Número”, num2); int suma=num1+num2; printf(“La suma de %d + %d = %d”; num1,num2,suma); } Grabar el archivo como: numero.c Compilación: gcc -o numero numero.c Ejecución: ./numero
  • 11. Ejemplo 2: #include <stdio.h> int main() { printf(“Hola a todos!!n”); exit(0); } Grabar el archivo como: hola.c Compilación: gcc –o hola hola.c Ejecución: ./hola
  • 12. #include <stdio.h> #include <sys/types.h> #include <unistd.h> int main(void) { printf("ID de proceso: %ldn", (long)getpid()); printf("ID de proceso padre: %ldn", (long)getppid()); printf("ID de usuario propietario: %ldn", (long)getuid()); return 0; } NOTA: Al finalizar de codificar, grabarlo con el nombre: proceso.c El siguiente programa imprime el identificador del proceso actual, del proceso padre y del propietario:
  • 13.
  • 14.
  • 15.
  • 16.
  • 17. #include <stdio.h> #include <sys/types.h> #include <unistd.h> int main(void) { int i; int padre; padre=1; for (i=0; i<3; i++) { if (padre==1) { if (fork()== 0) /* Proceso hijo */ { fprintf(stdout, "Este es el proceso hijo con padre %ldn", (long)getppid()); padre = 0; } else /* Proceso padre */ { fprintf(stdout, "Este es el proceso padre con ID %ldn", (long)getpid()); padre = 1; } } } sleep(50); return 0; } NOTA: grabrar con el nombre: padrehijo.c
  • 18. El siguiente código produce un árbol de procesos como el de la figura: