Sei sulla pagina 1di 12

Laboratorio de Sistemas Operativos

Pgina: 1

SESIN N 06
MANEJO DE ENLACES A FICHEROS Y CONTROL DE
TAREAS
I
OBJETIVOS

Comprender el significado y la diferencia entre enlaces duros y enlaces simblicos.


Utilizar los comandos relacionados al manejo de enlaces.
Comprender el manejo de procesos en sistemas GNU/Linux.
Aprender la utilizacin de las herramientas ms comunes para el manejo de
procesos.

II
TEMAS A TRATAR
Manejo de enlaces de archivos
o Enlaces duros y simblicos
Tareas y procesos
o Primer plano y segundo plano
o Eliminacin de tareas
o Parada y relanzamiento de tareas
o Prioridad de los procesos
o Comando relacionados

III
MARCO TEORICO
Manejando enlaces de archivos
Los enlaces le permiten dar a un nico archivo mltiples nombres. Los archivos son
identificados en el sistema por su nmero de inodo, el cual es el nico identificador del
archivo para el sistema de archivos. Un directorio es una lista de nmeros de inodo con sus
correspondientes nombres de archivo. Cada nombre de archivo en un directorio es un enlace
a un inodo particular.

Enlaces duros (Hard links)


El comando "ln" es usado para crear mltiples enlaces para un archivo.
Por ejemplo, supongamos que tiene un archivo "foo" en un directorio. Usando "ls -i",
veremos el nmero de inodo para el archivo.
# ls -i foo
22192 foo

Karim Guevara Puente de la Vega

Laboratorio de Sistemas Operativos

Pgina: 2

Aqu, el archivo foo tiene el nmero de inodo 22192 (en su caso podra ser otro vaor) en
el sistema de archivos. Podemos crear otro enlace a foo, llamado bar:
# ln foo bar

Con ls -i veremos que los dos archivos tienen el mismo inodo.


# ls -i foo bar
22192 bar 22192 foo

Ahora, accediendo a foo o a bar accederemos al mismo archivo. Si hace cambios en foo,
estos cambios tambin sern efectuados en bar. Para todos los efectos, foo y bar son el
mismo archivo.
Estos enlaces son conocidos como enlaces duros (hard links) porque directamente crean
el enlace al inodo.
Nota: solo podemos crear enlaces duros entre archivos del mismo sistema de archivos.
Los enlaces simblicos, como se ver ms adelante, no tienen esta restriccin.
Cuando borra un archivo con rm, est solamente borrando un enlace a un archivo. Si
usa el comando
# rm foo

La orden ls -i mostrar los nmeros de inodo. Solo el enlace de nombre foo es borrado;
bar todava existir. Un archivo es borrado definitivamente del sistema cuando no
quedan enlaces a l.
Usualmente, los archivos tienen un nico enlace, por lo que el uso de rm los borra. Pero
si el archivo tiene mltiples enlaces, el uso de rm solo borrara un nico enlace; para
borrar el archivo, deber borrar todos los enlaces del archivo.
La orden ls -l muestra el nmero de enlaces a un archivo (entre otra informacin).
# ls -l foo bar
-rw-r--r-- 2 root root 12 Aug 5 16:51 bar
-rw-r--r-- 2 root root 12 Aug 5 16:50 foo

La segunda columna en el listado, "2", especifica el nmero de enlaces al archivo. Un


directorio no es ms que un archivo que contiene informacin sobre la translacin
enlace a inodo. Tambin, cada directorio tiene al menos dos enlaces duros en l: "." (un
enlace apuntando a s mismo) y ".." (un enlace apuntando al directorio padre). En el
directorio raz (/), el enlace ".." simplemente apunta a /.

Enlaces simblicos
Los enlaces simblicos son otro tipo de enlaces, diferente al enlace duro. Un enlace
simblico permite dar a un archivo el nombre de otro, pero no enlaza el archivo con un
inodo. Dentro del enlace simblico se guarda la ruta donde ubicar al archivo destino.
La orden "ln -s" crea un enlace simblico a un archivo. Por ejemplo, si usamos la orden
Karim Guevara Puente de la Vega

Laboratorio de Sistemas Operativos

Pgina: 3

# ln -s foo bar

crearemos un enlace simblico bar apuntando al archivo foo. Si usamos ls -i, veremos
que los dos archivos tienen inodos diferentes (los valores podran ser diferentes a los
mostrados aqu).
# ls -i foo bar
22195 bar 22192 foo

De cualquier modo, usando ls -l vemos que el archivo bar es un enlace simblico


apuntando a foo.
# ls -l foo bar
lrwxrwxrwx 1 root root 3 Aug 5 16:51 bar -> foo
-rw-r--r-- 1 root root 12 Aug 5 16:50 foo

Los bits de permisos en un enlace simblico no se usan (siempre aparecen como


rwxrwxrwx). En su lugar, los permisos del enlace simblico son determinados por los
permisos del archivo "apuntado" por el enlace (en nuestro ejemplo, el archivo foo).
Funcionalmente, los enlaces duros y simblicos son similares, pero hay algunas
diferencias. Por una parte, se puede crear un enlace simblico a un archivo que no
existe; lo mismo no es cierto para enlaces duros. Los enlaces simblicos son procesados
por el ncleo de forma diferente a los enlaces duros, lo cual es solo una diferencia
tcnica, pero a veces importante. Los enlaces simblicos son de ayuda puesto que
identifican al archivo al que apuntan; con enlaces duros no hay forma fcil de saber que
archivo esta enlazado al mismo inodo.
Los enlaces se usan en muchas partes del sistema Linux. Los enlaces simblicos son
especialmente importantes para el sistema de libreras compartidas en /lib.
La operacin 'rm' sobre un fichero simblico no acta sobre el fichero apuntado sino
sobre el propio enlace simblico destruyndolo.

Tareas y procesos
Control de Tareas es una utilidad incluida en muchos shells, que permite el control de
multitud de comandos o tareas al momento. Antes de seguir, deberemos hablar un poco
sobre los procesos.
Cada vez que se ejecuta un programa, usted lanza lo que se conoce como proceso, que
es simplemente el nombre que se le da a un programa cuando se est ejecutando. El
comando ps visualiza la lista de procesos que se estn ejecutando actualmente, por
ejemplo:
/home/usuario# ps
PID TTY STAT TIME COMMAND
24 3 S 0:03 (bash)
161 3 R 0:00 ps
Karim Guevara Puente de la Vega

Laboratorio de Sistemas Operativos

Pgina: 4

La columna PID representa el identificador de proceso. La ltima columna


COMMAND, es el nombre del proceso que se est ejecutando. Ahora solo estamos
viendo los procesos que est ejecutando usuario. Vemos que hay dos procesos, bash
(Que es el shell o intrprete de comandos que usa usuario), y el propio comando ps. El
bash ejecut ps cuando usuario tecleo el comando.
Cuando ps termina de ejecutarse (despus de mostrar la tabla de procesos), el control
retorna al proceso bash, que muestra el prompt, indicando que est listo para recibir
otro comando.
Un proceso que est corriendo se denomina tarea para el shell. Los trminos proceso y
tarea, son intercambiables. Sin embargo, se suele denominar "tarea" a un proceso,
cuando se usa en conjuncin con control de tareas, que es un rasgo del shell que permite
cambiar entre distintas tareas.
Hay muchos ms procesos aparte de estos corriendo en el sistema, para verlos todos,
teclearemos el comando "ps aux".
En muchos casos, los usuarios solo ejecutan un trabajo cada vez, que es el ltimo
comando que teclearon desde el shell. Sin embargo, usando el control de tareas, se
podr ejecutar diferentes tareas al mismo tiempo, cambiando entre cada uno de ellos
conforme se necesite. Cun beneficioso puede llegar a ser esto?. Supongamos que
estamos con un procesador de textos, y de repente necesitamos parar y realizar otra
tarea. Con el control de tareas se podr suspender temporalmente el editor, y volver al
shell para realizar cualquier otra tarea, y luego regresar al editor como si no lo hubiese
dejado nunca. Lo siguiente solo es un ejemplo, hay montones de usos prcticos del
control de tareas.

Primer plano y Segundo plano


Un proceso puede estar en Primer plano o en Segundo plano.
Solo puede haber un proceso en primer plano al mismo tiempo. El proceso que est en
primer plano, es el que interacta con el usuario, recibe entradas de teclado, y enva las
salidas al monitor. (Salvo, por supuesto, que haya redirigido la entrada o la salida. El
proceso en segundo plano, no recibe ninguna seal desde el teclado y por lo general se
ejecutan en silencio sin necesidad de interaccin.
Algunos programas necesitan mucho tiempo para terminar, y no hacen nada interesante
mientras tanto. Compilar programas es una de estas tareas, as como comprimir un
fichero grande. No tiene sentido que se siente y se aburra mientras estos procesos
terminan. En estos casos es mejor lanzarlos en segundo plano, para dejar la
computadora en condiciones de ejecutar otro programa.

Los procesos se pueden suspender.


Un proceso suspendido es aquel que no se est ejecutando actualmente, sino que esta
temporalmente parado. Despus de suspender una tarea, puede indicar a la misma que
contine, en primer plano o en segundo, segn necesite. Retomar una tarea suspendida
no cambia en nada el estado de la misma, la tarea continuara ejecutndose justo donde
se dej.

Karim Guevara Puente de la Vega

Laboratorio de Sistemas Operativos

Pgina: 5

Suspender un trabajo no es lo mismo que interrumpirlo.


Cuando usted interrumpe un proceso (generalmente con la pulsacin de CTRLC), el
proceso muere, y deja de estar en memoria y utilizar recursos del ordenador. Una vez
eliminado, el proceso no puede continuar ejecutndose, y deber ser lanzado otra vez
para volver a realizar sus tareas.
Tambin se puede dar el caso de que algunos programas capturan la interrupcin, de
modo que pulsando CTRLC no se para inmediatamente. Esto se hace para permitir al
programa realizar operaciones necesarias de limpieza antes de terminar. De hecho,
algunos programas simplemente no se dejan matar por ninguna interrupcin.

Envo a segundo plano y eliminacin de procesos


Empecemos con un ejemplo sencillo. El comando yes es un comando aparentemente
intil que enva una serie interminable de yes a la salida estndar. (Realmente es muy
til. Si se utiliza un pipe para unir la salida de yes con otro comando que haga preguntas
del tipo si/no, la serie de yes confirmar todas las preguntas.) Pruebe con esto:
/home/usuario# yes
yyyy

La serie de yes continuar hasta el infinito, a no ser que usted la elimine, pulsando la
tecla de interrupcin, generalmente CTRLC. Tambin puede deshacerse de esta serie
de yes redirigiendo la salida estndar de yes hacia /dev/null, que como recordar es
una especie de "agujero negro" o papelera para los datos. Todo lo que usted enve all,
desaparecer.
/home/usuario# yes > /dev/null

Ahora va mucho mejor, el terminal no se ensucia, pero el prompt de la shell no retorna.


Esto es porque yes sigue ejecutndose y enviando esos intiles yes a /dev/null. Para
recuperarlo, pulse la tecla de interrupcin.
Supongamos ahora que queremos dejar que el comando yes siga ejecutndose, y volver
al mismo tiempo a la shell para trabajar en otras cosas. Para ello enviaremos a yes a
segundo plano, lo que nos permitir ejecutarlo, pero sin necesidad de interaccin. Una
forma de mandar procesos a segundo plano es aadiendo un carcter "&" al final de
cada comando.
/home/usuario# yes > /dev/null &
[1] 164
/home/usuario#

Como podr ver, ha regresado al shell. Pero qu es eso de "[1] 164"?, Se est
ejecutando realmente el comando yes?
"[1]" representa el nmero de tarea del proceso yes. El shell asigna un nmero a cada
tarea que se est ejecutando. Como yes es el nico comando que se est ejecutando, se
le asigna el nmero de tarea 1. El nmero "164" es el nmero de identificacin del
Karim Guevara Puente de la Vega

Laboratorio de Sistemas Operativos

Pgina: 6

proceso, o PID, que es el nmero que el sistema le asigna al proceso. Ambos nmeros
pueden usarse para referirse a la tarea como veremos despus.
Ahora usted tiene el proceso yes corriendo en segundo plano, y enviando
constantemente la seal y hacia el dispositivo /dev/null. Para chequear el estado del
proceso, utilice el comando interno de la shell "jobs":
/home/usuario# jobs
[1]+ Running yes >/dev/null &
/home/usuario$

Tambin puede usar el comando ps, como mostramos antes, para comprobar el estado
de la tarea.

Para eliminar una tarea, utilice el comando "kill"


Este comando toma como argumento un nmero de tarea o un nmero de ID de un
proceso. Esta era la tarea 1, as que usando el comando:
/home/usuario$ kill %1 Matar la tarea.

Cuando se identifica la tarea con el nmero de tarea, se debe preceder el nmero con el
carcter de porcentaje (%"). Ahora que ya hemos matado la tarea, podemos usar el
comando jobs de nuevo para comprobarlo:
/home/usuario# jobs
[1]+ Terminated yes >/dev/null
/home/usuario$

La tarea esta, en efecto, muerta, y si usa el comando jobs de nuevo, no mostrar nada.
Tambin podr matar la tarea usando el nmero de ID de proceso (PID), el cual se
muestra conjuntamente con el ID de tarea cuando arranca la misma. En nuestro ejemplo
el ID de proceso es 164, as que el comando:
/home/usuario$ kill 164 es equivalente a /home/usuario$ kill %1

Parada y relanzamiento de tareas


Hay otra manera de poner una tarea en segundo plano. Usted puede lanzarlo como un
proceso normal (en primer plano), pararlo, y despus relanzarlo en segundo plano.
Primero, lance el proceso yes en primer plano como lo hara normalmente:
/home/usuario$ yes > /dev/null

De nuevo, dado que yes corre en primer plano, no debe retornar el prompt de la shell.
Ahora, en vez de interrumpir la tarea con CTRLC, suspenderemos la tarea. El
suspender una tarea no la mata: solamente la detiene temporalmente hasta que se desee
retomarla. Para hacerlo debemos pulsar la tecla de suspender, que suele ser CTRLZ.

Karim Guevara Puente de la Vega

Laboratorio de Sistemas Operativos

Pgina: 7

/home/usuario$ yes > /dev/null


CTRLZ
[1]+ Stopped yes >/dev/null
/home/usuario$

Mientras el proceso est suspendido, simplemente no se est ejecutando.


No gasta tiempo de CPU en la tarea. Sin embargo, se puede retomar el proceso de nuevo
como si nada hubiera pasado. Continuar ejecutndose donde se dej.
Para relanzar la tarea en primer plano, usamos el comando "fg" (del ingles
"foreground").
/home/usuario$ fg
yes >/dev/null

El shell muestra el nombre del comando de nuevo, de forma que tenga conocimiento de
que tarea es la que ha puesto en primer plano. Pare la tarea de nuevo, con CTRLZ.
Esta vez utilice el comando "bg" para poner la tarea en segundo plano. Esto har que el
comando siga ejecutndose igual que si lo hubiese hecho desde el principio con "&"
como en la seccin anterior.
/home/usuario$ bg
[1]+ yes >/dev/null &
/home/usuario$

Y tenemos de nuevo el prompt. El comando "jobs" debera decirnos que "yes" se est
ejecutando, y podemos matar la tarea con "kill" tal y como lo hicimos antes.
Cmo podemos parar la tarea de nuevo? Si pulsa CTRLZ no funcionar, ya que el
proceso est en segundo plano. La respuesta es poner el proceso en primer plano de
nuevo, con el comando fg, y entonces pararlo. Como puede observar, podr usar fg
tanto con tareas detenidas, como con las que estn corriendo en segundo plano.
Hay una gran diferencia entre una tarea que se encuentra en segundo plano, y una que se
encuentra detenida. Una tarea detenida es una tarea que no se est ejecutando, es decir,
que no usa tiempo de CPU, y que no est haciendo ningn trabajo (la tarea an ocupa un
lugar en memoria, aunque puede ser volcada a disco). Una tarea en segundo plano, se
est ejecutando, y usando memoria, a la vez que completando alguna accin mientras
usted hace otro trabajo. Sin embargo, una tarea en segundo plano puede intentar mostrar
texto en su terminal, lo que puede resultar molesto si est intentando hacer otra cosa.
Por ejemplo, si us el comando:
/home/usuario$ yes &

sin redirigir stdout a /dev/null, una cadena de yes se mostraran en su monitor, sin
modo alguno de interrumpirlo (no puede hacer uso de CTRLC para interrumpir tareas
en segundo plano). Para poder parar esas interminables yes, tendra que usar el
comando fg para pasar la tarea a primer plano, y entonces usar |_ctrlC_| para matarla.

Karim Guevara Puente de la Vega

Laboratorio de Sistemas Operativos

Pgina: 8

Otra observacin: Normalmente, los comandos "fg" y "bg" actan sobre el ltimo
proceso parado (indicado por un "+" junto al nmero de tarea cuando usa el comando
jobs). Si usted tiene varios procesos corriendo a la vez, podr mandar a primer o
segundo plano una tarea especfica indicando el ID de tarea como argumento de fg o bg,
como en:
/home/usuario$ fg %2 (para la tarea de primer plano nmero 2), o
/home/usuario$ bg %3 (para la tarea de segundo plano nmero 3).

No se pueden usar los ID de proceso con fg o bg. Adems de esto, si usa el nmero de
tarea por s solo, como:
/home/usuario$ %2 es equivalente a /home/usuario$ fg %2

Recordemos que el uso de control de tareas es una utilidad del shell. Los comandos fg,
bg y Jobs son internos del shell. Si por algn motivo utilizamos una shell que no soporta
control de tareas, no dispondremos de estos comandos.

Combinaciones de teclas utilizadas


CtrlC : Enva una seal de interrupcin al programa actual en ejecucin, el cual
generalmente responde con la accin de terminar la propia ejecucin.
CtrlZ : Suspende al programa actual en ejecucin.

Prioridad de los procesos


La prioridad de proceso, se utiliza para decidir la cantidad de tiempo que el proceso
podr utilizar el procesador, por intervalo de tiempo. Paso a explicarlo, el/los
procesadores son compartidos por varios procesos (los procesos van alternndose en el
uso del o de los procesadores) dando la sensacin al usuario que todas las aplicaciones,
tareas, procesos se ejecutan a la vez, pues bien la prioridad le dice al sistema que
procesos pueden utilizar mas tiempo de procesador y que procesos pasan a un segundo
lugar. Esto puede llegar a ocasionar que la ejecucin de algn/os proceso/s no llegue/n a
ejecutarse nunca, ya que van siendo desplazados en la cola de procesos hacia el final por
otros procesos con una prioridad mayor.
Todos los procesos en Linux tiene un nivel de prioridad que oscila entre -20 (prioridad
ms alta) y 19 (prioridad ms baja). Cuanto mayor sea el nivel de prioridad, ms
lentamente se ejecutar el proceso. Solamente el superusuario root puede asignar
valores negativos a la prioridad de un proceso.
Para asignar determinada prioridad a un proceso en concreto se utiliza el comando nice.
nice -n<PRIORIDAD> COMANDO

Por ejemplo, si quisiramos ejecutar un proceso con la mayor prioridad disponible (en
este caso el script prueba.pl) haramos lo siguiente:
# nice -n-20 ./prueba.pl

Karim Guevara Puente de la Vega

Laboratorio de Sistemas Operativos

Pgina: 9

Nota: es necesario ser superusuario para poder utilizar el comando nice


Ejecutando el comando ps observaremos como efectivamente la prioridad ha sido
asignada correctamente:
# ps al
F
4

UID PID PPID PRI NI VSZ


0 4204 3985 0 -20 1872

RSS WCHAN STAT TTY


TIME COMMAND
504 n_tty_ S<+ pts/0 0:00 /bin/sh ./prueba.pl

Si en cambio quisiramos que tuviera la mnima prioridad pues haramos todo lo


contrario:
# nice -n20 ./prueba.pl

Si ejecutamos el comando nice sin parmetros nos indicar el valor asignado


actualmente para nice:
# nice
0

La prioridad de un proceso puede ser modificada sin necesidad de volverlo a lanzar,


esto se logra por medio del comando renice.
renice: utiliza los parmetros de la misma forma que nice
Consideraciones
Cuando se inicia un programa con nice sin argumentos este comienza con una
prioridad de 10.
Tanto nice como renice nos permiten cambiar la prioridad de programas o
procesos sin interferir en la ejecucin del programa o proceso.
Si queremos cambiar la prioridad a un proceso, deberemos utilizar el pid de
dicho proceso.
Podemos cambiar la prioridad de varios procesos a la vez. Por ejemplo:
renice prioridad pids -u usuarios

Podemos utilizar y combinar cambios de prioridad para los procesos


independientes con su pid, usuarios y grupos.
Cualquier usuario puede utilizarlos para decrementar la prioridad a los procesos
sobre los que tenga permiso

Otros comandos relacionados


top: muestra los procesos que ms recursos del sistema utilizan. Se actualiza
peridicamente.

pstree: muestra los procesos mediante un rbol, mostrando las relaciones padrehijo.
Karim Guevara Puente de la Vega

Laboratorio de Sistemas Operativos

Pgina:10

skill / killall / pkill: Igual que kill pero para un grupo de procesos.
fuser: Identifica qu procesos (PID) utilizan un archivo determinado.
pgrep: listado selectivo de procesos, basado en los nombres de los mismos y en otros
tipos de atributos.

time: muestra los tiempos de ejecucin de un procesos. Real : tiempo real gastado
(duracin real), user: tiempo CPU de usuario, sys: tiemepo CPU consumido como
proceso de kernel

IV
ACTIVIDADES
01. Crear un archivo de texto llamado ej0 que contenga su NOMBRE y APELLIDOS.
02. Crear un par de enlaces duros con ej0 llamados hard1 y hard2.
03. Crear un enlace simblico a ej0 llamado sym1
04. Crear un directorio dir1 y crear un enlace llamado dir2.
05. Hacer un ls -l para ver los enlaces creados.
~$
~$
~$
~$
~$

Nota: En el grfico, los enlaces duros se simbolizan con lneas con terminacin en crculo. Los
enlaces simblicos se grafican con lneas terminadas en flecha.

Los enlaces rgidos no muestran nada particular listados con 'ls -l' pero los enlaces
simblicos vienen acompaados de una flecha que apunta a otro nombre de fichero.
Hay una columna de nmeros a continuacin de los permisos. Se trata de una columna
que indica el nmero de enlaces rgidos que estn asociados a un mismo fichero.
En el caso de 'ej0', 'hard1' y 'hard2' aparece un 3 y est claro porque son enlaces
creados por nosotros pero el directorio 'dir1' tiene un 2. Esto significa que existe otro
Karim Guevara Puente de la Vega

Laboratorio de Sistemas Operativos

Pgina:11

enlace rgido para ese directorio que nosotros no hemos creado. Se ha creado
automticamente al crear 'dir1'. Acurdese que todos los directorios se crean con un par
de entradas que son '.' y '..' El 2 por lo tanto en este caso se debe a la entrada '.' dentro
del propio 'dir1' y si dentro de 'dir1' existieran directorios habra que contabilizar cada
uno de los '..' de los directorios hijos como enlaces rgidos de 'dir1'.
06. Ver el contenido de ej0.
07. Agregar (usando el operador >>) el texto DNI al archivo hard1.
08. Ver nuevamente el contenido de ej0.
~$
~$
~$
La informacin es accesible desde distintos nombres de ficheros pero no son copias sino
que se trata de la misma unidad de informacin.
09. Borrar ej0. Hacer un cat a sym1. Hacer un cat
a hard1.
En el caso de los enlaces rgidos da igual cual es el
enlace o fichero original. Son totalmente
equivalentes y la informacin solo desaparecer del
sistema cuando el ltimo enlace rgido sea
eliminado. La diferencia con el enlace simblico es que acta simplemente accediendo
al nombre del fichero que tiene almacenado en su interior. Por eso en el caso que
acabamos de ver 'sym1' queda apuntando a 'ej0' que es un fichero que ya no existe.
10. Hacer un ls -li
11. Cambiar el nombre de 'hard2' por 'ej0' usando el
comando mv. Con esto el link simblico debera funcionar
nuevamente.
12. Verificar que sym1 es vlido (cat sym1)
13. Mover el enlace simblico 'sym1' a 'dir1' usando el
comando mv.
14. Verificar si funciona sym1 (que est ahora dentro de dir1).
Hay error? Por qu? :
~$
Los enlaces simblicos son relativos si no se especifica la ruta completa del target al
momento de su creacin.
15. Trasladar 'ej0' a 'dir2' y comprobar cmo queda todo y s ./dir1/sym1 es vlido
nuevamente
16. Ahora vamos a crear un symlink con ruta absoluta. Dentro de dir1 creamos un
symlink de nombre "ultimo_symlink", pero esta vez especificando el path
completo del target (/..../dir1/ej0).
Una manera de hacerlo fcil para los casos donde el path completo sea muy largo:
ln -s `pwd`/ej0 ultimo_symlink
Karim Guevara Puente de la Vega

Laboratorio de Sistemas Operativos

Pgina:12

~$

17. Verificar que ultimo_symlink funcione correctamente y luego moverlo a otro


directorio. El symlink debera seguir apuntando correctamente a su target.
18. Ejecutar en la siguiente secuencia:
$ bash
$ yes > /dev/null &
$ yes > /dev/null &
$ bash
$ ping host_valido >/dev/null &
$ ping otro_host_valido >/dev/null &
Utilizar el comando pstree para ver el rbol de procesos generado.
19. Cambiar de consola y matar todas las tareas relacionadas con la consola anterior
(utilizar algn comando para eliminar grupos de procesos).
~$
20. Ejecutar varios procesos yes >/dev/null & y varios ping host>/dev/null & .
Eliminar todos los procesos yes. Verificar lo realizado y luego eliminar todos los
procesos ping.
~$
21. Leer la pgina de manual del "ls". Suspender el proceso.
Leer la pgina de manual del "cat". Suspender el proceso.
Qu otros procesos se han disparado? De qu proceso son hijos?

22. Retomar el proceso "man ls" en primer plano y terminarlo normalmente


~$
23. Ejecutar un procesos yes >/dev/null & y un ping host>/dev/null & . Cuanto
porcentaje de cpu consume cada uno? es constante?

24. Matar todos los procesos que han quedado "perdidos" antes de cerrar las sesiones.

Karim Guevara Puente de la Vega

Potrebbero piacerti anche