SlideShare una empresa de Scribd logo
Sistemas Operativos




      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 - Teórico 2010 - Procesos
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 - Teórico 2010 - Procesos
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 - Teórico 2010 - Procesos
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 - Teórico 2010 - Procesos
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 - Teórico 2010 - Procesos
Estados de los procesos

 Diagrama de estados y transiciones de los procesos.




               Sistemas Operativos - Teórico 2010 - Procesos
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 - Teórico 2010 - Procesos
Transiciones entre estados

 Ejecutando –> Listo
   – Ante una interrupción que se generé, 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 - Teórico 2010 - Procesos
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 - Teórico 2010 - Procesos
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 - Teórico 2010 - Procesos
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).

   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.

              Sistemas Operativos - Teórico 2010 - Procesos
Bloque descriptor de proceso
 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 o bloqueado.
 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 quien creo este proceso.
 Descendientes: Lista de punteros a PCBs de los
hijos de este proceso.

              Sistemas Operativos - Teórico 2010 - Procesos
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.

 Una vez creado el nuevo proceso tendrán un hilo (pc)
de ejecución propio. El sistema genera un nuevo PCB
para el proceso creado.

              Sistemas Operativos - Teórico 2010 - Procesos
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 - Teórico 2010 - Procesos
Creación de procesos
int main() {
      pid_t pid;

     /* fork another process */
     pid = fork();
     if (pid < 0) { /* error occurred */
           fprintf(stderr, "Fork Failed");
           exit(-1);
     }
     if (pid == 0) /* child process */
           execlp("/bin/ls", "ls", NULL);
     else { /* parent */
           wait (NULL);
           printf ("Child Complete");
           exit(0);
     }
}
              Sistemas Operativos - Teórico 2010 - Procesos
Creación de procesos




          Sistemas Operativos - Teórico 2010 - Procesos
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 - Teórico 2010 - Procesos
Listas y colas de procesos




          Sistemas Operativos - Teórico 2010 - Procesos
Listas y colas de procesos
 Diagrama de transición de un proceso entre las colas del
sistema.




                 Sistemas Operativos - Teórico 2010 - Procesos
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 - Teórico 2010 - Procesos
Cambio de contexto




          Sistemas Operativos - Teórico 2010 - Procesos
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.



              Sistemas Operativos - Teórico 2010 - Procesos
Threads
 Hay aplicaciones donde es necesario utilizar y
compartir 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.
 Cada thread contendrá su propio program counter, un
conjunto de registros, un espacio para el stack y su
prioridad.


               Sistemas Operativos - Teórico 2010 - Procesos
Threads

 Todos los recursos, sección de código y datos son
compartidos por los distintos threads de un mismo
proceso.




              Sistemas Operativos - Teórico 2010 - Procesos
Ventajas del uso de threads

 Repuesta: Desarrollar una aplicación con varios
hilos de control (threads) permite tener un mejor
tiempo de respuesta.
 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.

               Sistemas Operativos - Teórico 2010 - Procesos
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 - Teórico 2010 - Procesos
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 (guardar registros).

    Planificación independiente: Se puede crear una
     nueva estrategia de planificación diferente a la
     que tenga el sistema operativo.

               Sistemas Operativos - Teórico 2010 - Procesos
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 - Teórico 2010 - Procesos
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 threads 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 - Teórico 2010 - Procesos
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 - Teórico 2010 - Procesos
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 - Teórico 2010 - Procesos
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 - Teórico 2010 - Procesos

Más contenido relacionado

La actualidad más candente

Introduccion a la administracion de los procesos y el procesador (S.O)
Introduccion a la administracion de los procesos y el procesador (S.O)Introduccion a la administracion de los procesos y el procesador (S.O)
Introduccion a la administracion de los procesos y el procesador (S.O)
Javier Alvarez
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Humano Terricola
 
Estructura jerarquica de un sistema operativo
Estructura jerarquica de un sistema operativoEstructura jerarquica de un sistema operativo
Estructura jerarquica de un sistema operativo
Yurley Ochoa
 
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOSUnidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Yessica Hyuga Soto
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
adriel91
 
104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesador104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesador
Miguel Joshua Godinez Barbosa
 
Gestion de Memoria
Gestion de MemoriaGestion de Memoria
Gestion de Memoria
Julio Cesar Mendez Cuevas
 
1.1 Definición y concepto de los S.O
1.1 Definición y concepto de los S.O1.1 Definición y concepto de los S.O
1.1 Definición y concepto de los S.O
lupita zume
 
Manejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativosManejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativos
Carolina Cols
 
Gestion de memoria en windows
Gestion de memoria en windowsGestion de memoria en windows
Gestion de memoria en windows
Osvaldo Magaña Cantú
 
Entrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosEntrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas Operativos
Karina Rivra
 
Modelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosModelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativos
Luis Dario Gomez
 
Arquitecturas de computadoras
Arquitecturas de computadorasArquitecturas de computadoras
Arquitecturas de computadoras
Ing. Alvin Antonio López Navarro
 
Unidad 3 administracion de la memoria
Unidad 3 administracion de la memoriaUnidad 3 administracion de la memoria
Unidad 3 administracion de la memoria
caredimaria
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
YESENIA CETINA
 
Estados y transiciones de los procesos
Estados y transiciones de los procesosEstados y transiciones de los procesos
Estados y transiciones de los procesos
Alberto Ch
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPU
Ivan Porras
 
Origen del Modelo OSI y su impacto en als estructuras de redes
Origen del Modelo OSI y su impacto en als estructuras de redesOrigen del Modelo OSI y su impacto en als estructuras de redes
Origen del Modelo OSI y su impacto en als estructuras de redes
Kim Sorel Rush
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.
LuiS YmAY
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de Procesos
Lorena Ramos
 

La actualidad más candente (20)

Introduccion a la administracion de los procesos y el procesador (S.O)
Introduccion a la administracion de los procesos y el procesador (S.O)Introduccion a la administracion de los procesos y el procesador (S.O)
Introduccion a la administracion de los procesos y el procesador (S.O)
 
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regularesPortafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
Portafolio unidad 2 [Lenguajes y autómatas]- Expresiones y lenguajes regulares
 
Estructura jerarquica de un sistema operativo
Estructura jerarquica de un sistema operativoEstructura jerarquica de un sistema operativo
Estructura jerarquica de un sistema operativo
 
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOSUnidad 4:  INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
Unidad 4: INTEROPERABILIDAD ENTRE SISTEMAS OPERATIVOS
 
GESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas OperativosGESTION DE PROCESOS Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
 
104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesador104842258 unidad-2-administracion-de-procesos-del-procesador
104842258 unidad-2-administracion-de-procesos-del-procesador
 
Gestion de Memoria
Gestion de MemoriaGestion de Memoria
Gestion de Memoria
 
1.1 Definición y concepto de los S.O
1.1 Definición y concepto de los S.O1.1 Definición y concepto de los S.O
1.1 Definición y concepto de los S.O
 
Manejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativosManejo de los procesos en los sistemas operativos
Manejo de los procesos en los sistemas operativos
 
Gestion de memoria en windows
Gestion de memoria en windowsGestion de memoria en windows
Gestion de memoria en windows
 
Entrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas OperativosEntrada/Salida de Sistemas Operativos
Entrada/Salida de Sistemas Operativos
 
Modelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativosModelo de 5 estados para sistemas operativos
Modelo de 5 estados para sistemas operativos
 
Arquitecturas de computadoras
Arquitecturas de computadorasArquitecturas de computadoras
Arquitecturas de computadoras
 
Unidad 3 administracion de la memoria
Unidad 3 administracion de la memoriaUnidad 3 administracion de la memoria
Unidad 3 administracion de la memoria
 
Interrupciones
InterrupcionesInterrupciones
Interrupciones
 
Estados y transiciones de los procesos
Estados y transiciones de los procesosEstados y transiciones de los procesos
Estados y transiciones de los procesos
 
Registros de control y estados de la CPU
Registros de control y estados de la CPURegistros de control y estados de la CPU
Registros de control y estados de la CPU
 
Origen del Modelo OSI y su impacto en als estructuras de redes
Origen del Modelo OSI y su impacto en als estructuras de redesOrigen del Modelo OSI y su impacto en als estructuras de redes
Origen del Modelo OSI y su impacto en als estructuras de redes
 
Lenguajes autómatas.
Lenguajes autómatas.Lenguajes autómatas.
Lenguajes autómatas.
 
Comunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de ProcesosComunicación y Sincronizacion de Procesos
Comunicación y Sincronizacion de Procesos
 

Similar a Estados de un proceso

Gestión de procesos
Gestión de procesosGestión de procesos
Gestión de procesos
Freddy Patricio Ajila Zaquinaula
 
Tema3 procesos
Tema3 procesos Tema3 procesos
Introduccion A Los Procesos
Introduccion A Los ProcesosIntroduccion A Los Procesos
Introduccion A Los Procesos
painni
 
Unidad2
Unidad2Unidad2
Sistemas operativos; procesos
Sistemas operativos; procesosSistemas operativos; procesos
Sistemas operativos; procesos
María Eugenia Diaz Viloria
 
3 procesos
3 procesos3 procesos
Procesos
ProcesosProcesos
Procesos
Rurik Cabeza
 
Grupo1
Grupo1Grupo1
Grupo1
betzi.15
 
Planificador
PlanificadorPlanificador
Planificador
bluekn
 
Procesos concurrencia
Procesos  concurrenciaProcesos  concurrencia
Procesos concurrencia
puracastillo
 
Apuntes02ele
Apuntes02eleApuntes02ele
Apuntes02ele
parrau
 
Recurrencia en procesos
Recurrencia en procesosRecurrencia en procesos
Recurrencia en procesos
rcarrerah
 
SO2_U2_PROCESOS, HILOS Y COMUNICACIÓN.pptx
SO2_U2_PROCESOS, HILOS Y COMUNICACIÓN.pptxSO2_U2_PROCESOS, HILOS Y COMUNICACIÓN.pptx
SO2_U2_PROCESOS, HILOS Y COMUNICACIÓN.pptx
itphectorsg
 
Procesos
ProcesosProcesos
S..O. Unidad 2
S..O. Unidad 2S..O. Unidad 2
S..O. Unidad 2
Chulinneitor
 
Proceso
ProcesoProceso
Proceso
David Lilue
 
Clases procesos
Clases procesosClases procesos
Clases procesos
Guillermo R Gonzalez
 
Procesos
ProcesosProcesos
Ejemplo Pdf
Ejemplo PdfEjemplo Pdf
Ejemplo Pdf
carmona500
 
Ud Procesos
Ud  ProcesosUd  Procesos
Ud Procesos
naxoglez
 

Similar a Estados de un proceso (20)

Gestión de procesos
Gestión de procesosGestión de procesos
Gestión de procesos
 
Tema3 procesos
Tema3 procesos Tema3 procesos
Tema3 procesos
 
Introduccion A Los Procesos
Introduccion A Los ProcesosIntroduccion A Los Procesos
Introduccion A Los Procesos
 
Unidad2
Unidad2Unidad2
Unidad2
 
Sistemas operativos; procesos
Sistemas operativos; procesosSistemas operativos; procesos
Sistemas operativos; procesos
 
3 procesos
3 procesos3 procesos
3 procesos
 
Procesos
ProcesosProcesos
Procesos
 
Grupo1
Grupo1Grupo1
Grupo1
 
Planificador
PlanificadorPlanificador
Planificador
 
Procesos concurrencia
Procesos  concurrenciaProcesos  concurrencia
Procesos concurrencia
 
Apuntes02ele
Apuntes02eleApuntes02ele
Apuntes02ele
 
Recurrencia en procesos
Recurrencia en procesosRecurrencia en procesos
Recurrencia en procesos
 
SO2_U2_PROCESOS, HILOS Y COMUNICACIÓN.pptx
SO2_U2_PROCESOS, HILOS Y COMUNICACIÓN.pptxSO2_U2_PROCESOS, HILOS Y COMUNICACIÓN.pptx
SO2_U2_PROCESOS, HILOS Y COMUNICACIÓN.pptx
 
Procesos
ProcesosProcesos
Procesos
 
S..O. Unidad 2
S..O. Unidad 2S..O. Unidad 2
S..O. Unidad 2
 
Proceso
ProcesoProceso
Proceso
 
Clases procesos
Clases procesosClases procesos
Clases procesos
 
Procesos
ProcesosProcesos
Procesos
 
Ejemplo Pdf
Ejemplo PdfEjemplo Pdf
Ejemplo Pdf
 
Ud Procesos
Ud  ProcesosUd  Procesos
Ud Procesos
 

Último

Papel histórico de los niños, jóvenes y adultos mayores en la historia nacional
Papel histórico de los niños, jóvenes y adultos mayores en la historia nacionalPapel histórico de los niños, jóvenes y adultos mayores en la historia nacional
Papel histórico de los niños, jóvenes y adultos mayores en la historia nacional
BrunoDiaz343346
 
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdf
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdfEstás conmigo Jesús amigo_letra y acordes de guitarra.pdf
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdf
Ani Ann
 
Mapa Mental documentos que rigen el sistema de evaluación
Mapa Mental documentos que rigen el sistema de evaluaciónMapa Mental documentos que rigen el sistema de evaluación
Mapa Mental documentos que rigen el sistema de evaluación
ruthmatiel1
 
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdfDESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
JonathanCovena1
 
Los Dominios y Reinos de los Seres Vivos
Los Dominios y Reinos de los Seres VivosLos Dominios y Reinos de los Seres Vivos
Los Dominios y Reinos de los Seres Vivos
karlafreire0608
 
proyectoszona21para el logro de real.pptx
proyectoszona21para el logro de real.pptxproyectoszona21para el logro de real.pptx
proyectoszona21para el logro de real.pptx
ChristianGmez48
 
Escuela Sabática. El conflicto inminente.pdf
Escuela Sabática. El conflicto inminente.pdfEscuela Sabática. El conflicto inminente.pdf
Escuela Sabática. El conflicto inminente.pdf
Alejandrino Halire Ccahuana
 
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
MiNeyi1
 
Gracias papá voz mujer_letra y acordes de guitarra.pdf
Gracias papá voz mujer_letra y acordes de guitarra.pdfGracias papá voz mujer_letra y acordes de guitarra.pdf
Gracias papá voz mujer_letra y acordes de guitarra.pdf
Ani Ann
 
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdfMundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
ViriEsteva
 
Presentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdfPresentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdf
eleandroth
 
REGLAMENTO DE FALTAS Y SANCIONES DEL MAGISTERIO 2024.pptx
REGLAMENTO DE FALTAS Y SANCIONES DEL MAGISTERIO 2024.pptxREGLAMENTO DE FALTAS Y SANCIONES DEL MAGISTERIO 2024.pptx
REGLAMENTO DE FALTAS Y SANCIONES DEL MAGISTERIO 2024.pptx
RiosMartin
 
tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)
saradocente
 
REGIMÉN ACADÉMICO PARA LA EDUCACIÓN SECUNDARIA - RESOC-2024-1650-GDEBA-DGC...
REGIMÉN ACADÉMICO PARA LA EDUCACIÓN SECUNDARIA - RESOC-2024-1650-GDEBA-DGC...REGIMÉN ACADÉMICO PARA LA EDUCACIÓN SECUNDARIA - RESOC-2024-1650-GDEBA-DGC...
REGIMÉN ACADÉMICO PARA LA EDUCACIÓN SECUNDARIA - RESOC-2024-1650-GDEBA-DGC...
carla526481
 
Eureka 2024 ideas y dudas para la feria de Ciencias
Eureka 2024 ideas y dudas para la feria de CienciasEureka 2024 ideas y dudas para la feria de Ciencias
Eureka 2024 ideas y dudas para la feria de Ciencias
arianet3011
 
CALCULO DE AMORTIZACION DE UN PRESTAMO.pdf
CALCULO DE AMORTIZACION DE UN PRESTAMO.pdfCALCULO DE AMORTIZACION DE UN PRESTAMO.pdf
CALCULO DE AMORTIZACION DE UN PRESTAMO.pdf
cesareduvr95
 
Ejercicios-de-Calculo-de-Goteo-Enfermeria1-1.ppt
Ejercicios-de-Calculo-de-Goteo-Enfermeria1-1.pptEjercicios-de-Calculo-de-Goteo-Enfermeria1-1.ppt
Ejercicios-de-Calculo-de-Goteo-Enfermeria1-1.ppt
eliseo membreño
 
APUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdf
APUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdfAPUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdf
APUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdf
VeronicaCabrera50
 
Qué entra en el examen de Geografía.pptx
Qué entra en el examen de Geografía.pptxQué entra en el examen de Geografía.pptx
Qué entra en el examen de Geografía.pptx
saradocente
 
PLAN 365 Presentación Gobierno 2024 (1).pdf
PLAN 365 Presentación Gobierno 2024  (1).pdfPLAN 365 Presentación Gobierno 2024  (1).pdf
PLAN 365 Presentación Gobierno 2024 (1).pdf
ElizabethLpez634570
 

Último (20)

Papel histórico de los niños, jóvenes y adultos mayores en la historia nacional
Papel histórico de los niños, jóvenes y adultos mayores en la historia nacionalPapel histórico de los niños, jóvenes y adultos mayores en la historia nacional
Papel histórico de los niños, jóvenes y adultos mayores en la historia nacional
 
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdf
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdfEstás conmigo Jesús amigo_letra y acordes de guitarra.pdf
Estás conmigo Jesús amigo_letra y acordes de guitarra.pdf
 
Mapa Mental documentos que rigen el sistema de evaluación
Mapa Mental documentos que rigen el sistema de evaluaciónMapa Mental documentos que rigen el sistema de evaluación
Mapa Mental documentos que rigen el sistema de evaluación
 
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdfDESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
DESARROLLO DE LAS RELACIONES CON LOS STAKEHOLDERS.pdf
 
Los Dominios y Reinos de los Seres Vivos
Los Dominios y Reinos de los Seres VivosLos Dominios y Reinos de los Seres Vivos
Los Dominios y Reinos de los Seres Vivos
 
proyectoszona21para el logro de real.pptx
proyectoszona21para el logro de real.pptxproyectoszona21para el logro de real.pptx
proyectoszona21para el logro de real.pptx
 
Escuela Sabática. El conflicto inminente.pdf
Escuela Sabática. El conflicto inminente.pdfEscuela Sabática. El conflicto inminente.pdf
Escuela Sabática. El conflicto inminente.pdf
 
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
1.- manual-para-la-creacion-33-dias-de-manifestacion-ulises-sampe.pdf
 
Gracias papá voz mujer_letra y acordes de guitarra.pdf
Gracias papá voz mujer_letra y acordes de guitarra.pdfGracias papá voz mujer_letra y acordes de guitarra.pdf
Gracias papá voz mujer_letra y acordes de guitarra.pdf
 
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdfMundo ABC Examen 1 Grado- Tercer Trimestre.pdf
Mundo ABC Examen 1 Grado- Tercer Trimestre.pdf
 
Presentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdfPresentación simple corporativa degradado en violeta blanco.pdf
Presentación simple corporativa degradado en violeta blanco.pdf
 
REGLAMENTO DE FALTAS Y SANCIONES DEL MAGISTERIO 2024.pptx
REGLAMENTO DE FALTAS Y SANCIONES DEL MAGISTERIO 2024.pptxREGLAMENTO DE FALTAS Y SANCIONES DEL MAGISTERIO 2024.pptx
REGLAMENTO DE FALTAS Y SANCIONES DEL MAGISTERIO 2024.pptx
 
tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)tema 7. Los siglos XVI y XVII ( resumen)
tema 7. Los siglos XVI y XVII ( resumen)
 
REGIMÉN ACADÉMICO PARA LA EDUCACIÓN SECUNDARIA - RESOC-2024-1650-GDEBA-DGC...
REGIMÉN ACADÉMICO PARA LA EDUCACIÓN SECUNDARIA - RESOC-2024-1650-GDEBA-DGC...REGIMÉN ACADÉMICO PARA LA EDUCACIÓN SECUNDARIA - RESOC-2024-1650-GDEBA-DGC...
REGIMÉN ACADÉMICO PARA LA EDUCACIÓN SECUNDARIA - RESOC-2024-1650-GDEBA-DGC...
 
Eureka 2024 ideas y dudas para la feria de Ciencias
Eureka 2024 ideas y dudas para la feria de CienciasEureka 2024 ideas y dudas para la feria de Ciencias
Eureka 2024 ideas y dudas para la feria de Ciencias
 
CALCULO DE AMORTIZACION DE UN PRESTAMO.pdf
CALCULO DE AMORTIZACION DE UN PRESTAMO.pdfCALCULO DE AMORTIZACION DE UN PRESTAMO.pdf
CALCULO DE AMORTIZACION DE UN PRESTAMO.pdf
 
Ejercicios-de-Calculo-de-Goteo-Enfermeria1-1.ppt
Ejercicios-de-Calculo-de-Goteo-Enfermeria1-1.pptEjercicios-de-Calculo-de-Goteo-Enfermeria1-1.ppt
Ejercicios-de-Calculo-de-Goteo-Enfermeria1-1.ppt
 
APUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdf
APUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdfAPUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdf
APUNTES UNIDAD I ECONOMIA EMPRESARIAL .pdf
 
Qué entra en el examen de Geografía.pptx
Qué entra en el examen de Geografía.pptxQué entra en el examen de Geografía.pptx
Qué entra en el examen de Geografía.pptx
 
PLAN 365 Presentación Gobierno 2024 (1).pdf
PLAN 365 Presentación Gobierno 2024  (1).pdfPLAN 365 Presentación Gobierno 2024  (1).pdf
PLAN 365 Presentación Gobierno 2024 (1).pdf
 

Estados de un proceso

  • 2. 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 - Teórico 2010 - Procesos
  • 3. 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 - Teórico 2010 - Procesos
  • 4. 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 - Teórico 2010 - Procesos
  • 5. 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 - Teórico 2010 - Procesos
  • 6. 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 - Teórico 2010 - Procesos
  • 7. Estados de los procesos  Diagrama de estados y transiciones de los procesos. Sistemas Operativos - Teórico 2010 - Procesos
  • 8. 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 - Teórico 2010 - Procesos
  • 9. Transiciones entre estados  Ejecutando –> Listo – Ante una interrupción que se generé, 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 - Teórico 2010 - Procesos
  • 10. 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 - Teórico 2010 - Procesos
  • 11. 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 - Teórico 2010 - Procesos
  • 12. 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).  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. Sistemas Operativos - Teórico 2010 - Procesos
  • 13. Bloque descriptor de proceso  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 o bloqueado.  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 quien creo este proceso.  Descendientes: Lista de punteros a PCBs de los hijos de este proceso. Sistemas Operativos - Teórico 2010 - Procesos
  • 14. 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.  Una vez creado el nuevo proceso tendrán un hilo (pc) de ejecución propio. El sistema genera un nuevo PCB para el proceso creado. Sistemas Operativos - Teórico 2010 - Procesos
  • 15. 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 - Teórico 2010 - Procesos
  • 16. Creación de procesos int main() { pid_t pid; /* fork another process */ pid = fork(); if (pid < 0) { /* error occurred */ fprintf(stderr, "Fork Failed"); exit(-1); } if (pid == 0) /* child process */ execlp("/bin/ls", "ls", NULL); else { /* parent */ wait (NULL); printf ("Child Complete"); exit(0); } } Sistemas Operativos - Teórico 2010 - Procesos
  • 17. Creación de procesos Sistemas Operativos - Teórico 2010 - Procesos
  • 18. 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 - Teórico 2010 - Procesos
  • 19. Listas y colas de procesos Sistemas Operativos - Teórico 2010 - Procesos
  • 20. Listas y colas de procesos  Diagrama de transición de un proceso entre las colas del sistema. Sistemas Operativos - Teórico 2010 - Procesos
  • 21. 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 - Teórico 2010 - Procesos
  • 22. Cambio de contexto Sistemas Operativos - Teórico 2010 - Procesos
  • 23. 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. Sistemas Operativos - Teórico 2010 - Procesos
  • 24. Threads  Hay aplicaciones donde es necesario utilizar y compartir 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.  Cada thread contendrá su propio program counter, un conjunto de registros, un espacio para el stack y su prioridad. Sistemas Operativos - Teórico 2010 - Procesos
  • 25. Threads  Todos los recursos, sección de código y datos son compartidos por los distintos threads de un mismo proceso. Sistemas Operativos - Teórico 2010 - Procesos
  • 26. Ventajas del uso de threads  Repuesta: Desarrollar una aplicación con varios hilos de control (threads) permite tener un mejor tiempo de respuesta.  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. Sistemas Operativos - Teórico 2010 - Procesos
  • 27. 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 - Teórico 2010 - Procesos
  • 28. 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 (guardar registros).  Planificación independiente: Se puede crear una nueva estrategia de planificación diferente a la que tenga el sistema operativo. Sistemas Operativos - Teórico 2010 - Procesos
  • 29. 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 - Teórico 2010 - Procesos
  • 30. 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 threads 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 - Teórico 2010 - Procesos
  • 31. 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 - Teórico 2010 - Procesos
  • 32. 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 - Teórico 2010 - Procesos
  • 33. 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 - Teórico 2010 - Procesos