lunes, agosto 28, 2006

 

Laboratorio # 2

1.-fork() simple

Explique porque si el valor de “x” en el proceso padre es igual o distinto al del proceso hijo.

Los valores de x son iguales pero solo porque el proceso hijo y el proceso padre se ejecutan rápidamente como rand() utiliza el reloj para calcular el valor prácticamente es el mismo si se pone una pausa los valores serian diferentes porque cada proceso hace su propio rand()

¿Existe alguna forma de predecir los ID del proceso que serán asignado al proceso hijo y al proceso padre?

Por lo que se muestra en las corridas los valores que identifican al proceso hijo es mayor en una al del proceso padre y el valor del proceso padre no se puede predecir ya que toma el valor de del siguiente identificador de proceso disponible.

1.-fork() no tan simple
Revise el siguiente programa sin correrlo y responda: ¿Cuántos procesos se van a crear?

Creo que serán 16 procesos















Compile el programa y ahora indique cuántos procesos se crearon.
¿Es igual a su respuesta anterior? Si no es, ¿por qué?












Fueron 8 Procesos
Ya que cada hijo del padre tiene un fork – 1 por lo que seria asi:













Mencione los puntos más relevantes que se encuentran en el manual de fork, que no fueron discutidos en este laboratorio.

fork() requiere las siguientes librerias
#include
#include


Modifique el programa para se creen tres copias únicamente.

/* Programa bien_facil */
#include
#include
#include
#include
#include
#include
#define MAX_COUNT 2
#define BUF_SIZE 120
void main(void)
{
pid_t pid;
int i;
int x=0;
char buf[BUF_SIZE];
fork();
fork();
pid = getpid();
for (i = 1; i <= MAX_COUNT; i++) { x= rand();
sprintf(buf, "Esta linea es de pid %d, valor = %d, valor de x es %d\n", pid, i, x);
write(1, buf, strlen(buf));
} }







Copia pid 95,97,94


3) Fork() más complicado


Explique el funcionamiento del programa “gnarls”.

En main se crea una copia del proceso con el fork() el proceso hijo ejecuta ChildProcess() y el padre ejecuta ParentProcess()
Son dos procesos que se encuentran en memoria requiriendo el uso del cpu.

Explique la salida que obtuvo del programa “gnarls”, ¿qué muestra?
Ejecutas por un momento el proceso hijo y por otro momento el proceso padre obteniendo así salida de los dos procesos.




















Explique si después de ejecutar el programa “gnarls” 20 veces, considera que el manejo del procesador es justo o injusto.

Es justo porque genera prácticamente los procesos simultáneamente y terminan casi al mismo tiempo

Comments: Publicar un comentario



<< Home

This page is powered by Blogger. Isn't yours?