Está en la página 1de 42

• GESTIÓN DE PROCESOS

• GESTIÓN DE MEMORIA
PROCESOS
Concepto de Proceso

• Un proceso es un programa en ejecución


• Los libros de texto usan los términos proceso y tarea para referirse
normalmente a lo mismo.
• Un proceso es la unidad de ejecución más pequeña planificable
• Un proceso incluye:
• contador de programa
• pila
• sección de datos
Proceso

Cada proceso tiene su program counter (PC), 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).
Estados de un Proceso
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.
Diagrama de Estados de un Proceso
QUÉ SUCEDE DENTRO DEL SISTEMA OPERATIVO?

• El Sistema Operativo asigna tiempo a cada uno de los


procesos y pasa de uno a otro según le interesa.

• Un proceso puede paralizar la ejecución de otro proceso,


pues el sistema operativo pasa un mensaje a cada proceso
y este lo interpreta.

• Mientras un proceso interpreta un mensaje, los demás


procesos están detenidos.
Transiciones de estado de los procesos

Nuevo –> Listo


Al crearse un proceso pasa inmediatamente al estado listo. Luego
que el planificador de procesos le de permiso.
Listo –> Ejecutando
En el estado de listo, el proceso solo espera para que se le asigne un
procesador para ser ejecutado (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.
Transiciones de estado de los procesos

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
Transiciones de estado de los procesos

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 su última instrucción pasa al estado
terminado. El sistema libera las estructuras que representan al
proceso.
Bloque de Control de Proceso (PCB)
El proceso es representado, a nivel del
sistema operativo, a través del bloque
descriptor de proceso (Process Control Block)
PLANIFICACIÓN DE PROCESOS
Objetivos de la Planificación de procesos

La Planificación de procesos tiene como principales objetivos la equidad, la


eficacia, el tiempo de respuesta, el tiempo de regreso y el rendimiento.

• Equidad: Todos los procesos deben ser atendidos.


• Eficacia: El procesador debe estar ocupado el 100% del tiempo.
• Tiempo de respuesta: El tiempo empleado en dar respuesta a las solicitudes
del usuario debe ser el menor posible.
• Tiempo de regreso: Reducir al mínimo el tiempo de espera de los resultados
esperados por los usuarios por lotes.
• Rendimiento: Maximizar el número de tareas que se procesan por cada hora.
TIEMPOS
En la Planificación de procesos se tiene en cuenta diferentes tiempos que pueden ser
calculados, como son el "Tiempo de espera medio", el "Tiempo de retorno del
proceso" y el "Tiempo de retorno medio".

• Tiempo de espera medio


Es el promedio de tiempos en que los procesos están en estado de listos.

• Tiempo de retorno del proceso


Es el tiempo que transcurre desde la creación de un proceso hasta que termina la
ejecución del programa que le dio lugar.

• Tiempo de retorno medio


Es la suma de los tiempos de retorno de cada uno de los procesos dividida entre la
cantidad de procesos.
TIPOS DE ALGORITMOS DE PLANIFICACIÓN

• PRIMERO EN LLEGAR PRIMERO EN SER SERVIDO (First


Come First Served), FCFS o FIFO.

• PRIORIDAD AL MAS CORTO (Shortest Job First).

• PRIORIDAD

• ROUND ROBIN
1. Primero en llegar primero en ser servido (FIFO)

Conocido como FCFS (First Come First Served). Este algoritmo emplea una
cola de procesos, asignando un lugar a cada proceso por el orden de llegada.
Cuando el proceso llega es puesto en su lugar en la cola después del que llegó
antes que él y se pone en estado de listo. Cuando un proceso comienza a
ejecutarse no se interrumpe su ejecución hasta que termina de hacerlo.
EJEMPLO: FIFO

TRABAJO RÁFAGA DE TIEMPO DE


CPU LLEGADA
A 3 2 C D A E B
B 1 4
0 3 7 10 12 13
C 3 0
D 4 1
E 2 3

TIEMPO DE ESPERA TIEMPO DE ESPERA TIEMPO DE RETORNO TIEMPO DE


MEDIO RETORNO MEDIO
TE = TEJEC – TLLEGADA
A = 10
TEA = 7 – 2 = 5 B = 13
TEM = (5 + 8 + 0 + 2 + 7)/5 TRM = (10 + 13 + 3 + 7 + 12)/5
TEB = 12 – 4 = 8 C=3
TEM = 4,4 ut TRM = 9 ut
TEC = 0 – 0 = 0 D=7
TED = 3 – 1 = 2 E = 12
TEE = 10 – 3 = 7
2. Prioridad al mas corto SJF (Shortest Job First)

• Su nombre es SJF (Shortest Job First).


• El proceso que se encuentra en ejecución cambiará de estado
voluntariamente, o sea, no tendrá un tiempo de ejecución determinado
para el proceso.
• A cada proceso se le asigna el tiempo que usará cuando vuelva a estar en
ejecución, y se irá ejecutando el que tenga un menor tiempo asignado.
• Si se da el caso de que dos procesos tengan igual valor, en ese aspecto
emplea el algoritmo FCFS.
EJEMPLO: SJF

TRABAJO RÁFAGA DE TIEMPO DE


CPU LLEGADA
A 3 2 C E B A D
B 1 4
0 3 5 6 9 13
C 3 0
D 4 1
E 2 3

TIEMPO DE ESPERA TIEMPO DE ESPERA TIEMPO DE RETORNO TIEMPO DE


MEDIO RETORNO MEDIO
TE = TEJEC – TLLEGADA
A=9
TEA = 6 – 2 = 4 B=6
TEM = (4 + 1 + 0 + 8 + 0)/5 TRM = (9 + 6 + 3 + 13 + 5)/5
TEB = 5 – 4 = 1 C=3
TEM = 2,6 ut TRM = 7,2 ut
TEC = 0 – 0 = 0 D = 13
TED = 9 – 1 = 8 E=5
TEE = 3 – 3 = 0
3. Planificación por Prioridades

• A cada proceso se le asocia una prioridad y la CPU se asigna al proceso


que tenga la prioridad mas alta.
• Los procesos con la misma prioridad se planifican en orden FCFS. Cuanto
mas larga sea la ráfaga de CPU, menor será la prioridad y viceversa.
EJEMPLO: Prioridad
TRABAJO RÁFAGA DE TIEMPO DE PRIORIDAD
CPU LLEGADA
A 3 2 2
B 1 4 3 C A D B E
C 3 0 1 0 3 6 10 11 13
D 4 1 3
E 2 3 4

TIEMPO DE ESPERA TIEMPO DE ESPERA TIEMPO DE RETORNO TIEMPO DE


MEDIO RETORNO MEDIO
TE = TEJEC – TLLEGADA
A=6
TEA = 3 – 2 = 1 B = 11
TEM = (1 + 6 + 0 + 5 + 8)/5 TRM = (6 + 11 + 3 + 10 + 13)/5
TEB = 10 – 4 = 6 C=3
TEM = 4 ut TRM = 8,6 ut
TEC = 0 – 0 = 0 D = 10
TED = 6 – 1 = 5 E = 13
TEE = 11 – 3 = 8
4. Algoritmo Round Robin

• El algoritmo consiste en definir una unidad de tiempo pequeña,


llamada “quantum” o “cuanto” de tiempo, la cual es asignada a cada
proceso que está en estado listo.
• Si el proceso agota su quantum (Q) de tiempo, se elige a otro proceso
para ocupar la CPU.
• Si el proceso se bloquea o termina antes de agotar su quantum
también se alterna el uso de la CPU.
• Se aplica el método FIFO para determinar la llegada del proceso.
EJEMPLO: ROUND ROBIN
TRABAJO RÁFAGA DE TIEMPO DE
CPU LLEGADA
q = 3ut
A 3 2
B 1 4 C D A E B D
C 3 0 0 3 6 9 11 12 13
D 4 1
E 2 3 3 2 1

TIEMPO DE ESPERA TIEMPO DE ESPERA TIEMPO DE RETORNO TIEMPO DE


MEDIO RETORNO MEDIO
TE = TEJEC – TLLEGADA
A=9
TEA = 6 – 2 = 4 B = 12
TEM = (4 + 7 + 0 + 8 + 8)/5 TRM = (9 + 12 + 3 + 13 + 11)/5
TEB = 11 – 4 = 7 C=3
TEM = 5,4 ut TRM = 9,6 ut
TEC = 0 – 0 = 0 D = 13
TED = (3 – 1) + 6 = 8 E = 11
TEE = 9 – 3 = 8
COMPARACIÓN ENTRE ALGORITMOS

Para poder escoger cual es el algoritmo que me permite ejecutar un conjunto


de tareas en menor tiempo, se compraran los tiempos de espera medios y se
elije el de valor mas bajo.

FCFS o FIFO SJF PRIORIDAD ROUND ROBIN


TEM = 4,4 ut TEM = 2,6 ut TEM = 4 ut TEM = 5,4 ut
HILOS (HEBRAS 0 THREADS)
Definición
➢Un HILO es una unidad básica de utilización de la CPU consta de
registros y un espacio de pila. Es también conocido como proceso
ligero.
➢Los sistemas operativos modernos están proporcionando servicios
para crear más de un hilo (thread) de ejecución (control) en un
proceso.
➢Comparte el código, los datos y los recursos con sus hilos pares.
➢Una tarea (o proceso pesado) está formada por uno o más hilos.
➢Una hebra sólo puede pertenecer a una tarea.
Tareas con una y varios hilos
HILO

• Secuencia única de control de flujo dentro de un


programa.
• Unidad de código mas pequeña que se puede ejecutar.
• El hilo esta pensado para realizar tareas lentas. Ejem.
Conexiones de red o grabación en disco.
Ventajas del uso de hilos

• Repuesta: Desarrollar una aplicación con varios hilos de


control (threads) permite tener un mejor tiempo de
respuesta.
• Compartir recursos: Los hilos comparten la memoria y los
recursos del proceso al que pertenecen.
• Economía: Es más fácil un cambio de contexto entre threads
ya que no es necesario cambiar el espacio de
direccionamiento.
Ventajas del uso de hilos

• A su vez, es más “liviano” para el sistema operativo crear un


hilo que crear un proceso nuevo.
• Utilización de arquitecturas con multiprocesadores: Disponer
de una arquitectura con más de un procesador permite que
los hilos de un mismo proceso se ejecuten en forma paralela.
Hilos a nivel de usuario y de kernel
Hasta ahora hemos hablado de los hilos en sentido genérico,
pero a nivel práctico los hilos pueden ser implementados a
nivel de usuario o a nivel de kernel.
• Hilos a nivel e usuario: son implementados en alguna
librería. Estos hilos se gestionan sin soporte del SO, el cual
solo reconoce un hilo de ejecución.
• Hilos a nivel de kernel: el SO es quien crea, planifica y
gestiona los hilos. Se reconocen tantos hilos como se hayan
creado.
• Los hilos a nivel de usuario tienen como beneficio que su cambio
de contexto es más sencillo que el cambio de contexto entre
hilos de kernel. A demás, se pueden implementar aún si el SO no
utiliza hilos a nivel de kernel. Otro de los beneficios consiste en
poder planificar diferente a la estrategia del SO.

• Los hilos a nivel de kernel tienen como gran beneficio poder


aprovechar mejor las arquitecturas multiprocesadores, y que
proporcionan un mejor tiempo de respuesta, ya que si un hilo se
bloquea, los otros pueden seguir ejecutando.
¿Cómo se relacionan los hilos a nivel de kernel y los
de usuario?

• Modelo Mx1 (Muchos a Uno).


• Modelo 1x1 (Uno a Uno).
• Modelo MxN (Muchos a Muchos).
Modelo Mx1 (Muchos a uno)
• El modelo asigna múltiples hilos de usuario a
un hilo del kernel.
• Este caso se corresponde a los hilos
implementados a nivel de usuario, ya que el
sistema solo reconoce un hilo de control para
el proceso.
• Tiene como inconveniente que si un hilo se
bloquea, todo el proceso se bloquea.
También, dado que solo un hilo puede
acceder al kernel cada vez, no podrán
ejecutarse varios hilos en paralelo en
múltiples CPUs
Modelo 1x1 (uno a uno)
• El modelo asigna cada hilo de usuario a un hilo del kernel.
• Proporciona una mayor concurrencia que el modelo anterior, permitiendo
que se ejecute otro hilo si uno se bloqueó.
• Tiene como inconveniente que cada vez que se crea un hilo a nivel de
usuario, se crea un hilo a nivel del kernel, y la cantidad de hilos a nivel del
kernel están restringidos en la mayoría de los sistemas.
Modelo MxN (Muchos a Muchos)
• Cada proceso tiene asignado un
conjunto de hilos de kernel,
independientemente de la cantidad de
hilos de usuario que haya creado.
• No posee ninguno de los
inconvenientes de los dos modelos
anteriores, ya que saca lo mejor de
cada uno.
• El usuario puede crear tantos hilos
como necesite y los hilos de kernel
pueden ejecutar en paralelo.
GESTIÓN DE MEMORIA
INTRODUCCION EN LA GESTIÓN DE MEMORIA

Gestión de Memoria - La gestión de memoria es una tarea realizada


por el Sistema Operativo de un computador que consiste en cargar y
descargar procesos en memoria principal para que sean ejecutados.
Para ello el S.O. gestiona lo que se conoce como MMU o Unidad de
Administración de Memoria, el cual es un dispositivo hardware que
transforma las direcciones lógicas en físicas.
INTRODUCCION EN LA GESTIÓN DE MEMORIA

Objetivos de la Gestión de Memoria

• Ofrecer a cada proceso un espacio lógico propio.


• Proporcionar protección entre los procesos.
• Permitir que los procesos compartan memoria.
• Maximizar el rendimiento del sistema.
Gestión de Memoria: requisitos

Reubicación
◦ Permite que un proceso se pueda ubicar en diferentes posiciones de
memoria, e incluso cambiar de posición.
◦ Permite el intercambio a memoria secundaria.
Protección
◦ Impide que un proceso acceda a datos de otro.
◦ Normalmente se realiza mediante hardware por razones de eficiencia.
Gestión de Memoria: requisitos
Compartición
◦ Permite que los procesos compartan información.
◦ Debe mantener las necesidades de protección.
Organización Lógica
◦ Deseable proporcionar soporte para los programas que utilizan
módulos.
◦ La segmentación es el método que mejor satisface esta necesidad.
Organización Física
◦ El flujo de información entre memoria principal y memoria secundaria
(y viceversa) lo gestiona el SO.
INVESTIGAR

MECANISMOS DE COMUNICACIÓN Y
SINCRONIZACIÓN DE PROCESOS (TUBERÍAS,
SEMÁFOROS, MUTEX). QUÉ SON, PARA QUE
SIRVEN Y SUS VENTAJAS

También podría gustarte