Está en la página 1de 63

REPUBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA DEFENSA


MINISTERIO DEL PODER POPULAR PARA LA EDUCACION UNIVERSITARIA
UNIVERSIDAD NACIONAL EXPERIMENTAL POLITECNICA DE LA
FUERZA ARMADA BOLIVARIANA
UNEFA- NUCLEO ARAGUA- EXTENCION MARACAY
 

Procesos de los sistemas


operativos
Integrantes:
Eduardo José Yumar Plagui V-27.562.622
Pedro Alejandro Suarez Acosta V-27.400.794
Klever Eduardo Alvarez Yepez V-26.978.066
Concepto de proceso
Que es?
Un proceso no es más que un programa en ejecución, e Un proceso es un concepto manejado por el sistema
incluye los valores actuales del contador de programa, operativo que consiste en el conjunto formado por:
los registros y las variables. Conceptualmente cada unos ● Las instrucciones de un programa destinadas a
de estos procesos tiene su propia CPU virtual. Desde ser ejecutadas por el microprocesador.
luego, en la realidad la verdadera CPU conmuta de un ● Su estado de ejecución en un momento dado,
proceso a otro. esto es, los valores de los registros de la CPU
para dicho programa.
● Su memoria de trabajo, es decir, la memoria que
Esta definición varía ligeramente en el caso de sistemas ha reservado y sus contenidos.
operativos multihilo, donde un proceso consta de uno o ● Otra información que permite al sistema
más hilos, la memoria de trabajo (compartida por todos operativo su planificación.
los hilos) y la información de planificación. Cada hilo
consta de instrucciones y estado de ejecución.

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

● BATCH (en LOTE)


El tipo más antiguo de SO permite que sólo un programa sea ejecutado
cada vez. El programa que es cargado en la computadora es ejecutado
completamente. Los datos usados por el programa no pueden ser
modificados mientras el programa está siendo ejecutado. Cualquier
error en el programa o en los datos significa comenzar todo
nuevamente.

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

Fin de un intervalo de tiempo

Nuevos Programas
Programas Programas listos
Cola del para ejecutarse terminados
procesador
procesador
Programas Ejecución de un
ejecutables programa

Cola del Programas bloqueados por


Programas cuyas Entrada/salida peticiones e/s
peticiones e/s
satisfechas Programas no ejecutables 10
10
Estado de los procesos
y modelos
Estados de procesos
● El principal trabajo del procesador es ejecutar las instrucciones de máquina
que se encuentran en memoria principal. Estas instrucciones se encuentran en
forma de programas. Para que un programa pueda ser ejecutado, el sistema
operativo crea un nuevo proceso, y el procesador ejecuta una tras otra las
instrucciones del mismo. En un entorno de multiprogramación, el procesador
intercalará la ejecución de instrucciones de varios programas que se
encuentran en memoria. El sistema operativo es el responsable de determinar
las pautas de intercalado y asignación de recursos a cada proceso.
● Procesos suspendidos
Una de las razones para implementar el estado Bloqueado era poder hacer
que los procesos se puedan mantener esperando algún suceso, por ejemplo
una Entrada/Salida. Sin embargo, al ser mucho más lentas estas operaciones,
puede suceder en nuestro modelo de cinco estados todos los procesos en
memoria estén esperando en el estado Bloqueado y que no haya más memoria
disponible para nuevos procesos. Podría conseguirse más memoria, aunque es
probable que esto sólo permita procesos más grandes y no necesariamente
nuevos procesos. Además hay un costo asociado a la memoria y de cualquier
forma es probable que se llegaría al mismo estado con el tiempo.

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:

●  Identificación del proceso.


●  Información del estado del procesador.
●  Información de control del proceso.

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

Como se dijo anteriormente, un proceso es un programa en


ejecución pero cada cada proceso tiene un hilo (thread) o mas.
Estos procesos se gestionan mediante el sistema operativo y
esta conformados por:
●  Su memoria de trabajo.
● Su estado de ejecución en un momento dado
● Las instrucciones de un programa destinadas a ser ejecutadas por
el microprocesador.

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

En los sistemas operativos es posible que varios procesos


realicen tareas en conjunto, para ello requieren una
sincronización que 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

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

● Síncrona: Quien envía permanece bloqueado esperando a que llegue una


respuesta del receptor.
● Asíncrona: Quien envía continúa con su ejecución inmediatamente después
de enviar el mensaje al receptor.
● Persistente: El receptor no tiene que estar operativo al mismo tiempo que se
realiza la comunicación, el mensaje puede quedar ala espera.
● Momentánea: El mensaje se descarta si el receptor no está operativo al
tiempo que se realiza la comunicación. Por lo tanto no será
entregado.

35
Tipos de comunicación

● Indirecta: La comunicación Indirecta: Es aquella donde la comunicación


está basada en una herramienta o instrumento ya que el emisor y el receptor
están a distancia.
● Simétrica: Todos los procesos pueden enviar o recibir. También llamada
bidireccional para el caso de dos procesos.
● Asimétrica: Un proceso puede enviar, los demás procesos solo reciben.
También llamada unidireccional. Suele usarse para hospedar servidores en
Internet.
● Directa: comunicación en la cual Las primitivas enviar y recibir explicitan
el nombre del proceso con el que se comunican.

36
Concurrencia

37
Principio de la concurrencia

Es cuando un sistema de multiprogramacion con un único procesador


intercala o superponen los procesos en el tiempo lo que termina
pareciendo una ejecución simultánea aunque, no se consigue un
proceso en paralelo real. Como la concurrencia podría generar
conflictos entre los procesos al superponerlos o intercalarlos, El sistema
operativo ofrece mecanismos de arbitraje que permiten coordinar la
ejecución de los procesos de concurrencia.

38
Mecanismos de arbitraje
Los sistemas operativos disponen de los siguientes
mecanismos de arbitraje:

● Mecanismos de sincronización: Mediante la sincronización de los


procesos se evita que se tenga problemas con los procesos que
accedan a las mismas partes de los recursos.
● Mecanismos de mensajería: la comunicación entre procesos permite
coordinar los procesos para evitar los errores de ejecución.

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.

Los algoritmos de exclusión mutua (comunmente abreviada como mutex por


mutual exclusion) se usan en programación concurrente para evitar que entre
más de un proceso a la vez en la sección crítica.

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.

En un sistema multiprocesador de memoria compartida, se usa la operación


indivisible test-and-set sobre una bandera, para esperar hasta que el otro procesador la
despeje. La operación test-and-set realiza ambas operaciones sin liberar el bus de memoria
a otro procesador. Así, cuando el código deja la sección crítica, se despeja la bandera. Esto
se conoce como spin lock o espera activa.

Algunos sistemas tienen instrucciones multioperación indivisibles similares a las


anteriormente descritas para manipular las listas enlazadas que se utilizan para las colas de
eventos y otras estructuras de datos que los sistemas operativos usan comúnmente.

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

Fueron inventados por Edsger Dijkstra y se usaron por primera vez en el


sistema operativo THEOS.

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:

● Semáforo de exclusión mutua, inicialmente su contador vale 1 y permite que haya un


único proceso simultáneamente dentro de la sección crítica.

● Semáforo contador, permiten llevar la cuenta del número de unidades de recurso


compartido disponible, que va desde 0 hasta N.

● Semáforo de espera, generalmente se emplea para forzar que un proceso pase a


estado bloqueado hasta que se cumpla la condición que le permite ejecutarse. Por lo
general, el contador vale 0 inicialmente, no obstante, podría tener un valor distinto de
cero.

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 programadores tienden a usarlos incorrectamente, de manera que no resuelven de manera


adecuada el problema de concurrencia o dan lugar a interbloqueos.

● No hay nada que obligue a los programadores a usarlos.

● Los compiladores no ofrecen ningún mecanismo de comprobación sobre el correcto uso de los
semáforos.

● Son independientes del recurso compartido al que se asocian.

● Debido a estos inconvenientes, se desarrollaron los monitores.

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.

● Granularidad gruesa: Un semáforo para todos los recursos. Caso totalmente


inverso al anterior: Ahora al tener un semáforo no se produce interbloqueo
entre ellos, aunque los tiempos de ejecución son excesivamente largos.

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.

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

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

● Cola de entrada: contiene a los hilos que han llamado a algún método del


monitor pero no han podido adquirir permiso para ejecutarlos aún.

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?

El interbloqueo es una anomalía que puede ocurrir


durante la ejecución de procesos concurrentes debido
a la competencia por los recursos.

El interbloqueo es un problema que afecta a procesos


concurrentes que utilizan recursos en un sistema.
Los procesos solicitan recursos al sistema y los
liberan cuando ya no los necesitan. Un recurso puede
estar disponible o bien asignado a algún proceso.

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.

● Contención o retención y espera: Si un proceso necesita más de un recurso para


realizar su trabajo, conservará en su poder los recursos exclusivos ya asignados,
mientras espera por otro recurso adicional.

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

● Espera circular: Dependencia: Si un proceso P1 está suspendido en espera de un


recurso exclusivo que está asignado a otro proceso P2, entonces decimos que P1
depende de P2 (P1 <= P2).
58
Formas de enfrentar los interbloqueos
● Indiferencia: Problema del usuario y del programador, lograr que no se dé el interbloqueo.

● Prevención: Consisten en condicionar el sistema con una serie de restricciones a los


programadores, para que no se den al menos una de las condiciones del interbloqueo, por
lo que éste nunca sucederá.

● 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

También podría gustarte