• No se han encontrado resultados

Curso de Administración GNU/Linux. Nivel I

N/A
N/A
Protected

Academic year: 2021

Share "Curso de Administración GNU/Linux. Nivel I"

Copied!
31
0
0

Texto completo

(1)

 

 

Nivel I

Facultad de Ciencia y Tecnología – Oro Verde - 2009

(2)

    1

Nivel I

Curso de Administración

GNU/Linux

Facultad de Ciencia y Tecnología – Oro Verde - 2009 Facultad de Ciencia y Tecnología – Oro Verde - 2009

El Curso de Administración de GNU/Linux en su nivel I pretende formar profesionales en el ámbito del  Software Libre.

(3)

    2

tt

Teoría de Procesos

Administración de Procesos en GNU/Linux

Trabajando con la línea de comandos

Capítulo 3: Administración de Procesos Capítulo 3: Administración de Procesos

En esta clase veremos que todo programa que se encuentra en ejecución lo hace en forma de un  proceso, aprenderemos como funcionan y como un sistema operativo “puede” ejecutar más de un  proceso al mismo tiempo. Veremos además como GNU/Linux administra los procesos y como podemos  trabajar con ellos.

(4)

    3

Clase 5: Teoría de Procesos Clase 5: Teoría de Procesos

Proceso

Es  un  conjunto  de  actividades  para  realizar  un  determinado  fin.  Un  proceso 

informático  es  un  programa  en  ejecución  con  un  entorno  asociado,  también 

conocido como tarea.

Programa

!=

Proceso

Es  un  conjunto  de  instrucciones  preparadas  para  ser  ejecutadas  por una computadora.

Es  una  o  más  instancias  de  un  programa  que  se  encuentra  en  ejecución en un momento dado. Un proceso es un conjunto de operaciones que se realizan con un mismo fin. Un proceso informático es  un conjunto de instrucciones de computadora que se ejecutan en un ordenador para llevar a cabo una  determinada tarea. Un proceso consta de: ● Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador.Un estado de ejecución en un momento dado, nos referimos a la forma en la que se encuentra.Su memoria de trabajo, es decir la cantidad de memoria que ha reservado y utilizado.Otra información que permite al sistema operativo su planificación y acceso. El sistema operativo es el encargado de crear, modificar, eliminar y gestionar la comunicación entre los  distintos procesos. Además debe encargarse de reservar recursos para que los mismos puedan  ejecutarse y de definir que proceso se ejecutará en qué momento. Un proceso es un programa en ejecución, pero esto no quiere decir que un programa por sí mismo es un  proceso, un programa es una entidad pasiva. Programas y procesos son entidades distintas. En un sistema operativo multitarea, múltiples instancias de  un programa pueden ejecutarse sumultáneamente. Cada instancia es un proceso separado. Por ejemplo,  si cinco usuarios desde equipos diferentes, ejecutan el mismo programa al mismo tiempo, habría cinco  instancias del mismo programa, es decir, cinco procesos distintos.

(5)

    4

Clase 5: Teoría de Procesos Clase 5: Teoría de Procesos

Estados de un Proceso

Nuevo Listo Ejecución Espera Terminado Los procesos utilizan datos para operar con ellos, y puede suceder que no se encuentren listos, o que se deba esperar algún suceso antes de continuar, como una operación de Entrada/Salida. Es por esto que se necesita un estado donde los procesos permanezcan esperando la realización de la operación de Entrada/Salida por parte del Sistema Operativo hasta que puedan proseguir. Se divide entonces al estado No ejecución en dos estados: Listo y Espera. Se agregan además un estado Nuevo y otro Terminado. Los cinco estados de este diagrama son los siguientes: ● Ejecución: el proceso está actualmente en ejecución. ● Listo:: el proceso está listo para ser ejecutado, sólo está esperando que el planificador de corto plazo así lo disponga. ● Espera: el proceso no puede ejecutar hasta que no se produzca cierto suceso, como la finalización de una operación de Entrada/Salida solicitada por una llamada al sistema operativo. ● Nuevo: El proceso recién fue creado y todavía no fue admitido por el sistema operativo. En general los procesos que se encuentran en este estado todavía no fueron cargados en la memoria principal. ● Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea porque terminó o por algún fallo, como un error de protección, aritmético, etc. Los nuevos estados Nuevo y Terminado son útiles para la gestión de procesos. En este modelo los estados Espera y Listo tienen ambos colas de espera. Cuando un nuevo proceso es admitido por el sistema operativo, se sitúa en la cola de listos. A falta de un esquema de prioridades ésta puede ser una cola FIFO. Cuando se da un suceso se pasan a la cola de listos los procesos que esperaban por ese suceso. Si existe un esquema con diferentes niveles de prioridad de procesos es conveniente mantener varias colas de procesos listos, una para cada nivel de prioridad, lo que ayuda a determinar cuál es el proceso que más conviene ejecutar a continuación. Asimismo, existen varias colas en estado de espera, como mínimo una por cada periférico.

(6)

    5

Clase 5: Teoría de Procesos Clase 5: Teoría de Procesos

GNU/Linux como Sistema Operativo Multitarea

● Múltiples procesos pueden ejecutarse “simultáneamente” sin interferir         entre sí ● Cada proceso “cree” que se está ejecutando solo en el sistema y que tiene        acceso a todos los recursos del mismo. ● Todos los procesos tienen siempre un determinado estado en el tiempo. ● El sistema operativo mantiene información de todos sus procesos y de su         estado. ●  Para cada proceso deben reservarse recursos y asignarse prioridades. GNU/Linux, como se sabe, es un sistema operativo multitarea y multiusuario. Esto quiere decir que  múltiples procesos pueden operar simultáneamente sin interferirse unos con los otros. Cada proceso  tiene la "ilusión" que es el único proceso en el sistema y que tiene acceso exclusivo a todos los servicios  del sistema operativo. Para realizar ésto el sistema debe guardar información sobre todos los procesos que se encuentran en  algún estado en un momento determinado. Si bien es cierto que estamos hablando de sistemas operativos multitarea, en realidad sólo podemos  ejecutar un proceso a la vez. En realidad el núcleo ejecuta los procesos de forma muy rápida e  intercambia su hilo de ejecución entre uno y otro muchas veces por segundo, ésto nos da la sensación de  que estamos ejecutando varias aplicaciones al mismo tiempo pero en realidad solamente una es la que  se ejecuta. Encontramos una excepción a ésto con la nueva tecnología de microprocesadores de 2 o más núcleos,  en los cuales si se pueden ejecutar de forma simultánea 2 o más procesos dependiendo de la  arquitectura de nuestro procesador.

(7)

    6

Clase 5: Teoría de Procesos Clase 5: Teoría de Procesos

PCB (Process Control Block)

Es un registro que usa el sistema operativo para  almacenar información sobre los procesos que gestiona.   Cada vez que se crea un proceso se crea un PCB que va  a almacenar información durante todo el tiempo que el  proceso viva en el sistema. Algunos campos de un PCB El Bloque de control del proceso o PCB (Process Control Block) es un registro especial donde el sistema operativo agrupa toda la información que necesita conocer respecto a un proceso particular. Cada vez que se crea un proceso el sistema operativo crea el PCB correspondiente para que sirva como descripción en tiempo de ejecución durante toda la vida del proceso. Cuando el proceso termina, su PCB es borrado y el registro puede ser utilizado para otros procesos. Un proceso resulta conocido para el sistema operativo y por tanto elegible para competir por los recursos del sistema sólo cuando existe un PCB activo asociado a él. El bloque de control de proceso es una estructura de datos con campos para registrar los diferentes aspectos de la ejecución del proceso y de la utilización de recursos. La información almacenada en un PCB incluye típicamente algunos o todos los campos siguientes: ● Identificador del proceso (Process Identificator PID,de sus siglas en Inglés).Estado del proceso. Por ej. listo, en espera, bloqueado.Contador de Programa: Dirección de la próxima instrucción a ejecutar.Valores de registro de CPU. Se utilizan también en el cambio de contexto.Espacio de direcciones de memoria.Prioridad en caso de utilizarse dicho algoritmo para planificación de CPU.Lista de recursos asignados: (incluyendo descriptores de archivos y sockets abiertos).Estadísticas del proceso.Datos del propietario (owner). ● Permisos designadosSeñales pendientes de ser servidos. (Almacenados en un mapa de bits) ● Esta lista es simplemente indicativa, cada sistema operativo tiene su propio diseño de PCB, con el conjunto de metadatos necesarios para la administración. Puede medir desde 32 bits a 1024. Su denominación cambia según el sistema operativo, por ej. en IBM se designa PSW por palabra de estado de proceso. Difiere significativamente entre los sistemas de procesamiento por lotes (BATCH) y los sistemas interactivos.

(8)

    7

Clase 5: Teoría de Procesos Clase 5: Teoría de Procesos

Proceso de Fork

Threads, Hilos y Multithreading

Es  un  mecanismo  que  utiliza  un  sistema  operativo  para  creo  un  proceso  crear  una  copia  de  si  mismo.  En este caso el primer proceso pasa a ser padre y el  segundo  se  convierte  en  hijo.  Esto  genera  que  los  procesos se organicen en una estructura de árbol. Proceso  padre Proceso  Hijo Proceso  Hijo Proceso  Hijo Un  Thread  o  hilo  permite  realizar  varias  tareas 

simultáneamente,  un  proceso  puede  dividirse  en  hilos  que  comparten  algunos  recursos  como  el  espacio  de  memoria  que  utilizan,  su  PCB,  los  archivos que tienen abiertos, etc.  Actualmente en la gran mayoría de los sistemas operativos, los procesos se organizan en árboles  jerárquicos en los cuales todo proceso tiene un padre (a excepción de init que es el primer proceso que  se ejecuta). Esta organización permite ordenar los procesos de forma estructurada y permite que los  mismos se vayan creando en la medida y forma en que se necesiten. A la hora de crear un nuevo proceso, se utiliza una llamada al sistema operativo denominada fork, la cual  se encarga de crear una copia de un proceso dado y asignar ésta copia a un proceso determinado, pero  especificando que su proceso padre será el proceso que lo creó. Esta llamada se utiliza en la gran  mayoría de las aplicaciones de los sistemas operativos actuales y permiten crear procesos ya sea por  medio del propio sistema operativo como a través de las aplicaciones que utilizan el mismo. Actualmente y a la hora de optimizar las tareas, podemos dividir un proceso en hilos, hebras o threads  dando la posibilidad de que un proceso se encuentre realizando distintas tareas al mismo tiempo, cada  una en un hilo o hebra distinto. Todas las hebras pertenecientes a su proceso comparten su entorno  asociado y por ende se ejecutan con una velocidad mucho mayor a que si se tratasen de procesos  separados.

(9)

    8

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Procesos en GNU/Linux

● Init es el primer proceso a ejecutarse por el núcleo. Corre con un         identificador de proceso (PID) igual a 1. ● Debe encontrarse siempre en ejecución ya que es el “Padre” de todos los         demás procesos. ● Este proceso realiza varias acciones como vimos anteriormente y finalmente  ejecuta varias instancias (forks) del proceso getty.init getty cron klogd ... login bash

Cuando el núcleo Linux inicia llega un momento en que se debe ejecutar el primer programa, el cual

se encarga de leer los scripts de inicio y dejar el sistema listo para comenzar a trabajar. Este primer

proceso es el INIT (/sbin/init) y recibe el identificador de proceso (PID) numero 1. De este proceso se desprenden varios procesos, algunos que se ejecutan una sola vez (scripts de niveles de inicio),

otros que se ejecutan repetitivamente (getty/mgetty, el programa que nos solicita login en cada

terminal que definimos en /etc/inittab).

Como ya vimos el proceso init es el proceso padre y el primero que se ejecuta de todos los demás

procesos, esto quiere decir a su vez que todos los demás procesos son creados por init, por ende

(10)

    9

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Gestión de Procesos

Constantemente el núcleo y las aplicaciones de usuarios envían señales a los  procesos para modificar su estado. Usuarios Aplicaciones Núcleo Proceso 1 Proceso 1 Proceso 2 Proceso 2 Proceso 3 Proceso 3 Señal 2 Señal 15 Señal 9 Para enviar señales utilizaremos el comando kill A la hora de trabajar y gestionar procesos, el sistema operativo utiliza señales para indicarles que realicen  una determinada operación. Una señal se identifica con un número y establece el comportamiento que va  a tomar un proceso luego de que la reciba.  Además las aplicaciones mismas utilizan estas señales para por ejemplo terminar su ejecución, esperar a  que un determinado recurso de la computadora esté libre o simplemente ejecutarse. El usuario también puede finalizar o cambiar el estado de un proceso, enviando una señal al mismo, para  ésto utilizaremos el comando kill, como veremos más adelante. Debemos aclarar que un usuario debe  terner permiso para poder detener o modificar el estado de un proceso.

(11)

    10

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Gestión de Procesos

Señales 15 – SIGTERM: Solicita la terminación del proceso  que la recibe. 9 – SIGKILL: Termina el proceso que la recibe en  forma inmediata. 2 – SIGINT: Es la misma señal que se produce  cuando un usuario presiona las teclas “Control + C”  para solicitar su terminación 20 – SIGSTP: Es la misma señal que se produce  cuando un usuario presiona las teclas “Control + Z”  para mandar un proceso a segundo plano. 19 – SIGCONT: Reanuda un proceso suspendido  con SIGSTP. Para comunicarnos con determinados procesos mandamos señales a los mismos, cada señal especifica al proceso que acción debe realizar o como debe comportarse. El número de proceso que es el PID (Identificador de proceso) sirve para enviar señales a los procesos. La sintáxis es “kill SEÑAL PID” y las señales más usadas son: 15 SIGTERM > Solicita la terminación del proceso que la recibe. 9 SIGKILL > Termina el proceso que la recibe de forma inmediata. 2 SIGINT > Es la misma señal que se produce cuando un usuario en un programa interactivo presiona  Controlc para solicitar su terminación. 20 SIGTSTP > La misma señal producida por Control+ z, envía el proceso a segundo plano para poner reanudarlo después. 18 SIGCONT > Reanuda un proceso suspendido previamente por la señal SIGTSTP. 

(12)

    11

Gestión de Procesos

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Información  sobre  procesos Identificador de Proceso (PID) Identificador de Proceso Padre (PPID) Valor de los Registros Información sobre Usuarios y Grupos Prioridad con respecto a otros Recursos consumidos por el proceso Estado del proceso La información que tiene el sistema operativo sobre el proceso se denomina atributos del proceso. Entre los atributos de un proceso se encuentran:   ●Identificador (PID)   ●Identificador del proceso padre (PPID)   ●Valor de los registros   ●Identidades del usuario y grupos.   ●Prioridad del proceso con respecto a otros.   ●Recursos consumidos por el proceso.   ●Ficheros abiertos, mecanismos IPC y cualquier otro tipo de recurso que suministre el sistema operativo.   ●Estado del proceso. Las características que tiene un proceso dependen en parte de las propias características que tenga el sistema operativo, así por ejemplo tanto Windows 95 como OS/2 son sistemas multiproceso y monousuario, mientras que Linux se caracteriza por ser un sistema multiproceso y multiusuario,

(13)

    12

Colas de Procesos

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Listo Ejecución Espera Cola de Procesos Listos Cola de Procesos en Ejecución Cola de Procesos en Espera   ●Lista de procesos: Estructura de datos circular que agrupa una colección ordenada de  apuntadores a descriptores de procesos, donde cada elemento apunta al siguiente   ●Lista de procesos listos: Por eficiencia de búsqueda se mantiene una lista de  descriptores de los procesos listos, i.e. procesos candidatos a ser ejecutados   ●Lista de procesos en espera: Útil para manejo de interrupciones, sincronización de  procesos y temporizadores donde un proceso suspendido espera a que se presente una  determinada señal

(14)

    13

Herramientas para trabajar con procesos

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Para visualizar procesos Para enviar señales a procesos ps top htop pstree kill nice renice killall Ahora veremos qué herramientas vamos a utilizar desde la línea de comandos para  visualizar información sobre procesos y sobre los recursos que tienen asignados, así  como también para gestionarlos. GNU/Linux nos permite realizar muchas operaciones con los procesos que residen en el  sistema operativo, podemos enviar señales a un proceso para terminar su ejecución,  suspenderla, solicitarle que libere los recursos que tiene asignados o modificar su  prioridad.

(15)

    14

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Herramientas para la administración de procesos

ps – muestra información sobre los procesos que se están ejecutando en el sistema Sintaxis: ps <opciones>  Opciones: a: muestra todos de todos los usuarios. u: muestra el usuario y la hora de inicio en que se inició el proceso x: muestra los procesos que no se ejecutan en una terminal Ejemplos: $ps ax $ps aux El comando ps nos permite visualizar información sobre todos los procesos que  “residen” en el sistema en un momento dado.  ps está basado en el sitema de archivos /proc, es decir que lee directamente la  información de los archivos que se encuentran en ese directorio. Tiene una gran  variedad de opciones, incluso estas opciones varían dependiendo del estilo en que se  use el comando. Estas variantes son las siguientes: ● Estilo UNIX: donde las opciones van precedidas por un guión. ● Estilo BSD: donde las opciones no llevan guión. ● Estilo GNU: donde se utilizan nombres de opciones largas y van precedidas por un  doble guión ­­.

(16)

    15

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Herramientas para la administración de procesos

Examinando la salida del comando ps ● Usuario con el que se ejecuta el proceso. ● Identificador de Proceso (PID) ●% de uso de CPU y de Memoria ● Terminal en la que se ejecuta el comando. ●Fecha de Inicio ● Comando que se ejecuta Sea cual sea el estilo utilizado, dependiendo de las opciones indicadas, varias columnas  se mostrarán en el listado de procesos que resulte, estas columnas pueden ser entre  muchas otras, las siguientes: ● p o PID: Process ID, número único o de identificación del proceso.P o PPID: Parent Process ID, padre del procesoU o UID: User ID, usuario propietario del procesot o TT o TTY: Terminal asociada al proceso, si no hay terminal aparece entonces un   '?' ● T o TIME: Tiempo de uso de cpu acumulado por el procesoc o CMD: El nombre del programa o camndo que inició el procesoRSS: Resident Sise, tamaño de la parte residente en memoria en kilobytesSZ o SIZE: Tamaño virtual de la imagen del procesoNI: Nice, valor nice (prioridad) del proceso, un número positivo significa menos tiempo  de procesador y negativo más tiempo (­19 a 19) ● C o PCPU: Porcentaje de cpu utilizado por el procesoSTIME: Starting Time, hora de inicio del procesoS o STAT: Status del proceso, estos pueden ser los siguientesR runnable: en ejecución, corriendo o ejecutándoseS sleeping: proceso en ejecución pero sin actividad por el momento, o  esperando por algún evento para continuar ● T sTopped: proceso detenido totalmente, pero puede ser reiniciado

(17)

    16

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Herramientas para la administración de procesos

top – muestra la lista de procesos que consumen más recursos en el sistema Sintaxis: top <opciones>  Opciones: ­s:deshabilita el modo interactivo. ­c: muestra el path absoluto con el que fue llamado cada comando de la lista. ­d <segundos>:permite especificar los segundos de espera entre muestreos. Ejemplos: $top ­c $top ­d 1 top (table of process) nos permite visualizar un listado de los procesos que están ejecutándose en nuestra computadora y visualizar la cantidad de recursos que consumen. Esto es útil en ambientes multiusuario a la hora de determinar si una aplicación está consumiendo demasiado tiempo de CPU, por ejemplo, y causando la lentitud del sistema.

(18)

    17

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Herramientas para la administración de procesos

htop – muestra la lista de procesos y nos permite gestionarlos. Sintaxis: htop Comandos en modo interactivo: F1 – Muestra la ayuda F6 – Permite ordenar los procesos por consumo de memoria, consumo de cpu, usuario o            PID. F10 – Sale de htop. Ejemplos: htop Abajo de todo se puede una barra con un menú de opciones accesibles mediante las  teclas de función que se muestran a la izquierda de la opción en cuestión, aunque  también son accesibles mediante el ratón: ● F1 Help: La ayuda del programa. Muestra entre otras cosas las teclas de acceso para  las distintas funciones. También accesible mediante la tecla ‘h‘ (minúscula). ● F2 Setup: Se ingresa al menú de la configuración. Se puede cambiar lo que uno  necesite, de qué forma, con qué colores, configurar las columnas. También accesible  mediante la tecla ‘S‘ (mayúscula). ● F3 Search: Nos permite buscar un proceso por su nombre (comando). También  accesible mediante la tecla ‘/‘. ● F4 Invert: htop nos muestra los procesos ordenados por una de sus columnas. En la  captura anterior se ve que están ordenados por consumo de CPU (se ve de otro  color). Esta opción permite ordenarlos de forma inversa, si inicialmente se muestra de  mayor a menor consumo, al ejecutar esta opción lo haría de menor a mayor  consumo. También accesible mediante la tecla ‘I‘ (mayúscula). ● F5 Tree: Muestra los procesos en forma de árbol. Los procesos son independientes  pero muchos están relacionados, unos se crean a partir de otros y a la vez pueden  generar otros procesos hijos. Con esta opción podemos ver dichas relaciones en la  columna “Command“. También accesible mediante la tecla ‘t‘ (minúscula). ● F6 SortBy: Como dije antes, los procesos están ordenados según una columna. Con  esta opción se puede definir cómo ordenarlos, si por consumo de CPU,memoria,  usuario, PID, etc… También accesible mediante la tecla ‘>‘.

(19)

    18

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Herramientas para la administración de procesos

kill – permite enviar señales a un proceso Sintaxis: kill <opciones> <señal> PID Opciones: ­l: muestra una tabla con las señales disponibles y sus respectivos números. ­s señal: permite especificar una señal por su nombre para enviar a un proceso. ­n señal: permite especificar una señal por su número para enviar a un proceso. Ejemplos: kill ­9 9873 kill ­SIGKILL 3482 Como mencionábamos antes, la forma que tiene tanto el sistema operativo como el usuario con los procesos es a través de señales. Kill es el comando que nos permite realizar esta tarea, especificando a que proceso nos queremos referir (mediante su identificador de proceso o PID) seguido de la señal que queremos enviar a ese proceso, las más comunes son 15, que solicita a un proceso que termine su ejecución “amablemente” (es decir, que libere la memoria y los dispositivos asociados de forma normal) o 9 que hace que el proceso se termine de forma inmediata sin importar sus recursos asociados ni su estado.

(20)

    19

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Herramientas para la administración de procesos

killall – permite enviar señales a un proceso usando su nombre Sintaxis: killall <opciones> <señal> nombre Opciones: ­l: muestra una tabla con las señales disponibles y sus respectivos números. ­s señal: permite especificar una señal por su nombre para enviar a un proceso. ­n señal: permite especificar una señal por su número para enviar a un proceso. Ejemplos: killall ­9 kde killall ­SIGKILL amsn A diferencia del comando kill, killall nos permite mandar señales a un proceso utilizando  su nombre en lugar de su PID (Process ID), ésto es útil cuando conocemos el nombre  del proceso y no queremos perder tiempo en averiguar su identificador de proceso. Las  opciones que soporta son las mismas que el comando kill.

(21)

    20

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Herramientas para la administración de procesos

nice – cambia la prioridad de un proceso a la hora de ejecutarlo. Sintaxis: nice <opciones> <proceso> argumento del proceso Opciones: ­n: permite especificar un número entero para definir la prioridad del proceso. ­­version: permite mostrar la versión actual del comando. ­­help: muestra la ayuda del comando Ejemplos: # nice ­n ­20 apt­get update Una de las cosas interesantes que podemos hacer a la hora de trabajar con procesos desde la línea de comandos es asignarle prioridades. La prioridad se identifica con un número entre ­20 y 20, siendo los números negativos los de mayor prioridad (20 Por ende es la prioridad más alta). Es el núcleo quien asigna las prioridades a los  procesos, a medida que los crea o utiliza debido a peticiones de usuario (generalmente  los programas de usuario tienen prioridad 20, lo cual no quiere decir que no se ejecuten, sino que tienen menos prioridad ya que hay procesos más necesarios que gestionan memoria, acceso a dispositivos de almacenamiento, periféricos y demás que tienen mayor importancia), pero podemos alterar esto con el comando nice, el cual nos permite modificar la prioridad o importancia de cada proceso ante los ojos del sistema operativo. Este comando se utiliza a la hora de lanzar o crear un proceso, si deseamos cambiar la prioridad de un proceso en ejecución, utilizaremos el comando renice, el cual veremos a continuación.

(22)

    21

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Herramientas para la administración de procesos

renice – cambia la prioridad de un proceso en ejecución Sintaxis: renice prioridad <­p pid> <­g grupo> <­u usuario> Opciones: ­p pid: espeficica el PID del proceso al cual queremos modificar la prioridad ­g grupo: permite cambiar el ID del grupo asociado al proceso.  ­u usuario: permite cambiar el ID del usuario asociado al proceso. Ejemplos: $renice +1 ­p 897 $renice +2 2308 ­u usuario Este comando se diferencia al anterior a que en realidad permite cambiar la prioridad de un proceso en tiempo de ejecución, es decir, cuando este se encuentra ejecutándose o en alguno de los estados vistos anteriormente. Además permite cambiar el dueño y grupo de un proceso, esto es importante ya que un usuario no tiene permiso para eliminar procesos de otros usuarios, exceptuando al root o administrador, el cual, como vimos antes, tiene control total sobre el sistema.

(23)

    22

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Herramientas para la administración de procesos

free – muestra la utilización de memoria del sistema Sintaxis: free <opciones> Opciones: ­m: muestra la memoria en megabytes. ­t: muestra totales de memoria en las columnas de total, usada y libre. ­s intervalo: muestra el uso de la memoria y se actualiza pasado un intervalo de tiempo. Ejemplos: $ free ­tm $ free ­s 2 El comando free se utiliza para mostrar la utilización de la memoria de la computadora por parte del sistema operativo y sus demás programas. Debemos aclarar que el núcleo se apropia de la memoria ram en la medida en que puede, ya que se supone el único sistema operativo en ejecución y luego la distribuye entre sus procesos y los del usuario. Es por esto que no debemos pensar que estamos consumiendo el total de la memoria que vemos en estas estadísticas, sino guiarnos por el comando htop, el cual nos muestra efectivamente y en tiempo real para ver el uso actual de la memoria por parte de los procesos que se encuentran ejecutándose. Expliquemos un poco como se entiende la salida de éste comando, por ejemplo: $ free ­m           total      used     free   shared   buffers   cached Mem:      2048     1996       51        0       599      364 ­/+ buffers/cache:     1032     1015 Swap:      0        0        0 buffers es la cantidad de memoria usada por el kernel para cachear I/O de disco cached indica la memoría usada recientemente, pero que actualmente no está en uso y  que está cacheada. Así que la cantidad de memoría disponible éste equipo es la suma de free + buffers +  cached (la cantidad que pone en la columna free en la segunda fila), en el ejemplo 1.015  MBytes, casi el 50% de la RAM total.

(24)

    23

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Herramientas para la administración de procesos

uptime – indica el tiempo que lleva el sistema encendido. Sintaxis: uptime <opciones> Opciones: ­V: muestra la versión del programa Ejemplos: $ uptime $ uptime ­V Este comando nos muestra la hora del sistema, la cantidad de días y horas que lleva encendida la computadora, la cantidad de usuarios que están logueados y trabajando actualmente y la carga del CPU del equipo. Toda esta información se obtiene del  sistema de archivos /proc.

(25)

    24

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Herramientas para la administración de procesos

watch – permite ejecutar un comando periódicamente Sintaxis: watch <opciones> comando Opciones: ­n: permite especificar un intervalo de tiempo para ejecutar un comando. ­t: permite no mostrar en la salida el comando que se utiliza ­­help: muestra la ayuda del comando Ejemplos: $ watch ­n 5 date $ watch ­t date Este comando forma parte del pack de utilidades de procesos de GNU/Linux, pero puede utilizarse para muchas cosas. Lo que nos permite es ver la salida de un comando y “refrescar” (volver a dibujar en pantalla) la salida de este comando cada cierto período de tiempo (por defecto cada 2 segundos). Se puede utilizar para ver el progreso de copia de un archivo, para verificar conexiones, para mostrar el estado de procesos y otras cosas.

(26)

    25

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Herramientas para la administración de procesos

pgrep – busca los procesos que tienen atributos determinados. Sintaxis: pgrep <opciones> <patrón> Opciones: ­G: permite especificar el nombre de un grupo para poder buscar procesos. ­I: muestra la salida del comando en formato largo agregando el nombre del proceso. ­U intervalo: permite especificar el nombre de un usuario para poder buscar procesos. Ejemplos: $ pgrep ­G usuario $ pgrep ­L apache2 Al igual que el comando grep, pgrep es un filtro que se utiliza para buscar determinadas características, pero pgrep trabaja con procesos, como grep trabajaba con archivos o cadenas de texto. Podemos visualizar todos los archivos de un grupo o de un usuario por ejemplo.

(27)

    26

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Herramientas para la administración de procesos

pstree – muestra los procesos en forma de árbol. Sintaxis: pstree <opciones> Opciones: ­u: permite mostrar el nombre del usuario propietario del proceso. ­p: permite mostrar el PID del proceso. Ejemplos: $ pstree $ pstree ­U Este comando nos permite visualizar la lista de procesos del sistema operativo en modo de árbol, esto quiere decir, mostrar cada proceso, su proceso hijo y su proceso padre. Recordemos que es init el primer proceso que se ejecuta y por ende es el padre de todos los demás. Esto también lo podemos visualizar con el comando htop como especificamos anteriormente. Cabe aclarar que en la teoría de procesos, al “matar” (enviar una señal para que el proceso finalice, generalmente 9 o 15) un proceso, todos sus hijos también son dados de  baja del sistema. Pueden ocurrir determinados casos en los que esto no suceda, y nos  encontramos con un ejemplo de un proceso zombi, el cual no pudo finalizar su ejecución  por algún motivo, en particular los procesos sin padre, se denominan procesos huérfanos.

(28)

    27

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Herramientas para la administración de procesos

fg, bg – permiten manipular y enviar procesos a primer y a segundo plano Sintaxis: fg, bg %número de trabajo Ejemplos: $ bg ­ $ fg %1 Estos comandos son útiles para trabajar en forma interactiva con la línea de comandos. Primero veamos un concepto básico para esto, a la hora de estar utilizando un  comando,podemos mandarlo a dormir presionando la combinación de teclas “Control +  Z”, la cual manda al proceso a segundo plano. usuario@pc01:~$ sleep 600 [1]+ Stopped sleep 600 usuario@pc01:~$ Como vemos el proceso [1] se identifica con ese número y se detiene. Si ahora deseamos que el proceso se reanude, pero en segundo plano (es decir que no muestre su salida por línea de comandos), usamos el comando bg (background): usuario@pc01:~$ bg %1 [1]+ sleep 600 & usuario@pc01:~$ Como vemos, el comando se muestra con un signo +, esto quiere decir que se está ejecutando nuevamente en segundo plano. Para volver a anexarlo a nuestra consola usamos el comando fb (foreground):

(29)

    28

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Herramientas para la administración de procesos

nohup – ejecuta un comando y no permite que reciba más señales de hup, term y  kill del sistema. & ­ le indica a la shell que un proceso se ejecute en segundo plano Sintaxis: nohup comando <argumentos> Opciones: ­­version: muestra la versión del comando nohup. ­­help: muestra la ayuda del comando Ejemplos: $ nohup sleep 60 & $ yes > /dev/null & Este comando se utiliza cuando deseamos que un proceso se desprenda de la terminal donde se está ejecutando y además no pueda recibir señales utilizando el identificador que vimos en la diapositiva anterior. Otra posibilidad es el comando & el cual manda a trabajar al proceso a segundo plano, pero nos da la posibilidad de volver a traerlo al frente, como vimos anteriormente usando los comandos fg y bg.

(30)

    29

Clase 5: Administración de Procesos en GNU/Linux Clase 5: Administración de Procesos en GNU/Linux

Herramientas para la administración de procesos

jobs – permite ver los procesos detenidos o en segundo plano en una shell Sintaxis: jobs <opciones> Opciones: ­l: permite ver el PID de las tareas ­p: muestra únicamente el PID de las tareas Ejemplos: $ jobs $ jobs ­l El último comando que veremos es jobs, este nos muestra actualmente los procesos que  están en segundo plano y que está sucediendo con ellos. Para el ejemplo anterior el resultado del comando sería: usuario@pc01:~$ jobs [1]+ Running sleep 600 & usuario@pc01:~$

(31)

    30

Clase 1: ¿Dudas? ¿Consultas? Clase 1: ¿Dudas? ¿Consultas?

Información de contacto

http://www.gugler.com.ar [email protected] [email protected] [email protected] http://cursos.gugler.com.ar [email protected] Vía Web: Vía Mail: Versión 1.0 No duden en comunicaste con nosotros por cualquier duda, consulta o sugerencia que deseen realizar. A  la brevedad estaremos subiendo los contenidos de la próxima clase.

Administración GNU/Linux Nivel I Currícula 1.0

Referencias

Documento similar

Es importante mencionar, que en los últimos 5 años, China ha venido mostrando un gran avance en la industria textil y de la confección, ingresando en mercados como Europa,

1 PRETENDE Diego de Silua Velazquez, que se han de mandar boluer a la Camara los papeles de la merced que su Magestad tiene hecha del oficio de Escriuano del Respeto mayor

Para ello se colocarán dos sensores de presión a distintas alturas, uno ubicado en la parte superior (sin contacto con el agua) y otro ubicado en el mínimo nivel de

Las lecturas de francobordo/calado se toman para establecer la posición de la flotación y determinar a su vez el desplazamiento del buque en el momento de realizar la prueba

En un congrés, convé disposar d’un pla o full de ruta per tal de garantir la igualtat d’accés de totes les persones, tant ponents com participants.. Comunicació : Tant si el

En cada antecedente debe considerarse como mínimo: Autor, Nombre de la Investigación, año de la investigación, objetivo, metodología de la investigación,

Teniendo en cuenta su mayor exposición a renta variable, y que su gestión fija un objetivo de volatilidad más alto que el Conservador FI, podemos afirmar que se

Aunque en relación con su volumen de capital al mo- mento de su fundación (1 O millones de pesos) ocupara el segundo lugar entre las empresas manufactureras (el pri-