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