Linux y programación
Noticias, dudas y soluciones de Linux y programación

El tiempo en Badajoz

Sugerencias:

Esta bitácora fue creada por linuxcpp el día 24-09-06. Se han publicado 101 historias y 131 comentarios.


Foto del creador
Nombre: linuxcpp
Descripción: José Ramón Rubio
Localidad: Caceres
E-mail

Llamame con Gizmo

¿Qué le parece la nueva distribución gnuLinex 2006?
Excelente
Muy buena
Buena
Normal
Mala
Pésima

Ver resultados
Ver comentarios

    <<  Agosto 2008  >>
    DomLunMarMieJueVieSab
         12
    3456789
    10111213141516
    17181920212223
    24252627282930
    31      

Powered by eXtreblog  Use OpenOffice.org Add to Technorati Favorites  Bitacoras.com


Free Software Top
gnuLinEx 2006: de SARGE A ETCH: Última actualización: 12/01/2008

Directorio /proc
Autor: linuxcpp _ URL _ Tb () _ Categorias: LINUX- Utilidades, C/C++

  Conocer la estrucutura del directorio /proc puede resultar bastante útil, sobre todo para los programadores.

  En este directorio se va a mantener información acerca de los procesos que se encuentran actualmente en ejecución. Los procesos son identificados por un número que se llama PID. El comando ps -aux nos imprime un listado con los procesos que se encuentran en ejecución en dicho momento, donde podremos observar entre otros valores el número PID de los procesos.

  En el directorio /proc existirá una carpeta para cada proceso en ejecución. Esta carpeta tendrá como nombre el valor PID del proceso.
  Dentro de cada carpeta de un proceso nos encontraremos con varios archivos. No es mi intención realizar una explicación exhaustiva de cada archivo, pero cabe destacar el fichero:
  - cmdline: El cual contiene información acerca del nombre del proceso, incluyendo la ruta completa del mismo.
  - stat: Este fichero contiene mucha información acerca del proceso. Se trata de un fichero de texto compuesto de varios campos, los cuales se encuentrán separados por el carácter espacio. Entre los distintos campos tenemos el PID, el nombre del proceso (sólo el nombre del proceso, la ruta completa no), etc.
  - statm: Este fichero muestra información importante acerca de la memoria que está usando el proceso.

  Información completa y exhaustiva acerca de estos ficheros y otros, incluyendo sus campos, podemos encontrarlos usando el comando: man proc

  Volviendo a la ruta original /proc nos encontraremos una serie de archivos de relativa importancia, no orientados a procesos individuales sino al conjunto completo:
  - cpuinfo: Donde encontraremos bastante información acerca de nuestro procesador.
  - stat: Se muestra información acerca del rendimiento del procesador en cuestión: donde se incluye, entre otras, información acerca del tiempo que lleva el procesador encendido, el número de procesos en ejecución, etc.
  - version: Muestra información acerca de la versión de kernel, compilador gcc y debian... de nuestro ordenador.

  De nuevo os remito al comando man proc para obtener mayor información de éstos y otros ficheros.

  Las aplicaciones prácticas de conocer en profundidad la estructura del directorio /proc y sus ficheros pueden ser numerosas, como puede ser realizar software que maneje procesos activos. Se pueden extraer los mismos datos que los comandos ps -aux o top, el cual recomiendo que lo probeis: top -d 1.

  Yo he sido capaz de realizar un programa capaz de extraer la misma información que dichos comandos, por lo que os aseguro que toda la información que deseemos de los procesos se encuentra en /proc, y queda a imaginación del programador las utilidades prácticas que puede tener conocer ésto, desde listar los procesos activos hasta saber si un programa pierde memoria...

  Creo que en el comando man proc podreis encontrar toda la información que busqueis, pero si necesitais conocer algún campo o fichero de forma más concreta dejad un comentario.



Comentarios (6)
MeneameMenéame Barrapunto Barrapunto Technorati Technorati Google Google Bookmarks Fresqui Fresqui Delicious del.icio.us
VOTACIÓN: Votos(Núm. votos: 7)

RESPUESTA A Directorio /proc
Autor: Anónimo(*)(*) _ URL _ Tb () _ Categorias:

Disculpa como puedo hacer un programa que me de la información del Top en c.

Te agradeceria que me dijeras como puedo empezar?

Gracias

RESPUESTA A Directorio /proc
Autor: linuxcpp _ URL _ Tb () _ Categorias:

Buenas.
Hacer un programa en C parecido a top que te muestre información de los procesos no es tan difícil. Ignoro tus conocimientos en C pero te oriento más o menos como empezar.
Para obtener la información de los procesos debes recorrer el directorio /proc (funciones opendir, readdir, etc). Todos los directorios que encuentres cuyo nombre sea un valor numérico (Ej: 8282) debes tratarlos como un proceso. El nombre numérico en cuestión será el PID del proceso; y para cada proceso te recomiendo que accedas a 3 de sus ficheros:
- PID_PROCESO/cmdline: que te ofrece con exactitud el nombre
- PID_PROCESO/stat: estadísticas como el estado, tiempos, prioridad, etc.
- PID_PROCESO/statm: estadísticas relacionadas con la memoria.

La principal idea es esta. Como decidas implementarlo es un poco cuestión tuya; yo quizás haría un programa en C que funcionara como demonio, y que usando señales desde otro programa iría mostrando la información recopilada por el demonio.
Si quieres conocer otros datos que muestra el comando top no tan relacionados con los procesos puedes preguntarme. Igualmente si no te queda claro algo preguntame, aunque intenta ser un poco más preciso, más que nada porque nose si conoces mucho de C o no.

Saludos.

RESPUESTA A Directorio /proc
Autor: Anónimo(*)(*) _ URL _ Tb () _ Categorias:

Muchas gracias por tu contestación tan rapida, si he trabajado con C pero soy muy novato programando para linux, y tambien necesito saber lo de la swap y memoria fisica que te muestra el top.

Eso es todo pero empezare con lo que me diste.

Muchas gracias.

RESPUESTA A Directorio /proc
Autor: linuxcpp _ URL _ Tb () _ Categorias:

Si tienes alguna duda preguntame.
En cuanto a lo de conocer la swap y la memoria física del sistema, puedes ver obtener toda esa información del fichero /proc/meminfo. Igual que si quieres conocer el tiempo que lleva el sistema en funcionamiento lo puedes ver en el fichero /proc/uptime, o los parámetros de load average que se encuentran en /proc/loadavg.

Saludos.

RESPUESTA A Directorio /proc
Autor: Gabriela(*)(*) _ URL _ Tb () _ Categorias:

Yo necesito obtener informacion sobre los procesos que se ejecutan el linux,la verdad no tenia idea de como hacerlo, pero con el cometario anterior me he ubicado un poco... Aunque sigo teniendo muchas dudas no se si alguien me podria decir como obtener la informacion del top. Se los agradeceria mucho. Gracias

RESPUESTA A Directorio /proc
Autor: linuxcpp _ URL _ Tb () _ Categorias:

Hola Gabriela.
El comando top muestra demasiada información y es díficil especificarte todo. De forma resumida más o menos lo comenté en comentarios anteriores, cómo y dónde se localiza la información más importante de los procesos y también de resúmenes de memoria, consumo de cpu, etc. Si me haces preguntas más específicas de como se calcula tal cosa, o de dónde se obtiene tal cosa, me sería más fácil ayudarte. Si lo prefieres, en la parte de arriba del blog está mi email, mandame un mail con tus dudas.
Saludos.

Escribe tu comentario


Usuario de eXtreblog (sí/no)

Nombre:

Contraseña:
?


Comentario:

Escribe el resultado de la suma:






"Linux y programación"
I would love to change the world, but they won't give me the source code