UT06 03 Procesos en Linux

Documentos relacionados
Gestión de procesos en Linux

Programación Aplicada

Linux 101 Gestión de Procesos

Procesos (Sistemas informáticos multiusuario y en red) ÍNDICE

Curso Operador Linux

Cluster Rocks SOL Manual de Usuario

Procesos en UNIX. LABORATORIO DE SISTEMAS DE OPERACIÓN I (ci 3825) Prof. Yudith Cardinale

Trabajo con ficheros de texto

Procesos y Threads Procesos y Threads. Concurrencia Concurrencia Ventajas Ventajas. Rendimiento Rendimiento (paralelismo) (paralelismo)

Administración de Redes

BUAP FACULTAD DE CIENCIAS DE LA COMPUTACIÓN SISTEMAS OPERATIVOS 2 PRACTICA 2 JAIME MORALES FLORES

Tema 12: El sistema operativo y los procesos

TP N 8 Control de Procesos

Resumen de comandos usuales de Unix y uso básico del shell bash

TEMA 8: ADMINISTRACIÓN DE PROCESOS EN LINUX

Administración del Sistema

Introducción a los Sistemas Operativos

Curso de Administración GNU/Linux. Nivel I

Administración básica del sistema

Universisdad de Los Andes Facultad de Ingeniería Escuela de Sistemas

Introducción al Sistema Operativo Unix

Participantes: Avila Aida Betancourt Sioly Briceño Susana Rojas Alejandro

This obra by Sergio Belkin is licensed under a Creative Commons Atribución-CompartirDerivadasIgual 2.5 Argentina License. Procesos.

Definición de Proceso

Facultad de Ingeniería Industrial y de Sistemas v1.1 MA781U CONCEPTOS INICIALES CASOS DE USO

Introducción a Linux. IV.

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

UNIX. Curso de Modelado Molecular I INTRODUCCIÓN

Procesos Definición y Estados

EJEMPLO DE MANIPULACIÓN DE TAREAS

LABORATORIO DE AMPLIACIÓN DE SISTEMAS OPERATIVOS MINIX SOBRE VIRTUALBOX

ADMINISTRACIÓN DE PROCESOS

Afinamiento del Sistema

Tema 2. Administración de procesos

Facultad de Ingeniería Industrial y de Sistemas v2.0 MA781U PLANIFICACION DE PROCESOS

El scheduler O(1) de Linux

Taller de Sistemas Operativos. Procesos 2012

PRÁCTICAS DE LINUX. procesador. Objetivo Educacional. 2.1 Concepto de proceso. 2.2 Estados y transiciones de los procesos

Prácticas de Sistemas operativos

Introducción a Linux. El regreso a los años 70: la consola (I)

SISTEMAS OPERATIVOS INTRODUCCIÓN. Pedro de Miguel Anasagast

Introducción a los Sistemas Operativos

SISTEMAS OPERATIVOS II Tercer curso Ingeniería Informática. Curso

Sistemas operativos: una visión aplicada. Capítulo 3 Procesos

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

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

SISTEMAS. Ciclo 2014 Plan 2012

1. Sistema Operativo Unix

Tema 7:Línea de ordenes del sistema operativo.

UNIDAD DIDACTICA 7 GESTIÓN DE PROCESOS

TAREA 1. INTRODUCCIÓN A LOS SISTEMAS OPERATIVOS.

Tema 1: Introducción a los Sistemas Operativos

Comandos Básicos de Linux

Práctica 1. Introducción al sistema operativo Linux. Procesos.

SISTEMAS OPERATIVOS: PROCESOS. Planificación de procesos

Herramientas Informáticas I Software: Sistemas Operativos

Hilos Secciones Stallings:

Caravel OS/400 Framework

Sistemas Operativos Procesos Descripción y Control

SISTEMAS OPERATIVOS. Ing. Raúl Alberto Rojas Reátegui

Tema: Introducción a los comandos Linux

Introducción a los Sistemas Operativos

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

Sistemas Operativos. Procesos

Sistemas Operativos Grado Ingeniera Informática UDC. Enero 2016 Sólo puede usar lápiz, bolígrafo y calculadora. Tiempo máximo para todo el examen: 3h

100 ejercicios básicos sobre Linux

Arranque de Sistemas tipo UNIX


LINUX fork() execv() wait() exit() kill signal pipe creat close open read write fstat Chmod getuid, setuid, getgid setgid

Planificador de Linux (Scheduler)

SISTEMA MULTIUSUARIO

Sistemas Operativos. Un sistema operativo es un conjunto de programas de computadora diseñados especialmente para cubrir los siguientes objetivos:

Preguntas de autoevaluación tema 3

Curso ICA de: LINUX BÁSICO

SISTEMAS OPERATIVOS: Lección 4: Planificación de Procesos

DISPONE DE 50 MINUTOS PARA REALIZAR EL EJERCICIO

Procesos. Gustavo Romero. 25 de octubre de Arquitectura y Tecnología de Computadores. Definición Control Estado IPC

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

Administración de Servidores y Redes LINUX

Linux: Tour Rápido. Tema 2 Laboratorio de sistemas operativos UTFSM-JMC

Cuestionario 1-Parte 1

Tema 3. Descripción y Control de Procesos. Stallings:

Mundo Azul.

RESUMEN M1-UF1. UF0852: Instal lació i actualització de sistemes operatius.

Arquitecturas cliente/servidor

Comandos Básicos Jornadas Marzo 2009 Universidad Carlos III de Madrid Tania Pérez Asensio

Introducción a los Sistemas Operativos S.O.

Unidad 2: Gestión de Procesos

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

1. Gestión de la seguridad: usuarios, grupos, permisos sobre directorios y ficheros

El sistema operativo Linux

FORMATO PARA GUÍA DE ESTUDIO DIRIGIDA

SISTEMA OPEATIVO DEFINICIÓN

Sistemas Operativos - Manejador de procesos - Fundamentos

Ejecución de un solo programa a la vez. Batch: conjunto de programas que se ejecutan en grupo. Multiprogramación: varios programas se ejecutan a la

ISO Tema 7-B,

Transcripción:

UT06 03 Procesos en Linux Módulo: Sistemas Informáticos Qué es un proceso? Sistema de prioridades de un proceso Procesos del Sistema Estructura El comando ps Los comandos pstree, top, kill, fg, bg, nice y renice JRG-RL / IES Barajas

Qué es un proceso? Todo aquello que se está ejecutando (una instancia, un comando, una utilidad); por ejemplo el propio shell. Cuando se ejecuta un comando, el shell intenta resolver por sí mismo la ejecución, en caso de no poder, recurre a comandos externos. El comando externo ejecutado es un proceso hijo del shell Siendo el propio shell el proceso padre Cuando el proceso hijo termina, devuelve el resultado al padre Ya que Linux es multitarea, puede haber más de un proceso hijo para un proceso padre dado Un proceso hijo, que desencadena la ejecución de otro proceso, se convierte en proceso padre, siendo a su vez proceso hijo de aquél que lo lanzó. Puede haber procesos que un usuario está ejecutando Procesos que los demás usuarios están ejecutando, y Procesos que está ejecutando el sistema operativo Estos procesos se llaman daemons Procesos en Linux - JRG-RL 2

Control de procesos Se puede definir proceso como una unidad de ejecución desencadenada como consecuencia de la ejecución de una orden o un programa. CONTROL DE PRIORIDAD DE PROCESOS Supuesto un ordenador con un solo procesador, el sistema UNIX realiza una distribución temporal de la asignación de CPU entre los diferentes procesos que compiten por ejecutarse (Tiempo Compartido) en dicho procesador. Esta función la realiza el planificador de procesos (proceso 0 ó Scheduler), que además, como veremos más adelante, es el primer proceso que se ejecuta al arrancar el sistema. Esta planificación de CPU de conmutación temporal de procesos, está basada en un sistema de colas FIFO, multinivel con actualización de prioridad. Procesos en Linux - JRG-RL 3

Control de prioridad de procesos Gráficamente podríamos representarlo : Cuanto más alto sea el número de cola de un proceso menor prioridad tiene ese proceso. Los procesos lanzados por los usuarios tienen menos prioridad, su número de cola por defecto es de 10. Pero es posible modificar la prioridad de los procesos externamente (comando nice). El superusuario puede aumentar la prioridad de los procesos a costa de los demás procesos del sistema que permanecen en cola. Pero, los usuarios solo pueden decrementar la prioridad de los procesos que les pertenecen Procesos en Linux - JRG-RL 4

Control de procesos En UNIX existen dos tipos de procesos: Procesos del sistema. Son los procesos que actúan sin que el usuario los solicite. También reciben el nombre de demonios (daemon). A su vez, pueden ser de dos tipos: Procesos permanentes o de larga duración. Se crean cuando se arranca el sistema y permanecen activos hasta que se desconecta. Su función es soportar las actividades del sistema. Procesos transitorios. Nacen y mueren cuando el sistema efectúa tareas propias, independientes de los usuarios. Procesos de usuario. Son los procesos asociados a cada usuario como consecuencia de la interpretación de sus órdenes. Procesos en Linux - JRG-RL 5

Procesos del sistema Tabla de procesos Procesos en Linux - JRG-RL 6

Procesos del sistema Planificador (proceso 0: scheduler): Es el primer proceso en ejecutarse cuando se arranca la máquina. Se encarga de planificar las capacidades de tiempo compartido. Es el responsable de determinar cuál de los procesos que están en cola, listos para ser ejecutados, obtienen realmente los recursos de la máquina. También arranca los demás procesos 1 al 6. Inicializador (proceso 1: init): Se encarga de arrancar y mantener en ejecución los procesos permanentes del sistema, de acuerdo con el contenido del fichero /etc/inittab. Gestor de memoria virtual (proceso 2: vhand): Se encarga de realizar la mayor parte del trabajo administrativo del sistema referente a la gestión de la memoria en el entorno multitarea. Es el responsable de gestionar la memoria virtual de la máquina e intercambia procesos activos entre el disco y la memoria principal conforme deban ser ejecutados o aparcados temporalmente. Sched y vhand trabajan en estrecha relación y componen la parte fundamental del núcleo de UNIX (kernel). Gestores de E/S de disco (procesos 3 y 4: bdflush y bmapflush): Se encargan de gestionar los numerosos buffers (memorias intermedias) de datos en Memoria principal que aumentan la eficacia de las operaciones de E/S con disco, y que funcionan de manera similar a como lo hace un disco de RAM en otros sistemas. Procesos en Linux - JRG-RL 7

Procesos del sistema Existen además otros demonios o procesos del sistema cuya creación y mantenimiento dependen de init. Veamos a continuación algunos de ellos: Programa de inicialización del sistema (login): Este programa permite solamente lanzar un shell asociado a una cuenta o usuario. UNIX lanza el shell bash (uno por cada usuario). Programa gestionador de la línea de terminales (getty): Se encuentra situado en el subdirectorio /etc y, como se ha indicado, se encarga de gestionar las líneas de los terminales. El proceso init está continuamente enviando getty a cada uno de los terminales. En cuanto en un terminal se conecta un usuario (introduciendo su nombre y su password) se pone en marcha el proceso login. Programa planificador del sistema de impresión (lpsched): Se encarga de gestionar el spool de impresión, es decir, del subsistema de impresión, lp. Procesos en Linux - JRG-RL 8

Procesos del sistema El proceso del sistema (crond): Este proceso es el mecanismo de planificación global o externa del sistema, que actúa, por ejemplo, sobre las órdenes at y batch. Estas órdenes permiten la temporización y planificación de la ejecución de trabajos. El demonio crond se despierta una vez cada minuto, examina los ficheros de control, que se encuentran en /etc/crontab según unos sistemas o /etc/spool/cron/crontabs, según otros. En estos ficheros se almacenan los trabajos planificados mediante crontab, si encuentra algún trabajo que deba ser ejecutado en ese minuto los ejecuta y si no los hay, vuelve a dormir hasta el siguiente minuto. Existe un fichero histórico de todos los trabajos ejecutados mediante crond, es el fichero : /usr/adm/cronlog o en otros sistemas /usr/lib/cron/log. Esto sucede a partir de la versión 3.0 de UNIX. Procesos en Linux - JRG-RL 9

Procesos del sistema Hay que usar el comando crontab para instalar una lista de comandos que se ejecutarán según una planificación regular. La lista de comandos a efectuar en la planificación indicada se ha de incluir en el archivo crontab, que se instala con el comando crontab. Una vez se ha instalado el archivo crontab, mediante el mismo comando, se puede ver la lista de comandos incluidos en el archivo y cancelarla si se quiere. Antes de instalar el archivo crontab con el comando del mismo nombre, hay que crear un archivo que contenga la lista de comandos que se quiere planificar. El comando se ocupa de su colocación. Cada usuario tiene sólo un archivo crontab guardado en el directorio /usr/spool/cron/crontabs. Procesos en Linux - JRG-RL 10

Estructura de procesos Procesos en Linux - JRG-RL 11

Estructura de procesos PID: Es el número identificador del proceso. PPID: Es el número identificador del proceso padre. Las órdenes de usuario son procesos subordinados o hijos del proceso shell, correspondiente a ese usuario. UNIX asigna un identificador a cada proceso, denominado PID, en el momento de creación del mismo. Todo proceso conoce el identificador de su padre, PPID. Procesos en Linux - JRG-RL 12

ps: información n de los procesos Esta orden, muestra la información de los procesos. Este informe es solamente como una instantánea de lo que está pasando cuando ha preguntado. Una invocación subsiguiente puede dar resultados distintos. ps [-] [opciones] El informe muestra información en columnas estas son: PID El número identificador de proceso. Se van incrementando progresivamente hasta un límite, para volver a iniciarse. O bien en formato largo Procesos en Linux - JRG-RL 13

ps: información n de los procesos PPID El número identificador del proceso padre. PRI Prioridad de proceso. NI El valor del nice del proceso. Un valor positivo significa menos tiempo de CPU. SIZE El tamaño virtual de la imagen, calculado como el tamaño de código+pila+datos. RSS El tamaño del conjunto residente. El número de Kilobytes del programa que está residente en la memoria actualmente. Procesos en Linux - JRG-RL 14

ps: información n de los procesos WCHAN El número del evento del kernel por el que está esperando el proceso. STAT El estado del proceso. Dado por uno de los códigos siguientes: R Ejecutándose S Dormido D Dormido ininterrumpible. T Listo Z Zombie. Es un proceso terminado, y el superior no lo ha asumido. W El proceso no tiene páginas residentes. TTY El nombre del terminal con el cual el usuario está asociado. TIME: El tiempo de procesador que está utilizando el proceso PAGEIN El número de fallos de página que han causado que las páginas se lean desde el disco. TRS El tamaño del código residente. SWAP El número de Kilobytes de un espacio intercambiable Procesos en Linux - JRG-RL 15

ps: información n de los procesos Procesos en Linux - JRG-RL 16

ps: información n de los procesos ps -x Muestra todos los procesos, incluidos los demonios. Procesos en Linux - JRG-RL 17

ps: información n de los procesos ps -ef Información completa del proceso y del entorno. Ejemplo UID PID PPID C STIME TTY TIME CMD root 0 0 0 09:36:35? 0:00 sched root... marj 1 0 0 09:36:35? 0:02 /etc/init 7997 1 10 09:49:32 ttyp3 0:04 csh pablo 12923 11324 9 10:19:49 ttyp5 56:12 f77 -o test test.f usrdev 16725 16652 15 17:02:43 ttyp6 10:04 g04 HgO.dat anagon 17026 17012 14 17:23:12 console 0:19 vi benzene.txt Procesos en Linux - JRG-RL 18

ps: información n de los procesos ps -axl Muestra la información más completa. Si observamos los valores PID y PPID se podrá seguir la secuencia de creación de procesos hijos por parte de sus padres. Realizar el el ejercicio 1 Procesos en Linux - JRG-RL 19

ps: información n de los procesos ps -aux Para obtener una visión general de la actividad del sistema, con utilización del tiempo de CPU. Odenado por usuario Ocupación de CP y memoria ps -aux head -5 USER PID %CPU %MEM SZ RSS TTY STAT TIME COMMAND harvey 12923 74.2 22.5 223 376 p5 R 2:12 f77 -o test test.f chavez 16725 10.9 50.8 1146 1826 p6 R N 56:04 g04 HgO.dat wang 17026 3.5 1.2 354 240 co I 0:19 vi benzene.txt marj 7997 0.2 0.3 142 46 p3 S 0:04 csh Procesos en Linux - JRG-RL 20

ps: información n de los procesos Ejemplo de uso de ps aux Para obtener los 5 procesos que consumen mayor CPU, ordenados por este criterio: Procesos en Linux - JRG-RL 21

Comandos pstree y top pstree Presenta información gráfica de los procesos Realizar el el ejercicio 2 Procesos en Linux - JRG-RL 22

Comandos pstree y top top Presenta no sólo los procesos actuales, además, permanece constantemente activo y actualiza continuamente el display h para obtener ayuda q para salir s intervalo de tiempo entre displays barra espaciadora : Actualiza la información en vez de esperar al intervalo de refresco u presenta información sólo de un usuario Realizar el el ejercicio 3 Procesos en Linux - JRG-RL 23

Comandos pstree y top Ejemplo de comando top Procesos en Linux - JRG-RL 24

Finalización n de un proceso: kill Utilizado para eliminar un proceso. El comando kill sirve para enviar señales a procesos. La señal 9 (SIGKILL) siempre mata al proceso. Normalmente kill se emplea para matar procesos, de ahí su nombre. kill [-señal] procesos kill [-señal] PID Existen hasta 32 maneras de terminar con un proceso Realizar el el ejercicio 4 Procesos en Linux - JRG-RL 25

Finalización n de un proceso: kill kill l Se visualizan todas las señales que pueden enviarse con el comando kill Procesos en Linux - JRG-RL 26

Finalización n de un proceso: kill Para eliminar un proceso de forma inmediata se emplea la señal SIGKILL (señal 9), teclear: kill -9 PID Vamos a lanzar un proceso en background, que se esté ejecutando continuamente y lo mataremos con la señal SIGKILL kill -9 Ver kill de un proceso Procesos en Linux - JRG-RL 27

Procesos en Background y en Foreground Cuando se ejecuta un proceso, se ejecuta en foreground y se interactúa con él hasta que se termina. Si se quiere ejecutar un proceso en background, se debe colocar como último carácter de la línea el carácter & Realizar el el ejercicio 5 Procesos en Linux - JRG-RL 28

El comando fg Se puede mover un proceso en background a foreground, para eso utilizar el comando fg fg %[número de trabajo] Se pueden referenciar los dos últimos comandos utilizando %+ y %- Se puede referenciar un comando utilizando una parte de su nombre fg %?sl (haciendo referencia a sleep) Realizar el el ejercicio 6 Ver foreground de un proceso Procesos en Linux - JRG-RL 29

comando bg Es el opuesto a fg Con ayuda de este comando se seguirá ejecutando un proceso de forma asincrónica dentro del shell. Cada comando en segundo plano del shell puede identificarse de forma unívoca mediante un número de trabajo bg %[Número de trabajo] Las opciones son las mismas que para el comando fg Realizar el el ejercicio 7 Procesos en Linux - JRG-RL 30

Información n sobre procesos y sistema En la interfase KDE existe una utilidad para conocer la carga del sistema e información asociada a los procesos. Ejecutar ksysguard en el shell Procesos en Linux - JRG-RL 31

Cambiar las propiedades: nice y renice Un proceso UNIX tiene dos números n de prioridad asociados: Su número nice, que es la prioridad con respecto al resto de los procesos Es establecida por su propietario o por el usuario root. Aparece en la columna NI Valores de -20 (mayor incremento de prioridad) a 20; 0 por defecto. Para visualizarlo p.e. teclear ps -l Su número de prioridad de ejecución Calculada y actualizada dinámicamente por la CPU Toma en consideración factores tiempo de CPU usado recientemente, cuantos procesos se están ejecutando y sus prioridades. Aparece en la columna PRI F UID PID PPID PRI NI VSZ RSS WCHAN COMMAND 8201 371 8390 8219 1 0 3233 672 wait4... rlogin iago 8201 371 8391 8219 3 4 3487 1196 do_sig.. big_cmd 8201 0 8394 1 15-5 2134 1400 -... imp_cmd Procesos en Linux - JRG-RL 32

Cambiar las propiedades: nice y renice Las prioridades de los procesos pueden cambiarse utilizando los comandos nice y renice nice Solo se puede utilizar para lanzar un proceso, no cuando se está ejecutando. Sirve para modificar la prioridad de un proceso. nice número - - número comando Este comando da un control sobre la prioridad de una tarea respecto a otras. Si no se usa nice los procesos se ejecutan con una prioridad definida. Se puede disminuir (de forma amable como la traducción literal del comando indica ) la prioridad de un proceso con este comando de forma que los otros procesos puedan planificarse para que usen más frecuentemente la CPU. El superusuario también puede aumentar la prioridad de un proceso. Procesos en Linux - JRG-RL 33

Comando nice El nivel de prioridad lo determina el argumento número (un número más alto significa una prioridad menor). El valor predeterminado, como se ha mencionado, es 10. Si el argumento número se ha especificado, la prioridad se incrementa en esta cantidad hasta un límite de 20. Si no se especifica nada todos los procesos toman la prioridad 10. Para ver la prioridad nice de los procesos se usa la opción -l del comando ps. Hay que observar las columnas PRI y NI. Para dar a un proceso la mínima prioridad se especifica en el argumento número el 10. Sólo el superusuario puede aumentar la prioridad de un proceso. Para ello se usa un número negativo como argumento de nice. Se recuerda que cuanto más bajo sea el valor de nice más alta será la prioridad. Procesos en Linux - JRG-RL 34

Comando nice Ejemplos: nice -5 lp mis_listados & Baja la prioridad, es decir 10+5 =15 en la cola. nice -10 Esto da la mínima prioridad posible. El número de cola será 10+10=20 nice - -10 ls -lr / Sólo el superusuario. Da la máxima prioridad 10-10=0 Hay 40 niveles de prioridad: 19 (la más baja) 0 (por defecto) -20 (la más alta) Realizar el el ejercicio 8 Procesos en Linux - JRG-RL 35

Comando renice Conviene mencionar que en algunos sistemas existe un comando, renice, que permite modificar la prioridad de un proceso que ya se está ejecutando. Los sistemas Unix de Berkeley lo incorporan y también los sistema Linux system V. La sintaxis es similar a la de nice. Se utiliza cuando un proceso está ya en ejecución La utilidad emplea las mismas prioridades disponibles en nice y seguido por una de las tres opciones: -p para PIDs -g para grupos de procesos -u para un grupo asociado con un usuario Realizar el el ejercicio 9 Procesos en Linux - JRG-RL 36

Otros datos de interés Información n acerca del procesador Puede localizarse en: /proc/cpuinfo Ejemplo: linux:~ # cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 15 model : 2 model name : Intel(R) Pentium(R) 4 CPU 3.06GHz stepping : 8 cpu MHz : 3087.199 cache size : 512 KB physical id : 0 siblings : 1 fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht bogomips : 5881.85 Procesos en Linux - JRG-RL 37

Operación n en Linux : ejercicio en clase Ejercicio: UT0603 Procesos Ej01.doc Procesos en Linux - JRG-RL 38

Fin presentación Procesos en Linux - JRG-RL 39