Practica de SO
Codigo
Ejecucion
¿Porquè aparecen mensajes repetidos?
La funcion Fork realiza duplicaciones o clonasiones de los procesos en forma aleatoria, siendo la condicion del programa se ejecuta varias ocasiones.
¿Què observas?
El pid padre cuando entra en proceso, tiene que realizar otro proceso denominado pid hijo que es un subproceso del pid padre.
¿Porqué?
Debido a que los procesos grandes requieren de diversas tareas, estas tienen que ramificarse o sacar subprocesos para complememtar las acciones de dicho proceso.
¿Porqué?
Debido a que los procesos grandes requieren de diversas tareas, estas tienen que ramificarse o sacar subprocesos para complememtar las acciones de dicho proceso.
LIBRERIAS
<sys/types.h>
<sys/types.h>
Incluye definiciones para al menos los siguientes tipos:
id_t -> Se utiliza como identificador general, se puede utilizar para contener al menos un pid_t, uid_t o gid_t una.
ino_t -> Utilizados para el archivo de números de serie.
key_t -> Se utiliza para la comunicación.
mode_t -> Se utiliza para algunos de los atributos de archivo.
nlink_t -> Se utiliza para el conteo de enlaces.
off_t -> Se utiliza para tamaños de archivo.
pid_t -> Se utiliza para los identificadores de proceso y los ID de proceso del grupo.
<sys/wait.h>
Define las siguientes constantes simbólicas para su uso con waitpid () :
El tipo idtype_t se define como un tipo de enumeración cuyos valores posibles son al menos lo siguiente:
P_ALL
P_PID
P_PGID
P_ALL
P_PID
P_PGID
<unistd.h>
Define varios tipos y constantes simbólicas, y declara funciones diversas
FUNCIONESFORK: La forma en que un proceso arranca a otro es mediante una llamada al sistema fork o clone.
-La función fork de la librería libc coloca los parámetros de la llamada en los registros del procesador y se ejecuta la instrucción INT 0x80.
-Se conmuta a modo núcleo y, mediante las tablas IDT y GDT, se llamaa la función sys_call.
-La función sys_call busca en la sys_call_table la dirección de la
llamada al sistema sys_fork
SRANDOM : Funcion en c estadar llamada random(). Si quieres generar un numero aleatorio deberas utilizar srand() y rand(). Para hacer uso de ellas debes incluir stdlib.h
SLEEP: retraso en milisegundos / retraso en segundos.
-La función fork de la librería libc coloca los parámetros de la llamada en los registros del procesador y se ejecuta la instrucción INT 0x80.
-Se conmuta a modo núcleo y, mediante las tablas IDT y GDT, se llamaa la función sys_call.
-La función sys_call busca en la sys_call_table la dirección de la
llamada al sistema sys_fork
SRANDOM : Funcion en c estadar llamada random(). Si quieres generar un numero aleatorio deberas utilizar srand() y rand(). Para hacer uso de ellas debes incluir stdlib.h
SLEEP: retraso en milisegundos / retraso en segundos.
WAIT: Obligará a un proceso padre que esperar a que un proceso hijo para detener o poner fin a wait () devuelve el pid del hijo o -1 para un error.. El estado de salida del niño es devuelto.
REVISADO
ResponderEliminar