Está en la página 1de 5

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN DE AREQUIPA

FACULTAD DE PRODUCCION Y SERVICIOS

ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS

Curso: Laboratorio de Sistemas Operativos - Grupo E


INFORME PRACTICA N°04
Docente: Cardenas Talavera, Rolando Jesus

Estudiante: Agramonte Mayhua,Indira Zonali

CUI: 20190620

Arequipa - Perú

2021
1. Analice el siguiente código y de una interpretación del resultado obtenido.

Resultado:

Análisis:

getpid() devuelve el id del proceso que se llama, en este caso se ejecuta el proceso 3831

getppid() devuelve el id del proceso padre, en este caso es 3588

2. El siguiente código crea un proceso hijo, realice un seguimiento de la variable value y


describa por qué tiene ese comportamiento.

Resultado:

Modificación del código para seguir el proceso:


Análisis:

Se crea un proceso hijo con pid 12640 y un proceso padre con pid=0, ambos con valor 5,
dentro del proceso hijo el valor es 20, pero para el padre sigue siendo 5.

3. En el siguiente código, detalle qué parte del código es ejecutada por el proceso padre y que
porción del código es ejecutada por el proceso hijo. Describa la actividad de cada uno.

Resultado:

Modificación del código para seguir proceso:


Análisis:

Se crea el proceso hijo que es 3598, con un proceso padre = 0, en el cual se ejecuta la orden ls.

4. Analice el siguiente código, explique cómo se da el flujo del código desde el proceso padre y
como procede con los procesos hijos.

Resultado:

Análisis:

Al crear un proceso se crea al padre, dentro del cual se presenta al primer hijo y se crea al
segundo, luego llama al primer hijo y después al segundo, el cual ejecuta la orden ls

5. Analice el siguiente código. ¿Cuántos procesos se generan?

Resultado:

Modificación de código:
Análisis:

Se crea 3 procesos hijo, la función main termina de ejecutarse al 3er fork, sin embargo los
procesos siguen ejecutándose debido a que no hay algo que lo finalice.

6. Los siguientes códigos muestran un ejemplo del problema del productor-consumidor, donde
un proceso se encarga de generar información, mientras que el segundo lo lee de la memoria.
Ambos códigos utilizan funciones del API POXIS con memoria compartida. Analice el
código y detalle las funciones que permiten compartir memoria entre procesos. (Para poder
compilar el código, agregue -lrt a gcc, y ejecute los códigos ”./productor && ./consumidor”)

Resultado:

Análisis:

Producer construye el objeto de memoria compartida con la función “shm open()”, también
configura el tamaño de la memoria compartida con “ftruncate()” y escribe en la memoria
compartida usando sprintf() y strlen().

Consumer lee la memoria compartida con print(), así mismo elimina con sh unlink()

También podría gustarte