0% encontró este documento útil (0 votos)
28 vistas47 páginas

Administración de Procesos Del Sistema

El documento aborda la administración de procesos del sistema operativo, incluyendo definiciones de procesos, tipos, estados, y la estructura jerárquica de estos. Se discuten también los hilos de ejecución, transiciones de estado, prioridades, y la gestión del planificador. Además, se presentan diferentes algoritmos de planificación y su funcionamiento en la asignación de recursos del procesador.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
28 vistas47 páginas

Administración de Procesos Del Sistema

El documento aborda la administración de procesos del sistema operativo, incluyendo definiciones de procesos, tipos, estados, y la estructura jerárquica de estos. Se discuten también los hilos de ejecución, transiciones de estado, prioridades, y la gestión del planificador. Además, se presentan diferentes algoritmos de planificación y su funcionamiento en la asignación de recursos del procesador.
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UT2 Administración de procesos del sistema

Administración de
procesos del sistema

ASIR Administración de Sistemas Operativos 1


UT2 Administración de procesos del sistema

Índice de contenido

1 Procesos. Tipos. Estados. Estructura................................................................................................3


2 Hilos de ejecución............................................................................................................................6
3 Transiciones de estados...................................................................................................................7
4 Prioridades.......................................................................................................................................9
5 Identificación de los Procesos del Sistema.....................................................................................15
6 Gestión de los procesos del sistema. Línea de orden. Entorno gráfico..........................................16
7 Secuencia de arranque del sistema. Demonios..............................................................................32
8 Niveles de ejecución del Sistema...................................................................................................40
9 Interrupciones. Excepciones...........................................................................................................46

ASIR Administración de Sistemas Operativos 2


UT2 Administración de procesos del sistema

1. Procesos. Tipos. Estados. Estructura

Procesos
Un proceso es un programa en ejecución. Tiene un espacio de direcciones y un hilo de control.
Los procesos son gestionados por el sistema operativo y están formados principalmente por:
• Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.
• Su estado de ejecución en un momento dado, esto es, los valores de los registros de la
unidad central de procesamiento para dicho programa o hilo.
• Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos o espacios

Esta definición varía ligeramente en el caso de sistemas operativos multihilo o multithread,


donde un proceso consta de uno o más hilos o thread, la memoria de trabajo compartida por
todos los hilos y la información de planificación. Cada hilo consta de instrucciones y estado de
ejecución.

El proceso nulo (o la tarea ociosa):


• El proceso nulo se ejecuta cuando el procesador no tiene ningún proceso que ejecutar

• El proceso nulo ejecuta un bucle infinito que no realiza ninguna operación útil, de esta
manera, la ejecución del planificador es más rápida al eliminar la necesidad de comprobar
si la cola de listos está vacía o no.

• En sistemas Unix suele tener PID=0

• EL objetivo es entretener al procesador cuando no hay ninguna otra tarea.

ASIR Administración de Sistemas Operativos 3


UT2 Administración de procesos del sistema

Entorno del proceso


Consiste en un conjunto de variables que se le pasan al proceso en el momento de su creación.
Está formado por una tabla NOMBRE-VALOR que se incluye en la pila del proceso.
Cada fila de esa tabla especifica el NOMBRE de la variable y el VALOR su valor . Se establece:
• Por defecto
• Mediante mandatos del shell (export)
• Mediante API del SO (putenv, getenv )
Ejemplo de entorno de un proceso en Unix:
$env
LOGNAME=castano
SHELL=/bin/bash
TERM=vt100
HOME=/users/icc/castano
PATH=/usr/local/bin:/bin:/usr/bin:/users/castano/bin

Tipos
Los tipos de procesos son:
• De tiempo real: son aquellos en el que el tiempo de respuesta es crítico para que no
superen un tiempo límite.
• De segundo plano: son los que no tienen interacción con el usuario y cuyo tiempo de
respuesta no es crítico.
• Los procesos interactivos: Son los que tienen interacción con el usuario.

Grupos de procesos
Los procesos forman grupos de procesos con alguna característica común:
• Creados por el mismo padre
• Creados a partir de un shell
• Dependientes de un terminal

Se pueden realizar ciertas operaciones sobre un grupo de procesos :


• Matar todos los procesos de un grupo de procesos
• Envío de señales a todos los procesos de un grupo de procesos

ASIR Administración de Sistemas Operativos 4


UT2 Administración de procesos del sistema

Estados
Los tipos de estados son:
• Ejecución: el proceso está en posesión del procesador, se están ejecutando sus
instrucciones
• Listo: el proceso no está es posesión del procesador pero dispone de todos los recursos
necesarios para ejecutarse, tan pronto como el planificador o scheduler lo decida.
• Bloqueado: un proceso bloqueado está esperando a que ocurra un evento y no puede
seguir ejecutando hasta que suceda el evento.

Estados suspendidos:

ASIR Administración de Sistemas Operativos 5


UT2 Administración de procesos del sistema

Estructura
Algunos SO, como Unix, mantienen una estructura jerárquica entre procesos. Un proceso puede
crear otros procesos. De igual forma los nuevos pueden crear otros y así sucesivamente.

ASIR Administración de Sistemas Operativos 6


UT2 Administración de procesos del sistema

2. Hilos de Ejecución
En un sistema multiprocesador, es posible, que los hilos de un mismo proceso se ejecuten de
manera “paralela” como si fuesen procesos independientes en varias CPU.

Todos los hilos tienen el mismo espacio de direcciones y comparten también las mismas variables
globales. Cada hilo puede tener acceso a cada dirección virtual y puede leer, escribir o limpiar de
manera completa la pila de otro hilo.

No existe protección entre los hilos debido a que un proceso siempre, es poseído por un único
usuario, quien supuestamente ha creado varios hilos para que éstos cooperen y no luchen entre sí.

En procesos distintos, que pueden ser de diversos usuarios pueden ser hostiles entre sí.

Además de compartir un espacio de direcciones, todos los hilos comparten el mismo conjunto de
archivos abiertos, procesos hijos, cronómetros, señales, etc. La siguiente tabla muestra los
elementos de proceso y elementos de hilos:

Hilos Procesos

• Contador de programas • Espacio de direcciones


• Pila • Variables globales
• Conjunto de registros • Archivos abiertos
• Hilos hijos • Procesos hijos
• Estado • Cronómetro
• Señales
• Semáforos

ASIR Administración de Sistemas Operativos 7


UT2 Administración de procesos del sistema

3. Transiciones de Estado

Sistema operativo libre


Diagrama de transición entre estados:

ready: pone el proceso en alguna de las colas de procesos listos del planificador. Activa el proceso.

unready: elimina el proceso de las colas de procesos listos. Suspende el proceso.

pick_proc: selecciona el proceso listo a ser ejecutado por la CPU. Planificador.

sched: pone al final de la cola el proceso de usuario en ejecución pues éste ha agotado su
quantum de CPU.

· Bloqueo de un proceso: Descripción

• Espera a que ocurra un • Muestra la etiqueta del volúmen y el número de serie


cierto evento del disco.

• Proceso bloqueado e • Interrumpido por señales o puede desbloquearse


interrumpido • Una interrupción Hardware
• La liberación de un recurso por el cual esperaba
• Una señal

• Proceso bloqueado e • Una interrupción Hardware


ininterrumpible,no • Liberación de un recurso por el que esperaba
acepta señales
• Puede desbloquearlo:

ASIR Administración de Sistemas Operativos 8


UT2 Administración de procesos del sistema

Sistema operativo propietario


Diagrama de transición entre estados de un hilo:

ASIR Administración de Sistemas Operativos 9


UT2 Administración de procesos del sistema

4. Prioridades

Sistema operativo libre


Los procesos son creados y destruidos por el sistema operativo, que también debe hacerse cargo
de la comunicación entre procesos.
Creación de procesos: fork y clone
Existen dos formas de crear procesos:
Fork: el proceso hijo creado es una copia exacta del padre . Al proceso hijo se le facilita una copia
de las variables del proceso padre y de los descriptores de fichero.
Es importante destacar que las variables del proceso hijo son una copia de las del padre, por lo que
modificar una variable en uno de los procesos no se refleja en el otro.
Clone: es mucho más genérica y flexible que el fork, ya que nos permite definir qué van a
compartir los procesos padre e hijo. La tabla resume las diferencias entre las llamadas al sistema
fork y clone.
Las llamadas al sistema fork y clone tienen la misma funcionalidad, pero distintas características:

Fork Clone
El hijo es una copia del padre (salvo el PID y Permite especificar que comparten padre e hijo:
memoria)
• Espacio de direccionamiento
Ambos procesos disponen de las mismas
• Información de control del sistema de
variables, aunque éstas son independientes
archivos (file system)
El hijo hereda los descriptores de fichero del
padre • Descriptores de archivos abiertos.
• Gestores de señales o PID.

El proceso padre, procede a realizar una llamada (exec) al proceso hijo y quedará en estado de
espera (wait), esperando la señal de finalización del proceso hijo.

Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el
proceso padre que los ha creado o ser creados en el mismo espacio de memoria, ésto dependerá
de la forma en que hayan sido invocados (sh, ., &, nohup, ...).

En los SSOO multihilo o multithread se posibilita la división de los procesos en varios hilos o
thread. Pueden ejecutarse de forma “multiproceso” y pueden aprovechar los mismos espacios de
memoria. En contrapartida, diferentes procesos no pueden compartir el mismo espacio de
memoria.

ASIR Administración de Sistemas Operativos 10


UT2 Administración de procesos del sistema

Dos o más procesos pueden cooperar mediante señales de forma que uno obliga a detenerse a los
otros hasta que reciban una señal para continuar.
 Se usa una variable de tipo semáforo para sincronizar los procesos.
 Si un proceso está esperando una señal, se suspende (wait) hasta que la señal se envíe.
 Se mantiene una cola de procesos en espera en el semáforo.
 La forma de elegir los procesos de la cola en espera depende de la política de
planificación seguida por el planificador de tareas.

El Planificador o Scheduler
Gestiona de manera equitativa, que proceso debe ejecutarse en cada momento.
El planificador reparte el tiempo disponible de un microprocesador entre todos los procesos que
están disponibles para su ejecución.
La primera misión de un planificador es expulsar el programa en ejecución cuando decida que es
necesario. Esto se consigue con la ayuda del propio hardware de dos formas distintas:

• Temporizador: cuando expira, se activa a intervalos regulares muy cortos de tiempo,


generalmente cada 250 mili segundos.
• Operación de entrada/salida: solicita ésta operación cuando el programa no puede
continuar. Hasta que termine dicha operación, se puede ejecutar otro programa.

En ambos casos, el control del microprocesador pasa a manos del planificador gracias a que el
hardware genera una interrupción. En este proceso de expulsión, se guarda el estado de ejecución
del proceso.

A continuación, el planificador decide cuál será el siguiente proceso en ejecutarse. Si un proceso


sigue esperando por una operación de entrada/salida no será candidato a ejecutarse hasta que
finalice tal operación.
Los diferentes estados en los que se pueden encontrar los procesos son:

 Nuevo: El proceso se está creando.


 Ejecución: Se están ejecutando instrucciones.
 Espera: El proceso está esperando que ocurra algún evento.
 Listo: El proceso está a la espera de ser asignado a un procesador.
 Terminado: El proceso ha terminado su ejecución.

ASIR Administración de Sistemas Operativos 11


UT2 Administración de procesos del sistema

La selección del proceso sigue alguna política de planificación preestablecida.


Una vez seleccionado un proceso, se procede a ejecutarlo. Para ello, el planificador restaura su
estado de ejecución, previamente salvado, y abandona el uso del microprocesador cediéndoselo a
dicho proceso en unos pocos mili segundos.
Gracias a que el tiempo del microprocesador se reparte entre todos los procesos a intervalos muy
cortos, el ordenador ofrece la sensación de que todos los procesos están ejecutándose a la vez.
Cuando un ordenador tiene varios microprocesadores, este esquema se repite para cada
microprocesador.

Niveles de planificación
Están basados en la frecuencia con la que se realiza cada uno.
En los sistemas operativos de propósito general, existen tres tipos de planificadores:

• Corto plazo: coincide con el descrito anteriormente.


• Medio plazo: relacionado con aquellos procesos que no se encuentran en memoria
principal. Su misión es mover procesos entre memoria principal y disco .
• Largo plazo: es el encargado de introducir nuevos procesos al sistema y de finalizarlos.

ASIR Administración de Sistemas Operativos 12


UT2 Administración de procesos del sistema

Tipos de Algoritmos

Tipos Descripción

• No Apropiativos • Permiten que se ejecute el proceso hasta que acabe su


trabajo FCFS.

• Apropiativos • Asignan un tiempo de ejecución a cada proceso después


del cual se calendariza otro proceso y así
repetidamente, hasta que cada proceso acabe su
trabajo Round Robin.

ASIR Administración de Sistemas Operativos 13


UT2 Administración de procesos del sistema

Tiempos básicos de algoritmos

• Tiempo de espera: el que un proceso permanece en estado de espera

• Tiempo de retorno: el que va desde que se lanza el proceso hasta que finaliza

• Tiempo medio de retorno: Ʃ tiempo de retorno/nº de procesos

Algoritmos de planificación

Nombre Descripción

• FCFS (First Come, First • Algoritmo sencillo pero de menor rendimiento


Served) o FIFO (First
Input, First Output) • El primer proceso que llega se ejecuta y una vez
terminado se ejeuta el siguiente

• Round Robin • De los más complejos y difíciles de implementar.

• Asigna a cada proceso un tiempo equitativo (quantum) y


al terminar, pasa al siguiente proceso de forma circular

• SJF (shortest Job First) • Ejecuta los procesos más cortos primero sin tener en
cuenta el orden de llegada (en caso de empate FIFO)

• Existe riesgo de inanición de los procesos más largos

• SRTF(Shortest Remaining • Añade la expulsión (no expropiativo) al SJF. Expulsa un


Time First) proceso largo en ejecución para meter otro más corto

• Riesgo de muchas expulsines de procesos largos

Situaciones de un proceso que abandona la CPU:

1. Libremente, si la ráfaga de CPU < Quantum.

2. Después de una interrupción, si la ráfaga de CPU > Quantum.

ASIR Administración de Sistemas Operativos 14


UT2 Administración de procesos del sistema

Sistema operativo propietario

Se les denomina hilos. Un hilo es un punto de ejecución de un proceso. Un proceso tendrá


siempre un hilo, en el que corre el propio programa, pero además puede tener más hebras que
entre ellas compartirán recursos, como memoria, archivos, recursos hardware, etc.
Hoy en día existen gran cantidad de programas diseñados en multihilo. De esta forma, si un
programa puede realizar varias cosas, como analizar el registro del equipo, desfragmentar el disco
duro y realizar copias de seguridad, todas ellas se podrán ejecutar a la vez.

En programas convencionales, solamente se podría ejecutar una tras otra, pero no todas a la vez.
La prioridad es el sistema para ordenar la cola de procesos preparados para ejecutar.

La prioridad de un proceso determina la cantidad de ciclos de CPU que consumirá respecto de


otros procesos en ejecución.

Bloque de control del proceso o BCP: Esta estructura de datos, que es única para cada proceso,
identifica el proceso respecto de los demás y sirve para controlar su correcta ejecución.

En SSOO multiproceso, el sistema operativo mantiene listas de bloques de control de procesos


para cada uno de los estados del sistema. El BCP de cada proceso almacena información como:
• Estado actual del proceso. Ejecución, preparado o bloqueado.
• Identificador del proceso. Dependiendo del SO, a cada proceso se le asigna un PID.
• Prioridad del proceso. La asignada por el planificador.
• Ubicación en memoria. Dirección de memoria en la que se carga el proceso.
• Recursos utilizados. Recursos hardware y software para poder ejecutarse.

ASIR Administración de Sistemas Operativos 15


UT2 Administración de procesos del sistema

5. Identificación de los Procesos del Sistema

Tipos Descripción

• PID • Identificador del proceso


• PPID • identificador del proceso padre
• Nice number • Permite al usuario modificar la prioridad de ejecución
de un proceso.
• TTY • Terminal asociado con el proceso
• UID • Atributos de un proceso que indic,a quien es el
propietario actual de ese proceso y en función de ello
podrá hacer ciertas cosas.
• EUID • Identificador del usuario efectivo
• RGID • Identificador del grupo real
• EGID • Identificador del grupo efectivo

ASIR Administración de Sistemas Operativos 16


UT2 Administración de procesos del sistema

6. Gestión de los procesos del sistema. Linea de orden. Entorno


Gráfico.

Sistema operativo libre


Definición: Ordenes o comandos para la gestión de los procesos del sistema.

Orden Descripción

• ps • Permite informar sobre el estado de los procesos.

Opciones

• P o PID • Identifica el número de proceso, que es único.

• P o PPID • El número del proceso padre.


• U o UID • Usuario propietario del proceso.
• T o TT o TTY • Teminal asociado al proceso, si no hay terminal aparece
el carácter "?".
• T o TIME • Tiempo de uso de CPU acumulado por el proceso.
• C o CMD • El nombre del programa o comando que inició el
proceso.
• RSS • Tamaño de la parte residente de la memoria en Kb.
• VSZ o SIZE • Tamaño virtual de la imagen del proceso en Kb.
• PRI • Prioridad del proceso.
• NI • Valor de bondad, a menos valor mayor prioridad.
• WCHAN • Procesos que están esperando o dormidos y también
enumera el evento que espera.
• C o PCPU • Porcentaje de CPU utilizado por el proceso.
• STIME • Hora de inicio del proceso.
• S o STAT • Status del proceso

ASIR Administración de Sistemas Operativos 17


UT2 Administración de procesos del sistema

Orden Descripción

• ps -e • Visualiza información sobre "todos" los procesos del


sistema.
• ps -A • Es idéntico que la opción -e.

• ps -j • Visualiza información sobre el PGID y SID.

• ps -l • Visualiza "mucha" información sobre los procesos.

• ps -x • Muestra procesos que no están controlados por ninguna


terminal.
• ps -f • Visualiza los parámetros con los que se levanto el
proceso.
• ps -a • Muestra también los procesos de otros usuarios.

• ps -N • Niega el efecto de cualquier opción que se haya


especificado.

No obstante si necesitamos conocer el resto de las opciones que nos ofrece este comando
tendremos que poner man ps en el terminal y nos informara de todas las opciones que podemos
usar.

Orden Descripción

• kill • Este comando sirve no sólo para "matar" o terminar


procesos sino principalmente para enviar señales a los
procesos.

ASIR Administración de Sistemas Operativos 18


UT2 Administración de procesos del sistema

Señales

1. SIGHUP 21. SIGTTIN 41. SIGRTMIN+9


2. SIGINT 22. SIGTTOU 42. SIGRTMIN+10
3. SIGQUIT 23. SIGURG 43. SIGRTMIN+11
4. SIGILL 24. SIGXCPU 44. SIGRTMIN+12
5. SIGTRAP 25. SIGXFSZ 45. SIGRTMIN+13
6. SIGABRT 26. SIGVTALRM 46. SIGRTMIN+14
7. SIGBUS 27. SIGPROF 47. SIGRTMIN+15
8. SIGFPE 28. SIGWINCH 48. SIGRTMAX-14
9. SIGKILL 29. SIGIO 49. SIGRTMAX-13
10. SIGUSR1 30. SIGPWR 50. SIGRTMAX-12
11. SIGSEGV 31. SIGSYS 51. SIGRTMAX-11
12. SIGUSR2 32. SIGRTMIN 52. SIGRTMAX-10
13. SIGPIPE 33. SIGRTMIN+1 53. SIGRTMAX-9
14. SIGALRM 34. SIGRTMIN+2 54. SIGRTMAX-8
15. SIGTERM 35. SIGRTMIN+3 55. SIGRTMAX-7
16. SIGSTKFLT 36. SIGRTMIN+4 56. SIGRTMAX-6
17. SIGCHLD 37. SIGRTMIN+5 57. SIGRTMAX-5
18. SIGCONT 38. SIGRTMIN+6 58. SIGRTMAX-4
19. SIGSTOP 39. SIGRTMIN+7 59. SIGRTMAX-3
20. SIGTSTP 40. SIGRTMIN+8 60. SIGRTMAX-2

Ejemplo de uso del comando kill, primero ponemos en el terminal ps –e que nos sirve para ver los
procesos que se están ejecutando en el momento.

ASIR Administración de Sistemas Operativos 19


UT2 Administración de procesos del sistema

Y nos fijamos en el numero que tiene asociado el proceso al que queremos mandar la señal.

En este caso el 2106


Para que el proceso termine tendríamos que poner: kill -9 ó [-SIGKILL] + número de proceso
Importante en este paso tener permisos de administrador ya que de lo contrario el sistema
indicara operación no permitida.

Como vemos al final de la imagen anterior el proceso ha finalizado sin errores.

ASIR Administración de Sistemas Operativos 20


UT2 Administración de procesos del sistema

Las señales más comunes son las SIGSTOP y SIGTSTP que detienen momentáneamente la
ejecución de un proceso, SIGSTOP la continua.

SIGHUP que es la señal de hang up que obliga al proceso a releer sus archivos de configuración
estando en ejecución.

SIGKILL que termina rotundamente un proceso.


Orden Descripción

• killall • Funciona de manera similar a kill, en vez de indicar un


PID se indica el nombre del programa.

Opciones
• Squid • Si hay varias instancias ejecutándose del proxy server
squid, se eliminarán todos los procesos en ejecución.
• Señales • Se puede utilizar para enviar la misma señal a la lista de
procesos especificada.
• -l • Visualiza el listado de las señales.
• HUP httpd • Manda una señal de "colgar", detenerse y releer sus
archivos de configuración y reiniciar al proceso httpd.
• -KILL -i squid • Manda señal de finalizar a todos los procesos squid pero
pidiendo confirmación.

Orden Descripción

• nice • Permite cambiar la prioridad de un proceso. Por defecto,


todos los procesos tienen una prioridad igual ante el
CPU que es de 0.

Opciones
• -l de ps • Muestra la columna NI que contiene la prioridad.
• Usando root • Puede establecer prioridades negativas.
• Sin argumentos • Devuelve la prioridad por defecto.
• -n o -adjustment=N • Agrega el valor especificado a la prioridad actual.
• -n -5 comando • Inicia comando con una prioridad de -5 (0 + -5), lo que le
da más tiempo de CPU.

ASIR Administración de Sistemas Operativos 21


UT2 Administración de procesos del sistema

Orden Descripción

• renice • Así como nice establece la prioridad de un proceso


cuando se inicia su ejecución, renice permite alterarla
en tiempo real, sin necesidad de detener el proceso.

Opciones
• -n -5 yes • Ejecuta el programa 'yes' con prioridad -5. Dejaremos
ejecutando 'yes' y en otro terminal analizaremos las
prioridades del proceso 'yes' en ejecución con ps -e.

Ejemplo renice:

Primero vemos los procesos que tenemos corriendo en tiempo real.


Para ello podemos usar el comando ps -aux.

ASIR Administración de Sistemas Operativos 22


UT2 Administración de procesos del sistema

Elegimos cualquier proceso que queramos priorizar, en este caso vamos a coger el proceso nº 10.
Analizamos las propiedades del proceso elegido con ps - el y el numero de proceso.

Vemos que tiene prioridad 0, con el comando renice aumentamos su prioridad en +5 puntos.

La antigua propiedad era 0, ahora es 5 vamos a comprobarlo ps –el 10.

ASIR Administración de Sistemas Operativos 23


UT2 Administración de procesos del sistema

Comprobamos que la prioridad antes era de 80 y ahora tiene el 85 (ver campo PRI).

Orden Descripción

• nohup • Permite mantener la ejecución de un comando pese a


salir del terminal, ya que hace que se ejecute de forma
independiente a la sesión.

Orden Descripción

• & • Al añadirlo al final de un comando, lo ejecutará en


segundo plano

Ambos comandos están ligados el uno con el otro.

El comando nohup es habitual, por ejemplo, para ejecutar un script que tarde bastante tiempo.
Básicamente, lo que hace es ignorar la señal HUP .

Modo de empleo: nohup ORDEN [ARGUMENTO] o bien: nohup OPCIÓN.

ASIR Administración de Sistemas Operativos 24


UT2 Administración de procesos del sistema

Un ejemplo sencillo sería la ejecución en segundo plano de un script cualquiera, gracias al


comando nohup permitiremos la continuidad de la ejecución.

Por defecto, la salida del comando, que normalmente aparecería en la terminal, será procesada a
un fichero llamado [Link] que aparecerá en la ruta donde nos encontremos al ejecutar el
comando.

Orden Descripción

• Jobs • Listar procesos que se esten ejecutando en segundo


plano o en primer plano. Si la respuesta se devuelve sin
información es que no hay procesos presentes.

• Jobs -l • Informa del identificador del grupo del proceso y el


directorio de trabajo de las operaciones.

• Jobs -n • Muestra sólo los trabajos que se han detenido o cerrado


desde la última notificación.
• Jobs -p • Muestra sólo el identificador del proceso.

Orden Descripción

• top • Herramienta muy usada y muy útil para monitorizar en


tiempo real el estado de los procesos. Se ejecuta desde
la línea de comandos, es interactivo y por defecto se
actualiza cada 3 segundos

ASIR Administración de Sistemas Operativos 25


UT2 Administración de procesos del sistema

Orden Descripción

• trap • Las señales generadas por los procesos o enviadas a


estos por el comando kill, pueden ser capturadas para
que el proceso controle la acción que ha de realizar
cuando reciban estas señales. Para ello, se utiliza la
orden trap. Esta orden debe formar parte de la
ejecución del proceso.
• Sintaxis trap [[ comando] {señal}+]

Sistema operativo propietario

Orden Descripción

ASIR Administración de Sistemas Operativos 26


UT2 Administración de procesos del sistema

• tasklist • Muestra una lista de los procesos que se están


ejecutando en un equipo local o remoto. (Similar al
comando ps)
• Sintaxis: TASKLIST [/S sistema [/U usuario [/P
[contraseña]]]] [/M [módulo] | /SVC | /V] [/FI filtro] [/FO
formato] [/NH]

Orden Descripción

• taskkill • Permite enviar una señal de finalización a los procesos.


(Similar a kill y killall)
• Sintaxis: TASKKILL [/S sistema] [/U usuario [/P
[contraseña]]]] { [/FI filtro] [/PID IdProceso |
/IMNombreImagen] } [/T] [/F]

Orden Descripción

• schtasks • Permite la administración de tareas programadas.


(Permite las acciones de crontab y at)
• Sintaxis: SCHTASKS /parameter [argumentos]

Programar tareas

Programar tareas cada n minutos

schtasks /create /tn tarea1 /tr [Link] /sc minute /mo 20

Notas: /mo valor por defecto 1 /tr si no se pone ruta, se supone que la orden se encuentra en
system32

ASIR Administración de Sistemas Operativos 27


UT2 Administración de procesos del sistema

Programar tareas cada n horas

schtasks /create /sc hourly /mo 5 /sd 03/01/2002 /tn "My App" /tr c:\apps\[Link]

Programar tareas cada n días

schtasks /create /tn "My App" /tr c:\apps\[Link] /sc daily /st 08:00 /ed 31/12/2002

Programar tareas cada n semanas

schtasks /create /tn "My App" /tr c:\apps\[Link] /sc weekly /mo 6 /s Server16 /u Admin01

Programar tareas cada n meses

schtasks /create /tn "My App" /tr [Link] /sc monthly

Programar una tarea una vez

schtasks /create /tn "My App" /tr c:\apps\[Link] /sc once /sd 01/12/2015 /st 00:00

ASIR Administración de Sistemas Operativos 28


UT2 Administración de procesos del sistema

Programar una tarea cuando el sistema esté desocupado

schtasks /create /tn "My App" /tr c:\apps\[Link] /sc onidle /i 10

NOTA: La opción /i indica que la tarea se iniciará siempre y cuando el sistema lleve 10 minutos
desocupado.

Modificar tareas programadas

schtasks /change /tn "Virus Check" /tr C:\[Link]

Nota: Esta orden modifica la tarea Virus Check, cambiando la orden

Lanzar una tarea programada.

schtasks /run /tn "Security Script"

Parar una tarea programada.

schtasks /end /tn "My Notepad" Borrar tareas programadas.

schtasks /delete /tn "Start Mail" schtasks /delete /tn

ASIR Administración de Sistemas Operativos 29


UT2 Administración de procesos del sistema

Consultar tareas programadas.

Schtasks /query

Net start Lista los servicios de la máquina.

Net start servicio Lanza el servicio especificado.


Net stop servicio Para el servicio especificado.

Entorno Gráfico
Sistema operativo libre
Boot Up Manager
En Ubuntu, es posible gestionar los procesos con la herramienta gráfica Boot Up Manager. Para
ello, primero hay que instalarla ejecutando:
apt-get install bup (Ubuntu 14,04)

ASIR Administración de Sistemas Operativos 30


UT2 Administración de procesos del sistema

sysv-rc-config
Esta herramienta también se puede utilizar desde el terminal. Para ello, primero hay que instalarla
ejecutando:
apt-get install sysv-rc-config
A continuación, ejecutar desde el terminal:
sysv-rc-config

Sistema operativo propietario

Comprobamos el administrador de tareas y la pestaña procesos:

ASIR Administración de Sistemas Operativos 31


UT2 Administración de procesos del sistema

7. Secuencia de Arranque del Sistema

Al iniciar el sistema, vemos que muchos servicios son lanzados de forma automática, evitando que
el usuario administrador tenga que hacerlo manualmente en cada inicio, simplificando por lo tanto
su labor.
Veamos como ocurre esta automatización:
– Cuando arrancamos el sistema, tras la comprobación del hardware y la carga del núcleo del
sistema (kernel) en memoria, entra en acción el manejador de eventos init, que podríamos
considerar como el primer proceso del sistema.

– Init ejecuta todos los scripts que correspondan al nivel de arranque deseado. Por ejemplo
cuando arrancamos en modo “rescate”, no se lanzan los servicios de red ni de entorno
gŕafico. (rescue mode se corresponde con el nivel de arranque 1).

– Después de cargar el kernel en memoria, éste ejecuta el proceso init cuyo cometido será
ejecutar los scripts del nivel básico (S), y a continuación, tras comprobar en inittab o en rc-
[Link] el nivel deseado (x), dirigirse a /etc/rcx.d y ahí averiguar mediante los enlaces

ASIR Administración de Sistemas Operativos 32


UT2 Administración de procesos del sistema

En el directorio /etc/init.d se encuentra el script skeleton que es un ejemplo o plantilla de cómo se


debe crear un script manejador de servicios.

ASIR Administración de Sistemas Operativos 33


UT2 Administración de procesos del sistema

Demonios
Los servicios en linux, también conocidos como demonios, son proceso que están ejecutándose en
segundo plano, y en muchas ocasiones, han sido generados automáticamente al iniciar la
máquina.

Servicio: tipo de aplicación que se ejecuta en segundo plano, el servicio puede generar procesos
para su funcionamiento y desde el propio servicio se puede gestionar la aplicación que controla.

Proceso: unidad de actividad que se caracteriza por la ejecución de una secuencia de


instrucciones, varios procesos pueden formar programas, servicios, etc.
Los scripts asociados a estos servicios se encuentran en el directorio /etc/init.d.

Existen varias sintaxis para actuar sobre ellos lanzándolos, parándolos, etc. Algunos sistemas no
admiten todas las sintaxis, por lo que deberemos elegir la o las que nos convengan.

/etc/init.d/servicio {start|stop|restart|reload} : este comando llama dentro de la carpeta "init.d"


al los procesos de un servicio directamente para su control, ya sea para detenerlo, reiniciarlo,
ejecutarlo, etc.

Service "Servicio" "acción" (Service apache2 reload): comando que hace lo mismo que el anterior,
pero esta vez no llama a los procesos sino al servicio en si, para su control.

La distribución Debian 6.05 admite ambas. Las últimas distribuciones basadas en Debian como por
ejemplo Ubuntu 14.04. La sintaxis disponible del comando es:
service "nombre del servicio" "acción a realizar".

Los sistemas operativos libres nos permiten la posibilidad de ejecutar los procesos en un
determinado momento.

También es posible planificar la ejecución de determinados procesos sin necesidad de que el


usuario que planificó dichos procesos esté conectado en el momento de ejecutarse. A
continuación, se pasa a detallar las ordenes y demonios (servicios) que nos permiten realizar estas
tareas.

ASIR Administración de Sistemas Operativos 34


UT2 Administración de procesos del sistema

Orden Descripción

• Demonios cron y atd • Estos demonios se lanzan cuando el sistema se inicia. Su


función es comprobar si existen procesos planificados
con las órdenes at, crontab o batch pendientes de
ejecución. La comprobación de los procesos pendientes
se realiza cada minuto. Esta comprobación consume
muy pocos recursos.

Si se usa el comando at con frecuencia, debemos asegurarnos de que su enlace correspondiente


en el nivel de arranque por defecto empieza por la letra S.

Orden Descripción

• at • Se utiliza para indicar la fecha y hora en la que se


ejecutarán los procesos indicados. Estos procesos se
ejecutan en segundo plano. También se puede ver la
lista de procesos pendientes de ejecución y eliminar
procesos para que no se ejecuten.

Según la hora: las horas se pueden indicar con el formato hh:mm.

Opciones
pm Según un reloj de 12 horas, indica la hora después del mediodía.
am Según un reloj de 12 horas, indica la hora antes del mediodía.
next La hora indicada se refiere al día siguiente (24 horas).

En lugar de la hora, se pueden añadir las siguientes opciones:

Opciones
now Se refiere a la hora actual.
noon Indica las 12:00 horas de la mañana (mediodía).
midnight Se refiere a las 00:00 horas (medianoche).

ASIR Administración de Sistemas Operativos 35


UT2 Administración de procesos del sistema

Según la fecha:

Opciones
mes día [año] Con el formato MM/DD/AAAA.
Día de la semana Los días de la semana en inglés
Otro día e puede incluir Today (hoy) o Tomorrow (mañana).

Incremento:

Para determinar el incremento hay que escribir el signo ‘+’, un número y una de las siguientes
opciones: minutes (minutos), hours (horas), days (días), weeks (semanas), months (meses) o years
(años).

La sintaxis del comando at es la siguiente: at hora [fecha] [incremento]

El comando at también puede incluir otras opciones:

Opción Descripción
Para visualizar la lista de procesos que están pendientes de ejecución.
at -l o atq
Estos procesos se encuentran en el directorio /var/spool/cron/atjobs
at -d "nº de tarea"
Para visualizar la lista de procesos que están pendientes de ejecución.
o
Estos procesos se encuentran en el directorio /var/spool/cron/atjobs
atrm "nº de tarea"
at -c "nº de tarea" Para obtener un listado detallado de una tarea.

Cuando el proceso se ejecuta, la salida de las órdenes del proceso se envían al correo electrónico.
Si se desea que la salida de las órdenes se produzca en el monitor, hay que añadir al final de cada
orden la re dirección al dispositivo deseado.

Ejemplo: Deseamos ejecutar la orden ls -l dentro de una hora, utilizando un terminal como salida
del archivo. Abrimos dos terminales, el primero, desde el que ejecutaremos el comando at será
reconocido como el dispositivo /dev/pts/0. El segundo, reconocido como /dev/pts/1, será
utilizado para reproducir la salida.

ASIR Administración de Sistemas Operativos 36


UT2 Administración de procesos del sistema

El administrador del sistema decide que usuarios pueden ejecutar el comando at.

Para ello dispone de los ficheros /etc/[Link] y /etc/[Link]. En ellos se escribe una lista de
usuarios, uno por línea. Estos ficheros también determinan el uso del comando batch.

• Si existe el fichero /etc/[Link], solamente los usuarios incluidos en él podrán utilizar at.

• De no existir /etc/[Link], se chequea el fichero /etc/[Link], los usuarios que no aparezcan en


este fichero podrán usar el comando at. Si el fichero /etc/[Link] está vacío, todos los usuarios
pueden usar at.

• La no existencia de ambos archivos implica que sólo el usuario root puede ejecutar at.

Orden Descripción

• crontab – l • Visualiza el contenido del archivo crontab del usuario


actual.
• crontab – r • Borra el archivo crontab del usuario actual.
• crontab - e • Edita el fichero crontab
• crontab -u usuario • Para generar un archivo crontab para el usuario
fichero especificado, que contendrá los procesos incluidos en el
fichero indicado. El nombre del archivo crontab del
directorio /var/spool/cron/crontabs será el mismo que
el usuario introducido. Este fichero se puede editar,
listar o borrar con la sintaxis crontab –u usuario {-e,-l,-r}
• crontab archivo • Se crea un archivo con el nombre del usuario en el
directorio /var/spool/cron/crontabs. El fichero es
creado con el nombre del usuario. Si el archivo ya existe,
se sobrescribe. Este archivo es el que ejecuta el daemon
cron para lanzar los procesos indicados en él y se puede
modificar con cualquier editor de textos.

ASIR Administración de Sistemas Operativos 37


UT2 Administración de procesos del sistema

Otro ejemplo es el siguiente: se ejecuta a las 7:30 durante todos los días, meses y años lanzado por
el usuario root.

Se pueden incluir varios minutos, horas, meses, años y días de la semana.

En este ejemplo, el carácter ‘#’ en el campo reservado a los minutos no se refiere a todos los
minutos de las horas indicadas.

También se pueden usar los literales recogidos en la siguiente tabla:


Orden Descripción

• @reboot • El proceso se ejecutará al iniciar el ordenador.

• @yearly • El proceso se ejecutará una vez al año, "0 0 1 1 ∗".

• @annually • Lo mismo que @yearly

• @monthly • Una vez al mes, "0 0 1 ∗ ∗".

• @weekly • Una vez a la semana, "0 0 * * 0".

• @daily • Una vez al día, "0 0 ∗ ∗ ∗".

• @midnight • (lo mismo que @daily)

• @hourly • Una vez por hora, "0 ∗ ∗ ∗ ∗".

ASIR Administración de Sistemas Operativos 38


UT2 Administración de procesos del sistema

Batch
Orden Descripción

• batch Se utiliza para ejecutar procesos cuando el sistema se


encuentre más liberado de trabajo. Estos procesos se ejecutan
en segundo plano y se encuentran en el directorio
/var/spool/cron/atjobs. Cuando se ejecuta el comando batch
se muestran, en la línea siguiente, los caracteres ‘at>’, debiendo
introducir las órdenes de la forma descrita para la orden at. La
salida de la orden batch se envía al monitor.
Opciones
• batch –f fichero • También se puede ejecutar el contenido de un archivo
redirigiendo la entrada de dicho archivo al comando
batch.

ASIR Administración de Sistemas Operativos 39


UT2 Administración de procesos del sistema

8. Niveles de ejecución del sistema.


Niveles de ejecución:

Existen 6 niveles más el nivel básico. Estos niveles son:

Niveles de ejecucion
Nivel 0 Halt o apagado del sistema

Nivel 1 Single y de modo monousuario.


Red y entorno gráfico, este nivel suele ser el que viene por defecto.
Nivel 2 Modo multiusuario.
Nivel 3 Red y entorno gráfico - modo multiusuario.

Nivel 4 Red y entorno gráfico - modo multiusuario.

Nivel 5 Red y entorno gráfico - modo multiusuario.

Nivel 6 Reboot o reinicio del sistema.

Nivel S Básico, se ejecuta antes de cualquiera de los niveles anteriores.

Se encuentran en los subdirectorios de /etc siguiendo el patrón rcX.d siendo X el número


correspondiente. S corresponde al nivel.
Estos subdirectorios contienen enlaces a los scripts de /etc/init.d.

ASIR Administración de Sistemas Operativos 40


UT2 Administración de procesos del sistema

Tras la ejecución del nivel por defecto, los primeros scripts que se ejecutan son los que se
encuentran el directorio /etc/rcS.d.

Todos los ficheros K o S son enlaces simbólicos a los scripts de cada servicio que están en el
directorio /etc/init.d.

Estos Scripts son los encargados de realizar tareas como:


• Establece el reloj.
• Inicia los scripts de red y activa la partición Swap.
• Activa quotas.
• Inicia los puertos serie y USB.
• Otras características

ASIR Administración de Sistemas Operativos 41


UT2 Administración de procesos del sistema

Si observamos la imagen los scripts contienen una primera letra S lo cual indica que el servicio sera
ejecutado, si en su lugar apareciera una K indicaría que el servicio no se pondrá en
funcionamiento.

El directorio init.d contiene todos los ejecutables de los servicios y demonios, estos son enlazados
desde los directorios de los niveles de arranque de dos maneras; de inicio o de parada.
• Enlaces de inicio: tienen el aspecto S24pcmcia, donde la S mayúscula hace que el servicio
reciba señal de inicio, los números fijan un orden de ejecución, y el nombre del servicio es
la última parte del enlace.

• Enlaces de parada: usan la misma convención de nombres con una K mayúscula en lugar
de la S. La presencia de dicha K hace que los servicios se ejecuten con señal stop para que
de forma ordenada se detengan.

Ejemplo de contenido de /etc/rc2.d nivel de arranque 2:

ASIR Administración de Sistemas Operativos 42


UT2 Administración de procesos del sistema

Ejemplo de contenido de /etc/rc6.d nivel de arranque 6 de reinicio:

Eliminando un servicio

Si quisiéramos deshabilitar apache2 completamente a mano tendríamos que borrar cada enlace
contenido en /etc/rcX.d/ utilizando update-rc.d es tan simple como:

La opción -f fuerza la eliminación de los enlaces simbólicos aunque exista /etc/init.d/apache2.

ASIR Administración de Sistemas Operativos 43


UT2 Administración de procesos del sistema

Añadiendo un servicio
Si queremos que un servicio se inicie al arrancar podemos ejecutar:

Si estamos en Ubuntu y queremos cambiar el nivel de arranque por defecto, debemos modificar el
fichero: /etc/init/[Link]

Con el comando cd/etc/init vamos al directorio y en el ejecutamos sudo gedit [Link] .


En este fichero buscaremos la linea env DEFAULT_RUNLEVEL=2.

Una vez localizada, cambiamos el número por el nivel deseado. Guardamos los cambios y
reiniciamos para comprobar que el cambio funciona correctamente.

Si estamos en otras distribuciones de Linux como por ejemplo Debian, deberemos modificar el
archivo /etc/inittab para seleccionar el nivel de arranque por defecto.

ASIR Administración de Sistemas Operativos 44


UT2 Administración de procesos del sistema

Comandos para el uso y manejo de niveles:

Orden Descripción

• who • Se utiliza para ver el nivel de ejecución actual.


Utilizaremos la opción -r.

Orden Descripción

• runlevel • Muestra en pantalla el nivel de ejecución anterior y el


nivel de ejecución actual. La letra N indica que no se ha
cambiado el nivel de ejecución con el comando init.

Orden Descripción

• init • Para cambiar en cualquier momento el valor del nivel de


ejecución actual.

Orden Descripción

• update-rc.d • Permite automatizar el proceso de


creación y borrado de enlaces a los
scripts de inicio, con el fin de
iniciar/parar servicios.

Opciones

• update-rc.d -f nombre_proceso remove • Eliminar los servicios del proceso de


arranque. La opción -f se utiliza para
forzar el borrado.

• update-rc.d nombre_proceso defaults • Iniciar nuevos servicios en el proceso de


arranque.

ASIR Administración de Sistemas Operativos 45


UT2 Administración de procesos del sistema

9. Interrupciones
El hardware debe poder llamar al sistema, pudiendo deberse estas llamadas a dos condiciones:

• Algún dispositivo de E/S necesita atención.

• Se ha producido una situación de error al intentar ejecutar una instrucción de un programa


(normalmente de la aplicación).

Según los dos casos anteriores tenemos las interrupciones y las excepciones:

• Interrupción: señal que envía un dispositivo de E/S a la CPU para indicar que la operación
de la que se estaba ocupando, ya ha terminado.

• Excepción: una situación de error detectada por la CPU mientras ejecutaba una instrucción,
que requiere tratamiento por parte del SO.

Tratamiento de las Interrupciones

Una interrupción se trata en todo caso, después de terminar la ejecución de la instrucción en


curso.

Importancia de las Interrupciones

El hardware se encarga de avisar al SO cuando el dispositivo de E/S ha terminado y el SO puede


intervenir entonces, si es conveniente, para hacer que el programa que estaba esperando por el
dispositivo, se continúe ejecutando.

En ciertos intervalos de tiempo puede convenir no aceptar señales de interrupción.

Excepciones
Cuando la CPU intenta ejecutar una instrucción incorrectamente construida, la unidad de control
lanza una excepción para permitir al SO ejecutar el tratamiento adecuado.

Al contrario que en una interrupción, la instrucción en curso es abortada.

Las excepciones al igual que las interrupciones deben estar identificadas.

ASIR Administración de Sistemas Operativos 46


UT2 Administración de procesos del sistema

Clases De Excepciones

Las clases de excepciones son:


• El código de operación puede ser incorrecto.
• Se intenta realizar alguna operación no definida, como dividir por cero.
• La instrucción puede no estar permitida en el modo de ejecución actual.
• La dirección de algún operando puede ser incorrecta o se intenta violar alguno de sus
permisos de uso.

Importancia De Las Excepciones

Como en el caso de las interrupciones, el hardware se limita a dejar el control al SO, y éste es el
que trata la situación como convenga.

ASIR Administración de Sistemas Operativos 47

También podría gustarte