Sistemas de Operación II

Slides:



Advertisements
Presentaciones similares
Simulación en VHDL del Datapath del MIPS
Advertisements

2003 HYPACK MAX Training Seminar1 77 – Digitizing Chart Data to DGW Format El programa del MAPA se usa para digitalizar la información del mapa náutica.
Composición Interna de un Procesador
Hilos - Lightweight process - Procesos ligeros
Multiprocessor Scheduling Chapter 10 Nota: Material en Revisión, con notas propias y laminas del Stalling y del Tanenbaum.
Software Sistemas Operativos
Arquitectura del 8086/8088 TEEL 4011
Overview Sistemas Computacionales
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,
Implementacion de F.S. Asignación espacio Manejo espacio libre Emely Arráiz Ene-Mar 08.
Hebras, SMP, y Microkernels
CPU 8088 vs. Pentium TEEL 4011 Prof. Jaime José Laracuente-Díaz.
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
JERARQUÍA DE MEMORIA  MEMORIA VIRTUAL SEMANA NO.15 SEMESTRE PROF. EUGENIO DUQUE PÉREZ PROF. GUSTAVO PATIÑO
La Programación de Sistemas Oscar José Luis Cruz Reyes
DHCP, DNS, WINS. Repaso..
Introducción Nivel 4. Modelo OSI Propiedades Nivel 4 Entrega de mensajes garantizada. Entrega de mensajes en el mismo orden en el que fueron enviados.
Hilos Capítulo 5 Silberschatz Galvin. Copyright © 2006, Intel Corporation. All rights reserved. Intel and the Intel logo are trademarks or registered.
©2008 The McGraw-Hill Companies, Inc. All rights reserved. Digital Electronics Principles & Applications Seventh Edition Chapter 2 Numbers We Use in Digital.
ECOM-6030 PASOS PARA LA INSTALACIÓN DE EASYPHP Prof. Nelliud D. Torres © - Derechos Reservados.
Procesos Un proceso es un programa en ejecución. Modelo de procesos secuenciales. Abstracción del SO.
DAI-C1-UD 2 Introduction To Operating Systems Academic Year DAI. Credit 1 (Single and Multiuser Operating Systems) Ferran Chic PELE-08/11 (Pla Experimental.
Vinculación de Instrucciones y Datos a Memoria Tiempo de compilación: si la dirección de memoria se conoce a priori, se puede generar código absoluto;
¿Cuánto tiempo hace que…? You can ask when something happened in Spanish by using: ¿Cuándo + [preterit verb]…? ¿Cuándo llegaste a la clínica? When did.
COMPUTACION PARALELA GLORIA PATRICIA FLOREZ ANGIE PAOLA ANCHICO.
Understanding Documents from Mexico—Part 1 Naming Conventions, Birth Certificates, and Immunization Records Sonja Williams Migrant Education Program NCDPI.
El procesador Datapath y control. Universidad de SonoraArquitectura de Computadoras2 Introducción En esta parte del curso contiene: Las principales técnicas.
Linear Wire Antennas Infinitesimal Dipole From: Balanis, C. A. “Antenna Theory, Analysis and Design” Third Edition. A John Wiley & Sons, Inc.,Publication.
Capítulo 5 Silberschatz Galvin
Descripcion y control de procesos
Spanish Class Mrs. Rogers.
Estructuras de interconexión de un computador
SISTEMAS OPERATIVOS Sección Crítica.
Procesos Concurrentes
Concepto de proceso Rina Arauz.
Base de Datos II Almacenamiento.
First Grade Dual High Frequency Words
Gestión de Procesos José Ruiz, Eudald Gómez.
Ayudantía 3: Procesos y threads
GRAPHIC MATERIALS 1. GRAPHIC MATERIALS. GRAPHIC MATERIALS 1. GRAPHIC MATERIALS.
Base de Datos II 2da Parte. Propiedad ACID  La propiedad ACIDa es una carácterística de un DBMS para poder compartir datos en forma segura.  A :
– GESTIÓN DE PROCESOS Sistemas Operativos. AGENDA Concepto de Proceso Planificación de Procesos Operaciones entre Procesos Comunicación interprocesos.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS.
Introducción a las finanzas de los sistemas de agua potables
Page 86 Realidades 2 Ser Vs. Estar.
Los números.
Recetas 3 Objetivo: Hacer preguntas Hablar sobre la comida
“To Be” or not “To Be” Ser vs. Estar.
Sistemas Operativos Componentes Ejecutivo de Tiempo Real.
Hardware e implementación en Sistemas Operativos
Reanudación de Ejecución de Procesos en Metasistemas
JKSimMet Software (windows & buttons) Split Engineering Chile Ltda. General Salvo #331 oficina 201 Casilla Sucursal Panorámico Providencia – Santiago,
Introduction to CAN. What is CAN and what are some of its features? Serial communication Multi-Master Protocol Compact –Twisted Pair Bus line 1 Megabit.
The Windows File System and Windows Explorer To move around the file system and examine your files or get to one you want (say, to modify, delete or copy.
EJECUCION PARALELA THREADS Y FIBERS
Metas: Puedo decir de dónde son las personas (nacionalidades)
ESTRUCTURA DE SISTEMAS OPERATIVOS Carbajal Rojas karla.
UNIT 1: The structure of matter: FQ3eso_U1_3: Electron configurations
In both English and Spanish, the verb to be (ser) and numbers are used to tell time. © by Vista Higher Learning, Inc. All rights reserved.
Juliana Carmona Esteban Cano
SISTEMAS OPERATIVOS JOSE ANGEL MORENO B. Ingeniero de Sistemas TP # Copnia Universidad Incca de Colombia CORPORACI Ó N UNIVERSITARIA REMINGTON.
Axcel Sting Anchante Mosayhuate.. Qué aspecto tienen los sistemas operativos por fuera (es decir, la interfaz con el programador), ha llegado el momento.
Estructura de Sistemas Operativos
The causative is a common structure in English. It is used when one thing or person causes another thing or person to do something.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS. Estos sistemas no tienen una estructura definida, sino que son escritos como una colección de procedimientos donde.
Hilos de Procesamiento. Hilos Concepto Beneficios Hilos a nivel kérnel y a nivel usuario Modelos multihilos Hilos de Solaris 2 Hilos de Java.
Globalization Politics and the preservation of nation state.
Transcripción de la presentación:

Sistemas de Operación II Introducción: Concurrencia Prof. Carlos Figueira Basado en materiales de Yudith Cardinale (USB) Williams Stallings, Eugene Styer

Contenido Definición de concurrencia Repaso de procesos e hilos Carlos Figueira/USB

Concurrencia Ejecución de múltiples tareas o actividades (hilos de ejecución) simultáneamente Plataformas: Procesador único: se alternan Múltiples núcleos o procesadores juntos: Symmetric Multi-Processor (SMP). Procesadores separados, conectados por redes de interconexión (Multiprocesadores) o por redes TCP/IP (Distribuidos) Carlos Figueira/USB

Tipos de Programas Concurrente: conjunto de procesos secuenciales ejecutados bajo un paralelismo abstracto, con memoria compartida Paralelos: procesos paralelos sobre múltiples procesadores (reales o virtuales) Distribuidos: paradigma de redes de procesadores, modelo de TCP/IP Carlos Figueira/USB

Arquitecturas paralelas Clasificadas en base a diferentes criterios: número de procesadores Conexión entre nodos Flujo de datos y de hilos de ejecución (taxonomía de Flynn, la veremos más adelante) Ejemplo: Multiprocesadores simétricos (SMP) Carlos Figueira/USB

Carlos Figueira/USB

Multiprocesadores Simétricos (SMP) Varios procesadores que comparten memoria de manera uniforme El núcleo (kernel) puede correr en cualquiera de los procesadores Típicamente cada procesador se encarga de su planificación desde el conjunto de procesos o hilos listos Carlos Figueira/USB

Carlos Figueira/USB

Procesos Carlos Figueira/USB

Proceso Un programa en ejecución Instancia de un programa ejecutando en un computador La entidad que puede ser asignada por y ejecutada en un procesador Una unidad de actividad caracterizada por la ejecución de una secuencia de instrucciones, un estado actual, y un conjunto de instrucciones de sistema Carlos Figueira/USB

Elementos de un proceso Identificador Estado Prioridad Contador de programa Apuntadores a memoria Datos de contexto Información sobre estatus de I/O Contabilidad en uso de recursos Carlos Figueira/USB

Bloque de control de procesos (PCB) Contiene los elementos del proceso Creado y manejado por el S.O. Permite soporte para múltiples procesos Carlos Figueira/USB

Process Control Block Carlos Figueira/USB

Traza de procesos Secuencia de instrucciones que ejecuta un proceso Despachador cambia el procesador de un proceso a otro Carlos Figueira/USB

Ejemplo de ejecución Carlos Figueira/USB

Traza de Procesos Carlos Figueira/USB

Carlos Figueira/USB

Modelo de procesos con 5 estados Carlos Figueira/USB

Estados de Procesos Carlos Figueira/USB

Dos estados de suspendido Carlos Figueira/USB

Procesos y Recursos Carlos Figueira/USB

Modos de Ejecución Modo usuario Modo con menos privilegios Programas de usuario se ejecutan típicamente en este modo Modo sistema, modo de control o modo kernel Modo con más privilegios Núcleo del S.O. Carlos Figueira/USB

Creación de procesos Asigna un PID único Asigna espacio al proceso Inicializa el PCB Instala enlaces adecuados Ej: agrega el nuevo proceso a la lista enlazada usada por el planificador de CPU Crea o extiende otras estructuras de datos Ej: mantiene archivo de contabilidad (accounting) Carlos Figueira/USB

¿Cuándo sale proceso de CPU? Interrupción de reloj Proceso consumió su tajada de tiempo (time slice) Interrupción I/O Fallo de memoria Dirección corresponde a memoria que aún está en disco y debe ser traida a memoria principal Carlos Figueira/USB

¿Cuándo sale proceso de CPU? Trap Ocurrió un error o excepción Puede hacer que termine el proceso Llamada al supervisor Por ejemplo, abrir archivo Carlos Figueira/USB

Cambio de estado de proceso Salvar contexto del procesador, incluyendo el PC y otros registros Actualiza el PCB del proceso que está ejecutando Mueve PCB a la cola apropiada (listo, bloqueado, suspendido) Selecciona otro proceso para ejecución Carlos Figueira/USB

Cambio de estado de proceso Actualiza el PCB del proceso entrante Actualiza estructuras de manejo de memoria Restaura el contexto del proceso seleccionado Carlos Figueira/USB

Hilos Carlos Figueira/USB

Multihilos S.O. soporta múltiples hilos de ejecución en un mismo proceso MS-DOS soporta un sólo hilo UNIX soporta múltiples procesos de usuario, pero sólo un hilo por proceso Windows, Solaris, Linux, Mach, soportan múltiples hilos Carlos Figueira/USB

Carlos Figueira/USB

Procesos Tienen un espacio virtual de direcciones que contiene toda la imagen del proceso Acceso protegido a procesadores, otros procesos, archivos y recursos de I/O Carlos Figueira/USB

Hilo Un estado de ejecución (corriendo, listo, etc.) Se guarda el contexto del hilo cuando no está ejecutando Posee una pila de ejecución Espacio para variables locales (static) por hilo Acceso a la memoria y recursos del proceso (compartido por todos sus hilos) Carlos Figueira/USB

Carlos Figueira/USB

Beneficios de los hilos (vs. Procesos) Menor tiempo de creación/finalización Menor tiempo de cambio de contexto (en el mismo proceso) Comunicación eficiente entre hilos del mismo proceso a través de memoria y archivos, sin participación del núcleo Carlos Figueira/USB

Usos de hilos en un sistema de un solo usuario Varios trabajos simultáneos Procesamiento asíncrono Velocidad de ejecución Estructura de programa modular Carlos Figueira/USB

Hilos Suspender un proceso suspende todos sus hilos Terminar un proceso terminar todos sus hilos Carlos Figueira/USB

Estados del hilo Cambios de estado Creación (Spawn) Crea otro hilo Bloqueo Desbloqueo Termina Libera registros y pilas Carlos Figueira/USB

Multihilos Carlos Figueira/USB

Hilos a nivel de usuario Toda la gestión de los hilos es realizada por la aplicación (a través de librerías) El núcleo no se entera de la existencia de los hilos Carlos Figueira/USB

User-Level Threads Carlos Figueira/USB

Ventajas de hilo a nivel de usuario El cambio de hilo se hace a nivel de proceso usuario, sin costosos cambio de modo, Se pueden diseñar, si la librería lo permite, estrategias de planificación adaptadas a la aplicación Se puede ejecutar en cualquier S.O. (para la cual se disponga de la librería, e.g., POSIX) Carlos Figueira/USB

Desventajas Si un hilo hace una llamada bloqueante (p.e., I/O) se bloquea todo el proceso No se pueden aprovechar múltiples procesadores Carlos Figueira/USB

Hilos a nivel de núcleo Núcleo mantiene información de contexto para el proceso y los hilos Planificación de CPU es basada en hilos Ej.: GNU/Linux Carlos Figueira/USB

Kernel-Level Threads Carlos Figueira/USB

Ventajas de hilo a nivel de núcleo Varios hilos de un mismo proceso pueden ser asignados a diferentes procesadores Si un hilo se bloquea, el S.O. Puede asignar el CPU a otro hilo del mismo proceso El núcleo puede ser multihilos Carlos Figueira/USB

Desventajas Un cambio de hilo implica un trap y dos cambios de modo: Creación Hilo a nivel de núcleo demora aprox. 30 veces más que hilos a nivel de usuario Creación de proceso demora 10 veces más que hilo núcleo, Carlos Figueira/USB

Enfoque combinado Ejemplo: Solaris Creación de hilos en espacio de usuario Grueso de la planificación y la sincronización de hilos en la aplicación Carlos Figueira/USB

Carlos Figueira/USB

Anexo: Detalles sobre estructuras del S.O. Carlos Figueira/USB

Estructuras de control del SO Información acerca del estatus actual de cada proceso y cada recurso Las tablas son construidas por cada entidad manejada por el S.O. Carlos Figueira/USB

Memory Tables Allocation of main memory to processes Allocation of secondary memory to processes Protection attributes for access to shared memory regions Information needed to manage virtual memory Carlos Figueira/USB

I/O Tables I/O device is available or assigned Status of I/O operation Location in main memory being used as the source or destination of the I/O transfer Carlos Figueira/USB

File Tables Existence of files Location on secondary memory Current Status Attributes Sometimes this information is maintained by a file management system Carlos Figueira/USB

Process Table Where process is located Attributes in the process control block Program Data Stack Carlos Figueira/USB

Process Image Carlos Figueira/USB

Carlos Figueira/USB

Process Control Block Process identification Identifiers Numeric identifiers that may be stored with the process control block include Identifier of this process Identifier of the process that created this process (parent process) User identifier Carlos Figueira/USB

Process Control Block Processor State Information User-Visible Registers A user-visible register is one that may be referenced by means of the machine language that the processor executes while in user mode. Typically, there are from 8 to 32 of these registers, although some RISC implementations have over 100. Carlos Figueira/USB

Process Control Block Processor State Information Control and Status Registers These are a variety of processor registers that are employed to control the operation of the processor. These include Program counter: Contains the address of the next instruction to be fetched Condition codes: Result of the most recent arithmetic or logical operation (e.g., sign, zero, carry, equal, overflow) Status information: Includes interrupt enabled/disabled flags, execution mode Carlos Figueira/USB

Process Control Block Processor State Information Stack Pointers Each process has one or more last-in-first- out (LIFO) system stacks associated with it. A stack is used to store parameters and calling addresses for procedure and system calls. The stack pointer points to the top of the stack. Carlos Figueira/USB

Process Control Block Process Control Information Scheduling and State Information This is information that is needed by the operating system to perform its scheduling function. Typical items of information: Process state: defines the readiness of the process to be scheduled for execution (e.g., running, ready, waiting, halted). Priority: One or more fields may be used to describe the scheduling priority of the process. In some systems, several values are required (e.g., default, current, highest-allowable) Scheduling-related information: This will depend on the scheduling algorithm used. Examples are the amount of time that the process has been waiting and the amount of time that the process executed the last time it was running. Event: Identity of event the process is awaiting before it can be resumed Carlos Figueira/USB

Process Control Block Process Control Information Data Structuring A process may be linked to other process in a queue, ring, or some other structure. For example, all processes in a waiting state for a particular priority level may be linked in a queue. A process may exhibit a parent-child (creator-created) relationship with another process. The process control block may contain pointers to other processes to support these structures. Carlos Figueira/USB

Process Control Block Process Control Information Interprocess Communication Various flags, signals, and messages may be associated with communication between two independent processes. Some or all of this information may be maintained in the process control block. Process Privileges Processes are granted privileges in terms of the memory that may be accessed and the types of instructions that may be executed. In addition, privileges may apply to the use of system utilities and services. Carlos Figueira/USB

Process Control Block Process Control Information Memory Management This section may include pointers to segment and/or page tables that describe the virtual memory assigned to this process. Resource Ownership and Utilization Resources controlled by the process may be indicated, such as opened files. A history of utilization of the processor or other resources may also be included; this information may be needed by the scheduler. Carlos Figueira/USB

Processor State Information Contents of processor registers User-visible registers Control and status registers Stack pointers Program status word (PSW) contains status information Example: the EFLAGS register on Pentium machines Carlos Figueira/USB