Subsistema de Administración de Procesos en GNU/Linux.

Slides:



Advertisements
Presentaciones similares
Modelo de procesos de dos estados
Advertisements

Base de la biblioteca de threads a nivel usuario del proyecto SODIUM.
Tareas en Linux · TASK_RUNNING (0): Indica que el proceso en cuestión se está ejecutando o listo para ejecutarse. En este segundo caso, el proceso dispone.
SISTEMAS OPERATIVOS UNIDAD 1..
Llamadas al Sistema EXIT y WAIT
Multiprogramación Procesos Cecilia Hernández
INTEL CONFIDENTIAL Metodología de programación paralela Intel Software College.
Ing Florencia Ferrigno Tecnicas Digitales 3
Hilos - Lightweight process - Procesos ligeros
Profesor: Rodrigo Sanhueza Figueroa
ICC243 Sistemas Operativos P03: Introducción: Conceptos Prof. Jonathan Makuc.
Hebras Cecilia Hernández. Qué es un proceso? Consiste Espacio de direccionamiento Código a ejecutar Datos estáticos y dinámicos Pila o stack CPU: PC,
Hebras, SMP, y Microkernels
Gestión de procesos Sistemas Operativos Edwin Morales
Gestión de Procesos.
1 Descripción y control de procesos Capítulo 3. 2 Requerimientos de un SO relacionados con procesos Ejecutar concurrentemente múltiples procesos para.
Teoría de Sistemas Operativos Procesos Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
Clasificación y estructura. Alejandra Rivero Esteban
DEFINICION  Las bases de datos son una colección organizada de información dividida en campos los cuales nos proporcionan datos detallados e individuales.
FLOR ALBA ACEVEDO COD JENNIFFER TATIANA TORRES COD
Unidad 2 – Gestión de Procesos
Por Luis Esteban Monsalve Martínez
Hilos Capítulo 5 Silberschatz Galvin. Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered.
UTFSM - Sistemas Operativos
Programación de Clientes Especialidad en Base de Datos.
Desarrollador Profesional de Juegos Programación III Unidad II Hilos de ejecución Threads.
Threads Introducción Modelos Multi-Threading Problemas con Threads Pthreads Threads en Solaris 2 Threads en Windows 2000 Threads en Linux Threads en Java.
Applications Development I 6.1 Foro Tomas Anzalotta Alvarado.
Subsistema de Planificación de Procesos en GNU/Linux.
Microkernels - Introducción Sistemas Operativos 2 – Usac 2009.
Sistemas Operativos Unidad 8 Señales y funciones de tiempo.
PROGRAMACIÓN ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
Compartir carpetas, Crear Cuotas. Existen varias maneras de compartir carpetas Botón secundario sobre una carpeta, propiedades y en compartir. Botón secundario.
Sistemas operativos Linux
Organización de computadoras
Microprocesador Estructura interna.
Descripcion y control de procesos
Procesos Concurrentes
Jornadas técnicas del GUL
ADMINISTRACíON DE LA MEMORIA EN SISTEMAS RECIENTES
Universidad Abierta Interamericana Ingeniería en Sistemas Informáticos
AGENDA Diario / Recordatorio: Prueba-Dictado #2; próximo lunes
Pipelining Introducción.
PROCESOS COMENZAR.
DISPOSITIVOS DE E/S IU Colegio Mayor del Cauca Sistemas operativos Popayán, mayo de 2015.
Rivas Hernández Elsa Mariana Suarez Rosas Eduardo.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS.
Tema: Componentes lógicos de un ordenador. Mediante el sistema de numeración binario, es decir, usando los dígitos 0 y 1. Lo único que transmite,
EJECUCION PARALELA THREADS Y FIBERS
ESTRUCTURA DE SISTEMAS OPERATIVOS Carbajal Rojas karla.
NATURALEZA DE LOS DATOS Valores Numéricos Son los valores que se pueden hacer cálculos aritméticosritméticos Tipos de valores Entero Real Cadena ( “ h”
Juliana Carmona Esteban Cano
El procesador Datapath y control.
Núcleo Lic. Gonzalo Pastor.
SISTEMAS OPERATIVOS JOSE ANGEL MORENO B. Ingeniero de Sistemas TP # Copnia Universidad Incca de Colombia CORPORACI Ó N UNIVERSITARIA REMINGTON.
Procesos Lic. Gonzalo Pastor.
Estructura de los sistemas operativos
UNIVERSIDAD PRIVADA SAN JUAN BAUTISTA FILIAL CHINCHA ESCUELA PROFESIONAL DE INGENIERÍA DE COMPUTACIÓN Y SISTEMAS Por: Nestares Torres Luis Jesús Enrique.
Estructura de Sistemas Operativos
SISTEMAS OPERATIVOS En el mundo de la informática se denomina sistema operativo al programa, o conjunto de ellos, que gestiona los recursos físicos de.
Estructura de los Sistemas Operativos
SISTEMA OPERATIVO Un sistema operativo es un programa o conjunto de programas de un sistema informático que gestiona los recursos de Hardware y provee.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS. Estos sistemas no tienen una estructura definida, sino que son escritos como una colección de procedimientos donde.
Conjunto de programas contenidos en un núcleo o kernel que efectúan la gestión de los procesos básicos de un Sistema informático, y permite la normal.
Estructura de los Sistemas Operativos
SISTEMAS OPERATIVOS Estudiante: Rojas De la Cruz Jesus Manuel. Ciclo: VI. Turno: Noche.
Hilos de Procesamiento. Hilos Concepto Beneficios Hilos a nivel kérnel y a nivel usuario Modelos multihilos Hilos de Solaris 2 Hilos de Java.
ARQUITECTURA DE UN MICROPROCESADOR. ESTRUCTURA BÁSICA DE UN SISTEMA MICROPROGRAMABLE A. Hardware CPU (chip microprocesador): es un circuito integrado.
Transcripción de la presentación:

Subsistema de Administración de Procesos en GNU/Linux

Agenda Generalidades. Descriptor de Procesos. Creación de Procesos. Implementación de Hebras. Finalización de Procesos.

Generalidades Proceso. “ Es un código de un programa que se encuentra en ejecución por un determinado tiempo, el cual utiliza una serie de recursos del sistema”. Recursos. –Archivos abiertos & señales. –Datos internos del Kernel. –Estado del procesador. –Espacio de direcciones. –Hebras de ejecución. –Sección de datos (V. globales). Objetos activos –Procesos. –Hebras.

Generalidades Hebra. –Unico contador de programa. –Stack de procesos. –Registros de procesador. –Planificación individual. Visiones. –Sistemas Tradicionales : Cada proceso consiste en una hebra. –Sistemas Modernos: Multihebra, más de una hebra en común. GNU/Linux. –Unica implementación de hebras. –NO diferencia entre procesos y hebras (proceso especial).

Generalidades Procesos proveen dos virtualizaciones. –Memoria Virtual. –Procesamiento Virtualizado. Ciclo de vida del proceso. –Comienza con la creación. –Termina con la finalización del proceso y la liberación de los recursos.

Descriptor de Procesos Estructura Task Descriptor de Procesos. –Contiene toda la información acerca de un proceso. –Definido en.

Descriptor de Procesos Almacenamiento del descriptor. Indentificación de procesos. –Process Identification Descriptor (PID). –PID, valor númerico (int). –Representando por tipo pid_t. –Valor máximo por defecto, ( short int). Valor máximo. –Limita el numéro máximo de procesos que pueda manejar el sistema. –Ambiente de Escritorio: valor defecto apropiado. –Ambiente de Servidor: aumentar valor. –Personalizar valor en /proc/sys/kernel/pid_max

Descriptor de Procesos Estado de los Procesos TASK_RUNNING –Proceso en ejecución. Cualquier proceso que esta ejecutandose. Un proceso en espera en runqueue. Válido para procesos en user-space. TASK_INTERRUPTIBLE –Proceso dormido (bloqueado). A la espera de una condición. Si se cumple la condición cambia estado a TASK_RUNNING. Se despierta y se ejecuta.

Descriptor de Procesos Estado de los Procesos TASK_UNINTERRUPTIBLE –Proceso dormido (bloqueado), sometido solo al cumplimiento de una condición. Espera sin interrupción. No recibe señales. TASK_ZOMBIE –Proceso terminado. A la espera que el padre solicite información del estado de termino. TASK_STOPPED –Ejecución de proceso detenida. Ocurre si recibe señales SIGSTOP, SIGTSTP, SIGTTIN, SIGTTOU.

Descriptor de Procesos Estado de los Procesos

Descriptor de Procesos Manipulación de los Estados Kernel requiere cambiar los estados de los procesos. Mecanismo de Manipulación. –Modificar estado. set_task_state(task,state); task->state =state; –Obtener estado. set_current_state(state); state=task->state;

Descriptor de Procesos Contexto de los procesos Ejecución de código de programa. –Leído desde un archivo binario. –Ejecutado en el espacio de direcciones. –Normalmente corre en user-space. –Si ejecuta system calls  kernel-space. –Se ejecuta el proceso. –Sale del kernel-space. –Resume su ejecución en el user-space.

Descriptor de Procesos A rbol de familia de procesos init process –Todos los procesos desciende de él. –PID es 1. –Se inicia en el último paso de la etapa de boot. –Lee los system initscripts. –Ejecuta el resto de los programas faltantes, para completar el boot.

Descriptor de Procesos A rbol de familia de procesos Procesos. –Tienen un solo padre. –Tienen cero o más hijos. –Todos los procesos que son hijos del mismo padre se llaman “siblings”. –La relación entre procesos se almacena en el descriptor de procesos.

Creación de Procesos En sistemas UNIX, se crean con dos pasos. –fork(); –exec(); fork(); –Crea una copia del proceso actual. exec(); –Carga el proceso en el espacio de direcciones. –Comienza a ejecutarlo.

Creación de Procesos copy-on-write Tradicional fork(); –Ineficiente. –Copia excesiva de datos. –Mucha información va parar a la basura. Linux fork(); –Se implementa con la system call clone(); –fork(), vfork(), __clone()  clone(); –fork(); clone(SIGCHLD, 0); –vfork(); clone(CLONE_VFORK | CLONE_VM | SIGCHLD, 0);

Implementación de Hebras Definición Hebras. –Abstracción de programación moderna. –Compartir espacio de direcciones. –Compartir archivos abiertos.. –Compartir otros recursos. –Permite programación concurrente. –Paralelismo.

Implementación de Hebras Approach Implementación como procesos estándar. Se ve como un proceso que comparte recursos con otros procesos. Utiliza la misma estructura de datos, task_struct.

Implementación de Hebras Creación Se crean como procesos normales. –clone(); Se pasan FLAGs. –clone(CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND, 0); –Comparte: espacio de dirección, recursos del sistema de archivos, descriptores de archivos y manipuladores de señales. –En otras palabras los flags los hacen ver como hebras.

Implementación de Hebras clone() Flags CLONE_FILES: Parent and child share open files. CLONE_FS: Parent and child share filesystem information. CLONE_IDLETASK: Set PID to zero (used only by the idle tasks). CLONE_NEWNS: Create a new namespace for the child. CLONE_PARENT: Child is to have same parent as its parent. CLONE_PTRACE: Continue tracing child.

Implementación de Hebras clone() Flags CLONE_SETTID: Write the TID back to user-space. CLONE_SETTLS: Create a new TLS for the child. CLONE_SIGHAND: Parent and child share signal handlers and blocked signals. CLONE_SYSVSEM: Parent and child share System V SEM_UNDO semantics. CLONE_THREAD: Parent and child are in the same thread group. CLONE_VFORK: vfork() was used and the parent will sleep until the child wakes it. CLONE_UNTRACED: Do not let the tracing process force

Implementación de Hebras clone() Flags CLONE_STOP: Start process in the TASK_STOPPED state. CLONE_SETTLS: Create a new TLS (thread-local storage) for the child. CLONE_CHILD_CLEARTID: Clear the TID in the child. CLONE_CHILD_SETTID: Set the TID in the child. CLONE_PARENT_SETTID: Set the TID in the parent. CLONE_VM: Parent and child share address space.

Implementación de Hebras Kernel Threads Generar gran rendimiento en operaciones de background. Ejecutan en kernel-space. No necesitan espacio de direcciones. Son planificables e interrumpibles. Creación vía clone(); El flag especial CLONE_KERNEL.

Finalización de Procesos System call exit(); –Voluntariamente. Proceso esta listo para terminar. Retorna a la función principal (subrutina). –Involuntariamente. Recibe una señal. –Llama a do_exit();

Finalización de Procesos do_exit() –Definida en kernel/exit.c –Libera todos los recursos utilizados por el proceso. –Informa al proceso padre que ha finalizado. –Proceso queda en TASK_ZOMBIE.

Finalización de Procesos Eliminación del descriptor Proceso padre obtiene información. Remueve el proceso de la lista de tareas. Deallocate el descriptor de procesos. Se elimina del kernel stack.

Preguntas y Respuestas