You are on page 1of 21

Gestin de procesos en sistemas operativos GNU/Linux

Luz Ayda Daz Martha Ramos M.

GESTIN DE PROCESOS EN SISTEMAS OPERATIVOS GNU/LINUX BASADOS EN DEBIAN

Presentado por: LUZ AYDA DAZ PREZ MARTHA MILENA RAMOS MORILLO

Ing. SAMIR CASTAO

SISTEMAS OPERATIVOS

UNIVERSIDAD DE CRDOBA FACULTAD DE INGENIERAS PROGRAMA DE INGENIERA DE SISTEMAS Y TELECOMUNICACIONES IV SEMESTRE MONTERA COLOMBIA

Gestin de procesos en sistemas operativos GNU/Linux


Luz Ayda Daz Martha Ramos M.

GESTIN DE PROCESOS EN SISTEMAS OPERATIVOS GNU/LINUX BASADOS EN DEBIAN


[Nombre de la compaa] [Seleccione la fecha] [Edicin 1, volumen 1]

2012

INTRODUCCIN
En el presente documento se realizar una explicacin extensa acerca del uso y gestin de los procesos en los sistemas operativos GNU/Linux basados en Debian, que abarcar de desde el directorio archivos de y almacenamiento los procesos,

Sumario de Ejes Temticos

1. Directorio de almacenamiento de los procesos 2. Archivos y directorios virtuales. 3. Comandos para manipulacin de procesos. 4. Ejemplos de la aplicacin de dichos comandos.

directorios virtuales, comandos para manipulacin de procesos y por ltimo, ejemplos de la aplicacin de dichos comandos. Los sistemas Linux, como ya es sabido, son multitarea, es decir, pueden estar ejecutando distintas acciones a la par, y cada accin es un proceso. Se explicar como manejar los procesos y aprovechar las caractersticas de Linux en lo referente a la capacidad multitarea. Cuando se ejecuta un comando en el shell, sus instrucciones se copian en algn sitio de la memoria RAM del sistema para ser ejecutadas. Cuando las instrucciones ya cumplieron su funcin, el programa es borrado de la memoria, dejndola libre para que ms programas se puedan ejecutar a la vez. Cada uno de estos programas que pasan a la memoria y son ejecutados es lo que conocemos con el nombre de proceso. El tiempo que este proceso estuvo en la memoria del sistema ejecutndose, se conoce como tiempo de ejecucin de un proceso.

Gestin de procesos en sistemas operativos GNU/Linux


Luz Ayda Daz Martha Ramos M.

La gestin de procesos en Linux no diere demasiado de la que se hace en cualquier otro sistema UNIX. As, el encargado de asignar una parte de la memoria a un proceso es el kernel de Linux (ncleo central), quien decide cunta memoria dar a cada proceso. Unos procesos sern ms importantes que otros y tendrn preferencia a la hora de pedir clculos o instrucciones al microprocesador sobre otros procesos. Este concepto se llama prioridad de un proceso. Por lo tanto, debe quedar claro que es el kernel quien administra los procesos y controla su ejecucin simultnea y el reparto de los recursos de la mquina.

Gestin de procesos en sistemas operativos GNU/Linux


Luz Ayda Daz Martha Ramos M.

1. DIRECTORIO DE ALMACENAMIENTO DE PROCESOS


Los procesos son un conjunto de actividades consumidoras de recursos que llevan a cabo tareas en el sistema operativo. Un proceso es una entidad dinmica, cambiando constantemente a medida que el procesador ejecuta las instrucciones de cdigo mquina. Un proceso tambin incluye el contador de programa y todos los registros de la CPU, as como las pilas del proceso que contienen datos temporales como parmetros de las rutinas, direcciones de retorno y variables salvadas. El programa que se est ejecutando, o proceso, incluye toda la actividad en curso en el microprocesador. Linux es un sistema multiproceso. Los procesos son tareas independientes, cada una con sus propios derechos y responsabilidades. Si un proceso se desploma, no har que otros procesos en el sistema fallen tambin. Cada proceso se ejecuta en su propio espacio de direccin virtual y no puede haber interacciones con otros procesos excepto a travs de mecanismos seguros gestionados por el ncleo. Durante la vida de un proceso, ste har uso de muchos recursos del sistema. Usar las CPUs del sistema para ejecutar sus instrucciones y la memoria fsica del sistema para albergar al propio proceso y a sus datos. El proceso abrir y usar ficheros en los sistemas de ficheros y puede usar dispositivos del sistema directa o indirectamente. Linux debe llevar cuentas del proceso en s y de los recursos de sistema que est usando de manera que pueda gestionar este y otros procesos justamente. No sera justo para los otros procesos del sistema que un proceso monopolizase la mayora de la memoria fsica o las CPUs. Todo proceso ejecutado en un sistema Unix se identifica por un nmero nico, el Process Identifier o PID, que el sistema almacena en una tabla de procesos para la gestin de tareas. El nmero PID asignado a un proceso lo da el ncleo de Linux al iniciar el programa y no existe forma de predecirlo. Adems, un nmero de PID no se libera automticamente cuando el

Gestin de procesos en sistemas operativos GNU/Linux


Luz Ayda Daz Martha Ramos M.

programa que ejecuta el proceso se cierra. De esta forma se evita el riesgo de enviar una seal a otro proceso cuando el proceso destinario termina de otra manera, entre el momento de uso del comando ps para identificar el PID y el momento de ejecucin del comando kill. Los programas utilizan dos comandos para crear procesos: fork y exec. La primera orden permite que un proceso cree un clon de s mismo, la segunda usa ese clon para ejecutar el cdigo de otro programa en su lugar. De ello resulta un parentesco entre procesos. As, se habla de procesos hijos y padres. Todo proceso tiene que tener obligatoriamente un padre, salvo el primer proceso del sistema: init. Este es pues el antecesor de todos los procesos del sistema y su PID es 1. Para que Linux pueda gestionar los procesos en el sistema, cada proceso se representa por una estructura de datos task_struct (las tareas (task) y los procesos son trminos intercambiables en Linux). El vector task es una lista de punteros a estructuras task_struct en el sistema. Esto quiere decir que el mximo nmero de procesos en el sistema est limitado por el tamao del vector task; por defecto tiene 512 entradas. A medida que se crean procesos, se crean nuevas estructuras task_struct a partir de la memoria del sistema y se aaden al vector task. Para encontrar fcilmente el proceso en ejecucin, hay un puntero (current) que apunta a este proceso. Linux soporta procesos de tiempo real as como procesos normales. Estos procesos tienen que reaccionar muy rpidamente a sucesos externos (de ah el trmino tiempo real') y reciben un trato diferente del planificador.

Gestin de procesos en sistemas operativos GNU/Linux


Luz Ayda Daz Martha Ramos M.

2. ARCHIVOS Y DIRECTORIOS VIRTUALES


Los directorios y archivos de un sistema Debian tienen una estructura standar el directorio /proc : Es un directorio "virtual", que no est presente en el disco, es creado por el sistema para intercambiar informacin con ms facilidad. Realmente no existe, sin embargo se puede explorar; desplegar su contenido. Bajo Linux, todo es administrado como un archivo; incluso los dispositivos son accedidos como archivos en el directorio /dev. El directorio /proc contiene un extrao tipo de archivo: archivos virtuales. Estos archivos son listados, pero realmente no existen en disco; el sistema operativo los crea al vuelo. La mayora de los archivos virtuales siempre tienen una marca de tiempo (timestamp) actual, lo que indica que estn constantemente siendo actualizados. El directorio /proc en si mismo es creado cada vez que arrancas el equipo. Se requiere ser root para poder examinar completamente el directorio en su totalidad; algunos de los archivos como los relacionados a procesos son propiedad del usuario que los ejecut. Y aunque casi todos los archivos son de solo lectura, hay algunos pocos con permisos de escritura, notablemente en /proc/sys. Que permiten realizar cambios en los parmetros del kernel. El sistema de archivos /proc contiene un sistema de archivos imaginario o virtual. Este no existe fsicamente en disco, sino que el ncleo lo crea en memoria. Se utiliza para ofrecer informacin relacionada con el sistema (originalmente acerca de procesos, de aqu su nombre). Sus archivos de tamao 0 no son ni binarios ni textos, sin embargo se puede examinar y

Gestin de procesos en sistemas operativos GNU/Linux


Luz Ayda Daz Martha Ramos M.

Algunos de los archivos ms importantes son los siguientes: /proc/1: Un directorio con informacin acerca del proceso nmero 1. Cada proceso tiene un directorio debajo de /proc cuyo nombre es el nmero de identificacin del proceso (PID). /proc/cpuinfo: Informacin acerca del procesador: su tipo, marca, modelo, rendimiento, etc. /proc/devices: Lista de controladores de dispositivos configurados dentro del ncleo que est en ejecucin. /proc/dma: Muestra los canales DMA que estn siendo utilizados. /proc/filesystems: Lista los sistemas de archivos que estn soportados por el kernel. /proc/interrupts: Muestra la interrupciones que estn siendo utilizadas, y cuantas de cada tipo ha habido. /proc/ioports: Informacin de los puertos de E/S que se estn utilizando en cada momento. /proc/kcore: Es una imagen de la memoria fsica del sistema. Este archivo tiene exactamente el mismo tamao que la memoria fsica, pero no existe en memoria como el resto de los archivos bajo /proc, sino que se genera en el momento en que un programa accede a este. (Recuerde: a menos que copie este archivo en otro lugar, nada bajo /proc usa espacio en disco). /proc/kmsg: Salida de los mensajes emitidos por el kernel. Estos tambin son redirigidos hacia syslog. /proc/ksyms: Tabla de smbolos para el kernel. /proc/loadavg: El nivel medio de carga del sistema; tres indicadores significativos sobre la carga de trabajo del sistema en cada momento.

Gestin de procesos en sistemas operativos GNU/Linux


Luz Ayda Daz Martha Ramos M.

/proc/meminfo: Informacin acerca de la utilizacin de la memoria fsica y del archivo de intercambio. /proc/modules: Indica los mdulos del ncleo que han sido cargados hasta el momento. /proc/net: Informacin acerca del estado de los protocolos de red. /proc/self: Un enlace simblico al directorio de proceso del programa que est observando a /proc. Cuando dos procesos observan a /proc, obtienen diferentes enlaces. Esto es principalmente una conveniencia para que sea fcil para los programas acceder a su directorio de procesos. /proc/stat: Varias estadsticas acerca del sistema, tales como el nmero de fallos de pgina que han tenido lugar desde el arranque del sistema. /proc/uptime: Indica el tiempo en segundos que el sistema lleva funcionando. /proc/versin: Indica la versin del ncleo

Gestin de procesos en sistemas operativos GNU/Linux


Luz Ayda Daz Martha Ramos M.

3. COMANDOS PROCESOS
PS

PARA

LA

MANIPULACIN

DE

El comando ps es el que permite informar sobre el estado de los procesos. ps esta basado en el sistema de archivos /proc, es decir, lee directamente la informacin de los archivos que se encuentran en este directorio. Tiene una gran cantidad de opciones, incluso estas opciones varan dependiendo del estilo en que se use el comando. Estas variaciones sobre el uso de psson las siguientes: Estilo UNIX, donde las opciones van precedidas por un guin Estilo BSD, donde las opciones no llevan guin Estilo GNU, donde se utilizan nombres de opciones largas y van precedidas por doble guin Sea cual sea el estilo utilizado, dependiendo de las opciones indicadas, varias columnas se mostrarn en el listado de procesos que resulte, estas columnas pueden ser entre muchas otras, las siguientes (y principales): p o PID P o PPID U o UID t o TT o TTY T o TIME c o CMD RSS SZ o SIZE Process ID, nmero nico o de identificacin del proceso. Parent Process ID, padre del proceso User ID, usuario propietario del proceso Terminal asociada al proceso, si no hay terminal aparece entonces un '?' Tiempo de uso de cpu acumulado por el proceso El nombre del programa o camndo que inici el proceso Resident Sise, tamao de la parte residente en memoria en kilobytes Tamao virtual de la imagen del proceso

Gestin de procesos en sistemas operativos GNU/Linux


Luz Ayda Daz Martha Ramos M.

NI

C o PCPU STIME S o STAT


Nice, valor nice (prioridad) del proceso, un nmero positivo significa menos tiempo de procesador y negativo ms tiempo (-19 a 19) Porcentaje de cpu utilizado por el proceso Starting Time, hora de inicio del proceso Status del proceso, estos pueden ser los siguientes R runnable, en ejecucin, corriendo o ejecutndose S sleeping, proceso en ejecucin pero sin actividad por el momento, o esperando por algn evento para continuar T sTopped, proceso detenido totalmente, pero puede ser reiniciado Z zombie, difunto, proceso que por alguna razn no termin de manera correcta, no debe haber procesos zombies D uninterruptible sleep, son procesos generalmente asociados a acciones de IO del sistema X dead, muerto, proceso terminado pero que sigue apareciendo, igual que los Z no deberan verse nunca

Las opciones completas de ps las encuentras en las pginas del manual (man ps), o escribiendo en la terminal ps L, y para ver un resumen de sus opciones ms comunes usa ps --help: #> ps --help ********* simple selection ********* ********* selection by list ********* -A all processes -C by command name -N negate selection -G by real group ID (supports names) -a all w/ tty except session leaders -U by real user ID (supports names)

Gestin de procesos en sistemas operativos GNU/Linux


Luz Ayda Daz Martha Ramos M.

-d all except session leaders -g by session OR by effective group name -e all processes -p by process ID T all processes on this terminal -s processes in the sessions given a all w/ tty, including other users -t by tty g OBSOLETE -- DO NOT USE -u by effective user ID (supports names) r only running processes U processes for specified users x processes w/o controlling ttys t by tty *********** output format ********** *********** long options *********** -o,o user-defined -f full --Group --User --pid --cols --ppid -j,j job control s signal --group --user --sid --rows --info -O,O preloaded -o v virtual memory --cumulative --format --deselect -l,l long u user-oriented --sort --tty --forest --version -F extra full X registers --heading --no-heading --context ********* misc options ********* -V,V show version L list format codes f ASCII art forest -m,m,-L,-T,H threads S children in sum -y change -l format -M,Z security data c true command name -c scheduling class -w,w wide output n numeric WCHAN,UID -H process hierarchy A continuacin algunos cuantos ejemplos de ps con la salida recortada. ># ps -e PID TTY 1? 2? 3? 4? (-e muestra todos los procesos) TIME CMD 00:00:01 init 00:00:00 kthreadd 00:00:00 migration/0 00:00:00 ksoftirqd/0

#> ps -ef (-f muestra opciones completas) UID PID PPID C STIME TTY TIME CMD root 1 0 0 10:12 ? 00:00:01 init [5] root 2 0 0 10:12 ? 00:00:00 [kthreadd] ... root 6130 5662 0 10:24 pts/0 00:00:00 su root 6134 6130 0 10:24 pts/0 00:00:00 -bash sergon 6343 5604 0 10:28 ? 00:00:00 kio_file [kdeinit] file /home/sergon/tmp/ksocket-sergon/kl root 6475 6134 0 10:38 pts/0 00:00:00 ps -ef

Gestin de procesos en sistemas operativos GNU/Linux


Luz Ayda Daz Martha Ramos M.

#> ps -eF (-F muestra opciones completas extra) UID PID PPID C SZ RSS PSR STIME TTY TIME CMD root 1 0 0 412 556 1 16:59 ? 00:00:01 init [5] root 2 0 0 0 0 1 16:59 ? 00:00:00 [kthreadd] sergon 8326 8321 0 902 1272 0 17:07 ? 00:00:00 /bin/sh /usr/lib/firefox-2.0.0.8/run-mozilla.sh /usr/lib/f sergon 8331 8326 4 53856 62604 0 17:07 ? 00:00:50 /usr/lib/firefox2.0.0.8/mozilla-firefox-bin sergon 8570 7726 2 15211 37948 0 17:17 ? 00:00:10 quanta #> ps ax PID TTY 1? 2? 3? 4? (formato BSD sin guin, a muestra todos, x sin mostrar tty) STAT TIME COMMAND Ss 0:01 init [5] S< 0:00 [kthreadd] S< 0:00 [migration/0] S< 0:00 [ksoftirqd/0]

#> ps aux (formato BSD sin guin, u muestra usuarios y dems columnas) USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 1648 556 ? Ss 16:59 0:01 init [5] root 2 0.0 0.0 0 0? S< 16:59 0:00 [kthreadd] root 3 0.0 0.0 0 0? S< 16:59 0:00 [migration/0] root 4 0.0 0.0 0 0? S< 16:59 0:00 [ksoftirqd/0] root 5 0.0 0.0 0 0? S< 16:59 0:00 [migration/1] #> ps -eo user,pid,tty (-o output personalizado, se indican los campos separados por coma, ver ps --help o ps L) USER PID TT root 1? root 2? sergon 8570 tty 1 root 8876 pts/1 #> ps -eH (muestra rbol de procesos) #> ps axf (lo mismo en formato BSD) #> ps -ec (el comando que se esta ejecutando, sin la ruta, solo el nombre real)

Gestin de procesos en sistemas operativos GNU/Linux


Luz Ayda Daz Martha Ramos M.

#> ps -el (muestra formato largo de varias columnas, muy prctico) #> ps L (No muestra procesos, lista todos los cdigos de formatos)

PSTREE
Muestra los procesos en forma de rbol, pstree --help te da las opciones ms comunes. Recomiendo uses lo uses con la opcin -A y -G para que te un rbol con lneas con lneas estilo ASCII y de terminal VT100 respectivamente, puedes aadir tambin -u para mostrar entre parntesis al usuario propietario del proceso: #> pstree -AGu init---acpid |-atd(daemon) |-automount----2*[{automount}] |-avahi-daemon(avahi) |-beagled(sergon)----7*[{beagled}] |-beagled-helper(sergio)----3*[{beagled-helper}] |-compiz(sergon)----kde-window-deco |-console-kit-dae----61*[{console-kit-dae}] |-crond |-dbus-daemon(messagebus) |-dbus-daemon(sergio) |-dbus-launch(sergio) |-dcopserver(sergio) |-dhclient |-gam_server(sergio) |-gconfd-2(sergio) |-hald(haldaemon)----hald-runner(root)----hald-addon-acpi(haldaemon) | |-hald-addon-cpuf | |-hald-addon-inpu | |-hald-addon-stor |-httpd---8*[httpd(apache)] |-2*[ifplugd] |-ipw3945d |-kaccess(sergio) ...

Gestin de procesos en sistemas operativos GNU/Linux


Luz Ayda Daz Martha Ramos M.

KILL
El comando kill, que literalmente quiere decir matar, sirve no solo para matar o terminar procesos sino principalmente para enviar seales (signals) a los procesos. La seal por default (cuando no se indica ninguna es terminar o matar el proceso), y la sintaxis es kill PID, siendo PID el nmero de ID del proceso. Asi por ejemplo, es posible enviar una seal de STOP al proceso y se detendr su ejecucin, despus cuando se quiera mandar una seal de CONTinuar y el proceso continuara desde donde se quedo. #> kill -l (lista todas las posibles seales que pueden enviarse a un proceso) 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX La lista previa presenta una lista de todas las posibles seales que pueden mandarse a un proceso y estas pueden ser invocadas a travs del nmero de la seal o de su cdigo, por ejemplo: #> kill -9 11428 (termina, mata un proceso completamente) #> kill -SIGKILL 11428 (Lo mismo que lo anterior) Las seales ms comunes son la 19 y 20 que detienen momentneamente la ejecucin de un proceso o programa, 18 la continua, 1 que es la seal de hang up que obliga al proceso a releer sus archivos de configuracin estando en ejecucin y 9 que termina rotundamente un proceso.

Gestin de procesos en sistemas operativos GNU/Linux


Luz Ayda Daz Martha Ramos M.

KILLALL
El comando killall, que funciona de manera similar a kill, pero con la diferencia de en vez de indicar un PID se indica el nombre del programa, lo que afectar a todos los procesos que tengan ese nombre. Asi por ejemplo si se tienen varias instancias ejecutndose del proxy server squid, con killall squid eliminar todos los procesos que se esten ejecutando con el nombre 'squid' #> killall -l (lista de posibles seales) #> killall -HUP httpd (manda una seal de "colgar", detenerse releer sus archivos de configuracin y reiniciar) #> killall -KILL -i squid (manda seal de matar a todos los procesos squid pero pide confirmacin en cada uno)

NICE
Permite cambiar la prioridad de un proceso. Por defecto, todos los procesos tienen una prioridad igual ante el CPU que es de 0. Con nice es posible iniciar un programa (proceso) con la prioridad modificada, ms alta o ms baja segn se requiera. Las prioridades van de -20 (la ms alta) a 19 la ms baja. Solo root o el superusuario puede establecer prioridades negativas que son ms altas. Con la opcin -l de ps es posible observar la columna NI que muestra este valor. #> nice (sin argumentos, devuelve la prioridad por defecto ) 0 #> nice -n -5 comando (inicia comando con una prioridad de -5, lo que le da ms tiempo de cpu)

RENICE
Asi como nice establece la prioridad de un proceso cuando se incia su ejecucin, renicepermite alterarla en tiempo real, sin necesidad de detener el proceso. #> nice -n -5 yes (se ejecuta el programa 'yes' con prioridad -5) (dejar ejecutando 'yes' y en otra terminal se analiza con 'ps') #> ps -el F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 12826 12208 4 75 -5 - 708 write_ pts/2 00:00:00 yes

Gestin de procesos en sistemas operativos GNU/Linux


Luz Ayda Daz Martha Ramos M.

#> renice 7 12826 12826: prioridad antigua -5, nueva prioridad 7 #> ps -el F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 4 S 0 12826 12208 4 87 7 - 708 write_ pts/2 00:00:15 yes (obsrvese el campo NI en el primer caso en -5, y en el segundo con renice qued en 7, en tiempo real) nohup y & Cuando se trata ejecutar procesos en background (segundo plano) se utiliza el comandonohup o el operador & . Aunque realizan una funcin similar, no son lo mismo. Si se desea liberar la terminal de un programa que se espera durar un tiempo considerable ejecutndose, entonces se usa . Esto funciona mejor cuando el resultado del proceso no es necesario mandarlo a la salida estndar (stdin), como por ejemplo cuando se ejecuta un respaldo o se abre un programa Xwindow desde la consola o terminal. Para lograr esto basta con escribir el comando en cuestin y agregar al final el smbolo & (ampersand). $> yes > /dev/null & $> tar czf respaldo /documentos/* > /dev/null/ & $> konqueror & (con estos ejemplos se ejecuta el comando y se libera la terminal regresando el prompt) Sin embargo lo anterior produce que el padre del proceso PPID que se invoc sea el proceso de la terminal en si, por lo que si cerramos la terminal o salimos de la sesin tambin se terminaran los procesos hijos que dependan de la terminal, no muy conveniente si se desea que el proceso continu en ejecucin. Para solucionar lo anterior, entonces se usa el comando nohup que permite al igual que '&' mandar el proceso y background y que este quede inmune a los hangups (de ah su nombre nohup) que es cuando se cuelga o termina la terminal o consola de la cual se ejecut el proceso. $> nohup yes > /dev/null & $> nohup czf respaldo /documentos/* > /dev/null/ $> nohup konqueror Asi se evita que el proceso se "cuelgue" al cerrar la consola.

Gestin de procesos en sistemas operativos GNU/Linux


Luz Ayda Daz Martha Ramos M.

JOBS
Si por ejemplo, se tiene acceso a una nica consola o terminal, y se tienen que ejecutar varios comandos que se ejecutarn por largo tiempo, se pueden entonces como ya se vi previamente con nohup y el operador '&' mandarlos a segundo plano o background con el objeto de liberar la terminal y continuar trabajando. Pero si solo se est en una terminal esto puede ser difcil de controlar, y para eos tenemos el comando jobs que lista los procesos actuales en ejecucin: #> yes > /dev/null & [1] 26837 #> ls -laR > archivos.txt & [2] 26854 #> jobs [1]- Running yes >/dev/null & [2]+ Running ls --color=tty -laR / >archivos.txt & En el ejemplo previo, se ejecut el comando yes y se envi a background (&) y el sistema devolvi [1] 26837, indicando asi que se trata del trabajo o de la tarea [1] y su PID, lo mismo con la segunda tarea que es un listado recursivo desde la raz y enviado a un archivo, esta es la segunda tarea. Con los comandos fg (foreground) y bg background es posible manipular procesos que esten suspendidos temporalmente, ya sea porque se les envi una seal de suspensin como STOP (20) o porque al estarlos ejecutando se presion ctrl-Z. Entonces para reanudar su ejecucin en primer plano usaramos fg: #> jobs [1]- Stopped [2]+ Stopped #> fg %1 #> jobs [1]+ Running [2]- Stopped yes >/dev/null & ls --color=tty -laR / >archivos.txt &

yes >/dev/null & ls --color=tty -laR / >archivos.txt &

Obsrvese como al traer en primer plano al 'job' o proceso 1, este adquiri el smbolo [+] que indica que esta al frente. Lo mismo sera con bg que volvera a reinicar el proceso pero en segundo plano. Y tambin es posible

Gestin de procesos en sistemas operativos GNU/Linux


Luz Ayda Daz Martha Ramos M.

matar los procesos con kill indicando el nmero que devuelve jobs: kill %1, terminara con el proceso en jobs nmero 1.

TOP
Una utilera muy usada y muy til para el monitoreo en tiempo real del estado de los procesos y de otras variantes del sistema es el programa llamado top, se ejecuta desde la lnea de comandos, es interactivo y por defecto se actualiza cada 3 segundos. $> top top - 13:07:30 up 8 days, 6:44, 4 users, load average: 0.11, 0.08, 0.08 Tasks: 133 total, 1 running, 131 sleeping, 0 stopped, 1 zombie Cpu(s): 0.0%us, 0.2%sy, 0.0%ni, 99.7%id, 0.0%wa, 0.0%hi, 0.2%si, 0.0%st Mem: 497356k total, 472352k used, 25004k free, 21500k buffers Swap: 1156640k total, 257088k used, 899552k free, 60420k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 26156 sergon 15 0 2160 1016 784 R 1 0.2 0:00.93 top 1 root 15 0 2012 616 584 S 0 0.1 0:00.98 init 2 root RT 0 0 0 0 S 0 0.0 0:00.29 migration/0 3 root 34 19 0 0 0 S 0 0.0 0:00.00 ksoftirqd/0 4 root RT 0 0 0 0 S 0 0.0 0:00.00 watchdog/0 5 root RT 0 0 0 0 S 0 0.0 0:00.38 migration/1 ... Estando adentro de la apliacin, presionando 'h' muestra una ayuda de los posibles comandos que permiten configurar top, por ejemplo, al presionar 's' pregunta por el tiempo en segundos de actualizacin, etc.

Estas son algunas de las herramientas, las ms importantes y usadas, para adminsitrar procesos, hay varios programas en ambientes grficos que en una sola pantalla permiten todo lo anterior y ms, y en lnea de comandos te recomiendo htop, que es como un top pero en esteroides.

Gestin de procesos en sistemas operativos GNU/Linux


Luz Ayda Daz Martha Ramos M.

4. EJEMPLOS DE LA APLICACIN DE COMANDOS PARA LA MANIPULACIN DE PROCESOS

Gestin de procesos en sistemas operativos GNU/Linux


Luz Ayda Daz Martha Ramos M.

CONCLUSIN
A partir de la investigacin realizada, podemos establecer que la Gestin de Procesos en los sistemas operativos GNU/Linux basados en Debian, es realizada por el kernel o ncleo central del sistema operativo. Cada proceso tiene un nmero identificador del mismo, un nmero identificador del proceso padre, un estado, dueo y una prioridad. Adems de ello, existen ciertos comandos para manipular los procesos de ejecucin del sistema operativo. Entre ellos encontramos ps, pstree, kill, killall, nice, renice, job, top, comandos que permiten al usuario interactuar con la mquina en la administracin de dichos procesos, permitiendo la rentabilidad de la memoria de CPU y la agilizacin del funcionamiento de la misma.

Gestin de procesos en sistemas operativos GNU/Linux


Luz Ayda Daz Martha Ramos M.

BIBLIOGRAFA RELACIONADA

http://personal.us.es/echevarria/documentos/ManualLinuxZonaSiete.pdf
LINUX. Principios bsicos del uso del sistema. Ediciones ENI. Serie: Recursos Informticos. Gua oficial de instalacin de Debian 6.0. en el sitio web oficial de Debian. Sitio web oficial de GNU: http://www.gnu.org/home.es.html. http://sopa.dis.ulpgc.es/iidso/leclinux/procesos/planificador/LEC6_CHEDULER.pdf

You might also like