U2: ADMINISTRACION DE PROCESOS Y
                 DEL PROCESADOR
                TEMAS: 2.3, 2.4, 2.5




                         Gonzalo Murga Sotelo
                         09560633
Procesos

    Su estado de ejecución en un momento dado, esto es, los valores de los registros
     de la unidad central de procesamiento para dicho programa.

    Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.

    Los procesos son creados y destruidos por el sistema operativo, así como también
     este se debe hacer cargo de la comunicación entre procesos,

Hilos

    Es la unidad de procesamiento más pequeña que puede ser planificada por un
     sistema operativo.

    Un hilo es una característica que permite a una aplicación realizar varias tareas a la
     vez (concurrentemente). Los distintos hilos de ejecución comparten una serie de
     recursos tales como el espacio de memoria, los archivos abiertos, situación de
     autenticación, etc. Esta técnica permite simplificar el diseño de una aplicación que
     debe llevar a cabo distintas funciones simultáneamente.

    Es básicamente una tarea que puede ser ejecutada en paralelo con otra tarea.



CARACTERISTICAS:

       La memoria y los recursos son asignados a los procesos.
       Todos los hilos de un proceso comparten la memoria y los recursos asignados a ese
        proceso.
       Sin embargo, cada hilo tiene un contexto diferente.
       El procesador es el único recurso que no se comparte entre los hilos.
       Cada hilo tiene una pila diferente
       Un proceso puede ser formado por uno o más hilos
Concurrencia

    Es el punto clave de la gestión de procesos y fundamental para el diseño de
    sistemas operativos. Comprende un gran numero de cuestiones de diseño,
    incluyendo la comunicación entre procesos, compartición y competencia por los
    recursos, sincronización de la ejecución de varios procesos.

    Gestión de procesos

 Multiprogramación

 Multiproceso

 Proceso Distribuido

    Puede presentarse en 3 contextos diferentes que son:

    Varias aplicaciones: La multiprogramación se creo para permitir que el tiempo de
    procesador de las maquinas fuese compartido dinámicamente entre varios
    trabajos o aplicaciones activas.

    Aplicaciones estructuradas: Estas pueden implementarse eficazmente como un
    conjunto de procesos concurrentes.

    Estructura del sistema operativo: Son aplicables a los programadores de sistemas
    y se ha comprobado que algunos sistemas operativos están implementados como
    un conjunto de procesos.

    Exclusión mutua

 El uso adecuado de la concurrencia entre procesos exige la capacidad de definir
  secciones criticas y hacer cumplir la exclusión mutua.

 Una manera es dejar la responsabilidad a los procesos que deseen ejecutar
  concurrentemente, así pues tanto si son programas del sistema, como de
  aplicación, los procesos deben coordinarse unos con otros para ser cumplida la
  exclusión mutua, sin ayuda por parte del lenguaje de programación o del sistema
  operativo.


El método mas sencillo de comunicación entre los procesos de un programa concurrente
es el uso común de unas variables de datos. Esta forma tan sencilla de comunicación
puede llevar, no obstante, a errores en el programa ya que el acceso concurrente puede
hacer que la acción de un proceso interfiera en las acciones de otro de una forma no
adecuada. Aunque nos vamos a fijar en variables de datos, todo lo que sigue seria valido
con cualquier otro recurso del sistema que solo pueda ser utilizado por un proceso a la
vez.

Por ejemplo una variable x compartida entre dos procesos A y B que pueden incrementar
o decrementar la variable dependiendo de un determinado suceso. Esta situación se
plantea, por ejemplo, en un problema típico de la programación concurrente conocido
como el Problema de los Jardines. En este problema se supone que se desea controlar el
número de visitantes a unos jardines. La entrada y la salida a los jardines se pueden
realizar por dos puntos que disponen de puertas giratorias. Se desea poder conocer en
cualquier momento el número de visitantes a los jardines, por lo que se dispone de un
computador con conexión en cada uno de los dos puntos de entrada que le informan cada
vez que se produce una entrada o una salida.

Asociamos el proceso P1 a un punto de entrada y el proceso P2 al otro punto de entrada.
Ambos procesos se ejecutan de forma concurrente y utilizan una única variable x para
llevar la cuenta del número de visitantes.

El incremento o decremento de la variable se produce cada vez que un visitante entra o
sale por una de las puertas. Así, la entrada de un visitante por una de las puertas hace que
se ejecute la instrucción

x:=x+1          mientras que la salida de un visitante hace que se ejecute la instrucción
x:=x-1
En muchos casos, los procesos se reúnen para realizar tareas en conjunto, a este tipo de
relación se le llama procesos cooperativos. Para lograr la comunicación, los procesos
deben sincronizarse, de no ser así pueden ocurrir problemas no deseados. La
sincronización es la transmisión y recepción de señales que tiene por objeto llevar a cabo
el trabajo de un grupo de procesos cooperativos.

Es la coordinación y cooperación de un conjunto de procesos para asegurar la
comparación de recursos de cómputo. La sincronización entre procesos es necesaria para
prevenir y/o corregir errores de sincronización debidos al acceso concurrente a recursos
compartidos, tales como estructuras de datos o dispositivos de E/S, de procesos
contendientes. La sincronización entre procesos también permite intercambiar señales de
tiempo (ARRANQUE/PARADA) entre procesos cooperantes para garantizar las relaciones
específicas de precedencia impuestas por el problema que se resuelve.

Sin una sincronización adecuada entre procesos, la actualización de variables compartidas
puede inducir a errores de tiempo relacionados con la concurrencia que son con
frecuencia difíciles de depurar. Una de las causas principales de este problema es que
procesos concurrentes puedan observar valores temporalmente inconsistentes de una
variable compartida mientras se actualizan. Una aproximación para resolver este
problema es realizar actualizaciones de variables compartidas de manera mutuamente
exclusiva. Se pueden mejorar permitiendo que a lo más un proceso entre a la vez en la
sección crítica de código en la que se actualiza una variable compartida o estructura de
datos en particular.

Para que los procesos puedan sincronizarse es necesario disponer de servicios que
permitan bloquear o suspender bajo determinadas circunstancias la ejecución de un
proceso. Los principales mecanismos de sincronización que ofrecen los sistemas
operativos son:



                     Señales

                     Tuberías

                     Semáforos

                     Mutex y variables condicionales

                     Paso de mensajes
Semáforos es un algoritmo de control de procesos



Que a su vez tiene varios tipos de semáforos los cuales se dividen en:

Semáforo binario:

Un semáforo binario es un indicador de condición (S) que registra si un recurso está
disponible o no. Un semáforo binario sólo puede tomar dos valores: O y 1.

Semáforo robusto:

Es el que se encarga de liberar los procesos que llevan mas tiempo bloqueados.



EJEMPLO

wait (variable)
begin
 while (variable)>=0 do {esperar}
 variable=variable-1
end

signal (variable)
begin
  variable=variable+1
end



El semáforo se inicializa con el numero total de recursos disponibles (n) y las operaciones
de espera y señal se diseñan de modo que se impida el acceso al recurso protegido por el
semáforo cuando el valor de éste es menor o igual que cero
Los monitores son una herramienta de sincronización

Posee una estructura propia, es una colección de procedimientos, variables y estructuras
de datos que se agrupan en un módulo especial.

Los procesos pueden llamar a los procedimientos de un monitor siempre que lo requieran,
pero no pueden acceder directamente las estructuras de datos internas del monitor.

Implementan un nivel aún más alto de abstracción facilitando el acceso a recursos
compartidos.

Componentes

Inicialización: contiene el código a ser ejecutado cuando el monitor es creado

Datos privados: contiene los procedimientos privados, que sólo pueden ser usados desde
dentro del monitor y no son visibles desde fuera

Procedimientos del monitor: son los procedimientos que pueden ser llamados desde
fuera del monitor.

Cola de entrada: contiene a los threads que han llamado a algún procedimiento del
monitor pero no han podido adquirir permiso para ejecutarlos aún.

La sincronización se usan dos instrucciones:

wait (c): suspende la ejecución del proceso que llama bajo la condición c. El monitor está
ahora disponible para ser usado por otros procesos.

signal(c): reanuda la ejecución de algún proceso suspendido después de un cwait bajo la
misma condición. Si hay varios procesos, se elige uno de ellos; si no hay ninguno, no hace
nada.
El interbloqueo se puede definir como el bloqueo permanente de un conjunto de procesos
que compiten por los recursos del sistema o bien se comunican unos con otros. A
diferencia de otros problemas de la gestión concurrente de procesos, no existe una
solución eficiente para el caso general.

Todos los interbloqueos suponen necesidades contradictorias de recursos por parte de
dos o más procesos.

Ejemplo :

Interbloqueo de tráfico

Cuatro coches llegan aproximadamente en el mismo instante a un cruce de cuatro
caminos. Los cuatro cuadrantes de la intersección son los recursos compartidos sobre los
que se demanda control; por tanto, si los coches desean atravesar el cruce, las
necesidades de recursos son las siguientes:



-    El coche que va hacia el norte necesita los cuadrantes 1 y 2.

-    El coche que va hacia el oeste necesita los cuadrantes 2 y 3.

-    El coche que va hacia el sur necesita los cuadrantes 3 y 4.

-    El coche que va hacia el este necesita los cuadrantes 4 y 1.
Condiciones para producir un interbloqueo

1- Condición de exclusión mutua: Cada recurso esta asignado a un único proceso o esta
disponible.



2- Condición de posesión y espera: Los procesos que tienen, en un momento dado,
recursos asignados con anterioridad, pueden solicitar nuevos recursos.



3- Condición de no apropiación: Los recursos otorgados con anterioridad no pueden ser
forzados a dejar un proceso. El proceso que los posee debe liberarlos en forma explicita.

Puede no existir interbloqueo con solo estas tres condiciones. Para que se produzca
interbloqueo, se necesita una cuarta condición:



4- Condición de espera circular (o circulo vicioso de espera): Debe existir una cadena
circular de dos o mas procesos, cada uno de los cuales espera un recurso poseído por el
siguiente miembro de la cadena.

Prevención de interbloqueo

- Los métodos indirectos que consisten en impedir la aparición de alguna de las tres
condiciones necesarias para que se de el interbloqueo.



- Los métodos directos que consisten en evitar la aparición del circulo vicioso de espera.
NIVELES DE PLANIFICACIÓN Se consideran tres niveles importantes de planificación, los
que se detallan a continuación:

• Planificación de alto nivel: Se encarga de llevar procesos de disco a memoria y viceversa.
Seleccionando los trabajos que deben admitirse en el sistema.

o      También se denomina Planificación de trabajos.
o      Determina a qué trabajos se les va a permitir competir activamente por los
recursos del sistema, lo cual se denomina Planificación de admisión.
o      Administrar todos los recursos del sistema excepto el CPU.
o      Mantiene las colas de procesos bloqueados y suspendidos.
o      Controla la creación de procesos.
o      Maneja el nivel de multiprogramación.

• Planificación de nivel intermedio: En algunos casos, en especial cuando el sistema está
sobrecargado, el planificador de nivel medio encuentra ventajoso retirar trabajos activos
de la memoria para reducir el grado de multiprogramación, y por lo tanto, permitir que los
trabajos se completen más aprisa. Este subadministrador controla los trabajos que se
intercambian hacia fuera y de regreso.

o      Determina a qué procesos se les puede permitir competir por la CPU.
o      Efectúa “suspensiones” y “activaciones” (“reanudaciones”) de procesos.
o      Debe ayudar a alcanzar ciertas metas en el rendimiento total del sistema.
o      Equilibrar la administración de trabajos en el sistema con la asignación del CPU a
dichos procesos.
o      Nivelar la carga del sistema (procesos activos y pasivos).
• Planificación de bajo nivel: Se encarga de pasar de un proceso a otro en memoria
principal. Determinando a cuál proceso listo se le asignará el CPU cuando éste se
encuentra disponible.

o       Determina a qué proceso listo se le asigna la CPU cuando esta queda disponible y
asigna la CPU al mismo, es decir que “despacha” la CPU al proceso.



OBJETIVOS DE PLANIFICACIÓN

Los objetivos de la planificación del procesador son los siguientes e involucran a los
conceptos detallados seguidamente:

•Ser justa:
o      Todos los procesos son tratados de igual manera.
o      Ningún proceso es postergado indefinidamente.

•Maximizar la capacidad de ejecución:
o     Maximizar el número de procesos servidos por unidad de tiempo.
o     Maximizar el número de usuarios interactivos que reciban unos tiempos de
respuesta aceptables: En un máximo de unos segundos.

•Ser predecible:
o      Un trabajo dado debe ejecutarse aproximadamente en la misma cantidad de
tiempo independientemente de la carga del sistema.

•Minimizar la sobrecarga:
    No suele considerarse un objetivo muy importante.


•Equilibrar el uso de recursos:
o      Favorecer a los procesos que utilizarán recursos infrautilizados.

•Equilibrar respuesta y utilización:
o      La mejor manera de garantizar buenos tiempos de respuesta es disponer de los
recursos suficientes cuando se necesitan, pero la utilización total de recursos podrá ser
pobre.
•Evitar la postergación indefinida:
o       Se utiliza la estrategia del “envejecimiento”. o Mientras un proceso espera por un
recurso su prioridad debe aumentar, así la prioridad llegará a ser tan alta que el proceso
recibirá el recurso esperado.

•Asegurar la prioridad:
o      Los mecanismos de planificación deben favorecer a los procesos con prioridades
más altas.

•Dar preferencia a los procesos que mantienen recursos claves:
o      Un proceso de baja prioridad podría mantener un recurso clave, que puede ser
requerido por un proceso de más alta prioridad. O si el recurso es no apropiativo, el
mecanismo de planificación debe otorgar al proceso un tratamiento mejor del que le
correspondería normalmente, puesto que es necesario liberar rápidamente el recurso
clave.

•Dar mejor tratamiento a los procesos que muestren un “comportamiento deseable”:
o     Un ejemplo de comportamiento deseable es una tasa baja de paginación.

•Degradarse suavemente con cargas pesadas:
o       Un mecanismo de planificación no debe colapsar con el peso de una exigente carga
del sistema.

o       Se debe evitar una carga excesiva mediante las siguientes acciones: No
permitiendo que se creen nuevos procesos cuando la carga ya es pesada. Dando servicio a
la carga más pesada al proporcionar un nivel moderadamente reducido de servicio a todos
los procesos.

CRITERIOS DE PLANIFICACIÓN
       Equidad Garantizar que cada proceso obtiene su proporción justa de la CPU.
       Eficacia Mantener ocupada la CPU el ciento por ciento del tiempo.
       Tiempo de respuesta Minimizar el tiempo de respuesta para los usuarios
interactivos.
       Tiempo de regreso Minimizar el tiempo que deben esperar los usuarios por lotes
(batch) para obtener sus resultados.
       Rendimiento Maximizar el número de tareas procesadas por hora.

Más contenido relacionado

PPS
Unidad 2 AdministracióN De Procesos
PPTX
Procesos de los Sistemas Operativos
DOCX
:)Resumen
PPTX
Coordinacion Y Sincronizacion De Procesos
DOCX
Mecanismo de sincronización de procesos
PPSX
Comunicación y Sincronizacion de Procesos
PPTX
SICRONIZACION DE PROCESOS
PPTX
Unidad 2 Sistemas Operativos
Unidad 2 AdministracióN De Procesos
Procesos de los Sistemas Operativos
:)Resumen
Coordinacion Y Sincronizacion De Procesos
Mecanismo de sincronización de procesos
Comunicación y Sincronizacion de Procesos
SICRONIZACION DE PROCESOS
Unidad 2 Sistemas Operativos

La actualidad más candente (20)

PPTX
Unidad 2 sistemas operativos 2011
PPT
Unidad2
PPTX
Procesos de los sistemas operativos
PDF
Unidad 2
PPTX
Sistema operativo
PPS
Sincronizacion de Procesos
PPTX
Diapositivas sincronización
PDF
Planificación Sistemas Operativos 2021 2
PDF
6 sincronizacion de_procesos
DOC
Descripcion y control de procesos
PDF
104842258 unidad-2-administracion-de-procesos-del-procesador
PPT
Sincronización entre procesos
DOCX
Tarea3 fernando lopez
DOCX
DOCX
UNIDAD II SISTEMAS OPERATIVOS
DOCX
Actividad 4
PPTX
Gestion Procesos, Sistemas Operativos
PPT
Procesos - Sistemas Operativos
PPTX
GESTION DE PROCESOS Sistemas Operativos
PPT
Grupo1
Unidad 2 sistemas operativos 2011
Unidad2
Procesos de los sistemas operativos
Unidad 2
Sistema operativo
Sincronizacion de Procesos
Diapositivas sincronización
Planificación Sistemas Operativos 2021 2
6 sincronizacion de_procesos
Descripcion y control de procesos
104842258 unidad-2-administracion-de-procesos-del-procesador
Sincronización entre procesos
Tarea3 fernando lopez
UNIDAD II SISTEMAS OPERATIVOS
Actividad 4
Gestion Procesos, Sistemas Operativos
Procesos - Sistemas Operativos
GESTION DE PROCESOS Sistemas Operativos
Grupo1
Publicidad

Destacado (20)

PDF
развитие хабовой модели
 
PDF
Ganadores de la 2ª edicion de los premios de Generosidad de Marca - Instituto...
DOCX
Albert einstein
PDF
Diamantes repasadores Tyrolit
PPS
9 francisco de asis
PPTX
Modelos de estados y transiciones1
PPTX
E-Shop Expo 2015 CIRB Geert Royberghs
PDF
Normacred 121120211814-phpapp02
PDF
Question 3
PDF
Clase enarm varices y ruptura esofagicas
PPS
Ama hasta convertirte en lo amado. .5 12
PPTX
Prehistoria
PPSX
Telematica
DOCX
Globalización y educación
PPTX
Modelos de estados y transiciones1
PDF
Acuerdo no 26_modificado_por_el_acuerdo_n_33_de_2012
PDF
вэд ответы мазуриной л.а.
 
PDF
Rdfresh2015
PPTX
Волощук О.В. керівник зразкового колективу "Юність"
PDF
Relatorio de Comando Electrico
развитие хабовой модели
 
Ganadores de la 2ª edicion de los premios de Generosidad de Marca - Instituto...
Albert einstein
Diamantes repasadores Tyrolit
9 francisco de asis
Modelos de estados y transiciones1
E-Shop Expo 2015 CIRB Geert Royberghs
Normacred 121120211814-phpapp02
Question 3
Clase enarm varices y ruptura esofagicas
Ama hasta convertirte en lo amado. .5 12
Prehistoria
Telematica
Globalización y educación
Modelos de estados y transiciones1
Acuerdo no 26_modificado_por_el_acuerdo_n_33_de_2012
вэд ответы мазуриной л.а.
 
Rdfresh2015
Волощук О.В. керівник зразкового колективу "Юність"
Relatorio de Comando Electrico
Publicidad

Similar a Procesos_so (20)

PPT
PROGRAMACION CONCURRENTE
PPT
PROGRAMACION CONCURRENTE
PPS
Unidad 2 AdministracióN De Procesos
PPTX
Programacion concurrente
PPTX
S..O. Unidad 2
PPSX
Sicronización entre procesos
PPTX
Mecanismos de exclusion mutua y algoritmos
PPT
Tiposde Sistema
PPT
Tiposde Sistema
PPT
Tiposde Sistema Operativos
DOCX
Qué es un sistema operativo
PPTX
Comunicación y sicronización entre procesos
ODP
Funciones de un SO
PPTX
Multiprogramacion
PPTX
Multiprogramacion
PPTX
Tipos de s.o
PPTX
Clase nº2 tipos de s.o
PPTX
UNIDAD 4. CONOCER LOS PROCESOS Y ADMINISTRACIÓN DEL PROCESADOR.pptx
PPTX
Sistema operativo
PPTX
SO2_U2_PROCESOS, HILOS Y COMUNICACIÓN.pptx
PROGRAMACION CONCURRENTE
PROGRAMACION CONCURRENTE
Unidad 2 AdministracióN De Procesos
Programacion concurrente
S..O. Unidad 2
Sicronización entre procesos
Mecanismos de exclusion mutua y algoritmos
Tiposde Sistema
Tiposde Sistema
Tiposde Sistema Operativos
Qué es un sistema operativo
Comunicación y sicronización entre procesos
Funciones de un SO
Multiprogramacion
Multiprogramacion
Tipos de s.o
Clase nº2 tipos de s.o
UNIDAD 4. CONOCER LOS PROCESOS Y ADMINISTRACIÓN DEL PROCESADOR.pptx
Sistema operativo
SO2_U2_PROCESOS, HILOS Y COMUNICACIÓN.pptx

Último (20)

PPTX
preeclampsia + eclampsia, sindrome de HeLLP
PDF
Temas a elegir para desarrollar oralmente 2do cuatri 2025.pdf
DOCX
PCI LARAOS 2025. 2024 documento de gestión
PPTX
CTE PARA LOS MIEMBROS COLECTIVOS DOCENTES.pptx
PDF
CUIDADOS DE PERIOPERATORIO I-ENFERMERIA I
PDF
Acompanamiento-de-familias-en-la-construccion-de-proyectos-de-vida.pdf
PDF
VATICANO Y LOS GRANDES GENOCIDIOS DEL SIGLO XX.pdf
PDF
Diversos-Rostros-de-la-EPJA-una-vision-desde-universidades-publicas-latinoame...
PPTX
contenidosypda-faase-3-230824191024-49ac7ac3.pptx
PDF
Teología de la misión Ramiro Pellitero.pdf
PDF
50000 mil words en inglés más usados.pdf
PDF
Manual-de-Cargos-y-Funciones-V-02-11-2025
PPTX
Evaluación de Programa analitico 2024-2025 Jardín de niños Ramón González Vil...
PDF
GUÍA INTEGRADA PROMOCIÓN HORIZONTAL 2024-2025 (1).pdf
PDF
Biografia del Genio Steve Jobs Ccesa007.pdf
PDF
El Seminario 23. El sinthome [Jacques Lacan].pdf
PDF
Esc. Sabática lección 9. Cómo vivir la ley.pdf
PDF
4. Guía para el Seguimiento y Evaluación de Proyectos Sociales.pdf
PDF
Organizador curricular multigrado escuela
PDF
1er Grado - Dosificación Anual con Contenidos y PDA (2025-2026) (1).pdf
preeclampsia + eclampsia, sindrome de HeLLP
Temas a elegir para desarrollar oralmente 2do cuatri 2025.pdf
PCI LARAOS 2025. 2024 documento de gestión
CTE PARA LOS MIEMBROS COLECTIVOS DOCENTES.pptx
CUIDADOS DE PERIOPERATORIO I-ENFERMERIA I
Acompanamiento-de-familias-en-la-construccion-de-proyectos-de-vida.pdf
VATICANO Y LOS GRANDES GENOCIDIOS DEL SIGLO XX.pdf
Diversos-Rostros-de-la-EPJA-una-vision-desde-universidades-publicas-latinoame...
contenidosypda-faase-3-230824191024-49ac7ac3.pptx
Teología de la misión Ramiro Pellitero.pdf
50000 mil words en inglés más usados.pdf
Manual-de-Cargos-y-Funciones-V-02-11-2025
Evaluación de Programa analitico 2024-2025 Jardín de niños Ramón González Vil...
GUÍA INTEGRADA PROMOCIÓN HORIZONTAL 2024-2025 (1).pdf
Biografia del Genio Steve Jobs Ccesa007.pdf
El Seminario 23. El sinthome [Jacques Lacan].pdf
Esc. Sabática lección 9. Cómo vivir la ley.pdf
4. Guía para el Seguimiento y Evaluación de Proyectos Sociales.pdf
Organizador curricular multigrado escuela
1er Grado - Dosificación Anual con Contenidos y PDA (2025-2026) (1).pdf

Procesos_so

  • 1. U2: ADMINISTRACION DE PROCESOS Y DEL PROCESADOR TEMAS: 2.3, 2.4, 2.5 Gonzalo Murga Sotelo 09560633
  • 2. Procesos  Su estado de ejecución en un momento dado, esto es, los valores de los registros de la unidad central de procesamiento para dicho programa.  Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos.  Los procesos son creados y destruidos por el sistema operativo, así como también este se debe hacer cargo de la comunicación entre procesos, Hilos  Es la unidad de procesamiento más pequeña que puede ser planificada por un sistema operativo.  Un hilo es una característica que permite a una aplicación realizar varias tareas a la vez (concurrentemente). Los distintos hilos de ejecución comparten una serie de recursos tales como el espacio de memoria, los archivos abiertos, situación de autenticación, etc. Esta técnica permite simplificar el diseño de una aplicación que debe llevar a cabo distintas funciones simultáneamente.  Es básicamente una tarea que puede ser ejecutada en paralelo con otra tarea. CARACTERISTICAS:  La memoria y los recursos son asignados a los procesos.  Todos los hilos de un proceso comparten la memoria y los recursos asignados a ese proceso.  Sin embargo, cada hilo tiene un contexto diferente.  El procesador es el único recurso que no se comparte entre los hilos.  Cada hilo tiene una pila diferente  Un proceso puede ser formado por uno o más hilos
  • 3. Concurrencia Es el punto clave de la gestión de procesos y fundamental para el diseño de sistemas operativos. Comprende un gran numero de cuestiones de diseño, incluyendo la comunicación entre procesos, compartición y competencia por los recursos, sincronización de la ejecución de varios procesos. Gestión de procesos  Multiprogramación  Multiproceso  Proceso Distribuido Puede presentarse en 3 contextos diferentes que son: Varias aplicaciones: La multiprogramación se creo para permitir que el tiempo de procesador de las maquinas fuese compartido dinámicamente entre varios trabajos o aplicaciones activas. Aplicaciones estructuradas: Estas pueden implementarse eficazmente como un conjunto de procesos concurrentes. Estructura del sistema operativo: Son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos están implementados como un conjunto de procesos. Exclusión mutua  El uso adecuado de la concurrencia entre procesos exige la capacidad de definir secciones criticas y hacer cumplir la exclusión mutua.  Una manera es dejar la responsabilidad a los procesos que deseen ejecutar concurrentemente, así pues tanto si son programas del sistema, como de aplicación, los procesos deben coordinarse unos con otros para ser cumplida la exclusión mutua, sin ayuda por parte del lenguaje de programación o del sistema operativo. 
  • 4. El método mas sencillo de comunicación entre los procesos de un programa concurrente es el uso común de unas variables de datos. Esta forma tan sencilla de comunicación puede llevar, no obstante, a errores en el programa ya que el acceso concurrente puede hacer que la acción de un proceso interfiera en las acciones de otro de una forma no adecuada. Aunque nos vamos a fijar en variables de datos, todo lo que sigue seria valido con cualquier otro recurso del sistema que solo pueda ser utilizado por un proceso a la vez. Por ejemplo una variable x compartida entre dos procesos A y B que pueden incrementar o decrementar la variable dependiendo de un determinado suceso. Esta situación se plantea, por ejemplo, en un problema típico de la programación concurrente conocido como el Problema de los Jardines. En este problema se supone que se desea controlar el número de visitantes a unos jardines. La entrada y la salida a los jardines se pueden realizar por dos puntos que disponen de puertas giratorias. Se desea poder conocer en cualquier momento el número de visitantes a los jardines, por lo que se dispone de un computador con conexión en cada uno de los dos puntos de entrada que le informan cada vez que se produce una entrada o una salida. Asociamos el proceso P1 a un punto de entrada y el proceso P2 al otro punto de entrada. Ambos procesos se ejecutan de forma concurrente y utilizan una única variable x para llevar la cuenta del número de visitantes. El incremento o decremento de la variable se produce cada vez que un visitante entra o sale por una de las puertas. Así, la entrada de un visitante por una de las puertas hace que se ejecute la instrucción x:=x+1 mientras que la salida de un visitante hace que se ejecute la instrucción x:=x-1
  • 5. En muchos casos, los procesos se reúnen para realizar tareas en conjunto, a este tipo de relación se le llama procesos cooperativos. Para lograr la comunicación, los procesos deben sincronizarse, de no ser así pueden ocurrir problemas no deseados. La sincronización es la transmisión y recepción de señales que tiene por objeto llevar a cabo el trabajo de un grupo de procesos cooperativos. Es la coordinación y cooperación de un conjunto de procesos para asegurar la comparación de recursos de cómputo. La sincronización entre procesos es necesaria para prevenir y/o corregir errores de sincronización debidos al acceso concurrente a recursos compartidos, tales como estructuras de datos o dispositivos de E/S, de procesos contendientes. La sincronización entre procesos también permite intercambiar señales de tiempo (ARRANQUE/PARADA) entre procesos cooperantes para garantizar las relaciones específicas de precedencia impuestas por el problema que se resuelve. Sin una sincronización adecuada entre procesos, la actualización de variables compartidas puede inducir a errores de tiempo relacionados con la concurrencia que son con frecuencia difíciles de depurar. Una de las causas principales de este problema es que procesos concurrentes puedan observar valores temporalmente inconsistentes de una variable compartida mientras se actualizan. Una aproximación para resolver este problema es realizar actualizaciones de variables compartidas de manera mutuamente exclusiva. Se pueden mejorar permitiendo que a lo más un proceso entre a la vez en la sección crítica de código en la que se actualiza una variable compartida o estructura de datos en particular. Para que los procesos puedan sincronizarse es necesario disponer de servicios que permitan bloquear o suspender bajo determinadas circunstancias la ejecución de un proceso. Los principales mecanismos de sincronización que ofrecen los sistemas operativos son: Señales Tuberías Semáforos Mutex y variables condicionales Paso de mensajes
  • 6. Semáforos es un algoritmo de control de procesos Que a su vez tiene varios tipos de semáforos los cuales se dividen en: Semáforo binario: Un semáforo binario es un indicador de condición (S) que registra si un recurso está disponible o no. Un semáforo binario sólo puede tomar dos valores: O y 1. Semáforo robusto: Es el que se encarga de liberar los procesos que llevan mas tiempo bloqueados. EJEMPLO wait (variable) begin while (variable)>=0 do {esperar} variable=variable-1 end signal (variable) begin variable=variable+1 end El semáforo se inicializa con el numero total de recursos disponibles (n) y las operaciones de espera y señal se diseñan de modo que se impida el acceso al recurso protegido por el semáforo cuando el valor de éste es menor o igual que cero
  • 7. Los monitores son una herramienta de sincronización Posee una estructura propia, es una colección de procedimientos, variables y estructuras de datos que se agrupan en un módulo especial. Los procesos pueden llamar a los procedimientos de un monitor siempre que lo requieran, pero no pueden acceder directamente las estructuras de datos internas del monitor. Implementan un nivel aún más alto de abstracción facilitando el acceso a recursos compartidos. Componentes Inicialización: contiene el código a ser ejecutado cuando el monitor es creado Datos privados: contiene los procedimientos privados, que sólo pueden ser usados desde dentro del monitor y no son visibles desde fuera Procedimientos del monitor: son los procedimientos que pueden ser llamados desde fuera del monitor. Cola de entrada: contiene a los threads que han llamado a algún procedimiento del monitor pero no han podido adquirir permiso para ejecutarlos aún. La sincronización se usan dos instrucciones: wait (c): suspende la ejecución del proceso que llama bajo la condición c. El monitor está ahora disponible para ser usado por otros procesos. signal(c): reanuda la ejecución de algún proceso suspendido después de un cwait bajo la misma condición. Si hay varios procesos, se elige uno de ellos; si no hay ninguno, no hace nada.
  • 8. El interbloqueo se puede definir como el bloqueo permanente de un conjunto de procesos que compiten por los recursos del sistema o bien se comunican unos con otros. A diferencia de otros problemas de la gestión concurrente de procesos, no existe una solución eficiente para el caso general. Todos los interbloqueos suponen necesidades contradictorias de recursos por parte de dos o más procesos. Ejemplo : Interbloqueo de tráfico Cuatro coches llegan aproximadamente en el mismo instante a un cruce de cuatro caminos. Los cuatro cuadrantes de la intersección son los recursos compartidos sobre los que se demanda control; por tanto, si los coches desean atravesar el cruce, las necesidades de recursos son las siguientes: - El coche que va hacia el norte necesita los cuadrantes 1 y 2. - El coche que va hacia el oeste necesita los cuadrantes 2 y 3. - El coche que va hacia el sur necesita los cuadrantes 3 y 4. - El coche que va hacia el este necesita los cuadrantes 4 y 1.
  • 9. Condiciones para producir un interbloqueo 1- Condición de exclusión mutua: Cada recurso esta asignado a un único proceso o esta disponible. 2- Condición de posesión y espera: Los procesos que tienen, en un momento dado, recursos asignados con anterioridad, pueden solicitar nuevos recursos. 3- Condición de no apropiación: Los recursos otorgados con anterioridad no pueden ser forzados a dejar un proceso. El proceso que los posee debe liberarlos en forma explicita. Puede no existir interbloqueo con solo estas tres condiciones. Para que se produzca interbloqueo, se necesita una cuarta condición: 4- Condición de espera circular (o circulo vicioso de espera): Debe existir una cadena circular de dos o mas procesos, cada uno de los cuales espera un recurso poseído por el siguiente miembro de la cadena. Prevención de interbloqueo - Los métodos indirectos que consisten en impedir la aparición de alguna de las tres condiciones necesarias para que se de el interbloqueo. - Los métodos directos que consisten en evitar la aparición del circulo vicioso de espera.
  • 10. NIVELES DE PLANIFICACIÓN Se consideran tres niveles importantes de planificación, los que se detallan a continuación: • Planificación de alto nivel: Se encarga de llevar procesos de disco a memoria y viceversa. Seleccionando los trabajos que deben admitirse en el sistema. o También se denomina Planificación de trabajos. o Determina a qué trabajos se les va a permitir competir activamente por los recursos del sistema, lo cual se denomina Planificación de admisión. o Administrar todos los recursos del sistema excepto el CPU. o Mantiene las colas de procesos bloqueados y suspendidos. o Controla la creación de procesos. o Maneja el nivel de multiprogramación. • Planificación de nivel intermedio: En algunos casos, en especial cuando el sistema está sobrecargado, el planificador de nivel medio encuentra ventajoso retirar trabajos activos de la memoria para reducir el grado de multiprogramación, y por lo tanto, permitir que los trabajos se completen más aprisa. Este subadministrador controla los trabajos que se intercambian hacia fuera y de regreso. o Determina a qué procesos se les puede permitir competir por la CPU. o Efectúa “suspensiones” y “activaciones” (“reanudaciones”) de procesos. o Debe ayudar a alcanzar ciertas metas en el rendimiento total del sistema. o Equilibrar la administración de trabajos en el sistema con la asignación del CPU a dichos procesos. o Nivelar la carga del sistema (procesos activos y pasivos).
  • 11. • Planificación de bajo nivel: Se encarga de pasar de un proceso a otro en memoria principal. Determinando a cuál proceso listo se le asignará el CPU cuando éste se encuentra disponible. o Determina a qué proceso listo se le asigna la CPU cuando esta queda disponible y asigna la CPU al mismo, es decir que “despacha” la CPU al proceso. OBJETIVOS DE PLANIFICACIÓN Los objetivos de la planificación del procesador son los siguientes e involucran a los conceptos detallados seguidamente: •Ser justa: o Todos los procesos son tratados de igual manera. o Ningún proceso es postergado indefinidamente. •Maximizar la capacidad de ejecución: o Maximizar el número de procesos servidos por unidad de tiempo. o Maximizar el número de usuarios interactivos que reciban unos tiempos de respuesta aceptables: En un máximo de unos segundos. •Ser predecible: o Un trabajo dado debe ejecutarse aproximadamente en la misma cantidad de tiempo independientemente de la carga del sistema. •Minimizar la sobrecarga:  No suele considerarse un objetivo muy importante. •Equilibrar el uso de recursos: o Favorecer a los procesos que utilizarán recursos infrautilizados. •Equilibrar respuesta y utilización: o La mejor manera de garantizar buenos tiempos de respuesta es disponer de los recursos suficientes cuando se necesitan, pero la utilización total de recursos podrá ser pobre.
  • 12. •Evitar la postergación indefinida: o Se utiliza la estrategia del “envejecimiento”. o Mientras un proceso espera por un recurso su prioridad debe aumentar, así la prioridad llegará a ser tan alta que el proceso recibirá el recurso esperado. •Asegurar la prioridad: o Los mecanismos de planificación deben favorecer a los procesos con prioridades más altas. •Dar preferencia a los procesos que mantienen recursos claves: o Un proceso de baja prioridad podría mantener un recurso clave, que puede ser requerido por un proceso de más alta prioridad. O si el recurso es no apropiativo, el mecanismo de planificación debe otorgar al proceso un tratamiento mejor del que le correspondería normalmente, puesto que es necesario liberar rápidamente el recurso clave. •Dar mejor tratamiento a los procesos que muestren un “comportamiento deseable”: o Un ejemplo de comportamiento deseable es una tasa baja de paginación. •Degradarse suavemente con cargas pesadas: o Un mecanismo de planificación no debe colapsar con el peso de una exigente carga del sistema. o Se debe evitar una carga excesiva mediante las siguientes acciones: No permitiendo que se creen nuevos procesos cuando la carga ya es pesada. Dando servicio a la carga más pesada al proporcionar un nivel moderadamente reducido de servicio a todos los procesos. CRITERIOS DE PLANIFICACIÓN Equidad Garantizar que cada proceso obtiene su proporción justa de la CPU. Eficacia Mantener ocupada la CPU el ciento por ciento del tiempo. Tiempo de respuesta Minimizar el tiempo de respuesta para los usuarios interactivos. Tiempo de regreso Minimizar el tiempo que deben esperar los usuarios por lotes (batch) para obtener sus resultados. Rendimiento Maximizar el número de tareas procesadas por hora.