Descargar la presentación
La descarga está en progreso. Por favor, espere
1
Sistemas de Operación II
Introducción: Concurrencia Prof. Carlos Figueira Basado en materiales de Yudith Cardinale (USB) Williams Stallings, Eugene Styer
2
Contenido Definición de concurrencia Repaso de procesos e hilos
Carlos Figueira/USB
3
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
4
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
5
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
6
Carlos Figueira/USB
7
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
8
Carlos Figueira/USB
9
Procesos Carlos Figueira/USB
10
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
11
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
12
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
13
Process Control Block Carlos Figueira/USB
14
Traza de procesos Secuencia de instrucciones que ejecuta un proceso
Despachador cambia el procesador de un proceso a otro Carlos Figueira/USB
15
Ejemplo de ejecución Carlos Figueira/USB
16
Traza de Procesos Carlos Figueira/USB
17
Carlos Figueira/USB
18
Modelo de procesos con 5 estados
Carlos Figueira/USB
19
Estados de Procesos Carlos Figueira/USB
20
Dos estados de suspendido
Carlos Figueira/USB
21
Procesos y Recursos Carlos Figueira/USB
22
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
23
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
24
¿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
25
¿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
26
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
27
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
28
Hilos Carlos Figueira/USB
29
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
30
Carlos Figueira/USB
31
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
32
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
33
Carlos Figueira/USB
34
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
35
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
36
Hilos Suspender un proceso suspende todos sus hilos
Terminar un proceso terminar todos sus hilos Carlos Figueira/USB
37
Estados del hilo Cambios de estado Creación (Spawn) Crea otro hilo
Bloqueo Desbloqueo Termina Libera registros y pilas Carlos Figueira/USB
38
Multihilos Carlos Figueira/USB
39
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
40
User-Level Threads Carlos Figueira/USB
41
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
42
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
43
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
44
Kernel-Level Threads Carlos Figueira/USB
45
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
46
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
47
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
48
Carlos Figueira/USB
49
Anexo: Detalles sobre estructuras del S.O.
Carlos Figueira/USB
50
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
51
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
52
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
53
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
54
Process Table Where process is located
Attributes in the process control block Program Data Stack Carlos Figueira/USB
55
Process Image Carlos Figueira/USB
56
Carlos Figueira/USB
57
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
58
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
59
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
60
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
61
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
62
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
63
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
64
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
65
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
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.