jueves, 13 de octubre de 2011

Diferencia entre FIFO y LIFO


FIFO


El término FIFO es muy ocupado en estructuras de Programación ya que es la base para describir una Cola (Queue), con esta estructura permite hacer que en una colección de datos el primero en entrar será el primero en salir (First In Last Out), esto lo podemos ocupar ya sea con un vectro, matriz o apuntador.



LIFO


En este Sistema de Estructuras de Datos, se implementa una pila en la que conforme se van colocando elementos, el orden es ascendente y uno sobre otro, lo que nos obliga a sacar primero el último elemento para poder acceder a lo elementos de abajo. Por eso la definicion en ingles Last In First Out que significa último en entrar primero en salir.


LA DIFERENCIA


La diferencia recae en el el orden en que estas estructuras funcionan ya que una forma una cola la otra forma una fila, a que nos referimos con esto a que en FIFO la entrada del primer elemento será el primero en salir y en el LIFO el ultimo en entrar sera el primero en salir, en cuanto a procesos podemos utilizar esto metodos haciendo que el proceso iniciado en primer lugar sea el primero en terminar sin problemas y asi sucesivamente (FIFO) o de manera contraria que podamos iniciar el último proceso que se asigno, después el penúltimo y así hasta llegar a el primero que llego o solicitó el servicio.













martes, 4 de octubre de 2011

miércoles, 28 de septiembre de 2011

Posix


Posix (Portable Operating System Interface)


El termino fue sugerido por Richard Stallman en respuesta a la IEEE que buscaba un acrónimo fácil de recordar, la traducción mas acercada es Interfaz de Sistema Operativo Portable.

Estas POSIX son estandares de la IEEE para para formalizar interfaces en los sistemas operativos, surgió como una necesidad de estandarizar la API´s, esto quiere decir estandarizar programas que pudieran funcionar en diferentes Sistemas Operativos.

Las las Posix vienen acompañadas de pruebas llamadas PCTS, que significa Conjunto de conformación de pruebas Posix, estas pruebas se le aplica al software para poder considerarlo como parte de este conjunto de aplicaciones.

Ya que la IEEE aplicó un alto costo a la documentación de Posix surgió un nuevo estandar creado en base a la Single Unix Specification que es una alternativa al Posix.

Algunos de los sistemas que son totalmente compatibles con estandares Posix

  • A/UX
  • AIX
  • BSD/OS
  • DSPnano
  • HP-UX
  • INTEGRITY
  • IRIX
  • LynxOS
  • Mac OS X v10.5 en Procesadores Intel.
  • MINIX
  • MPE/iX
  • QNX (IEEE Std. 1003.13-2003 PSE52;
  • RTEMS (POSIX 1003.1-2003 Profile 52)
  • Solaris
  • Unison RTOS
  • UnixWare
  • velOSity
  • VxWorks (IEEE Std. 1003.13-2003 PSE52;

Algunos sistemas que son compatibles en su mayoría con estandares Posix

  • BeOS / Haiku
  • FreeBSD
  • GNU/Linux (la mayor parte de las distribuciones)
  • Contiki
  • NetBSD
  • Nucleus RTOS
  • OpenBSD
  • OpenSolaris
  • PikeOS
  • RTOS (para ciertos sistemas con particiones PSE51 y PSE52 opcionales)
  • RTEMS – Soporte API POSIX diseñado para IEEE Std. 1003.13-2003 PSE52
  • Sanos
  • SkyOS
  • Syllable
  • VSTa




      miércoles, 21 de septiembre de 2011

      Programa Arbol


      Código del programa

      Código Corriendo



      Funciones Nuevas

      pstree

      pstree [ -a ] [ -c ] [ -h | -H pid ] [ -l ] [ -n ] [ -p ] [ -u ] [ -G | -U ] [pid|usuario ]

      pstree -V

      Descripción

      pstree muestra los procesos en ejecución como un árbol. El árbol tiene sus raíces en cualquiera de pid o init si pid es omitido. Si un nombre de usuario se especifica, todos los árboles con raíz en los procesos de proceso de propiedad de dicho usuario se muestran.


      popen

      Inicia flujos de tubería o de un proceso

      Descripción

      El popen () la función se ejecuta el comando especificado en la cadena de mando . Se crea un canal entre el programa de llamada y el comando que se ejecuta, y devuelve un puntero a una corriente que se puede utilizar para leer bien o escribir en la tubería.

      Si la aplicación soporta la referencia XCU pliego de condiciones, el entorno del comando ejecutado será como si un proceso hijo se crearon en el popen () llamada con tenedor () , y el niño invocó la mierda de servicios públicos mediante la llamada:

      execl ( vía shell "sh", "-c", comando , (char *) 0);


      fgets

      Obtener cadena de la corriente. Lee caracteres de flujo y las almacena como una cadena C en str hasta que ( num -1) caracteres han sido leídos o bien una nueva línea o el final de su archivo que se alcance, lo que ocurra primero.

      Un carácter de nueva línea hace fgets , deje de leer pero se considera un carácter válido y por lo tanto se incluye en la cadena de copia de str .

      Un carácter nulo se añade automáticamente a str después de los caracteres de lectura para indicar el final de la cadena C.


      Parámetros

      str Puntero a una matriz de caracteres s donde se almacena la cadena de lectura.

      num El número máximo de caracteres a leer (incluyendo la final nula caracteres). Por lo general, la longitud de la matriz pasada como str se utiliza.

      stream Puntero a un fichero objeto que identifica la corriente, donde los personajes se leen.

      Para leer de la entrada estándar, entrada estándar se puede utilizar para este parámetro.


      Preguntas

      ¿Porque se repite las secuencias?

      Porque seguimos trabajando con ciclos lo cuales nos regresa los Id de los procesos por medio de la función getpid

      ¿Qué observas?

      El árbol esta formado por los procesos padres e hijos obtenidos del sistema por medio del pid combinado con la función pstree.

      ¿Por qué?

      Ya que la función pstree extrae el árbol de procesos, el programa coloca en pantalla el Id de los procesos ejecutados por el mismo, con ayuda de fork que utiliza los multiprocesos (hilos).