Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2
Tipos de procesamientos en
Sistemas Operativos
“
Los Sistemas Operativos están divididos
en categorías que definen sus
características. Pueden usar
combinaciones de esas categorías
descritas a continuación.
4
Tipos de procesos
5
Tipos de procesos
● INTERACTIVO
Estos permiten la modificación y entrada de datos durante la ejecución
del programa.
● EQUIPO-SHARING/MULTIUSUARIO
Estos Sistemas Operativos comparten la computadora entre más de un
usuario, y adopta técnicas de escalonamiento por prioridades.
● MULTIPROCESAMIENTO
Un ordenador que tiene más de un procesador, dedicados a la
ejecución de procesos.
6
Tipos de procesos
● MULTITAREAS
Más de un proceso puede ser ejecutado concurrentemente. El
procesador escalona rápidamente entre los procesos. Un usuario puede
tener más de un proceso ejecutado cada vez.
● TIEMPO REAL
El Sistema Operativo monitoriza varias entradas que afectan la
ejecución de procesos, cambiando los modelos de computadoras del
ambiente, afectando las salidas, dentro de un periodo de tiempo
garantizado (normalmente < 1 segundo).
7
Asignación de recursos
Asignación de recursos o planificación
● La mayor parte del tiempo en que un ordenador está funcionando,
la demanda de recursos es mayor que los realmente existentes. Este
problema se resuelve aplicando una política de asignación de recursos. El
mecanismo sería sencillo si se pudiese utilizar una política del tipo:
atender primero al que antes lo solicite, sin embargo esto puede llevar a
situaciones de deadlock (sistema colgado o caído) cuando dos programas
solicitan insistentemente recursos asignados a otro. El planificador cuenta
con una política que varia de un S. O. a otro. Una política muy común
consiste en el time slicing (asignación de intervalos cortos de tiempo a los
programas)
9
Diagrama de asignación de recursos o planificación
Nuevos Programas
Programas Programas listos
Cola del para ejecutarse terminados
procesador
procesador
Programas Ejecución de un
ejecutables programa
13
Diagrama de Procesos suspendidos
Nuevo
Admitir Admitir
Expedir
Activar
Listo y Ejecución
Listo
suspendido
Suspender
Fin del tiempo
Ocurre Ocurre suceso Salir
suceso Ocurre
suceso
Activar
Bloqueado y
suspendido Bloqueado
Terminado
Suspender
14
14
● Procesos en espera
Dos o más procesos pueden cooperar mediante señales de forma que uno
obliga a detenerse a los otros hasta que reciban una señal para continuar.
• Se usa una variable llamada semáforo para intercambiar señales.
• Si un proceso esta esperando una señal, se suspende (WAIT) hasta que
la señal se envíe (SIGNAL).
• Se mantiene una cola de procesos en ESPERA en el semáforo.
• La forma de elegir los procesos de la cola en ESPERA es mediante
una política FIFO.
15
Modelos
● Modelo de dos estados.
El modelo de estados más simple es el de dos estados. En este
modelo, un proceso puede estar ejecutándose o no. Cuando se crea
un nuevo proceso, se pone en estado de No ejecución. En algún
momento el proceso que se está ejecutando pasará al estado No
ejecución y otro proceso se elegirá de la lista de procesos listos
para ejecutar para ponerlo en estado Ejecución.
16
Diagrama de Modelo de dos estados.
Expedir
Entrar No Salir
Ejecución
ejecución
Pausar
17
● Modelo de cinco estados
El modelo anterior de dos estados funcionaría bien con una cola FIFO
y planificación por turno rotatorio para los procesos que no están en
ejecución, si los procesos estuvieran siempre listos para ejecutar. En la
realidad, los procesos utilizan datos para operar con ellos, y puede suceder
que no se encuentren listos, o que se deba esperar algún suceso antes de
continuar, como una operación de Entrada/Salida. Es por esto que se
necesita un estado donde los procesos permanezcan bloqueados esperando
hasta que puedan proseguir. Se divide entonces al estado No ejecución en
dos estados: Listo y Bloqueado. Se agregan además un estado Nuevo y
otro Terminado.
18
Diagrama de Modelo de cinco estados
Expedir
Admitir
Nuevo Listo Ejecución Salir
Fin del
Tiempo Terminado
Espera
Bloqueado suceso
19
Control de Procesos
20
El bloque de control de proceso
● El bloque de control de proceso es la estructura de datos central y más
importante de un sistema operativo. Cada bloque de control de proceso
contiene toda la información de un proceso que necesita un sistema
operativo para su control. Estos bloques son leídos y/o modificados por
casi todos los módulos de un sistema operativo, incluyendo aquellos que
tienen que ver con la planificación, la asignación de recursos, el
tratamiento de interrupciones y el análisis y supervisión del rendimiento.
El bloque de control de proceso
● Puede decirse que el conjunto de los bloques de control de
procesos definen el estado del sistema operativo. El conjunto
de todos los PCB’s se guarda en una estructura del sistema
operativo llamada tabla de procesos, la cual se puede
implementar como un vector o un lista enlazada. La tabla de
procesos reside en memoria principal, debido a su alta
frecuencia de consulta.
22
El bloque de control de proceso
En un sistema de multiprogramación, se requiere una gran
cantidad de información de cada proceso para su
administración. Sistemas distintos organizarán esta
información de modo diferente. En general, se puede agrupar
la información de los PCB’s en tres categorías:
23
“
● En casi todos los sistemas operativos se le asigna a cada
proceso un identificador numérico Único (ID). Este
identificador nos servirá para localizarlo dentro de la tabla
de procesos. Cuando se permite que los procesos creen
otros procesos, se utilizan identificadores para señalar al
padre y a los descendientes de cada proceso. Además de
estos, un proceso también puede tener asignado un
identificador de usuario que indica a quién pertenece el
proceso (UID).
24
Procesos e hilos
25
Los Procesos relacionados con hilos
26
Los hilos
También llamados proceso ligero o subproceso son una secuencia de
tareas encadenadas muy pequeña que puede ser ejecutada por un
sistema operativo.
Su asignación de recursos se rigen por medio de el principio de que
el proceso es la unidad máxima de asignación, mientras que el hilo
es la mínima. Los hilos permiten que los procesos puedan realizar
varias actividades a la vez.
27
● Estados de un hilo
Son simplemente Ejecución, Listo y Bloqueado. Si un proceso está
expulsado de la memoria principal (RAM), todos sus hilos deberán estarlo
ya que todos comparten el espacio de direcciones del proceso.
● Cambios de estado
○ Creación: Cuando se crea un proceso se crea un hilo para ese proceso.
○ Bloqueo: Cuando un hilo necesita esperar por un suceso, se bloquea
permitiendo al procesador ejecutar otro hilo que esté al principio de los
Listos.
○ Desbloqueo: Cuando el suceso por el que el hilo se bloqueó se produce.
○ Terminación: Se finaliza el hilo
28
“
● Un proceso seguirá su curso siempre y cuando uno de sus
hilos se encuentre activo. Una vez que un proceso finaliza
completamente, todos sus hilos de ejecución también han
terminado. Entonces cuando todos los hilos de ejecución
finalizan, el proceso deja de existir más y todos los
recursos que el sistema operativo le ha asignado, se
liberan para dar espacio a mas tareas.
29
Sincronización de procesos
30
La sincronización
31
Para que los procesos puedan sincronizarse es necesario
disponer de servicios que permitan bloquear o suspender
bajo determinadas circunstancias la ejecucion de un
proceso. Los principales mecanismos de sincronizacion que
ofrecen los sistemas operativos son:
● Senales
● Tuberias
● Semaforos
● Mutex y variables condicionales
● Paso de mensajes
32
Comunicación de procesos
33
Comunicación entre procesos
● Es una de las funciones mas básicas del sistema
operativo, en el que los procesos son capaces de
compartir espacios de memoria, ya sean variables
compartidas o buffers, a través de un sistema de bajo
nivel de paso de mensajes que ofrece la red subyacente.
34
Tipos de comunicación
35
Tipos de comunicación
36
Concurrencia
37
Principio de la concurrencia
38
Mecanismos de arbitraje
Los sistemas operativos disponen de los siguientes
mecanismos de arbitraje:
39
Exclusión Mutua
40
¿Que es la exclusión mutua?
Consiste en que un solo proceso excluye temporalmente a todos los demás para
usar un recurso compartido de forma que garantice la integridad del sistema.
41
¿Cómo funciona la exclusión mutua?
La técnica que se emplea por lo común para conseguir la exclusión mutua es inhabilitar
las interrupciones durante el conjunto de instrucciones más pequeño que impedirá la
corrupción de la estructura compartida.
42
¿Que es la sección critica?
Es la parte del programa con un comienzo y un final
claramente marcados que generalmente contiene la
actualización de una o más variables compartidas.
43
Desventajas de la exclusión mutua
A pesar de todo lo dicho, muchas técnicas de exclusión mutua tienen efectos
colaterales. Por ejemplo:
● los semáforos permiten interbloqueos (deadlocks) en los que un proceso
obtiene un semáforo, otro proceso obtiene el semáforo y ambos se quedan a
la espera de que el otro proceso libere el semáforo.
● la Inanición: en el cual un proceso esencial no se ejecuta durante el tiempo
deseado.
● Inversión de prioridades: en el que una tarea de prioridad elevada espera
por otra tarea de menor prioridad.
● Latencia alta en la que la respuesta a las interrupciones no es inmediata.
44
Semáforos y Monitores
45
Semáforos
Un semáforo es una variable especial protegida (o tipo abstracto de datos) que
constituye el método clásico para restringir o permitir el acceso a recursos
compartidos en un entorno de multiprocesamiento (en el que se ejecutarán
varios procesos concurrentemente).
46
Las operaciones de semáforos
P(S) V(S)
if ( S > 0 ) then if (alguien espera por S) then
S:=S-1 deja pasar al proceso
else else
esperar por S S:=S+1
47
Características principales
• Desbloqueando procesos
– El semáforo informa a los procesos que se encuentran
bloqueados.
– El administrador de procesos que elige quien pasa a ejecución
• Atomicidad
– Se garantiza que al iniciar una operación con un semáforo, ningún otro
proceso puede tener acceso al semáforo hasta que la operación termine
o se bloquee.
– En ese tiempo ningún otro proceso puede simultáneamente modificar el
mismo valor de semáforo
48
Tipos de semáforos
Dependiendo de la función que cumple el semáforo, vamos a diferenciar los siguientes
tipos:
49
Ventajas e inconvenientes
La principal ventaja de los semáforos frente a los cerrojos es que permiten sincronizar dos o más
procesos de manera que no se desperdician recursos de CPU realizando comprobaciones continuadas
de la condición que permite progresar al proceso.
Los inconvenientes asociados al uso de semáforos son los siguientes:
● Los compiladores no ofrecen ningún mecanismo de comprobación sobre el correcto uso de los
semáforos.
50
Granularidad
Número de recursos controlados por cada semáforo. Hay de dos tipos:
● Granularidad fina: Un recurso por semáforo. Hay un mayor grado de
paralelismo, lo que puede mejorar la rapidez de ejecución de la protección.
Aunque a mayor número de semáforos existe una mayor probabilidad de
que se dé un interbloqueo entre semáforos, que no sería una mejora de lo
que intentamos evitar.
51
Monitores
Los monitores son estructuras de datos utilizadas en lenguajes de programación para
sincronizar dos o más procesos o hilos de ejecución que usan recursos compartidos.
En el estudio y uso de los semáforos se puede ver que las llamadas a las funciones
necesarias para utilizarlos quedan repartidas en el código del programa, haciendo difícil
corregir errores y asegurar el buen funcionamiento de los algoritmos. Para evitar estos
inconvenientes se desarrollaron los monitores.
El concepto de monitor fue definido por primera vez por Charles Antony Richard Hoare
en un artículo del año 1974. La estructura de los monitores se ha implementado en varios
lenguajes de programación, incluido Pascal concurrente, Modula-2, Modula-3 y Java, y
como biblioteca de programas.
52
Componentes de los monitores
Un monitor tiene cuatro componentes: inicialización, datos privados, métodos del
monitor y cola de entrada.
● Datos privados: contiene los procedimientos privados, que solo pueden ser
usados desde dentro del monitor y no son visibles desde fuera
● Métodos del monitor: son los procedimientos que pueden ser llamados
desde fuera del monitor.
53
Procesos y monitores
• Procesos no tienen acceso directo a las estructuras de datos.
• Solo un proceso puede estar activo en un monitor en cada momento.
• Cuando se llama a un entrada la implementación monitor verifica si
no hay otro proceso dentro del monitor:
Estructura
Datos
E1 P1
– si: proceso efectuó la llamada es
suspendido Proc. 1 E2
P2
– no: el que hizó la llamada puede entrar Proc. 2 E3
: : P3
procedimientos Proc. n En
entradas
54
Operaciones sincronía en procesos
Para sincronizar procesos se usan variables de tipo condición y dos operaciones:
1. wait()
proceso descubre que no puede continuar (almacen lleno) ejecuta wait en alguna variable
de condición proceso se bloquea y permite que otro proceso entre al monitor
2. signal
proceso que entra puede despertar a otro con una instrucción signal sobre la variable de
condición que el otro proceso espera
55
Interbloqueo
56
¿Qué son los interbloqueos?
57
Condiciones necesarias para un
interbloqueo
● Exclusión mutua: Si dos procesos solicitan un recurso exclusivo, uno de los dos
quedará suspendido hasta que el favorecido libere el recurso.
● Inapropiatividad: Los recursos asignados a un proceso, sólo pueden ser liberados por
el proceso mismo y no pueden ser desasignados por el sistema, cuando otro proceso
los necesite.
● Evitación o predicción: Esta estrategia consiste en dejar que las condiciones para el
interbloqueo se puedan dar, pero en el momento de asignar recursos, y se detecte que
puede ocurrir un interbloqueo, deniega la asignación del recurso que puede desencadenar
el interbloqueo.
● Detección y recuperación: En esta política, el sistema deja que suceda el interbloqueo, pero
se implementan procesos encargados de revisar el estado de asignación de los procesos,
para detectar los interbloqueo. Una vez detectado, se pueden implementar políticas de
recuperación de interbloqueo, que básicamente consisten en matar procesos.
59
Resumen
60
61
62
Gracias por su atención
63