2. Sistemas operativos
Procesos
◦ Concepto de procesos
◦ Esquema de 2 estados
◦ Esquema de 5 estados
◦ Planificación de procesos
◦ Algoritmos de Planificación
Multiprocesos y Multihilos
3. ¿Qué es un sistema operativo?
Es un programa o conjunto de
programas que gestiona los
recursos de hardware y provee
servicios a los programas de
aplicación, ejecutándose en
modo privilegiado respecto de
los restantes.
4. ¿Cuáles son los distintos tipos de Sistemas
operativos?
Monousuario Multiusuario
Windows OS/400
Linux HP UX
OS X Windows Server
Android
iOS
5. ¿Qué es un proceso?
Un programa en ejecución
Una instancia de un programa funcionando en la
computadora
La entidad que puede ser asignada al procesador y
ejecutada por él
Una unidad de actividad caracterizada por un sencillo
tratamiento de ejecución secuencia, un estado actual
y asociada a un conjunto de recursos del sistema
6. ¿Cuál es la función de un sistema operativo?
La tarea fundamental de cualquier sistema
operativo moderno es la gestión de procesos.
El sistema operativo debe asignar recursos a
los procesos, permitir el intercambio de
información entre los mismos, proteger los
recursos de un proceso del resto y facilitar la
sincronización de procesos.
7. Como dijimos recién, la gestión de procesos es
el objetivo principal de un sistema operativo.
Cada proceso está, en cada instante, en uno de
los posibles estados de ejecución:
Listo
Ejecutando
Bloqueado
8. ¿Cómo lo hace?
El sistema operativo sigue la pista de estos
estados de ejecución y gestiona los cambios de
estado de los procesos.
Para cumplir con su objetivo, el sistema
operativo mantiene estructuras de datos que
describen cada proceso, y debe planificar y
ofrecer mecanismos para compartir y
sincronizar procesos.
9. Todos los sistemas operativos modernos, tanto
los monousuarios (Windows, Linux, etc) como
los multiusuarios (OS/400, HP UX, etc) están
construidos en torno al concepto de proceso.
Esto hace que todos los SO tengan que cumplir
con ciertos requisitos para gestionar estos
procesos:
10. 1. El Sistema Operativo debe intercalar la
ejecución de múltiples procesos para
maximizar la utilización del procesador y
ofrecer a la vez un tiempo de respuesta
razonable
11. 2. El Sistema Operativo debe asignar los
recursos a los procesos en conformidad con
una política específica (por ejemplo, ordenes
de prioridad), evitando al mismo tiempo el
interbloqueo
12. 3. El Sistema Operativo podría tener que dar
soporte a la comunicación entre procesos y a
la creación de procesos por parte del usuario,
labores que pueden ser de ayuda en la
estructuración de las aplicaciones.
13. ¿Qué es un proceso?
Un proceso se puede entender como:
1. Un programa en ejecución
2. Una instancia de un programa funcionando en la
computadora
3. La entidad que puede ser asignada al procesador y
ejecutada por él
4. Una unidad de actividad caracterizada por un
sencillo tratamiento de ejecución secuencia, un
estado actual y asociada a un conjunto de recursos
del sistema
14.
15. El modelo de ejecución de procesos mas
sencillo que puede construirse tiene en cuenta
que, en un momento dado, un proceso puede
estar ejecutándose en el procesador o no.
Dicho de otra forma, un proceso, puede estar
en uno de estos dos estados:
Ejecución
No ejecución
16. Cuando el sistema operativo crea un nuevo
proceso, el mismo que en estado “No
ejecución”, a la espera de su turno para
ingresar al procesador.
El proceso es conocido por el sistema operativo
y está esperando su turno para ejecutarse.
17. En un momento dado, un proceso que está
siendo ejecutado es interrumpido y el
programa distribuidor del sistema operativo
tomará un nuevo proceso para ser ejecutado.
El proceso que se estaba ejecutando pasa del
estado “Ejecución” al estado “No ejecución”, y
el proceso que estaba esperando ser ejecutado
pasa del estado “No ejecución” al estado
“Ejecución.
18.
19. En todo momento, un proceso cuenta con
ciertos datos que lo identifican. Estos datos
son:
Estado
Contexto del proceso al momento de salir del
procesador
Pila de ejecución
Estos datos ingresan al procesador junto con el
proceso y se actualizan al momento de salir del
mismo.
20. Si todos los procesos que se encuentran en la cola de
ejecución estuvieran siempre listos para ser ejecutados,
el modelo que vimos sería eficaz, pero esto no siempre
es así.
Cuando dijimos que un proceso que se está ejecutando
puede ser interrumpido, uno de esos motivos puede
ser, por ejemplo, una acción de Entrada – Salida (E/S)
(una lectura de información al disco, por ejemplo)
Esta situación nos lleva a pensar en un esquema mas
complejo, con otros estados que identifiquen la
situación en que se encuentra el proceso
21. Si pensamos de esta forma, podemos
encontrar que un proceso puede estar en uno
de estos 5 estados:
1. Nuevo
2. Listo
3. Ejecución
4. Terminado
5. Bloqueado
22. Nuevo
Es un proceso que se acaba de crear pero que aún no ha sido
admitido por el sistema operativo en el grupo de procesos
ejecutables
Listo
Es un proceso que está preparado para ejecutarse, en cuanto se le
dé la oportunidad
Ejecución
Es un proceso que se está ejecutando en este momento
Terminado
Es un proceso que se ha eliminado del grupo de procesos
ejecutables, ya sea porque ha finalizado o porque ha sido
abandonado por alguna razón
Bloqueado
Es un proceso que no se puede ejecutar hasta que se produzca
cierto suceso, por ejemplo la finalización de una operación de
Entrada – Salida (E/S)
23.
24.
25. Las razones para crear un nuevo proceso son:
1. Nuevo trabajo por lotes
2. Conexión interactiva
3. Creación del sistema operativo para dar un
servicio
4. Creación de otro proceso existente
26. Las razones para interrumpir un proceso
son:
1. Terminación normal
2. Tiempo límite excedido
3. No hay memoria disponible
4. Violación de limites
5. Error de protección
6. Error aritmético
7. Tiempo máximo de espera excedido
8. Fallo de E/S
9. Instrucción ilegal
10. Instrucción privilegiada
11. Mal uso de datos
12. Intervención del operador o del sistema operativo
13. Terminación del padre
14. Solicitud del padre
27. El propósito de la planificación del procesador
consiste en asignar los procesos al procesador
para que sean ejecutados a lo largo del tiempo,
de forma que se cumplan los objetivos del
sistema tales como el tiempo de respuesta, la
productividad y la eficiencia del procesador.
28. En muchos sistemas la planificación se divide
en tres funciones independientes:
Planificación a largo plazo
Planificación a mediano plazo
Planificación a corto plazo
Los nombres hacen referencia a la frecuencia
relativa con la que se ejecutan estas funciones.
29. La planificación a largo plazo se lleva a cabo
al crear un proceso nuevo
La planificación a mediano plazo forma parte
de la función de intercambio
La planificación a corto plazo consiste en
decidir que proceso en estado Listo será el
que se ejecute a continuación
30. El planificador a largo plazo se ejecuta con
relativa poca frecuencia, tomando una primera
decisión sobre si tomar o no un nuevo proceso
y cuál tomar.
31. El planificador a mediano plazo se ejecuta con
un poco mas de frecuencia, para tomar la
decisión del intercambio de estados
32. El planificador a corto plazo, también conocido
como distribuidor o dispatcher, es el de
ejecución mas frecuente, y toma decisiones
con un mayor detalle sobre el proceso que se
ejecutará a continuación.
33. El planificador a corto plazo se ejecuta cuando
ocurre un suceso que puede conducir a la
interrupción de un proceso actual o que ofrece
la oportunidad de expulsar de la ejecución al
proceso actual en favor de otro.
Alguno ejemplos de este tipo de sucesos son:
Interrupciones del reloj
Interrupciones de E/S
Llamadas al sistema operativo
Señales
34. El planificador a corto plazo tiene como principal
objetivo repartir el tiempo del procesador de forma
que se optimicen uno o mas elementos del
comportamiento del sistema.
Generalmente se fija un conjunto de criterios con
los que se evalúan las diversas estrategias de
planificación.
Los criterios mas comunes son:
Tiempo de retorno
Tiempo de respuesta
Plazos
35. Otros criterios pueden ser:
Orientados al usuario
◦ Previsibilidad
Orientados al rendimiento
◦ Productividad
◦ Utilización del procesador
Orientados al sistema
◦ Equidad
◦ Prioridad
◦ Equilibrio de recursos
36. Primero en llegar, primero en ejecutarse (FIFO)
La política mas simple de planificación es la FIFO
(First In - First Out), es decir, el primero en llegar es
el primero en salir (ejecutarse).
Cada vez que un proceso pasa a estado Listo, se
incorpora a la cola de listos. Cuando el proceso
actual cesa su ejecución, se selecciona el proceso
mas antiguo de la cola.
37. Turno rotatorio (round robin)
Un modo simple de reducir la penalización de
tiempo de espera que sufren los procesos
cortos en un esquema FIFO es considerar el
tiempo de ejecución de un proceso
dependiente de un tiempo fijo de reloj. La
forma mas sencilla es la conocida como Round
Robin o Turno rotatorio.
38. Lo que se busca es determinar un tiempo de
procesamiento fijo, igual a todos los procesos.
Cuando un proceso en estado Listo es tomado
por el dispatcher e ingresa al procesador, tiene
un tiempo X para ser ejecutado. Al finalizar ese
tiempo, cambia nuevamente a estado Listo y
reingresa a la cola administrada con el criterio
FIFO, y el siguiente proceso en la cola
comienza su ejecución.
39. El principal problema de este algoritmo es
determinar cuanto tiempo es el tiempo justo
para un proceso. Si el tiempo es muy corto los
procesos cortos pasan por el sistema
rápidamente pero se produce una sobrecarga
en la gestión de interrupciones del reloj y la
ejecución de las planificación.
40. Primero el proceso mas corto
Otra forma de planificar es conocida como SPN
(Shortest Process Next) o Primero el proceso
mas corto. Consiste en tomar siempre el
proceso mas corto de la cola para ejecutar.
41. El inconveniente se presenta cuando se
acumulan procesos de ejecución largos que
pierden la posibilidad de entrar al procesador
hasta que los mas cortos no hayan finalizado,
siendo que un proceso corto, al salir del
procesador y entrar nuevamente en la cola de
ejecución, volverá a ser seleccionado por su
tiempo de ejecución.
42. Primero el de menor tiempo restante
Por ultimo, existe otra forma de planificar
conocida como SRT (Shortest Remaining Time)
o el de menor tiempo restante. Es similar al
SPN pero se toma de la cola de procesos al que
tenga un menor tiempo restante de ejecución
pendiente.
El problema es similar al anterior, los procesos
con mucho tiempo restante pierden peso en la
cola ante otros de menor tiempo.
43. Hasta ahora vimos que todos los procesos que
se están ejecutando en el sistema, ya sea el
proceso en ejecución, como todos aquellos que
esperan a ser ejecutados, pasan por un único
procesador.
En la actualidad los sistemas operativos
cuentan con la capacidad de administrar
múltiples procesadores al mismo tiempo.
44. El concepto de multiprocesos está asociado a
esta situación. Un sistema operativo puede
administrar múltiples colas de procesos que
serán atendidas, cada una, por un procesador
distinto.
45. Además, existe el concepto de multihilo. Es
decir, la capacidad del sistema operativo de
mantener varios hilos de ejecución dentro de
un mismo proceso.
Hasta ahora vimos un unico proceso con un
único hilo de ejecución (monohilo).
Un ejemplo de sistema operativo que utilizaba
esta técnica es el MS-DOS.
46.
47. Con este nuevo enfoque, cada hilo de cada
proceso contará con un estado de ejecución,
junto con todos los datos necesarios para
identificarlo.
Como vimos anteriormente, estos datos son:
Estado
Contexto del proceso al momento de salir del
procesador
Pila de ejecución
48. Algunos ejemplos en la utilización de hilos en
un programa pueden ser:
Trabajo interactivo y en segundo plano
Un programa de hoja de calculo puede tener un hilo para
visualizar los menus y mientras tanto otro hilo para realizar los
calculo y actualizar la pantalla.
Procesamiento asincrónico
Un programa de procesamiento de texto puede tener un hilo
que se encargue de escribir los datos en un buffer para ser
guardados una vez por minuto, con el fin de evitar la
perdida de datos ante un corte de luz, mientras otro hilo se
encarga de la ejecución propia del programa
49. Aceleración de la ejecución
Un proceso con hilos múltiples puede trabajar con un lote de
datos mientras otro hilo se encarga de leer el siguiente lote.
Estructuración modular de programas
Los programas que realizan una gran variedad de
actividades o trabajan con diversos destinos de Entrada y
Salida se pueden hacer mas fáciles diseñándolos e
implementándolos con hilos.
50. Todos estos temas fueron tomados del libro
“Sistemas Operativos” 4ta Edición de William
Stallins.
Los capítulos que pueden revisar son:
Sistemas operativos: Capitulo 2
Procesos: Capitulo 3
Planificación: Capitulo 9
Multiprocesos y Multihilos: Capitulo 4