You are on page 1of 12

Competencia

El alumno aprende a familiarizarse con el administrador de procesos del sistema operativo Linux, a
travs de la creacin de nuevos procesos, ejecucin y terminacin
Introduccin
La ms simple definicin de un proceso podra ser que es una instancia de un programa en
ejecucin (corriendo). A los procesos frecuentemente se les refiere como tareas. El
contexto de un programa que esta en ejecucin es lo que se llama un proceso. Este
contexto puede ser mas procesos hijos que se hayan generado del principal (proceso
padre), los recursos del sistema que este consumiendo, sus atributos de seguridad (tales
como su propietario y permisos de archivos asi como roles y dems de SELinux), etc.
Linux, como se sabe, es un sistema operativo multitarea y multiusuario. Esto quiere decir
que mltiples procesos pueden operar simultneamente sin interferirse unos con los
otros. Cada proceso tiene la "ilusin" que es el nico proceso en el sistema y que tiene
acceso exclusivo a todos los servicios del sistema operativo.
Programas y procesos son entidades distintas. En un sistema operativo multitarea,
mltiples instancias de un programa pueden ejecutarse sumultneamente. Cada instancia
es un proceso separado. Por ejemplo, si cinco usuarios desde equipos diferentes, ejecutan
el mismo programa al mismo tiempo, habra cinco instancias del mismo programa, es
decir, cinco procesos distintos.
Cada proceso que se inicia es referenciado con un nmero de identificacin nico
conocido como Process ID PID, que es siempre un entero positivo. Prcticamente todo lo
que se est ejecutando en el sistema en cualquier momento es un proceso, incluyendo el
shell, el ambiente grfico que puede tener mltiples procesos, etc. La excepcin a lo
anterior es el kernel en si, el cual es un conjunto de rutinas que residen en memoria y a los
cuales los procesos a travs de llamadas al sistema pueden tener acceso.

ps
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 Process ID, nmero nico o de identificacin del proceso.
P o PPID Parent Process ID, padre del proceso
U o UID User ID, usuario propietario del proceso
t o TT o
TTY
Terminal asociada al proceso, si no hay terminal aparece entonces un '?'
T o TIME Tiempo de uso de cpu acumulado por el proceso
c o CMD El nombre del programa o camndo que inici el proceso
RSS Resident Sise, tamao de la parte residente en memoria en kilobytes
SZ o SIZE Tamao virtual de la imagen del proceso
NI
Nice, valor nice (prioridad) del proceso, un nmero positivo significa menos
tiempo de procesador y negativo ms tiempo (-19 a 19)
C o PCPU Porcentaje de cpu utilizado por el proceso
STIME Starting Time, hora de inicio del proceso
S o STAT

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

Desarrollo
-Comandos
ps



ps fea


getpid()


getppid()

wait()


-Ejemplos
Programa 1








Programa 2



Programas
-Cdigo










-Pantallas de ejecucin


























-Diagramas de Flujo


























Anlisis Crtico
-Lara Rangel David Esau
Me parece que la prctica, a pesar de no ser una prctica tan amplia, explica de manera
adecuada como es que se maneja el administrador de procesos del sistema operativo
Linux, me parece importante recalcar el hecho de que en clase habamos revisado que la
instruccin fork() solamente se poda utilizar en el sistema operativo Linux, por tanto
creo que la prctica primordialmente deja bien claro cmo es que se utiliza esta
instruccin ya que es lo que ms utilizamos para realizar las aplicaciones que se nos
indican en dicha prctica.
Creo yo que cada uno de los ejemplos explica de manera fcil y concisa como es que se
hace la creacin y como es que se compara para ver si es un proceso padre o si es un
proceso hijo, podemos ver que la instruccin fork() te arroja un 1 o un 0, lo cual te
permite identificar cul es el hijo, en este caso con un 0, y cul es el padre, cuando la
sentencia arroje un 1.
Me parece interesante recalcar el uso de la instruccin ps, ya que esta misma, como se ve
en una parte del desarrollo, ya que esta misma nos muestra cules son los procesos que
se estn utilizando en nuestro sistema operativo, por tanto podemos ver cmo es que
est funcionando nuestro administrador de procesos (en este caso en el sistema operativo
Linux), y as poder visualizar cada uno de los procesos.
En determinado momento, tambin cuando se hace la implementacin, se pueden ver
varios aspectos importantes que la prctica solo seala como una investigacin, poniendo
como ejemplo el primer programa, en la prctica se indica que se investigue el comando
getpid() y el comando wait(), los cuales en determinado momento dentro de este
programa nos ayudan demasiado para su realizacin, tambin se incluye la instruccin
getppid() la cual ms que nada nos sirve para la realizacin del siguiente programa que
est sealado en dicha prctica.
Con el prrafo anterior quiero dar a entender que la prctica es muy buena ya que te da
todas las herramientas para la realizacin de las aplicaciones que posteriormente se
piden, tomando en cuenta de que se tienen que investigar para poder entenderlas mejor,
y tambin que por medio de estas herramientas y de la propia investigacin, es un poco
ms sencillo ya que se logra captar de mejor manera la idea que se quiere con dichas
instrucciones.
Por ltimo me gustara recalcar que la prctica es muy simple y de mucha ayuda para las
personas que no estn tan familiarizadas con los procesos en el sistema operativo Linux,
por tanto, creo que se explica de manera detallada y simple cada una de las aplicaciones
que se pueden hacer con este administrador de procesos.

Observaciones
-Lara Rangel David Esau
Realmente en esta prctica no tuvimos muchas dificultades, ya que en el saln de clases
habamos analizado cul era el funcionamiento de los procesos, y como es que podamos
hacer para programar dichas herramientas. El primer problema que tuvimos al realizar
esta prctica fue que como no habamos utilizado nunca los procesos, y mucho menos la
instruccin fork(), olvidamos que esta instruccin solamente est dentro del sistema
operativo Linux, por lo tanto nosotros desarrollamos nuestra aplicacin en el sistema
operativo Windows, pero al tratar de compilar nos dimos cuenta de que nos marcaba un
fallo en cuanto a dicha instruccin, as que para solucionarlo lo nico que tuvimos que
hacer fue pasarnos directamente al sistema operativo Linux, y lo compilamos desde la
consola y qued.
Otro de los importantes problemas que surgieron en esta prctica fue que en la primera
aplicacin tuvimos ciertas complicaciones con respecto a los ciclos, ya que nosotros
crebamos el proceso padre dentro del ciclos, por lo cual, como posteriormente nos
pudimos dar cuenta, nuestro programa haca una creacin de 30 padres a la vez, lo cual
generaba que se crearan 30 padres, por ende tenamos 30 veces el resultado que se
deseaba obtener en dicha prctica.
Despus de resolver el problema de esa redundancia, cuando sacamos esa instruccin de
nuestro ciclo, compilamos de manera correcta la aplicacin y la consola no nos marcaba
ningn error, as que procedimos a ejecutar nuestra aplicacin, pero cuando lo
compilamos vimos que en tentativa estaba arrojando los resultados que nosotros
estbamos esperando, el problema fue que cuando lleg a cierto nmero de impresiones
de los id de los procesos, el programa nos empez a marcar una violacin de segmento y
el programa se detena abruptamente, por lo cual nosotros al analizarlo nos dimos cuenta
que una parte que estaba dentro del ciclo estaba marcando ese fallo de segmento y por
ende el programa empez a comportarse de buena manera.
Me gustara recalcar tambin que al no saber las instrucciones getpid(), getppid() y la
instruccin wait(), cuando empezamos a hacer un pequeo prototipo de nuestra
aplicacin, nos bloqueamos un poco ya que no sabamos cmo se manejaban dichas
instrucciones, por lo tanto tuvimos que volver a investigar.
En general, como lo mencion al principio, creo que la prctica no tiene mayor dificultad
ya que est bien explicado como se hace, si acaso lo que podra estar de alguna manera
un poco ms complicado es entender las instrucciones que se utilizan para que la
realizacin de las aplicaciones que se piden sea de algn modo un poco ms sencillas.


Conclusiones
-Lara Rangel David Esau
Como conclusin de esta prctica podramos decir que sirve demasiado para entender
cmo es que trabaja el administrador de procesos de Linux, cul es la complejidad con la
que crea los procesos, y como podemos visualizar por medio de la consola dichos
procesos que est ejecutando el sistema operativo.
Me parece una buen idea recalcar que la prctica ayuda demasiado a aprender cmo es
que se hace uso del administrador de procesos, como podemos ver creo que es
importante recalcar que el investigar cada una de las funciones y operaciones que vamos
a hacer dentro de la prctica y que hemos de ocupar para realizar las diferentes
aplicaciones que se piden dentro de la misma prctica.
Creo yo que cada uno de los ejemplos explica de manera fcil y concisa como es que se
hace la creacin y como es que se compara para ver si es un proceso padre o si es un
proceso hijo, podemos ver que la instruccin fork() te arroja un 1 o un 0, lo cual te
permite identificar cul es el hijo, en este caso con un 0, y cul es el padre, cuando la
sentencia arroje un 1.
Me parece que la prctica, a pesar de no ser una prctica tan amplia, explica de manera
adecuada como es que se maneja el administrador de procesos del sistema operativo
Linux, me parece importante recalcar el hecho de que en clase habamos revisado que la
instruccin fork() solamente se poda utilizar en el sistema operativo Linux, por tanto
creo que la prctica primordialmente deja bien claro cmo es que se utiliza esta
instruccin ya que es lo que ms utilizamos para realizar las aplicaciones que se nos
indican en dicha prctica.
Creo que es importante seguir conociendo todo el potencial del sistema operativo Linux,
ya que si nos damos cuenta, muchas de las utilidades que estamos viendo en este curso
nos lleva a tomar en cuenta en demasa a este sistema operativo, por tanto creo que
debemos aprenderlo.
Como ya lo decamos en clase el administrador de procesos tiene una gran jerarqua entre
los administradores de una computadora, por lo cual, creo que deberamos nosotros de
aprender cmo es que se maneja el administrador de procesos, y por tanto como es que
podemos hacer una creacin de procesos en una cadena determinada.
En general, creo que la prctica no tiene mayor dificultad ya que est bien explicado como
se hace, si acaso lo que podra estar de alguna manera un poco ms complicado es
entender las instrucciones que se utilizan para que la realizacin de las aplicaciones que se
piden sea de algn modo un poco ms sencillas.

Bibliografa
http://www.linuxtotal.com.mx/?cont=info_admon_012
https://www.ibm.com/developerworks/ssa/linux/library/l-lpic1-v3-103-5/
http://cursotecnicoredes2011.files.wordpress.com/2011/04/debian-tema-8-
administracic3b3n-de-procesos-en-linux1.pdf
http://www.ehowenespanol.com/procesos-ejecucion-centos-como_227314/

You might also like