Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Unidad 12
Sistemas Operativos II
Introduccin
Un punto importante a tomar en cuenta cuando se trabaja
con un sistema operativo conocer la cantidad de recursos
que se estn utilizando.
Estos recursos pueden ser por ejemplo capacidad de
procesamiento o memoria, cuyo consumo afecta el
rendimiento del servidor.
Este consumo de recursos es realizado por todos procesos
que se estn ejecutando en el servidor.
En esta unidad describiremos la forma como Linux trata los
procesos y como poder hacer para gestionar y monitorear
el uso de los recursos de procesamiento y memoria.
Sistemas Operativos II
Objetivos
Entender como trabajan los procesos.
Entender la genealoga de procesos en Linux.
Entender el concepto de procesos Demonios.
Entender el concepto de procesos Hurfanos y
Difuntos.
Utilizar herramientas de monitoreo del sistema.
Realizar control de procesos.
Realizar automatizacin de tareas.
Sistemas Operativos II
Agenda
Definicin de Proceso.
Genealoga de Procesos.
Procesos Demonios.
Procesos Hurfanos y Difuntos.
Comando bg, fg y jobs
Herramientas de Monitoreo: ps, free, top,
w, sar
Control de procesos.
Automatizacin de tareas: at y crontab.
Sistemas Operativos II
Procesos
Un proceso es un programa en ejecucin.
Todos los programas que corren bajo Linux son procesos.
Por ejemplo, el Shell de un usuario, como bash, es un
proceso que se ejecuta mientras est conectado al
sistema.
Los procesos pueden ser sncronos o asncronos.
Los procesos sncronos se ejecutan uno despus de
otro, a stos se les llama Proceso en Foreground.
En cambio los procesos asncronos se pueden
ejecutar en simultaneo con otros procesos, stos son
llamados Proceso en Background.
Sistemas Operativos II
Procesos (cont.)
Un PID o process id, es un nmero entero que especifica un proceso o un grupo
de procesos.
Todos los procesos ejecutndose pueden ser terminados utilizando el mandato
kill o bien el mandato killall, excepto por el proceso con PID 1, el cual
corresponde siempre a /sbin/init.
Un Job ID o identificador de trabajo, identifica un trabajo o grupo de trabajos
que se ejecutan en segundo plano (background).
Los trabajos se administran con los comandos bg, fg y jobs.
Los procesos se terminan normalmente con SIGTERM (nmero de seal 15) o
con SIGKILL (nmero de seal 9), utilizando el mandato kill o el mandato
killall.
Sistemas Operativos II
Procesos: PID
Cada proceso es identificado por un ID:
PID: Process Identification
bash
PID
200
Sistemas Operativos II
PPID
1
Kernel
GRUB
Linux
login
init
mingetty
Padre de todos
los procesos
xdm
Sistema X Windows
BIOS
bash
Sistemas Operativos II
Genealoga de Procesos
Un proceso que genera nuevos procesos es llamado
padre.
El nuevo proceso es llamado proceso hijo.
El proceso mingetty es hijo del proceso init.
Muchos procesos son creados por el Shell bash en la
mayora de distribuciones Linux, el cual crea procesos
hijos para ejecutarlos.
init
Proceso
Padre
bash
Proceso
Padre
mingetty
Proceso
Hijo
cat
Proceso
Hijo
Sistemas Operativos II
Genealoga de Procesos
En Linux los procesos se crean mediante una llamada (call)
al sistema, la peticin crea otro proceso: fork.
HIJO
PPID
date
1 PPID
PPID
PID1 PPID
1
300
200
PPID
exec(date) date
1 PPID
PPID
PID1 PPID
1
300
200
Comando ingresado:
# date
PPID
bash
1 PPID
PPID
PID1 PPID
1
200
1
fork( )
PADRE
PPID
bash
1 PPID
PPID
PID1 PPID
1
200
1
wait(hijo)
Sleep
Sistemas Operativos II
PPID
bash
1 PPID
PPID
PID1 PPID
1
200
1
Sleep
exit( )
Procesos Demonios
Son procesos que el sistema inicia para realizar tareas
bsicas en forma peridica.
Sistemas Operativos II
Proceso Init
Es el proceso padre de todos los procesos del sistema.
Permanece en ejecucin mientras funciona el sistema.
Sistemas Operativos II
Comando ps
Muestra el estado de los procesos activos.
Es usado frecuentemente para saber el PID de un
proceso colgado
$ ps -t <terminal>
$ ps -ef
# ps -t tty1
PID
18667
18668
18744
18804
TTY
tty1
tty1
tty1
tty1
TIME
00:00:00
00:00:00
00:00:00
00:00:00
Sistemas Operativos II
CMD
login
bash
su
gunzip
Comando ps
Las opciones ms utilizadas son ps aux, donde:
a: Muestra tambin los procesos iniciados por los otros usuarios;
x: Muestra tambin los procesos sin terminal de control alguna (esto
se aplica a casi todos los servidores);
u: Muestra, para cada proceso, el nombre del usuario que lo inici y la
hora a la cual fue iniciado.
# ps -aux
Nota : RSS -> Resident set size, the non-swapped physical memory that a task has used (in kiloBytes).
VSZ -> Virtual memory usage of entire process. = vm_lib + vm_exe + vm_data + vm_stack
Sistemas Operativos II
Comando free
Muestra la cantidad y uso de la memoria del sistema
# free
total
Mem:
78452
-/+ buffers/cache:
Swap:
204468
used
72360
41620
1812
free shared
6092
64
36832
202656
buffers
17676
cached
13064
Sistemas Operativos II
Sistemas Operativos II
Comando w
Muestra qu estn haciendo los usuarios en el
sistema.
Adems muestra promedio de carga (uptime)
PCPU : Tiempo usado por el proceso actual
JCPU : Tiempo usado por todos los procesos en el
terminal
#w
Sistemas Operativos II
Comando top
# top
Sistemas Operativos II
Nota : Si %idle (desocupado) est cerca de cero, tu CPU est sobrecargada. Si el valor %iowait (espera
por e/s) es grande, tus discos estn sobrecargados.
Sistemas Operativos II
Sistemas Operativos II
Control de Procesos
Procesos en Background : &
Se ingresa el smbolo & despus del comando.
# find / -name tmp > result &
Terminacin de Procesos: kill
# kill -<seal> PID
Ejemplos:
- kill -15 1020
// terminacin condicional
- kill -9 1020
// terminacin incondicional
Sistemas Operativos II
P
a
r
m
e
tro
sd
e
lc
o
m
a
n
d
oa
t
F
e
c
h
a
In
c
re
m
e
n
to
s
H
rs(1
,2d
ig
ito
s
)
M
e
sd
aa
+
nm
in
s
H
rs
:m
in(3
,4d
ig
ito
s
)
D
iad
elas
e
m
a
n
a
+
nh
rs
H
rm
in(3
,4d
ig
ito
s
)
T
o
d
a
y
+
nd
a
y
s
N
o
w
T
o
m
o
rro
w
+
nw
e
e
k
s
N
o
o
n
+
nm
o
n
th
s
M
id
n
ig
h
t
+
ny
e
a
rs
N
e
x
t
Sistemas Operativos II
Sistemas Operativos II
Comando crontab
Ejecuta en forma regular un comando en una fecha
y tiempo determinado.
Los comandos que se van a ejecutar se guardan en
un archivo.
Este archivo consta de seis campos y puede
contener varios comandos.
10
14
minutos
0-59
horas
0-23
da del
mes
1-31
mes
1-12
user01 /bin/script01
da de la
usuario
semana
0-7
0 y 7 = Domingo
comando
El usuario user01 ejecutar /bin/script01 todos los das 4 de cada mes a las
02:10 pm
Sistemas Operativos II
Campos crontab
CAMPO
DESCRIPCION
Minuto
Hora
Da del Mes
Da del mes en que se quiere ejecutar el comando. Por ejemplo se indicara 20,
para ejecutar el comando el da 20 del mes.
Mes
Mes en que el comando se ejecutar, puede ser indicado numricamente (112), o por el nombre del mes en ingls, solo las tres primeras letras.
Da de la
semana
Usuario
Comando
Comando crontab
$ crontab -e
0,15,30,45 *
0
3
minutos
0-59
horas
0-23
$ crontab -l
$ crontab -d
*
*
1-5
2-6
mes
1-12
root
root
da de la usuario
semana
0-6
0=Domingo
Sistemas Operativos II
Si por alguna razn se desea negar el uso de cron a todos los usuarios,
entonces se puede escribir la palabra ALL al inicio de cron.deny y con eso
bastara.
Sistemas Operativos II
Preguntas
1. Cul es el PID del proceso init?
1. Con que comando se muestra el uso de memoria del
sistema?
1. Qu comando nos muestra la cola de tareas programadas
con AT?
1. Cul es la sentencia que ejecuta el script llamado script1
en background?
Sistemas Operativos II
Respuestas
1.
2.
3.
4.
El PID 1.
El comando free.
atq
./script1 &.
Sistemas Operativos II
Bibliografa
Martin, Michel (2001) De windows a linux. Barcelona:
Alfaomega (005.43L/M26)
Schenk, Thomas (2001) Administracin de red Hat
Linux al descubierto. Madrid: Prentice Hall
(005.43L/S3)
Baig Vias, Roger (2006). Sistema operativo
GNU/Linux bsico. Madrid: s.n. (005.43L/B16)
Sistemas Operativos II
Sistemas Operativos II