Sistemas Operativos. Curso 2016 Procesos



Documentos relacionados
Sistemas Operativos. Procesos

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

Procesos. Procesos. Concurrencia de procesos. Qué es un proceso? Estados de un proceso. Modelo de 2 estados. (C) 2008 Mario Medina 1

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

Requerimientos principales de un sistema operativo

Unidad II: Administración de Procesos y del procesador

Sistemas Operativos. Curso 2014 Planificación

Sistemas Operativos. Curso 2015 Planificación

Procesos. Planificación del Procesador.

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

Unidad 2: Gestión de Procesos

Gestión de procesos DEFINICIONES DE PROCESOS

PRC-DTI-006 Administración de Roles de los Sistemas de Información de la DTI Procedimiento Dirección de TI - COSEVI

Procesos. Bibliografía. Threads y procesos. Definiciones

PROGRAMACION CONCURRENTE. I.2 Recursos para la concurrencia.

Procesos, hilos y Recursos

SISTEMAS OPERATIVOS AVANZADOS

1 (2 5 puntos) Responda con brevedad y precisión a las siguientes preguntas:

Examen Febrero de 2012

Manual de Procedimientos

Tema 2. Procesos. 1. Concepto de proceso

Sistemas Operativos Avanzados

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

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

FUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS. CNCA Abril 2013

Ambiente Virtual de Comercio Electrónico B2B para la Comunidad Virtual de Negocios del departamento del Cauca

Sistemas de Operación II

SIMM: TEORÍA DE LOS S.O. I.E.S. JUAN DE LA CIERVA CURSO 2007/2008

3.- Procesos. Concepto de Proceso. Despacho (calendarización) de Procesos. Operaciones en Procesos. Procesos en cooperación

Fundamentos de Computación para Científicos

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 5. Sistemas de Bases de Datos. frente a Sistemas de Ficheros

CÓMO TRABAJA TU SISTEMA OPERATIVO?

Gestión de Permisos. Documento de Construcción. Copyright 2014 Bizagi

Hilos, comunicación y competencia entre procesos. Dr. Alonso Ramírez Manzanares 2-Sep-2010

Práctico de Procesos, Hilos y Deadlock

Funciones del Administrador de Base de Datos. Ing. Anaylen López, MSc Base de Datos II

1. Sistema Operativo Unix

Martes 1 de julio de 2014 DIARIO OFICIAL (Primera Sección) 98

INTRODUCCIÓN. Que es un sistema operativo? - Es un programa. - Funciona como intermediario entre el usuario y los programas y el hardware

GESTIÓN ACADÉMICA GUÍA DIDÁCTICA HACIA LA EXCELENCIA COMPROMISO DE TODOS! Nombres y Apellidos del Estudiante:

BANCOS. Manejo de Bancos. Como crear una ficha de Banco? Como modificar los datos de una ficha de Banco? Como borrar una ficha de Banco?

CAPITULO V PLANIFICACIÓN Y GESTIÓN DEL PROYECTO

SISTEMA ETAP en línea Estándares Tecnológicos para la Administración Pública

MANTENIMIENTO Y SOPORTE

TEMA 7: DIAGRAMAS EN UML

SAVIO EN TUS MANOS 1

UNIDAD EJECUTORA DE CONSERVACION VIAL MANUAL DEL USUARIO DEL SISTEMA INTEGRAL DE CONTROL DE PROYECTOS

Conceptos de redes. LAN (Local Area Network) WAN (Wide Area Network)

Señal de petición de Interrupción

Actualización de versión a Bizagi 10.x

Examen de Arquitectura de Computadores

NORMA ISO DE RIESGOS CORPORATIVOS

TALLER No. 1 Capitulo 1: Conceptos Básicos de Bases de datos

Modelo de actualización y soporte

Novell Vibe 4.0. Marzo de Inicio rápido. Inicio de Novell Vibe. Introducción a la interfaz de Novell Vibe y sus funciones

UNIVERSIDAD DE ORIENTE FACULTAD DE ICIENCIAS ECONOMICAS LAS REDES I. Licda. Consuelo Eleticia Sandoval

Framework de Simulación de Planificación de Procesos. por Emmanuel Luján

UNIDAD DIDACTICA 1: SISTEMAS GESTORES DE BASES DE DATOS

Computación de Alta Performance Curso 2009 TOLERANCIA A FALLOS COMPUTACIÓN DE ALTA PERFORMANCE 2009 TOLERANCIA A FALLOS

Capítulo 1 Introducción a la Computación

GESTIÓN Y CONTROL DEL DESARROLLO E IMPLANTACIÓN DE APLICACIONES

PRC-DTI-007 Administración de Cuentas de Usuario Procedimiento Dirección de TI - COSEVI

MANUAL TÉCNICO DE IMPLEMENTACIÓN PROYECTO SOCIAL COMPUESCUELA. Elaborado por: Julián A. Hernández M.

ADMINISTRACIÓN DE BASES DE DATOS DISTRIBUIDAS

6 Sistemas de Archivos

GUÍA DE SEGURIDAD DE LA INFORMACIÓN GUÍA GOBIERNO CORPORATIVO PARA EMPRESAS SEP

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

PLANES DE EMPRESA ICEX CONSOLIDA. Manual de Usuario

Unidad VI: Supervisión y Revisión del proyecto

1 Vista de Casos de Uso

Introducción a la Computación

e-conocimiento Manual de uso

SISTEMA DE BECAS AL EXTERIOR

Dirección IP - Características

Tema 8: Gestión de la Configuración

Capitulo V Administración de memoria

MANUAL DE USUARIO SICVECA DESKTOP. Código: R-02-I-IF-312 Versión: de 19 SICVECA DESKTOP. Manual de Usuario Versión 1.0.

Curso: FT433 - Introducción a la virtualización con VirtualBox

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL

Guía del usuario de DocuShare Agent

Gestión Documental con Microsoft Office SharePoint Server 2007 (MOSS) Ignacio López - Ingeniero en Informática Software Architect en Alhambra-Eidos

Capítulo 2. Sistemas Operativos. Elementos, estructura y funciones generales.

Diagramas del UML. A continuación se describirán los diagramas más comunes del UML y los conceptos que representan: Diagrama de Clases

El soporte del sistema operativo. Hace que un computador sea más fácil de usar. Permite que los recursos del computador se aprovechen mejor.

1. Generalidades. M. en C. Mario Farias-Elinos

SISTEMA CONTABLE BÁSICO PARA USO LIBRE EN PLATAFORMA WEB


SISTEMA InfoSGA Manual de Actualización Mensajeros Radio Worldwide C.A Código Postal 1060

Escuela Universitaria Politécnica Grado en Ingeniería Informática Fundamentos de Programación II ENUNCIADO DE PRÁCTICAS CONVOCATORIA DE SEPTIEMBRE

Área Académica: Escuela Superior de Tlahuelilpan. Tema: Los Sistemas Operativos y sus Procesos

Diferencias entre nivel 2 y nivel 3 y una estrategia de implantación

Cada computadora conectada a la red suele recibir el nombre de estación de trabajo o nodo de la red.

Implementación de la Portabilidad Numérica Móvil

Introducción a Visual Studio.Net

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

4. Programación Paralela

Manual de usuario. Curso Móvil 1.0

CONSTRUCCIÓN DEL PROCESO PAGO DE FACTURAS. BizAgi Process Modeler

SISTEMA DE GESTIÓN DOCUMENTAL QUIPUX MÓDULO DE TAREAS. Manual de Usuario. Septiembre Sistema de Gestión Documental Quipux

Transcripción:

Sistemas Operativos Curso 2016 Procesos

Agenda Proceso. Definición de proceso. Contador de programa. Memoria de los procesos. Estados de los procesos. Transiciones entre los estados. Bloque descriptor de proceso (PCB). Creación de procesos. Listas y colas de procesos. Cambio de contexto (context switch). Hilos (Threads). Threads a nivel de usuario. Threads a nivel de núcleo del sistema. Modelos de threads. Sistemas Operativos Curso 2016 Procesos 2/35

Definición de Proceso El principal concepto en cualquier sistema operativo es el de proceso. Un proceso es un programa en ejecución, incluyendo el valor del program counter, los registros y las variables. Conceptualmente, cada proceso tiene un hilo (thread) de ejecución que es visto como un CPU virtual. El recurso procesador es alternado entre los diferentes procesos que existan en el sistema, dando la idea de que ejecutan en paralelo (multiprogramación) Sistemas Operativos Curso 2016 Procesos 3/35

Contador de programa Cada proceso tiene su program counter, y avanza cuando el proceso tiene asignado el recurso procesador. A su vez, a cada proceso se le asigna un número que lo identifica entre los demás: identificador de proceso (process id) Sistemas Operativos Curso 2016 Procesos 4/35

Memoria de los procesos Un proceso en memoria se constituye de varias secciones: Código (text): Instrucciones del proceso. Datos (data): Variables globales del proceso. Memoria dinánica (heap): Memoria dinámica que genera el proceso. Pila (stack): Utilizado para preservar el estado en la invocación anidada de procedimientos y funciones. Sistemas Operativos Curso 2016 Procesos 5/35

Estados de los procesos El estado de un proceso es definido por la actividad corriente en que se encuentra. Los estados de un proceso son: Nuevo (new): Cuando el proceso es creado. Ejecutando (running): El proceso tiene asignado un procesador y está ejecutando sus instrucciones. Bloqueado (waiting): El proceso está esperando por un evento (que se complete un pedido de E/S o una señal). Listo (ready): El proceso está listo para ejecutar, solo necesita del recurso procesador. Finalizado (terminated): El proceso finalizó su ejecución. Sistemas Operativos Curso 2016 Procesos 6/35

Estados de los procesos Diagrama de estados y transiciones de los procesos. Sistemas Operativos Curso 2016 Procesos 7/35

Transiciones entre estados Nuevo Listo Al crearse un proceso pasa inmediatamente al estado listo. Listo Ejecutando En el estado de listo, el proceso solo espera para que se le asigne un procesador para ejecutar (tener en cuenta que puede existir más de un procesador en el sistema). Al liberarse un procesador el planificador (scheduler) selecciona el próximo proceso, según algún criterio definido, a ejecutar. Sistemas Operativos Curso 2016 Procesos 8/35

Transiciones entre estados Ejecutando Listo Ante una interrupción que se genere, el proceso puede perder el recurso procesador y pasar al estado de listo. El planificador será el encargado de seleccionar el próximo proceso a ejecutar. Ejecutando Bloqueado A medida que el proceso ejecuta instrucciones realiza pedidos en distintos componentes (ej.: genera un pedido de E/S). Teniendo en cuenta que el pedido puede demorar y, además, si está en un sistema multiprogramado, el proceso es puesto en una cola de espera hasta que se complete su pedido. De esta forma, se logra utilizar en forma más eficiente el procesador. Sistemas Operativos Curso 2016 Procesos 9/35

Transiciones entre estados Bloqueado Listo Una vez que ocurre el evento que el proceso estaba esperando en la cola de espera, el proceso es puesto nuevamente en la cola de procesos listos. Ejecutando Terminado Cuando el proceso ejecuta sus última instrucción pasa al estado terminado. El sistema libera las estructuras que representan al proceso. Sistemas Operativos Curso 2016 Procesos 10/35

Bloque descriptor de proceso El proceso es representado, a nivel del sistema operativo, a través del bloque descriptor de proceso (Process Control Block) Sistemas Operativos Curso 2016 Procesos 11/35

Bloque descriptor de proceso Todo proceso se describe mediante su estado, nombre, recursos asignados, información contable, etc. Para ello se utiliza una estructura de datos que será el operando de las operaciones sobre procesos, recursos y del planificador (scheduler). Los campos de esta estructura son: Estado CPU: El contenido de esta estructura estará indefinido toda vez que el proceso está en estado ejecutando (puesto que estará almacenado en la CPU indicada por procesador). Registro de flags. Procesador: [1..#CPU]: Contendrá el número de CPU que está ejecutando al proceso (si está en estado ejecutando), sino su valor es indefinido. Memoria: Describe el espacio virtual y/o real de direccionamiento según la arquitectura del sistema. Contendrá las reglas de protección de memoria así como cual es compartida, etc.. Estado del proceso: ejecutando, listo, bloqueado, etc. Sistemas Operativos Curso 2016 Procesos 12/35

Bloque descriptor de proceso Recursos: Recursos de software (archivos, semáforos, etc.) y hardware (dispositivos, etc.). Planificación: Tipo de planificador. Prioridad: Podrá incluir una prioridad externa de largo aliento, o en su defecto una prioridad interna dinámica de alcance reducido. Contabilización: Información contable como ser cantidad de E/S, fallos de páginas (page faults), consumo de procesador, memoria utilizada, etc. Ancestro: Indica quién creó este proceso. Descendientes: Lista de punteros a PCBs de los hijos de este proceso. Sistemas Operativos Curso 2016 Procesos 13/35

Creación de procesos Los procesos de un sistema son creados a partir de otro proceso. Al creador se le denomina padre y al nuevo proceso hijo. Esto genera una jerarquía de procesos en el sistema. En el diseño del sistema operativo se debe decidir, en el momento de creación de un nuevo proceso, cuales recursos compartirán el proceso padre e hijo. Las opciones son que compartan todo, algo o nada. También se debe determinar que sucede con los hijos cuando muere el padre. Pueden morir también o cambiar de padre. Una vez creado el nuevo proceso tendrán un hilo (program counter) de ejecución propio. El sistema genera un nuevo PCB para el proceso creado. Sistemas Operativos Curso 2016 Procesos 14/35

Creación de procesos Ej.: UNIX UNIX provee el system call fork para la creación de un nuevo proceso. La invocación a esta función le retorna al padre el número de process id del hijo recién creado y al hijo el valor 0. El hijo comienza su ejecución en el retorno del fork. Además, se provee del system call exec que reemplaza el espacio de memoria del proceso por uno nuevo Sistemas Operativos Curso 2016 Procesos 15/35

Creación de procesos int main() { pid_t pid; } /* crea un nuevo proceso */ pid = fork(); if (pid < 0) { /* error */ fprintf(stderr, "Fork Failed"); exit(-1); } if (pid == 0) /* proceso hijo */ execlp("/bin/ls", "ls", NULL); else { /* padre */ wait(null); printf("child Complete"); exit(0); } Sistemas Operativos Curso 2016 Procesos 16/35

Creación de procesos Sistemas Operativos Curso 2016 Procesos 17/35

Listas y colas de procesos Los procesos, en los distintos estados que tienen, son agrupados en listas o colas: Lista de procesos del sistema (job queue): En esta lista están todos los procesos del sistema. Al crearse un nuevo proceso se agrega el PCB a esta lista. Cuando el proceso termina su ejecución es borrado. Cola de procesos listos (ready queue): Esta cola se compondrá de los procesos que estén en estado listo. La estructura de esta cola dependerá de la estrategia de planificación utilizada. Cola de espera de dispositivos (device queue): Los procesos que esperan por un dispositivo de E/S particular son agrupados en una lista específica al dispositivo. Cada dispositivo de E/S tendrá su cola de espera. Sistemas Operativos Curso 2016 Procesos 18/35

Listas y colas de procesos Sistemas Operativos Curso 2016 Procesos 19/35

Listas y colas de procesos Diagrama de transición de un proceso entre las colas del sistema. Sistemas Operativos Curso 2016 Procesos 20/35

Cambio de contexto A la tarea de cambiar un proceso por otro en el procesador se le denomina cambio de contexto (context switch). El cambio de contextos entre procesos implica las siguientes tareas: Salvar el estado del proceso (registros, información de punteros de memoria) que está ejecutando en su PCB. Cambiar el estado del proceso que estaba ejecutando al que corresponda. Cargar el estado del proceso asignado a la CPU a partir de su PCB. Cambiar el estado del proceso nuevo a ejecutando. Sistemas Operativos Curso 2016 Procesos 21/35

Cambio de contexto Sistemas Operativos Curso 2016 Procesos 22/35

Cooperación entre procesos Procesos concurrentes pueden ejecutar en un entorno aislado (se debe asegurar la ausencia de interferencias) o, eventualmente, podrán interactuar cooperando en pos de un objetivo común compartiendo objetos comunes. Es necesario que el sistema operativo brinde unas herramientas específicas para la comunicación y sincronización entre los procesos (Inter Process Communication IPC). IPC es una herramienta que permite a los procesos comunicarse y sincronizarse sin compartir el espacio de direccionamiento en memoria. Hay dos enfoques fundamentales: Memoria compartida Pasaje de mensajes Sistemas Operativos Curso 2016 Procesos 23/35

Threads Hay aplicaciones donde es necesario utilizar procesos que compartan recursos en forma concurrente. IPC brindan una alternativa a nivel de sistema operativo. Los sistemas operativos modernos están proporcionando servicios para crear más de un hilo (thread) de ejecución (control) en un proceso. Con las nuevas tecnologías multi-core esto se hace algo necesario para poder sacar mayor provecho al recurso de procesamiento. De esta forma, se tiene más de un hilo de ejecución en el mismo espacio de direccionamiento. Sistemas Operativos Curso 2016 Procesos 24/35

Threads Un Thread (Hilo) es una unidad básica de utilización de la CPU consistente en un juego de registros y un espacio de pila. Es también conocido como proceso ligero. Cada thread contendrá su propio program counter, un conjunto de registros, un espacio para el stack y su prioridad. Comparten el código, los datos y los recursos con sus hilos (thread) pares. Una tarea (o proceso pesado) está formado ahora por uno o varios threads. Un thread puede pertenecer a una sola tarea. Sistemas Operativos Curso 2016 Procesos 25/35

Threads Todos los recursos, sección de código y datos son compartidos por los distintos threads de un mismo proceso. Sistemas Operativos Curso 2016 Procesos 26/35

Ventajas del uso de threads Compartir recursos: Los threads de un proceso comparten la memoria y los recursos que utilizan. A diferencia de IPC, no es necesario acceder al kernel para comunicar o sincronizar los hilos de ejecución. Economía: Es más fácil un cambio de contexto entre threads ya que no es necesario cambiar el espacio de direccionamiento. A su vez, es más liviano para el sistema operativo crear un thread que crear un proceso nuevo. Utilización de arquitecturas con multiprocesadores: Disponer de una arquitectura con más de un procesador permite que los threads de un mismo proceso ejecuten en forma paralela. Repuesta: Desarrollar una aplicación con varios hilos de control (threads) permite tener un mejor tiempo de respuesta. Sistemas Operativos Curso 2016 Procesos 27/35

Desventaja del uso de threads Dificulta la programación: Al compartir todo el espacio de direccionamiento un thread mal programado puede romper el funcionamiento del resto de los threads. Sistemas Operativos Curso 2016 Procesos 28/35

Threads Los threads pueden ser implementados tanto a nivel de usuario como a nivel de sistemas operativo: Hilos a nivel de usuario (user threads): Son implementados en alguna librería de usuario. La librería deberá proveer soporte para crear, planificar y administrar los threads sin soporte del sistema operativo. El sistema operativo solo reconoce un hilo de ejecución en el proceso. Hilos a nivel del núcleo (kernel threads): El sistema es quien provee la creación, planificación y administración de los threads. El sistema reconoce tantos hilos de ejecución como threads se hayan creado Sistemas Operativos Curso 2016 Procesos 29/35

Threads Ventajas de user threads sobre kernel threads: Desarrollo de aplicaciones en sistemas sin soporte a hilo: Se pueden aprovechar todos los beneficios de programar orientado utilizando threads. Además se puede portar la aplicación a un sistema operativo que carezca de la noción de varios hilos de ejecución. Cambio de contexto: El cambio de contexto entre threads de usuario es más simple ya que no consume el overhead que tendría en el sistema operativo (system call). Planificación independiente: Se puede crear una nueva estrategia de planificación diferente a la que tenga el sistema operativo. Sistemas Operativos Curso 2016 Procesos 30/35

Threads Ventajas de kernel threads sobre user threads: Mejor aprovechamiento de un sistema multiprocesador: el sistema operativo puede asignar threads del mismo proceso en distintos procesadores. De esta forma, un proceso puede estar consumiendo más de un recurso procesador a la vez. Ejecución independiente: Al ser independientes los hilos de ejecución, si un thread se bloquea (debido a p.ej. una operación de E/S) los demás threads pueden seguir ejecutando. Sistemas Operativos Curso 2016 Procesos 31/35

Threads La mayoría de los sistemas proveen threads tanto a nivel de usuario como de sistema operativo. De esta forma surgen varios modelos: Mx1 (Many-To-One): Varios threads de a nivel de usuario a un único thread a nivel de sistema. 1x1 (One-to-One): Cada thread de usuario se corresponde con un thread a nivel del núcleo (kernel thread). MxN (Many-To-Many): Varios threads a nivel de usuario se corresponde con varios threads a nivel del núcleo. Sistemas Operativos Curso 2016 Procesos 32/35

Mx1 (Many-to-One) Este caso se corresponde al de tener los threads implementados a nivel de usuario. El sistema solo reconoce un thread de control para el proceso. Los threads de usuario ejecutarán cuando estén asignados al kernel thread del proceso (tarea llevada a cabo por el planificador a nivel de usuario) y, además, a este le asigne la CPU el planificador del sistema operativo. Sistemas Operativos Curso 2016 Procesos 33/35

1x1 (One-to-One) Cada thread que es creado a nivel de usuario se genera un nuevo thread a nivel de sistema que estará asociado mientras exista. El sistema reconoce todos los threads a nivel de usuario y son planificados independientemente. En este caso no hay planificador a nivel de usuario. Sistemas Operativos Curso 2016 Procesos 34/35

MxN (Many-to-Many) Cada proceso tiene asignado un conjunto de kernel threads independiente de los threads a nivel de usuario que el proceso haya creado. El planificador a nivel de usuario asigna los threads en los kernel threads. El planificador de sistema solo reconoce los kernel threads. Sistemas Operativos Curso 2016 Procesos 35/35