12.170 cursos gratis
8.770.004 alumnos
Facebook Twitter YouTube
Busca cursos gratis:

Sistema operativo Linux

Autor: José González
Curso:
9,50/10 (4 opiniones) |3937 alumnos|Fecha publicaciýn: 20/04/2009
Envýa un mensaje al autor

Capýtulo 20:

 Procesos y redes. Conceptos básicos

Processos y Redes Conceptos básicos

Siempre que se activa un utilitario o un programa en Linux, el sistema inicia un proceso. Un proceso, es un programa en ejecución. Un mismo programa puede iniciar varios procesos. Linux, como sistema multitarea, permite la ejecución de varios procesos e simultaneo. El kernel de Linux se encarga de escalonar los recursos para la ejecución de varios procesos en el sistema. En caso que exista hardware multiprocesado (varios cpu's), es posible tener procesos siendo ejecutados en paralelo. Un proceso puede iniciar varios procesos hijos, siendo el proceso inicial denominado de proceso padre (líder).

Para todo y cualquier programa que el usuario inicia a partir del prompt, es iniciado un proceso, hijo de ese shell. Linux crea una jerarquía de procesos donde existen procesos dependientes del proceso líder.
La unión de varios procesos es definida como sesión.

Comandos Relacionados

Existen varios comandos relacionados con los procesos; a seguir se encuentram los mas importantes: ps; kill, killall.

ps

Es utilizado para visualizar procesos del sistema. El comando presenta procesos del usuario, de otros usuarios y del sistema. Si el comando es usado sin parámetros mostrará solamente los procesos del usuario en la sesión actual, en formato resumido, como se puede ver a seguir:

[alumno@maquina alumno]$ ps
PID TTY TIME CMD
20771 pts/0 00:00:00 sh
20773 pts/0 00:00:00 bash
20776 pts/0 00:00:00 ps

Si es necesario, es posible tener más informaciones sobre los procesos en ejecución, utilizando el parámetro [u], como se observa a seguir:

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
Alumno 20805 0.0 0.6 1688 828 pts/0 S 16:22 0:00 /bin/sh
/home/alumno/figura
alumno 20807 0.0 0.8 1788 1064 pts/0 S 16:22 0:00 bash
alumno 20821 0.0 0.6 2512 828 pts/0 R 16:25 0:00 ps u

Donde consta por columna, usuario, número del proceso, % cpu usado, % de memoria usada, tamaño total del programa (VSZ), memoria usada por programa (RSS), terminal, status, fecha de inicio (start), tiempo de cpu y comando.

Kill

Por el nombre mismo se puede pensar que el comando kill mata aplicaciones. El objetivo del comando es, enviar señales a los procesos.

Existen varias señales que pueden ser enviados a una aplicación; entre ellos se destacan los siguientes:

* SIGKILL
* SIGTSTP
* SIGHUP

El formato básico del comando es indicado a seguir:

kill [-señal ] pid
kill - up pid -> actualiza los procesos sin matar

Donde -señal, es la señal a ser enviado al proceso; puede estar en formato texto o numérico. La correlación entre señales y números puede ser vista ejecutando el siguiente comando:

[alumno@maquina alumno)$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGIOT 7) SIGBUS 8) SIGFPE 9) SIGKILL
10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 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

El pid es el número de proceso para el cual se desea enviar la señal y ese número puede ser conseguido, por ejemplo, usando el siguiente comando:

[alumno@maquina alumno]$ ps x
PID TTY STAT TIME COMMAND
20576 ttyl S 0:00 -bash
20595 ttyl S 0:00 sh /usr/X11R6/bin/startx
20602 ttyl S 0:00 xinit /etc/X11/xinit/xinitrc -- :0
-auth /home/alumno/.Xauthority
20606 ttyl S 0:03 /usr/X11R6/bin/wmaker
20619 ttyl SN 0:03 wmsetbg -helper -d
20620 ttyl S 0:00 wmclock
20621 ttyl S 3:16 wmmon -s
20622 ttyl S 0:00 mount.app
20623 ttyl S 0:00 wmtime
20624 ttyl S 0:01 /usr/bin/licq
20765 ttyl S 1:04 emacs -geometry 167x54 -font 9xl5 *.sgml
20860 ttyl S 0:00 xterm -font l0x20 -geometry 100x35+0+0 -e

Todas las señales pasan por el kernel. Cuando es enviado cualquier señal para un proceso esta señal va para el kernel que lo envía al proceso de destino. La señal SIGKILL, cuando es enviado para un proceso, termina su ejecución. En realidad, lo que sucede es que el kernel, cuando recibe la señal, no le repasa al proceso, y si, elimina el proceso directamente. La señal SIGTSTP suspende la ejecución de un programa.

Cuando existe un programa en ejecución en foreground y se desea suspender su procesamiento basta enviar esta señal; se puede usar las teclas Ctrl-z. Por ejemplo, está siendo ejecutado el comando vi; si dentro del programa se digita esa secuencia de teclas, la aplicación suspenderá su procesamiento. Si es utilizado el comando sin el parametro -pid, será enviado al proceso la señal SIGTERM o termínate, posiblemente terminando su ejecución. Otra señal muy usada es el SIGHUP, cuyo objetivo es hacer con que el proceso lea nuevamente sus archivos de configuración, como si estuviesen inicializados. Esto permite que se altere la configuración del sistema o de servicios del sistema sin que ellos tengan que ser desactivados. Entre los servicios que utilizan estas señales podemos destacar el inetd, httpd y otros. Por ejemplo, para eliminar una aplicación basta utilizar la siguiente secuencia de comandos:

[alumno@maquina alumno]$ ps
PID TTY TIME CMD
20959 pts/0 00:00:00 sh
20961 pts/0 00:00:00 bash
20966 pts/0 00:00:00 vi
20967 pts/0 00:00:00 ps

[alumno@maquina alumno]$ kill -9 20966 [1]+ Killed

Primero se debe descubrir el PID de la aplicación y a seguir utilizarlo en el comando kill.

Killall

Envía la señal a los procesos usando el nombre y no el número. Si existiesen varios procesos con el mismo nombre todos ellos recibirán la señal. El formato básico de l comando es mostrado a seguir:

killall [-señal] [nombre]

Por ejemplo, para eliminar una aplicación se utiliza la siguiente secuencia de comandos: [alumno@maquina alumno]$ killall -9 vi [1]+ Killed vi

Como se puede observar, es mucho mías práctico; sin embargo se corre el riesgo de eliminar todos los procesos que estén siendo ejecutados con el comando vi.

Nuestras novedades en tu e-mail

Escribe tu e-mail:



MailxMail tratarý tus datos para realizar acciones promocionales (výa email y/o telýfono).
En la polýtica de privacidad conocerýs tu derechos y gestionarýs la baja.

Cursos similares a Sistema operativo Linux



  • Výdeo
  • Alumnos
  • Valoraciýn
  • Cursos
1. Linux - Unix. Sistema operativo multiusuario (primera parte)
En este curso de Sistemas Operativos Linux - Unix aprenderás acerca de la historia... [08/10/08]
8.070  
2. Linux - Unix. Sistema operativo multiusuario (segunda parte)
En esta segunda parte de nuestro curso de sistemas operativos Unix-Linux... [08/10/08]
4.045  
3. Linux - Unix. Sistema operativo multiusuario (tercera parte)
En este tercera parte de nuestro curso de sistemas operativos Unix-Linux aprenderás... [08/10/08]
3.216  

ýQuý es mailxmail.com?|ISSN: 1699-4914|Ayuda
Publicidad|Condiciones legales de mailxmail