PROGRAMA DE SISTEMAS OPERATIVO elabora el 19-septiembre-2011
Raul Lopez Bautista
Descripción de algunas palabras:
fork()
La función fork() cambia un proceso único en 2 procesos idénticos, conocidos como el padre (parent) y el hijo (child). En caso de éxito, fork() regresa al proceso hijo y regresa el identificador del proceso hijo al proceso padre. En caso de falla, fork() regresa al proceso padre, pone un valor a errno, y no se crea un proceso hijo.
El proceso hijo tendrá su propio identificador único (PID).
La función int wait() (int *status) forzará a un proceso padre para que espere a un proceso hijo que se detenga o termine. La función regresa el PID del hijo o -1 en caso de errror. El estado de la salida del hijo es regresado en status.
sys / types.h - tipos de datos
pid_t
Se utiliza para los identificadores de proceso y los ID de proceso del grupo.
sys / wait.h - declaraciones de espera.
srandom genera números aleatorios.
getpid - obtener el ID del proceso.
El getpid () la función devolverá el ID del proceso del proceso invocador.
El getpid () siempre será exitoso y ningún valor de retorno está reservado para indicar un error.
Random proporciona un generador de números aleatorios proporciona un generador de números aleatorios.
Un PID (Proporcional Integral Derivativo) es un mecanismo de control por realimentación que calcula la desviación o error entre un valor medido y el valor que se quiere obtener.
Las tres componentes de un controlador PID son: parte Proporcional, acción Integral y acción Derivativa.
Proporcional: consiste en el producto entre la señal de error y la constante proporcional como para que hagan que el error en estado estacionario sea casi nulo, pero en la mayoría de los casos, estos valores solo serán óptimos en una determinada porción del rango total de control, siendo distintos los valores óptimos para cada porción del rango.
Integral: Tiene como propósito disminuir y eliminar el error en estado estacionario, provocado por el modo proporcional. El control integral actúa cuando hay una desviación entre la variable y el punto de consigna, integrando esta desviación en el tiempo y sumándola a la acción proporcional. El error es integrado, lo cual tiene la función de promediarlo o sumarlo por un período determinado; Luego es multiplicado por una constante I. Posteriormente, la respuesta integral es adicionada al modo Proporcional para formar el control P + I con el propósito de obtener una respuesta estable del sistema sin error estacionario.
Derivativa se manifiesta cuando hay un cambio en el valor absoluto del error; (si el error es constante, solamente actúan los modos proporcional e integral).
El error es la desviación existente entre el punto de medida y el valor consigna, o "Set Point".
La función de la acción derivativa es mantener el error al mínimo corrigiéndolo proporcionalmente con la misma velocidad que se produce; de esta manera evita que el error se incremente.
Pantalla de código
Pantalla de la ejecucion del programa desde la consola:
Pantalla de la ejecución del programa desde el compilador:
PREGUNTAS
¿Por qué aparecen mensajes repetidos?:
En el código se ha declarado pid_t se utiliza para los identificadores de procesos, los PID es un número entero usado por el kernel de algunos sistemas operativos (como el de Unix o el de Windows NT) para identificar un proceso de forma unívoca.
Para asignar el PID, el kernel utiliza internamente una variable global que se va incrementando con cada nuevo proceso creado con una llamada fork(). Cuando la variable alcanza un cierto valor límite se empieza otra vez desde 0, buscando números que no estén asignados ya a otro proceso en ejecución.
¿Qué observas?
De que cuando finaliza o llega al limite el incremento da la opción de empezar nuevamente desde cero pero con valores nuevos y no repetitivos y que tiene un PID el hijo como el padre.
¿Por qué?
Esto es debido a que estamos asiendo uso del Srandom y Random proporciona un generador de números aleatorios y como se ha declarado if(pid ¡= 0)
Mientras el numero aleatorio sea diferente de 0 va continuar.
http://translate.google.com.mx/translate?hl=es&sl=en&u=http://pubs.opengroup.org/onlinepubs/007904875/basedefs/sys/types.h.html&ei=wyV4TrayBqSFsALsu4HYDQ&sa=X&oi=translate&ct=result&resnum=3&ved=0CDIQ7gEwAg&prev=/search%3Fq%3Dque%2Bes%2BSys/types%26hl%3Des%26biw%3D1366%26bih%3D655%26prmd%3Dimvns
http://translate.google.com.mx/translate?hl=es&sl=en&u=http://pubs.opengroup.org/onlinepubs/007904975/basedefs/sys/wait.h.html&ei=-yV4TvybEZCHsALKxtXkDQ&sa=X&oi=translate&ct=result&resnum=1&sqi=2&ved=0CCYQ7gEwAA&prev=/search%3Fq%3Dque%2Bes%2BSys/wait%26hl%3Des%26biw%3D1366%26bih%3D655%26prmd%3Dimvns
REVISADO
ResponderEliminar