Gestión de Procesos en GNU/Linux. 2013 Ing. Emiliano Marini www.linuxito.com



Documentos relacionados
Administración de Redes

El sistema operativo Linux

Servicios del sistema. por Loris Santamaria < loris@lgs.com.ve > Links Global Services C.A.

1. Sistema Operativo Unix

Linux 101 Gestión de Procesos

Facultad de Ingeniería Universidad de Buenos Aires Sistemas Operativos Lic. Ing. Osvaldo Clúa Lic. Adrián Muccio.

Sistemas Operativos. Curso 2016 Procesos

Sistemas Operativos I Manual de prácticas

Cuentas. Guía 1er laboratorio Linux - Comandos - Fork. Programación en C. Linux. Linux: Cuenta (passwd): sisop@labs.cs.uns.edu.ar (sis2013op..

Linux Monitorización de rendimiento. Herramientas integradas en el sistema Herramientas Sysstat Monitorización de programas Monitor del sistema

TERMINAL DE COMANDOS (RED HAT, CENTOS Y FEDORA)

Router Teldat. Facilidad Sniffer

Sistemas Operativos. Pedro Cabalar TEMA III. PROCESOS. Depto. de Computación Universidade da Coruña

Introducción. Sistemas Operativos. Pedro Chávez Lugo 23 de marzo de 2010

Planificación de Procesos. Módulo 5. Departamento de Informática Facultad de Ingeniería Universidad Nacional de la Patagonia San Juan Bosco

Unidad 3: Gestión de Usuarios y Grupos Permisos y Procesos

Nodo Nacional de Bioinformática

Programación estructurada (Interfaces Windows y Unix)

Sistemas Operativos Ingeniería de telecomunicaciones Sesión 2: Procesos e hilos (modificado 29/10)

Gestión de procesos DEFINICIONES DE PROCESOS

Universidad Tecnológica de Panamá Facultad de Ingeniería de Sistemas Computacionales Departamento de Arquitectura y Redes de Computadoras

Programación Aplicada

Gestión de procesos en Linux

LINUX - Los archivos de órdenes I

Contenido. Sistemas de Entrada/Salida. Categorias de los Dispositivos de Entrada/Salida. Categorias de los Dispositivos de Entrada/Salida

SISTEMAS OPERATIVOS AVANZADOS

GNU/Linux desde la línea de comandos. Pablo Garaizar Sagarminaga (txipi) Alvaro Uría Avellanal (Fermat)

Guía Teórica Práctico 1: Ventana de Comandos o Terminal

MICROSITIOS. Perfiles

OPERADORES LÓGICOS Y DE COMPARACIÓN EN PHP. PRIORIDADES. EJEMPLOS. EJERCICIOS RESUELTOS. (CU00818B)

Creando usuarios y grupos. Usuario root. Usuarios especiales

Administración de Infraestructuras. Tecnólogo en Informática

UNIDAD DIDACTICA 4 EL EDITOR VI

TRANSFERENCIA DE IMÁGENES MÉDICAS. Comparación de los programas de visualización ezdicom e ImageJ

GE Power Management. 6S``O[WS\bORS1]\TWUc`OQWÕ\g. GE-FILES 7\ab`cQQW]\Sa 539$ &

Ejecución de procesos en forma remota

TEMA 2: GESTIÓN DE ARCHIVOS

Linux Principios básicos de uso del sistema [4ª edición]

Fedora Core GNU/LINUX

Requerimientos Principales de un Sistema Operativo. Descripción y Control de Procesos. Proceso

Creating your Single Sign-On Account for the PowerSchool Parent Portal

Servidor. Comenzaremos por confirmar que el servicio NFS esta instalado y ejecutandose desde la terminal, escribiremos lo siguiente: #rpm -q nfs-utils

1. CONTENIDO 1. CONTENIDO

Curso: Uso de infraestructuras Clúster y Grid para proyectos de e-ciencia. Lanzamiento y Monitoreo de Jobs en Condor. GRID COLOMBIA - RENATA [Ciudad]

Preparación para el examen LPI 101. Tema Creando, monitorizando y matando procesos

Manual Time One Software control de horarios

Sistemas Operativos. Iván Bernal, Ph.D. 4. Escuela Politécnica Nacional I.

Kiara Celeste Contreras Feliz. Matricula: Sistema Operativo III. 5- Creación de usuarios y grupos

Usuarios, Grupos y Permisos en GNU/Linux

CIMA. MANUAL DE USUARIO

Práctica 3 de Redes de Área Local Cliente y Servidor de ficheros concurrente

Procesos, hilos y Recursos

INSTITUTO TECNOLÓGICO DE SALINA CRUZ Redes de Computadora Semestre enero junio 2015 Reporte de prácticas

Fundamentos de Computación para Científicos

Ficheros Electrónicos

Introducción a Linux. II.


Y añado también los 2 profesores al grupo de profesores mediante el comando:

UNIDAD DIDACTICA 16 USUARIOS SAMBA EN UN CONTROLADOR DE DOMINIO LINUX SERVER

Práctica de laboratorio Balanceo de cargas con costos desiguales con el protocolo IGRP

MultiBase y Cosmos. Particularidades sobre la instalación del motor de base de datos en modo cliente servidor. BASE 100, S.A.

I NTRODUCCIÓN 1. ORDENADOR E INFORMÁTICA

Nombre: Francis Ariel Jiménez Zapata. Matricula: Tema: Trabajando con Windows Server Materia: Sistema Operativo II.

Centro de Capacitación en Informática

SISTEMA CABILDO MANUAL DE INSTALACIÓN CLIENTE ERP CABILDO LA SOLUCIÓN TECNOLÓGICA MÁS COMPLETA E INTEGRAL PARA GOBIERNOS LOCALES

Práctica de laboratorio Configuración del enrutamiento EIGRP

Facultad de Ingeniería Universidad de Buenos Aires Sistemas Operativos Lic. Ing. Osvaldo Clúa Lic. Adrián Muccio.

Capítulo 2. Cuestiones previas

Tema 8 Procesos. * Definición informal: un proceso es un programa en ejecución

Agustiniano Ciudad Salitre School Computer Science Support Guide Second grade First term

ClowdsStoragePlugin Documentation

PRACTICA NO.4: HOW TO INSTALL NFS

Instantáneas en VirtualBox

Soporte Técnico Prof. Héctor Herrera. Instalando Fedora 17 en la misma máquina virtual.

Sistemas Operativos - Intro

( Segunda Parte ) 9 de Octubre de Versión 1.0

Oficina Online. Manual del administrador

Diseño y Administración de Redes de Computadoras

Creación de un DNS simple

PHP: HACKING, DEBUGGING

Como crear usuarios y grupos, añadirles permisos.

Parallel Virtual File System (PVFS)

Memoria compartida y semáforos r/w. La página del manual que podría servir para describir estas funciones es la siguiente:

Administrador de Proyectos Seis Sigma

Aplicación para la gestión de información de evaluadores.

SGF: Documentación de Referencia. Agrupar Órdenes de Pago. Versión [3.0]

Práctica de laboratorio Balanceo de cargas entre varias rutas

Bienvenido al sistema de Curriculum Digital CVDigital

Base de datos relacional

Lunes a Viernes de 9 a 18 Hs. (011)

Problema 1 (3 puntos)

DIPLOMADO EN SEGURIDAD INFORMATICA

SILLABUS CURSO : LINUX

1 HILOS (THREADS) EN JAVA

Shell de Unix ProgPLN

Afinamiento del Sistema

Tema 1: Introducción a los S.O. Ejercicios de Planificiación de Procesos

Tomás P. de Miguel Dpto. Ingeniería de Sistemas Telemáticos. dit UPM

Facultad de Ingeniería Universidad de Buenos Aires Sistemas Operativos Lic. Ing. Osvaldo Clúa Lic. Adrián Muccio.

Navegación en SAP ECC. Junio 2012

Transcripción:

Gestión de Procesos en GNU/Linux 2013 Ing. Emiliano Marini www.linuxito.com

Objetivo Analizar técnicas y herramientas para gestionar procesos en GNU/Linux: Listar procesos en ejecución Obtener información de procesos Iniciar y detener procesos Determinar y alterar la prioridad de ejecución de procesos Gestionar procesos en segundo plano

Procesos Un proceso es uno de los conceptos fundamentales más importante de los sistemas operativos GNU/Linux. Un proceso es una instancia de un programa en ejecución.

Crear procesos Cómo crear un proceso? Iniciar una sesión: man login Ejecutar un programa: mkdir /tmp/prueba cd /tmp/prueba touch doc.txt nano doc.txt

Identificadores de un proceso Process ID (PID): Identificador único. User ID (UID) y Group ID (GID): Usuario y grupo al que el proceso pertenece: UID y GID reales (heredados del padre) UID y GID efectivos (los procesos con UID efectivo igual a 0 son privilegiados ya que se ejecutan como superusuario) Parent Process ID (PPID): PID del proceso padre.

Listar procesos El comando ps muestra un snapshot de los procesos actuales: man ps ps ps u ps l ps aux ps U root u root u

ps Utilizando ps se puede obtener información relacionada a los procesos, por ejemplo: Identificadores (USER, PID, UID, GID, PPID) Hora de inicio (START) % de uso de memoria (%MEM) y CPU (%CPU) Tiempo de CPU acumulado (TIME) Estado (STAT) Terminal asociada (TTY) Comando (CMD/COMMAND)

Estado de procesos D R S T X Z Uninterruptible sleep (usually IO) Running or runnable (on run queue) Interruptible sleep (waiting for an event to complete) Stopped, either by a job control signal or because it is being traced Dead (should never be seen) Defunct ("zombie") process, terminated but not reaped by its parent

Estado de procesos Información adicional < High-priority (not nice to other users) N Low-priority (nice to other users) L Has pages locked into memory (for real-time and custom IO) s Is a session leader l Is multi-threaded (using CLONE_THREAD, like NPTL pthreads do) + Is in the foreground process group

El proceso init En Linux cada proceso tiene un proceso padre. init es el primer proceso que crea el kernel Linux cuando inicia el sistema (boot) Todos los procesos son hijos de init (de forma directa o indirecta). El proceso init no puede ser matado (kill), excepto cuando se apaga el sistema. El proceso init siempre tiene el PID = 1.

Árbol de procesos Es posible visualizar la jerarquía de procesos en forma de árbol a partir de init (PID = 1): pstree ps jf ps axjf ps ejh Si se especifica un PID, el árbol se inicia desde tal proceso. Si se especifica un usuario válido se mostrará la jerarquía de todos los procesos del mismo.

Demonios (daemons) En un momento determinado pueden existir en el sistema procesos invocados por el usuario actual, invocados por otros usuarios, o invocados por el sistema operativo (daemons). Los demonios son procesos que necesitan ejecutarse en segundo plano (background) por largos períodos de tiempo y no requieren una terminal que los controle (TTY). man 4 tty No interactúan directamente con los usuarios, sino en forma de servicio.

Señales Mensajes que se envían a un proceso para notificar eventos importantes. Por su naturaleza, los procesos son interrumpidos y forzados a manejarlas inmediatamente. Cada señal se identifica con un número entero al igual que un nombre simbólico: kill l man 7 signal

Terminar procesos El comando kill se utiliza para enviar señales a procesos. Por defecto envía la señal TERM (Termination Signal). Cómo matar un proceso? Enviar SIGTERM: kill 15 [pid] Si no responde, enviar SIGKILL: kill 9 [pid]

[off-topic] Everything is a file "Everything is a file" describes one of the defining features of Unix, and its derivatives, that a wide range of input/output resources such as documents, directories, hard-drives, modems, keyboards, printers and even some inter-process and network communications are simple streams of bytes exposed through the filesystem name space. The same set of tools, utilities and APIs can be used on a wide range of resources. When a file is opened a file descriptor is created. The file path becoming the addressing system and the file descriptor being the byte stream I/O interface.

[off-topic] Everything is a file A range of pseudo and virtual filesystems exists which exposes information about processes and other system information in a hierarchical file-like structure. An example of this purely virtual filesystem is under /proc that exposes many system properties as files. All of these "files" have standard Unix file attributes such as an owner and access permissions, and can be queried by the same classic Unix tools and filters.

Destripar procesos El pseudo sistema de archivos proc se utiliza como interfase a las estructuras de datos del kernel. Generalmente es montado en /proc. En su mayor parte es de sólo lectura, pero algunos archivos permiten modificar variables del kernel. Existe un subdirectorio numérico por cada proceso, cuyo nombre coincide con el PID de los mismos.

/proc man proc ls l /proc ls l /proc/[pid] (cat /proc/[pid]/cmdline; echo) tr '\0' ' ' ls l /proc/[pid]/cwd cd /proc/[pid]/cwd; pwd (cat /proc/[pid]/environ; echo) tr '\0' '\n' ls l /proc/[pid]/exe ls l /proc/[pid]/fd

Experimento: manipular la entrada estándar de otro proceso Ejecutar el editor de texto vi : touch /tmp/prueba/doc2.txt vi /tmp/prueba/doc2.txt [INSERT] Desde otra terminal inyectar texto: ps u echo hola >> /proc/[pid]/fd/0

Más /proc cat /proc/[pid]/limits cat /proc/[pid]/maps cat /proc/[pid]/mountinfo ls l /proc/[pid]/root cat /proc/[pid]/smaps cat /proc/[pid]/stat cat /proc/[pid]/statm cat /proc/[pid]/status cat /proc/[pid]/task Qué pasa con el directorio /proc/[pid] cuando matamos el proceso?

Multiprogramación Linux (como la mayoría de sistemas operativos modernos) puede ejecutar múltiples procesos compartiendo CPU, memoria y otros recursos entre ellos. top htop

Tiempo compartido En general existen más procesos que CPU. Es necesario compartir estos recursos de CPU limitados entre los procesos que compiten por ellos. Esto se hace seleccionando un proceso para ejecución y dejándolo ejecutar por un periodo o hasta que necesite esperar algún evento (por ejemplo E/S).

Prioridad de ejecución Para garantizar que procesos importantes no se queden sin CPU, la selección se efectúa de acuerdo a una prioridad. La columna NI en la salida del comando top indica la prioridad de ejecución o nice. Esta prioridad oscila desde -20 (mayor prioridad) hasta 19 (menor prioridad). man nice ps o pid,ni,comm,args ps l

Alterar la prioridad de ejecución Iniciar un proceso con baja prioridad: nice n 19 grep Ri net / Modificar la prioridad de un proceso: grep Ri net / ps o pid,ni,comm,args renice n 19 p [pid] ps o pid,ni,comm,args

Procesos en segundo plano En Linux podemos iniciar procesos en primer plano (foreground) o en segundo plano (background). Un proceso iniciado en foreground monopoliza la terminal e impide iniciar más procesos desde la misma. Un proceso en background, una vez iniciado deja de monopolizar la terminal, y devuelve el control al usuario (prompt).

Iniciar procesos en background Es posible iniciar procesos en background utilizando el caracter ampersand: & Es posible detener procesos utilizando: Ctrl+Z A cada proceso en background se le asigna un identificador numérico. man jobs man bg man fg

Alternar foreground entre procesos top [Ctrl+Z] ping 8.8.8.8 > /dev/null & jobs tail f /var/log/dmesg > /dev/null & jobs ping 8.8.4.4 > /dev/zero [Ctrl+Z] jobs bg 4 jobs fg 3 [Ctrl+Z] jobs l fg ps

Más herramientas... Listar procesos: pgrep, atop Enviar señales: killall, pkill, skill Esperar procesos: wait Medir procesos: time Inmortalizar procesos: nohup, disown

Links de interés Curso de Introducción a GNU/Linux http://www.ant.org.ar/cursos/curso_intro/book1.html explainshell.com http://explainshell.com/ The Linux Documentation Project - create and distribute a canonical set of high quality free GNU/Linux documentation : Introduction to Linux http://tldp.org/ldp/intro-linux/html/intro-linux.html Bash Guide for Beginners http://tldp.org/ldp/bash-beginners-guide/html/bash-beginners-guide.html Advanced Bash-Scripting Guide http://tldp.org/ldp/abs/html/abs-guide.html GNU/Linux Command-Line Tools Summary http://tldp.org/ldp/gnu-linux-tools-summary/html/gnu-linux-tools-summary.html Y más... http://tldp.org/guides.html

Referencias An overview of Linux processes - [https://www.ibm.com/developerworks/community/blogs/58e72888-6340-46ac-b488- d31aa4058e9c/entry/an_overview_of_linux_processes21] Parent process - [http://en.wikipedia.org/wiki/parent_process] Linux Filesystem Hierarchy - 1.14. /proc - [http://www.tldp.org/ldp/linux- Filesystem-Hierarchy/html/proc.html] Everything is a file - [http://en.wikipedia.org/wiki/everything_is_a_file] Prioridades de ejecución de procesos - [http://www.ibm.com/developerworks/ssa/linux/library/l-lpic1-v3-103-6/] Introduction To Unix Signals Programming - [http://titania.ctie.monash.edu.au/signals/]