2.3 Procesos Ligeros
(Hilos o Hebras)
2.4 Concurrencia y
secuencialidad
Integrantes:
Jairo Ediel Méndez Soberano
Ricardo Arturo García García
Alex Eduardo Hernández Lázaro
Jhonathan Almeida Pérez
Materia: Sistemas Operativos
Docente: Alejandro López Jiménez
2.3
Procesos Ligeros (Hilos o
Hebras)
Procesos Ligeros (Hilos o Hebras)
Un proceso ligero, o thread, es un
programa en ejecución (flujo de
ejecución) que comparte la imagen de
memoria y otras informaciones con
otros procesos ligeros. Como muestra
la Figura , un proceso puede contener
un solo flujo de ejecución, como ocurre
en los procesos clásicos, o mas de un
flujo de ejecución (procesos ligeros).
3
Informaciones de ejecución
Cada proceso ligero tiene informaciones que le son
propias y que no comparte con otros procesos ligeros.
Contador de
programa
Pila. Estado del
proceso
Registros
Relación de los procesos
ligeros
5
Todos los procesos ligeros de un mismo proceso comparten
la información del mismo. En concreto, comparten:
•Espacio de memoria.
•Variables globales.
•Archivos abiertos.
•Procesos hijos.
•Temporizadores.
•Señales y semáforos.
•Contabilidad.
2.4
Concurrencia y
secuenciabilidad
Concurrenci
a Es la existencia de varias actividades
ejecutándose simultáneamente, y necesitan
sincronizarse para actuar conjuntamente. Se
trata, en este caso, de un concepto lógico, ya
que sólo hace referencia a las actividades, sin
importar el número de procesadores presentes.
7
¿Cuándo las actividades son concurrentes
Para que dos actividades, sean concurrentes, es necesario que tengan relación entre sí, como
puede ser la cooperación en un trabajo determinado o el uso de información compartida.
8
Concurrencia y secuenciabilidad
Los procesos del sistema pueden ejecutarse
concurrentemente, puede haber múltiples tareas en el CPU
con varios procesos. Existen varias razones para permitir la
ejecución concurrente:
9
Compartir recursos físicos Compartir recursos lógicos Acelerar los cálculos
Ya que los recursos del hardware de
la computadora son limitados, nos
podemos ver obligados a compartirlos
en un entorno multiusuario.
Puesto que varios usuarios pueden
interesarse en el mismo elemento de
información (por ejemplo un archivo
compartido), debemos proporcionar
un entorno que permita el acceso
concurrente a estos tipos de recursos.
Si queremos que una tarea se ejecute
con mayor rapidez, debemos dividirla
en subtareas, cada una de las cuales
se ejecutara, en paralelo con las
demás.
10
Concurrencia y secuenciabilidad
11
Modularidad
Comodidad
Podremos construir el sistema en forma modular,
dividiendo las funciones del sistema en procesos
separados.
Un usuario puede tener que ejecutar varias tareas a la vez,
por ejemplo puede editar, imprimir y compilar en paralelo.
PROBLEMAS DE CONCURRENCIA
12
En los sistemas de tiempo compartido (aquellos con varios
usuarios, procesos, tareas, trabajos que reparten el uso de CPU
entre estos) se presentan muchos problemas debido a que los
procesos compiten por los recursos del sistema. Imagine que un
proceso está escribiendo en la unidad de cinta y se le termina su
turno de ejecución e inmediatamente después el proceso elegido
para ejecutarse comienza a escribir sobre la misma cinta. El
resultado es una cinta cuyo contenido es un desastre de datos
mezclados. Así como la cinta, existen una multitud de recursos
cuyo acceso debe ser controlado para evitar los problemas de la
concurrencia.
PROBLEMAS DE CONCURRENCIA
Condiciones de Carrera o
Competencia:
La condición de carrera (race
condition) ocurre cuando dos o más
procesos accedan un recurso
compartido sin control, de manera
que el resultado combinado de este
acceso depende del orden de llegada.
Postergación o
Aplazamiento Indefinido(a):
Esto se mencionó en el apartado anterior
y consiste en el hecho de que uno o varios
procesos nunca reciban el suficiente
tiempo de ejecución para terminar su
tarea.
Condición de Espera
Circular:
Esto ocurre cuando dos o más procesos
forman una cadena de espera que los
involucra a todos. Por ejemplo, suponga
que el proceso A tiene asignado el
recurso 'cinta' y el proceso B tiene
asignado el recurso 'disco'.
Condición de No
Apropiación:
Esta condición no resulta precisamente de
la concurrencia, pero juega un papel
importante en este ambiente. Esta
condición especifica que si un proceso
tiene asignado un recurso, dicho recurso
no puede arrebatársele por ningún motivo,
y estará disponible hasta que el proceso lo
'suelte' por su voluntad.
Condición de Espera
Ocupada:
Esta condición consiste en que un
proceso pide un recurso que ya
está asignado a otro proceso y la
condición de no apropiación se
debe cumplir.
Condición de Ocupar y
Esperar un Recurso:
Consiste en que un proceso pide
un recurso y se le asigna. Antes
de soltarlo, pide otro recurso que
otro proceso ya tiene asignado.
13
Concurrencia y secuenciabilidad
14
Inicializa el semáforo antes de que cualquier
proceso haya ejecutado ni una
operación wait() ni una operación signal() al
límite de número de procesos que tengan
derecho a acceder el recurso. Si se inicializa
con 1, se ha contruido un semáforo binario.
init()
Si el estado indica cero, el proceso se
queda atrapado en el semáforo hasta que
sea despertado por otro proceso. Si el
estado indica que un proceso más puede
acceder el recurso se decrementa el
contador y la operación termina con exito.
wait()
Un semáforo es un tipo de datos
abstracto que permite el uso de un
recurso de manera exclusiva cuando
varios procesos están compitiendo.
.
¿Qué son?
Una vez se ha terminado el uso del
recurso, el proceso lo señaliza al
semáforo. Si queda algún proceso
bloqueado en el semáforo uno de ellos
sea despertado, sino se incrementa el
contador.
signal()
Mecanismo de
semáforos
Mecanismo de Monitores
15
El acceso al monitor está permitido solamente a través de los procedimientos públicos y el compilador
garantiza exclusión mutua para todos los procedimientos.
Una desventaja de los monitores es la exclusividad de su uso, es decir, la concurrencia está limitada si
muchos procesos hacen uso del mismo monitor.
La técnica permite la sincronización entre procesos porque actuando sobre el mismo recurso los procesos
pueden cambiar el estado del recurso y pasar así información de un proceso al otro.
Secuenciabilidad
¿Qué es?
Los archivos secuenciales son un tipo de archivo en los que
la información puede leerse y escribirse empezando desde
el principio del archivo.
Debemos tomar en consideración algunas características
que deben tener los archivos secuenciales:
Archivos Secuenciales
Se refiere al procesamiento de los registros, no
importa el orden en que se haga, para eso los
registros están organizados en forma de una lista y
recuperarlos y procesarlos uno por uno de principio
a fin.
Caracteristicas
1. La escritura de nuevos datos siempre se hace al final del archivo.
2. Para leer una zona concreta del archivo hay que avanzar siempre, si
la zona está antes de la zona actual de lectura, será necesario
"rebobinar" el archivo.
3. Los ficheros sólo se pueden abrir para lectura o para escritura, nunca
de los dos modos a la vez.
TEORÍA DE SERIABILIDAD
Una forma de evitar los problemas de interferencia es no
permitir que las transacciones se intercalen. Una ejecución en
la cual ninguna de dos transacciones se intercala se conoce
como serial. Para ser más precisos, una ejecución se dice que
es serial si, para todo par de transacciones, todas las
operaciones de una transacción se ejecutan antes de cualquier
operación de la otra transacción.
16
Gracias por ver.
García, L. M. J., & Manchón, R. P. (2017). Sistemas Informáticos en tiempo real: Teoría y aplicaciones. Universidad Miguel Hernández.)
https://sites.google.com/site/materiasisoperativo/unidad-2-administrador-del-proceso-y-del-procesador/concurrencia-y-
secuenciabilidad
¿Alguna pregunta sobre los temas expuestos?

Vega_NoAnimation.pptx

  • 1.
    2.3 Procesos Ligeros (Hiloso Hebras) 2.4 Concurrencia y secuencialidad Integrantes: Jairo Ediel Méndez Soberano Ricardo Arturo García García Alex Eduardo Hernández Lázaro Jhonathan Almeida Pérez Materia: Sistemas Operativos Docente: Alejandro López Jiménez
  • 2.
  • 3.
    Procesos Ligeros (Hiloso Hebras) Un proceso ligero, o thread, es un programa en ejecución (flujo de ejecución) que comparte la imagen de memoria y otras informaciones con otros procesos ligeros. Como muestra la Figura , un proceso puede contener un solo flujo de ejecución, como ocurre en los procesos clásicos, o mas de un flujo de ejecución (procesos ligeros). 3
  • 4.
    Informaciones de ejecución Cadaproceso ligero tiene informaciones que le son propias y que no comparte con otros procesos ligeros. Contador de programa Pila. Estado del proceso Registros
  • 5.
    Relación de losprocesos ligeros 5 Todos los procesos ligeros de un mismo proceso comparten la información del mismo. En concreto, comparten: •Espacio de memoria. •Variables globales. •Archivos abiertos. •Procesos hijos. •Temporizadores. •Señales y semáforos. •Contabilidad.
  • 6.
  • 7.
    Concurrenci a Es laexistencia de varias actividades ejecutándose simultáneamente, y necesitan sincronizarse para actuar conjuntamente. Se trata, en este caso, de un concepto lógico, ya que sólo hace referencia a las actividades, sin importar el número de procesadores presentes. 7
  • 8.
    ¿Cuándo las actividadesson concurrentes Para que dos actividades, sean concurrentes, es necesario que tengan relación entre sí, como puede ser la cooperación en un trabajo determinado o el uso de información compartida. 8
  • 9.
    Concurrencia y secuenciabilidad Losprocesos del sistema pueden ejecutarse concurrentemente, puede haber múltiples tareas en el CPU con varios procesos. Existen varias razones para permitir la ejecución concurrente: 9
  • 10.
    Compartir recursos físicosCompartir recursos lógicos Acelerar los cálculos Ya que los recursos del hardware de la computadora son limitados, nos podemos ver obligados a compartirlos en un entorno multiusuario. Puesto que varios usuarios pueden interesarse en el mismo elemento de información (por ejemplo un archivo compartido), debemos proporcionar un entorno que permita el acceso concurrente a estos tipos de recursos. Si queremos que una tarea se ejecute con mayor rapidez, debemos dividirla en subtareas, cada una de las cuales se ejecutara, en paralelo con las demás. 10
  • 11.
    Concurrencia y secuenciabilidad 11 Modularidad Comodidad Podremosconstruir el sistema en forma modular, dividiendo las funciones del sistema en procesos separados. Un usuario puede tener que ejecutar varias tareas a la vez, por ejemplo puede editar, imprimir y compilar en paralelo.
  • 12.
    PROBLEMAS DE CONCURRENCIA 12 Enlos sistemas de tiempo compartido (aquellos con varios usuarios, procesos, tareas, trabajos que reparten el uso de CPU entre estos) se presentan muchos problemas debido a que los procesos compiten por los recursos del sistema. Imagine que un proceso está escribiendo en la unidad de cinta y se le termina su turno de ejecución e inmediatamente después el proceso elegido para ejecutarse comienza a escribir sobre la misma cinta. El resultado es una cinta cuyo contenido es un desastre de datos mezclados. Así como la cinta, existen una multitud de recursos cuyo acceso debe ser controlado para evitar los problemas de la concurrencia.
  • 13.
    PROBLEMAS DE CONCURRENCIA Condicionesde Carrera o Competencia: La condición de carrera (race condition) ocurre cuando dos o más procesos accedan un recurso compartido sin control, de manera que el resultado combinado de este acceso depende del orden de llegada. Postergación o Aplazamiento Indefinido(a): Esto se mencionó en el apartado anterior y consiste en el hecho de que uno o varios procesos nunca reciban el suficiente tiempo de ejecución para terminar su tarea. Condición de Espera Circular: Esto ocurre cuando dos o más procesos forman una cadena de espera que los involucra a todos. Por ejemplo, suponga que el proceso A tiene asignado el recurso 'cinta' y el proceso B tiene asignado el recurso 'disco'. Condición de No Apropiación: Esta condición no resulta precisamente de la concurrencia, pero juega un papel importante en este ambiente. Esta condición especifica que si un proceso tiene asignado un recurso, dicho recurso no puede arrebatársele por ningún motivo, y estará disponible hasta que el proceso lo 'suelte' por su voluntad. Condición de Espera Ocupada: Esta condición consiste en que un proceso pide un recurso que ya está asignado a otro proceso y la condición de no apropiación se debe cumplir. Condición de Ocupar y Esperar un Recurso: Consiste en que un proceso pide un recurso y se le asigna. Antes de soltarlo, pide otro recurso que otro proceso ya tiene asignado. 13
  • 14.
    Concurrencia y secuenciabilidad 14 Inicializael semáforo antes de que cualquier proceso haya ejecutado ni una operación wait() ni una operación signal() al límite de número de procesos que tengan derecho a acceder el recurso. Si se inicializa con 1, se ha contruido un semáforo binario. init() Si el estado indica cero, el proceso se queda atrapado en el semáforo hasta que sea despertado por otro proceso. Si el estado indica que un proceso más puede acceder el recurso se decrementa el contador y la operación termina con exito. wait() Un semáforo es un tipo de datos abstracto que permite el uso de un recurso de manera exclusiva cuando varios procesos están compitiendo. . ¿Qué son? Una vez se ha terminado el uso del recurso, el proceso lo señaliza al semáforo. Si queda algún proceso bloqueado en el semáforo uno de ellos sea despertado, sino se incrementa el contador. signal() Mecanismo de semáforos
  • 15.
    Mecanismo de Monitores 15 Elacceso al monitor está permitido solamente a través de los procedimientos públicos y el compilador garantiza exclusión mutua para todos los procedimientos. Una desventaja de los monitores es la exclusividad de su uso, es decir, la concurrencia está limitada si muchos procesos hacen uso del mismo monitor. La técnica permite la sincronización entre procesos porque actuando sobre el mismo recurso los procesos pueden cambiar el estado del recurso y pasar así información de un proceso al otro.
  • 16.
    Secuenciabilidad ¿Qué es? Los archivossecuenciales son un tipo de archivo en los que la información puede leerse y escribirse empezando desde el principio del archivo. Debemos tomar en consideración algunas características que deben tener los archivos secuenciales: Archivos Secuenciales Se refiere al procesamiento de los registros, no importa el orden en que se haga, para eso los registros están organizados en forma de una lista y recuperarlos y procesarlos uno por uno de principio a fin. Caracteristicas 1. La escritura de nuevos datos siempre se hace al final del archivo. 2. Para leer una zona concreta del archivo hay que avanzar siempre, si la zona está antes de la zona actual de lectura, será necesario "rebobinar" el archivo. 3. Los ficheros sólo se pueden abrir para lectura o para escritura, nunca de los dos modos a la vez. TEORÍA DE SERIABILIDAD Una forma de evitar los problemas de interferencia es no permitir que las transacciones se intercalen. Una ejecución en la cual ninguna de dos transacciones se intercala se conoce como serial. Para ser más precisos, una ejecución se dice que es serial si, para todo par de transacciones, todas las operaciones de una transacción se ejecutan antes de cualquier operación de la otra transacción. 16
  • 17.
    Gracias por ver. García,L. M. J., & Manchón, R. P. (2017). Sistemas Informáticos en tiempo real: Teoría y aplicaciones. Universidad Miguel Hernández.) https://sites.google.com/site/materiasisoperativo/unidad-2-administrador-del-proceso-y-del-procesador/concurrencia-y- secuenciabilidad ¿Alguna pregunta sobre los temas expuestos?