Hebras, SMP, y Microkernels

Slides:



Advertisements
Presentaciones similares
Principios de Computación
Advertisements

TEMA 1 Introducción a la Programación Concurrente
Tipos de Organización ... La organización de máquinas multiprocesadores más típicas son: Mesh Networks. Binary Tree Networks. Hypertree Networks. Pyramid.
UNIX COMP 240.
Sistema operativo Componentes de un sistema operativo
I.T.E.S.R.C. Romina Tamez Andrea Martínez Ma. De Lourdes Solís
Estructura de un Sistema Operativo
TEMA 2: «CONFIGURACIÓN DE MÁQUINAS VIRTUALES»
Sistemas en estratos. Descripción: se organiza en una jerarquía de estratos, estando construido cada uno de ellos sobre el otro que tiene menor jerarquía.
Estructuras en Sistemas Operativos
INSTALACIÓN Y MANTENIMIENTO DE SISTEMAS OPERATIVOS
UTFSM - Sistemas Operativos
EMISION MULTIPLE DE INSTRUCCIONES
HILOS Y COMUNICACIÓN ENTRE PROCESOS
Centralizados y Distribuidos
Sistemas Operativos Distribuidos Ing. José L. Simón Mayo 2000.
UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (LA DECANA DE AMERICA)
Hilos - Lightweight process - Procesos ligeros
Procesamiento paralelo
Software Sistemas Operativos
Introducción, Principios de Diseño y Estructuras de los Sistemas Operativos Sistemas Operativos Avanzados Prof. David A. Pérez A.
Tema 10.3: Asignación de Espacio No Contiguo. Tema 10.3: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.),
Overview Sistemas Computacionales
Asignación de Espacio No Contiguo
Sistemas Operativos II MC. Daniel Fajardo Delgado INSTITUTO TECNOLÓGICO DE CD. GUZMÁN 24 de Abril de 2004.
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,
Hilos En La Computación. (THREADS).
Características de un sistema operativo
Overview de Sistemas Operativos
Introducción a los Sistemas Operativos
FUNDAMENTOS TECNOLÓGICOS DE INFORMACIÓN
El núcleo o kernel.
Gestión de procesos Sistemas Operativos Edwin Morales
Despliegue de la aplicación Web
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
Estructuras en Sistemas Operativos DAISY KATERINE RODRÍGUEZ.
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
Introducción a los Sistemas Operativos
Introducción a los SOs.
Tema 8: Introducción a los SOs. Tema 8: 2 Silberschatz, Galvin and Gagne ©2005 Fundamentos de los Computadores (ITT, Sist. Electr.), Introducción.
Integrante: Yohandry Cueto Carnet: # Contenido Kernel Linux Limitaciones del Kernel Linux Kernel Mach Que es Hurd Arquitectura Ventajas Distribuciones.
CONCEPTOS FUNDAMENTALES DEL NIVEL DEL SISTEMA OPERATIVO
Sistemas Distribuidos
1.1 Silberschatz, Galvin y Gagne ©2002 Sistems Operativos – 6ta. Edición Capítulo 1: Introducción ¿Qué es un sistema operativo? Sistemas Operativos por.
Sistemas Operativos Oscar Bedoya
Universidad Politécnica de Tulancingo Catedrático Ing. Jorge Luis Neri Trejo Asignatura Ing. De Hardware III Tema Procesamiento Paralelo Presenta Verónica.
Estructura de los Sistemas Operativos
INTRODUCCION A SISTEMAS OPERATIVOS
FLOR ALBA ACEVEDO COD JENNIFFER TATIANA TORRES COD
Unidad 2 – Gestión de Procesos
Sistemas Operativos.
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.
Estructura del Sistemas Operativos por su Estructura
LIA. SUEI CHONG SOL, MCE..  1.- SOFTWARE BÁSICO O DE SISTEMA. Conjunto de programas imprescindibles para el funcionamiento del sistema.  2.- SOTWARE.
Teoría de Sistemas Operativos Estructura de SO Departamento de Electrónica 2º Semestre, 2003 Gabriel Astudillo Muñoz
Elementos y tipos de sistemas operativos
SISTEMAS OPERATIVOS Son un conjunto de programas destinados a permitir la comunicación entre el usuario y en computador y gestionar sus recursos.
UNIDAD I INTRODUCCION A LOS S.O.
Estructuras en Sistemas Operativos DAISY KATERINE RODRÍGUEZ.
ELEMENTO DE COMPETENCIA 3
SISTEMAS OPERATIVOS.
TECNICO EN SISTEMAS NUMERO DE FICHA:
También es conocido como proceso ligero. Es una entidad básica de utilización de CPU y esta formado por un contador de programa, algunos registros y una.
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
Desarrollador Profesional de Juegos Programación III Unidad II Hilos de ejecución Threads.
CAPITULO III El Sistema Operativo (OS)
Procesos Un proceso es un programa en ejecución. Modelo de procesos secuenciales. Abstracción del SO.
Estructura del sistema operativo
Transcripción de la presentación:

Hebras, SMP, y Microkernels Capítulo 4

Dos características de un proceso Propietario de Recursos un proceso incluye un espacio virtual de direcciones donde se almacena la imagen del proceso. En un momento dado el SO puede asignar recursos al proceso Es planificado/ejecutado – sigue un camino de ejecución que puede intercalarse con la ejecución de otros procesos. Así un proceso puede estar Running, Ready, etc. Estas dos características son tratadas independientemente por el SO Entidad que se ejecuta/despacha es llamada hebra Entidad dueña de recursos es llamado proceso

Procesamiento Multihebra La capacidad del SO de soportar múltiples hebras de ejecución dentro de un proceso MS-DOS soporta sólo una hebra (y sólo un proceso) UNIX soporta múltiples procesos de usuario, pero sólo una hebra por proceso Windows, Solaris, Linux, Mach, y OS/2 soportan múltiples hebra En este caso, el proceso es asociado con Un espacio virtual de direcciones que contiene la imagen del proceso Acceso protegido al procesador, otros procesos, archivos, etc.

Una hebra posee Un estado de ejecución (running, ready, etc.) Un contexto de hebra, cuando no está ejecutándose Un stack de ejecución Almacenamiento estático de memoria para variables locales Derecho a acceder la memoria y recursos del proceso al que pertenece Todas la hebras de un proceso comparten esta propiedad

Todas la hebras de un proceso comparten los recursos de un proceso Cada hebra puede tener su propio estado, pero cuando el proceso se suspende, todas las hebras se suspenden. Cuando el proceso termina, todas la hebras terminan Cuando una hebra modifica un dato en memoria global, las otras hebras ven el resultado de la modificación

Beneficios de las hebras Demora menos crear y eleminar una hebra que un proceso Demora menos hacer cambio de contexto entre hebras de un mismo proceso que entre dos procesos Ya que las hebras de un proceso comparten memoria y archivos, ellas se pueden comunicar sin necesidad de invocar rutinas del kernel

Ejemplo de uso de hebras en un sistema mono usuario multiprogramado Ejecución concurrente de tareas background y foreground: Ej cómputo y manejo de interface Procesamiento asíncrono Ej: Guarar periódicamente contenidos de editor de texto Aumento velociad de ejecución Intercalar procesamiento con lectura de próximo job Estructura modular del programa

Estados de una hebra Los estados típico son Running, Ready, y Blocked Cuando un proceso es suspendido (swap-out), todas las hebras son suspendiadas Si una hebra es bloqueada (estado Blocked), ¿qué pasa con las otras hebras del mismo proceso? (ver ejemplo que sigue) Operaciones típicas que involucran estados Spawn Un proceso Una hebra Block. Por ejemplo debido a I/O Unblock Término

RPC monohebra. RPC multihebra.

Multi hebras en mono procesador

Hebras nivel usuario versus nivel kernel Existen dos categorías generales de implementación de hebras: nivel de usuario y nivel de kernel Nivel de usuario Toda la administración de las hebras la realiza la aplicación misma (proceso) o por librerías de manejo de hebras El kernel no sabe que el proceso tiene varias hebras y planifica (scheduled) el proceso no las hebras El kernel podría ser mono hebrado

Hebras a nivel de usuario Ventajas Cambio de contexto no necesita privilegios del kernel y es más rápido Scheduling puede depender y ser específico a la aplicación Pueden ser implementadas en cualquier SO, y no requieren cambios al kernel Desventajas Cuando una hebra se boquea, el proceso entero se bloquea Aunque exista varios procesadores, la hebras no podrían hacer uso de ellos en forma paralela

Hebras a nivel de kernel Toda la administración de hebras la realiza el kernel (sistema puro) Windows es un ejemplo de este modo El kernel mantiene información de contexto por el proceso y por la hebras del proceso Scheduling es al nivel de hebra Ventajas: Se puede explotar múltiples procesadores Si una hebra se bloquea, el control de la CPU puede pasar a otra hebra Desventaja: cambio de contexto entre hebras requiere la intervención del kernel

VAX Running UNIX-Like Operating System

Sistemas híbridos La creación de hebras se hace a nivel de usuario Parte de la sincronización y scheduling tambien se hace a nivel de usuario Ejemplo es Solaris La hebras a nivel de usuario se mapean (corren) sobre un número variable de hebras de kernel

Otros modelos

Multiprocesamiento simétrico (SMP)

Modelos de computación Single Instruction Single Data (SISD) stream Un flujo simple de instrucciones operan sobre una sequencia simple de datos almacenados en memoria Single Instruction Multiple Data (SIMD) stream Un mismo flujo de instrucciones opera sobre conjuntos diferentes de datos por diferentes unidades de procesamiento (procesadores vectoriales) Multiple Instruction Single Data (MISD) stream Una secuencia de datos se transmite a un conjunto de procesadores, los cuales ejecutan un operación distinta sobre ellos (nunca implementada) Multiple Instruction Multiple Data (MIMD) stream Un conjunto de procesadores ejecutan instrucciones diferentes sobre conjuntos de datos diferentes simultáneamente

Modelos de asignación de procesos Maestro/esclavo : El kernel del SO siempre corre en un procesador dado (maestro). El maestro envia procesos usuarios a los esclavos Ventajas: simple, Desventajas: Si se cae el maestro, todo el sistema se cae. También, el maestro puede ser un cuello de botella Simétrico (SMP): El kernel se puede ejecutar en cualquier procesador El kernel se puede construir como múltiples procesos o hebras Cada procesador puede planifica sus propios procesos desde un pool de procesos disponibles Desventaja: complicado

Consideraciones de diseño de SO SMP Ejecución simultánea de procesos o hebras El código del kernel debe ser reentrante Scheduling Cualquier procesador puede realizar su propio scheduling Sincronización Se debe controlar el acceso simultáneo a la memoria compartida y dispositivos de I/O compartidos Administración de memoria Además de todos los problemas típicos asociados con la administración de memoria, el SO debe explotar el paralelismo que el hardware le provee, como por ejemplo las memorias multipuerto Confiabilidad y tolerancia a fallas El SO debe estar preparado por si un procesador falla

Microkernels Núcleo pequeño del sistema operativo que provee sólo las funciones escenciales Muchos servicios que tradicionalmente son incluidos en el SO son dejados fuera del microkernel Drivers de los dispositivos Sistemas de archivos Administrador de memoria virtual Sistema de ventanas Servicios de seguridad

En un microkernel, los componentes externos a él son implementados como procesos servidores, los cuales se comunican con paso de mensajes a través del microkernel

Beneficios de una organizacion microkernel Interface uniforme para pedir servicios por los procesos No hay distincion entre servicios a nivel de kernel o nivel de usuario Todos los servicios se proveen mediante paso de mensajes Extensibilidad Facilita la adición de nuevos servicios Sólo los servidores involucrados son modificados El microkernel no se modifica Flexibilidad Facilita la adición de nuevas características Facilita la eliminación características obsoletas Portabilidad Cambios para portar el SO a una nueva arquitectura se realizan sólo en el microkernel, no servicios Confiabilidad Diseño modular Es más facil depurar un microkernel pequeño que un gran SO monolítico

Diseño de Microkernel Un microkernel debe incluir funciones: que dependen directamente del hardware de apoyo a los servidores operando en modo usuario Estas funciones caen en la siguientes categorias generales: Administración de bajo nivel de memoria Comunicación entre procesos I/O Administración de interrupciones

Windows Processes Implemented as objects An executable process may contain one or more threads Both processes and thread objects have built-in synchronization capabilities

Windows Process Object

Windows Thread Object

Windows 2000 Thread States Ready Standby Running Waiting Transition Terminated

Solaris Process includes the user’s address space, stack, and process control block User-level threads Lightweight processes (LWP) Kernel threads

Solaris Lightweight Data Structure Identifier Priority Signal mask Saved values of user-level registers Kernel stack Resource usage and profiling data Pointer to the corresponding kernel thread Pointer to the process structure

Linux Task Data Structure State Scheduling information Identifiers Interprocess communication Links Times and timers File system Address space Processor-specific context

Linux States of a Process Running Interruptable Uninterruptable Stopped Zombie