Vous êtes sur la page 1sur 16

UNIVERSIDAD CATÓLICA

“SANTO TORIBIO DE
MOGROVEJO”

“Facultad de Ingenieria”

INGENIERIA DE SISTEMAS Y COMPUTACION

TRABAJO DE INVESTIGACIÓN

PLANIFICACION DE PROCESOS EN EL SISTEMA OPERATIVO


MANDRIVA - LINUX

Curso:

SISTEMAS OPERATIVOS

Alumno:

Gutiérrez Ubillus, Luis


CHICLAYO, FEBRERO 2009
INTRODUCCION

Mandrake Linux fue creado en 1998 con la meta de hacer de Linux un sistema
operativo más fácil utilizar para las personas. En aquella epoca, Linux era ya
bien conocido como un sistema operativo de gran alcance y estabilidad que
exigió un gran conocimiento técnico y el uso extenso de la “línea de comando”.
Mandrake vio esto como oportunidad de integrar los mejores ambientes
gráficos de escritorio y llegó a ser rápidamente famoso por fijar el estándar en
facilidad de empleo y funcionalidad.

No fue sino hasta 2005, después de la adquisición de la empresa brasileña


Conectiva que la empresa y el producto se denominará "Mandriva"

Mandriva Linux es bastante popular (especialmente en Francia) porque, entre


otras cosas, la facilidad de uso de sus herramientas de instalación y
configuración. por lo tanto, a menudo se recomienda para principiantes.

Originalmente, el nombre de la distribución fue Mandrakelinux. Mandrake era


un nombre familiar tomadas de las tiras cómicas de Mandrake el Mago. Un
mago, muy real para él, también ha llevado el nombre de Mandrake . Este
nombre fue elegido para la distribución, con la intención de ser fácil de usar,
que sería más fácil de configurar un equipo como es tan sencillo como usar
magia.

En cuanto al logotipo, que apenas ha cambiado desde el principio. Se trata de


una estrella con la punta derecha brillante, tres pequeñas chispa, y una curva
azul de abajo. La estrella expresa la facilidad que ofrece Mandriva Linux para
configurar y realizar tareas en un ordenador tan fácilmente como por arte de
magia, ella también se menciona en esta estrella.
CAPITULO I

PLANIFICACION DE PROCESOS EN LINUX – MANDRIVA

Antes de empezar a dar una definicion de la planificacion en Linux debemos


definir que es un proceso:

De acuerdo con TANENBAUM, Andrew (2003), un proceso es una abstraccion


de un programa en ejecucion.

Tambien podemos decir que un proceso es un programa en ejecucion que


puede estar cambiando constantemente en la medida en que el procesador
ejecuta las instrucciones de código

Estado de un Proceso:

Un proceso en Linux puede tener los siguientes estados:

• Running: Preparado para ejecutarce (Activo)

• Waiting: Esperando algo; es como un estado listo que espera la


asignacion de memoria real para competir por el uso del procesador.

• Stopped: Detenido; es como el estado bloqueado que espera por la


ocurrencia de un evento que podria ser una entrada o salida.

• Zombie: Se da cuando un proceso ya termino pero su padre puede


obtener algun provecho de el.

Ya teniendo definido un proceso el paso a seguir será definir que es la


planificacion:

De acuredo con Di Serio, Angela (1998), la planificación consiste en elegir el


proceso mas apropiado y ejecutarlo, y esto implica realizarlo de la manera más
justa o apropiada.
Tipos de Planificacion:

De acuerdo con La Red Martinez (2001), tenemps los siguientes tipos:

• Apropiativa (Multitarea): Es la estrategia de permitir que los procesos


ejecutables seçan suspendidos temporalmente.

• No Apropiativa (Monotarea): Es la estrategia de permitir la ejecucion de


un proceso hasta terminar

Niveles de Planificacion:

De acuerdo con La Red Martinez (2001), tenemps los siguientes tipos:

• De Alto Nivel (SCHEDULER): Se icuoa de elegir los trabajos dentro de


una cola de trabajos que llegan, y colocarlos en una cola de procesos.

• De Nivel Medio: Controla los trabajos que se intercambian hacia fuera y


de regreso; actua cuando el sistema esta sobrecargado.

• De Bajo Nivel (Dispatcher):Da la orden al CPU para ejecutar los


procesos de los trabajos que el planificador de alto nivel a colocado en la
cola de listos.
COMO TRABAJA LINUX (MANDRIVA):

De acuerdo con FLYNN (2001) en Linux se manejan dos tipos de procesos:


Los procesos Normales y Los procesos en Tiempo Real.

Para determinar que politica de planificacion utilizar Linux realiza lo siguiente:

El planificador Linux rastrea la lista de procesos en el estado LISTO y escoge el


proceso que se va a ejecutar mediante criterios predefinidos. El planificador
tiene tres politicas de planificacion; una es para los Procesos Normales y dos
para los Procesos en Tiempo Real. Cada proceso tiene un tipo de proceso
asociado, una prioridad fija y uan prioridad variable. El planificador usa esta
informacion para determinar que politica de planificacion aplicar a los procesos
en la cola de LISTOS. El tipo de proceso puede ser:

 SCHED_FIFO Para procesos en Tiempo Real No Apropiativos

 SCHED_RR Para procesos en Tiempo Real Apropiativos

 SCHED_OTHER Para procesos Normales.

Sched_Other Sched_Fifo Sched_RR


Procesos Normales. Esta sujeto a un planificador Tiene una planificación
fifo, puede dejar el Round Robin con
procesador si otro proceso tiempos iguales para
de tiempo real llega a cada proceso.
solicitarlo.
CAPITULO II

DETALLE DE LO EXPERIMENTADO

Para instalar el Sistema Operativo MANDRIVA se utilizo una maquina virtual


llamada VIRTUAL BOX.

Dentro de la maquina virtual mencionada se le proporciono al Sistema


Operativo ciertas caracteristicas como por ejemplo:

• Memoria: 512 MB.

• Video: 60 MB.

Como el tema que hemos tratado es la Planificacion de procesos;


acontinuacion veremos algunos de los principales comandos que nos ayudaran
a observar las caracteristicas de los procesos.

Trabajando con procesos. El comando ps.

El comando ps proporciona información sobre los procesos que se están


ejecutando en el sistema. Si escribimos en el terminal “ps”, obtendremos como
salida un listado de los procesos lanzados con el usuario actual que aún se
están ejecutando.
Veamos qué significan cada una de las columnas que se muestran cuando
ejecutamos el comando ps.

• La primera columna es el PID o identificador de proceso. Cada proceso


tiene un asociado identificador que es único, es decir que no puede
haber dos procesos con el mismo identificador.
• La segunda columna nos informa del terminal en el que se está
ejecutando el proceso. Si aparece una interrogación (?), el proceso no
tiene asociada ninguna terminal.
• La tercera columna indica el tiempo total que ha estado ejecutándose el
proceso.
• La cuarta columna es el nombre del proceso.

En la imagen anterior observamos que hay dos procesos corriendo: el bash,


que es el shell o intérprete de comandos, y el comando ps.

El comando ps admite algunos parámetros. El parámetro -e devuelve un listado


de todos los procesos que se están ejecutando. El parámetro -f devuelve un
listado extendido. En este último caso veremos en pantalla el PPID del proceso
(identificador del proceso padre) y la hora en la que se ejecutó el proceso
(STIME).
Los parámetros pueden aparecer juntos en el mismo comando, es decir que
podríamos llamar al comando ps de la siguiente forma: “ps -ef”. De esta
manera obtendríamos un listado extendido de todos los procesos que se están
ejecutando en el sistema.

El parámetro -u informa de los procesos lanzado por un determinado usuario.


De tal forma que si escribimos “ps -u alex”, aparecerá un listado de los
procesos que está ejecutando el usuario alex.

El comando pstree

El comando pstree visualiza, en forma de árbol, todos los procesos del sistema.
Así podemos ver las relaciones que existen entre los procesos.
El comando top

El comando top devuelve un listado de los procesos de forma parecida a como


lo hace ps, con la diferencia que la información mostrada se va actualizando
periódicamente lo que nos permite ver la evolución del estado de los procesos.
Además, en la parte superior muestra información adicional, como el espacio
en memoria ocupado por los procesos, el espacio ocupado por la memoria de
intercambio o swap, el número total de tareas o procesos que se están
ejecutando, el número de usuarios o el porcentaje de uso del procesador.

Mientras el comando top está en marcha podremos cambiar fácilmente la


prioridad de los procesos. A modo de resumen cada proceso en Linux tiene un
nivel de prioridad que va de -20 (prioridad más alta) hasta 19 (prioridad más
baja). Cuanto mayor sea el nivel de prioridad, más lentamente se ejecutará el
proceso. ¿Y cómo podemos cambiar con top la prioridad de un proceso? Muy
sencillo. Con el comando top en marcha pulsamos la tecla ‘r’. A continuación
introducimos el PID del proceso al que vamos a cambiar la prioridad, y acto
seguido el nivel de prioridad que vamos a asignar. Debemos tener en cuenta
una consideración, solamente el superusuario ‘root’ puede asignar valores
negativos a la prioridad de un proceso.
Procesos en primer plano y segundo plano

Los procesos pueden ejecutarse en primer plano o segundo plano. El proceso


que está en primer plano es aquel con el se interactúa. Si ejecutamos, por
ejemplo, el comando ls -l, se mostrará por pantalla el resultado, y hasta que no
acabe de mostrarse el listado no podremos ejecutar ningún otro comando. En
este caso el terminal permanece bloqueado, sin poder introducir ningún otro
comando, hasta que el proceso en primer plano termine.

Pondremos un proceso en segundo plano añadiendo el símbolo ampersand (&)


al final del comando. Cuando se ejecuta un proceso en segundo plano, se
permite al usuario iniciar y trabajar con otros procesos. Ejemplo:

$ sleep 10 &

El comando sleep simplemente espera el número de segundos que le pasemos


como parámetro.

En la imagen anterior se observa que al ejecutar un proceso en segundo plano


se devuelve un número entre corchetes seguido de otro número. El número
entre corchetes indica el número de procesos que se tienen ejecutándose en
segundo plano. El segundo número es el PID o identificador del proceso.
Para ver que trabajos se están ejecutando en segundo plano, se usa el
comando jobs.

El signo + seguido del número de trabajo entre corchetes indica el trabajo más
reciente que se está ejecutando. El signo menos indica el siguiente trabajo más
reciente.
Pasar procesos en segundo plano a primer plano

Para pasar procesos en segundo plano a primer plano, se utiliza el comando fg,
seguido de %n, donde n es el número de proceso que queremos pasar a
primer plano. Por ejemplo, fg %2 pondría en primer plano la tarea número 2. En
la siguiente imagen se ejecuta sleep 90 en segundo plano, y después pasa a
primer plano con el comando fg.
Pasar procesos en primer plano a segundo plano

El comando bg permite pasar procesos desde primer plano a segundo plano.


Para pasar un proceso que se encuentra en primer plano a segundo plano,
debemos suspenderlo primero utilizando la combinación de teclas Crtl+Z.
Cuando se pulsa esa combinación de teclas, el proceso en ejecución se para y
no vuelve a ejecutarse hasta que se pasa a primer o segundo plano. Con bg
pasaremos el proceso a segundo plano.
Cambiando la prioridad de los procesos

Cada proceso en Linux tiene un nivel de prioridad que oscila entre -20
(prioridad más alta) y 19 (prioridad más baja). Cuanto mayor sea el nivel de
prioridad, más 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 prioridad proceso

Podemos cambiar la prioridad de un proceso con el comando renice. Este


comando admite los siguientes parámetros:

• -g. Establece el nivel de prioridad de los procesos ejecutados por los


miembros del grupo especificado.
• -u. Establece el nivel de prioridad de los procesos ejecutados por los
miembros del usuario especificado.
• -p. Indica el nivel de prioridad para el proceso especificado.

Finalizar procesos

Para finalizar un proceso se utiliza el comando kill, que tiene la siguiente


sintaxis:

kill [parámetro] PID

Si, por ejemplo, queremos eliminar un proceso con PID 17122, tendríamos que
escribir: kill 17122.Puede que en ocasiones el proceso no finalice al emplear el
comando kill sin parámetros. Para matar un proceso asegurándonos de que no
ignorará la petición de finalizar su ejecución se emplea el parámetro -9.

kill -9 17122

Hay un total de 32 señales que se pueden enviar a los procesos. Las más
utilizadas son las siguientes:

• kill -1 (Sighup). Reinicia el proceso.


• kill -9 (SigKill). Mata el proceso.
• kill -15 (SigTerm). Termina el proceso.

Por otra parte, el comando killall nombre_programa finaliza todos los procesos
que estén ejecutando el programa.

Vous aimerez peut-être aussi