Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Gestión de
Procesos
Facultad de Ciencias de la Ingeniería
Ingeniería Informática y Ciencias de la
Computación
Operating System Concepts – 9th Edit9on Silberschatz, Galvin and Gagne ©2013
Contenido
Descripción, estados y control de procesos
Arquitecturas: Secuencial, Multiprogramación, Multiprocesamiento
Planificación de Procesos
Procesos e hilos
Concurrencia: Semáforos, monitores, mensajes, interbloqueos
Operating System Concepts – 9th Edition 1.2 Silberschatz, Galvin and Gagne ©2013
Descripción, estados y control de procesos
Operating System Concepts – 9th Edition 1.3 Silberschatz, Galvin and Gagne ©2013
Descripción, estados y control de procesos
Operating System Concepts – 9th Edition 1.4 Silberschatz, Galvin and Gagne ©2013
Descripción, estados y control de procesos
Operating System Concepts – 9th Edition 1.5 Silberschatz, Galvin and Gagne ©2013
Descripción, estados y control de procesos
Estados de un Proceso
Un proceso, a lo largo de su vida, alterna entre diferentes
estados de ejecución.
Las interrupciones permiten al SO tomar el control de CPU, por ejemplo, cuando: Se produce algún
tipo de error, existe algún evento externo. P.ej.: finalización de operación E/S. Reloj: se ha agotado
algún tiempo límite. Una interrupción es una solicitud de recursos al sistema operativo para brindar
disponibilidad y continuidad de los servicios
Operating System Concepts – 9th Edition 1.6 Silberschatz, Galvin and Gagne ©2013
Descripción, estados y control de procesos
Estados de un Proceso
New: El sistema operativo crea el proceso (recursos y estructuras),
pero aún no ha sido admitido en el grupo de procesos ejecutables
por el sistema operativo.
Ready: El proceso está esperando ser asignado al procesador para
su ejecución. Los procesos que están preparados para ejecutarse
permanecen en estado listo hasta que se les concede la CPU.
Entonces pasan al estado “Running”.
Running: El proceso está siendo ejecutado en este momento. Sus
instrucciones están siendo procesadas en algún procesador.
Waiting: En espera de algún evento para poder continuar su
ejecución (aun si hubiera un procesador disponible, no podría
avanzar).
Terminated: El proceso terminó de ejecutarse; se liberarán los
recursos utilizados por ese proceso, por ejemplo, la memoria.
Procesos en estado Zombie: El proceso ha finalizado su ejecución, pero el sistema operativo
debe realizar ciertas operaciones de limpieza para poder eliminarlo de la lista. Estas operaciones
pueden incluir notificar al proceso padre, cerrar las conexiones de red que tenía activas, liberar
memoria, etc.
Operating System Concepts – 9th Edition 1.7 Silberschatz, Galvin and Gagne ©2013
Descripción, estados y control de procesos
Estados de un Proceso
Call system
FCFS, SJF,
SRT, RR2
Operating System Concepts – 9th Edition 1.8 Silberschatz, Galvin and Gagne ©2013
Descripción, estados y control de procesos
Valores de Interrupción
Operating System Concepts – 9th Edition 1.9 Silberschatz, Galvin and Gagne ©2013
Descripción, estados y control de procesos
Operating System Concepts – 9th Edition 1.11 Silberschatz, Galvin and Gagne ©2013
Descripción, estados y control de procesos
Ejecución de Procesos:
SECUENCIAL
MULTIPROGRAMADO
MULTIPROCESADO
HÍBRIDO
Operating System Concepts – 9th Edition 1.13 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos
Operating System Concepts – 9th Edition 1.14 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos
Operating System Concepts – 9th Edition 1.15 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos
Colas de planificación
Son unas estructuras de datos que organizan los PCB,
Process Control Block, de los procesos que se encuentran
cargados en el sistema en función de su estado.
El SO planifica los procesos en función de la información
mantenida en estas colas.
Estas estructuras se forman enlazando los PCB de los
procesos mediante punteros.
Tipos:
Cola de procesos listos
Cola de dispositivo
Operating System Concepts – 9th Edition 1.16 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos
Operating System Concepts – 9th Edition 1.17 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos
Algoritmos de Planificación
First-Come, First-Served (FCFS)
Shortest-Job-First (SJF)
Round-Robin (RR)
Shortest Remaining Time (SRT)
Priorities
Tiempos a considerar:
t: tiempo de ejecución del proceso
T: Tiempo de respuesta (incluye tiempo inactivo) Fin – T llegada
E: Tiempo Perdido (en espera) E=T-t
P: T/t Fracción del tiempo de respuesta la cual el proceso estuvo en
espera
Operating System Concepts – 9th Edition 1.18 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos
Algoritmos de Planificación
First-Come, First-Served (FCFS): Cada proceso se ejecuta en el
orden en que fue llegando, y hasta que suelta el control. El
despachador es muy simple, básicamente una cola FIFO.
Algoritmos de Planificación
Shortest-Job-First: Primero el más corto
Operating System Concepts – 9th Edition 1.20 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos
Algoritmos de Planificación
Shortest-Job-First:
es muy difícil contar con el t de ejecución antes de ejecutar
el proceso. Es más frecuente buscar caracterizar las
necesidades del proceso: Ver su historial y marcar una
tendencia actual.
Para lo anterior es común emplear el promedio exponencial
ep
Favorece a los procesos cortos. Sin embargo, un proceso
largo puede esperar mucho tiempo antes de ser atendido.
Un proceso más largo que el promedio está predispuesto a
sufrir inanición.
Operating System Concepts – 9th Edition 1.21 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos
Algoritmos de Planificación
Round-Robin RR
Busca balancear mejores tiempos de respuesta tanto para procesos
largos como para los cortos.
A los proceso en ejecución se le asigna un número respectivo de
quantum para su ejecución.
Si un proceso no ha terminado de ejecutar al final de su quantum, será
interrumpido y puesto al final de la lista de procesos listos, para que
espere a su turno nuevamente. Los procesos que sean despertados
por los planificadores a mediano o largo plazo se agregarán también al
final de esta lista.
Proceso llegada t
A time quantum is P1 0 24
generally from 10 P2 4 3
to 100 milliseconds q=4
in length.
P3 7 3
Operating System Concepts – 9th Edition 1.22 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos
Algoritmos de Planificación
Round-Robin RR
q=4
Operating System Concepts – 9th Edition 1.23 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos
Algoritmos de Planificación
Round-Robin RR
puede ser ajustada modificando la duración del quantum q.
Conforme se incrementa q, RR tiende a convertirse en
FCFS.
Si cada quantum es arbitrariamente grande, todo proceso
terminará su ejecución dentro de su quantum; por otro lado,
conforme decrece q, se tiene una mayor frecuencia de
cambios de contexto; esto llevaría a una mayor ilusión de
tener un procesador dedicado por parte de cada uno de los
procesos, dado que cada proceso sería incapaz de notar
las ráfagas de atención que éste le da (avance rápido
durante un periodo corto seguido de un periodo sin
avance).
Claro está, el procesador simulado sería cada vez más
lento, dada la fuerte penalización que iría agregando la
sobrecarga administrativa.
Operating System Concepts – 9th Edition 1.24 Silberschatz, Galvin and Gagne ©2013
Planificación de Procesos
Algoritmos de Planificación
Investigación:
Shortest Remaining Time - SRT
Priorities (prioridades)
Operating System Concepts – 9th Edition 1.25 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)
Operating System Concepts – 9th Edition 1.26 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)
Operating System Concepts – 9th Edition 1.27 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)
Un hilo (o proceso ligero) puede definirse como una unidad más
pequeña que un proceso, que puede planificarse y ejecutarse. Su
creación hilo es mucho más rápida que la creación de un proceso
Los procesos son totalmente independientes unos de otros
mientras que un hilo no. Un proceso puede tener varios hilos en
ejecución y cada hilo realizará una tarea diferente o igual según
como haya sido programado.
Operating System Concepts – 9th Edition 1.28 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)
La principal
diferencia entre un
proceso y un hilo es
que los procesos
tienen su propia
zona de memoria
mientras que los
hilos de un proceso
comparten la misma
zona de memoria.
Operating System Concepts – 9th Edition 1.29 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)
Operating System Concepts – 9th Edition 1.30 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)
Operating System Concepts – 9th Edition 1.31 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)
Operating System Concepts – 9th Edition 1.32 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)
Operating System Concepts – 9th Edition 1.33 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)
Operating System Concepts – 9th Edition 1.34 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)
Operating System Concepts – 9th Edition 1.35 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)
Operating System Concepts – 9th Edition 1.37 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)
Los estados de los hilos son iguales a la de los procesos (new, ready,
running, waiting, terminated)
Operating System Concepts – 9th Edition 1.38 Silberschatz, Galvin and Gagne ©2013
Procesos e hilos (threads)
Operating System Concepts – 9th Edition 1.39 Silberschatz, Galvin and Gagne ©2013
Concurrencia
Operating System Concepts – 9th Edition 1.40 Silberschatz, Galvin and Gagne ©2013
Concurrencia
Proceso 1 Proceso 2
Operating System Concepts – 9th Edition 1.41 Silberschatz, Galvin and Gagne ©2013
Concurrencia
Semáforos
Edsger Dijkstra, 1965
Objetivo: herramienta universal para sincronizar procesos, que sirva
como componente básico para construir algoritmos concurrentes
Definición: Un semáforo se utiliza en sistemas operativos
multiprocesamiento para restringir el acceso a un recurso. Los
semáforos según sean inicializados permitirán que más o menos
procesos utilicen un recurso de forma simultánea.
P(s) = wait(s) V(s) = signal(s)
Algoritmos clásicos de sincronización
Problema del búfer limitado
Problema de los lectores y escritores
o 1er problema: prioridad para los lectores
o 2º problema: prioridad para los escritores
Problema de los filósofos comensales
Operating System Concepts – 9th Edition 1.43 Silberschatz, Galvin and Gagne ©2013
Concurrencia
Semáforos
Mutex: la exclusión mutua, que es necesario para evitar que haya dos
operaciones que intenten ejecutarse al mismo tiempo. En la literatura,
el nombre tradicionalmente otorgado a este semáforo es mutex, que
significa MUTual EXclusion (exclusión mutua)
Mutex o llamado también candado (lock): es una condición que
especifica que sólo es un proceso que puede actualizar (modificar) un
recurso compartido a la vez para asegurar operación y resultados
correctos.
Operating System Concepts – 9th Edition 1.44 Silberschatz, Galvin and Gagne ©2013
Concurrencia
Semáforos
El problema con los bloqueos es cuando los procesos llegan a un
estado de interbloqueo. Esto quiere decir que un proceso quede
bloqueado en la espera de un evento que nunca va a ocurrir. Un
ejemplo de interbloqueo, deadlock o abrazo mortal es el siguiente:
Operating System Concepts – 9th Edition 1.45 Silberschatz, Galvin and Gagne ©2013
Concurrencia
Semáforos
El proceso P1 solicita un recurso R1 y el sistema se lo concede.
El proceso P2 solicita un recurso R2 y el sistema también se lo
concede.
El proceso P1 ahora solicita el recurso R2. El proceso se queda a la
espera de que el recurso R2 quede libre.
El proceso P2 solicita el recurso R1.
Situación de Interbloqueo
Operating System Concepts – 9th Edition 1.46 Silberschatz, Galvin and Gagne ©2013
Concurrencia
Semáforos
Recurso 1
Recurso 2
Operating System Concepts – 9th Edition 1.47 Silberschatz, Galvin and Gagne ©2013
Concurrencia
Monitores
Propuesto por Hoare (1972)
Los monitores son estructuras provistas por el lenguaje o entorno de
desarrollo que encapsulan tanto a los datos como a las funciones que
los pueden manipular, e impiden el acceso directo a las funciones
potencialmente peligrosas.
En otras palabras, son tipos de datos abstractos (ADTs), clases de
objetos, y exponen una serie de métodos públicos, además de poseer
métodos privados que emplean internamente.
Al no presentar al usuario/programador una interfaz que puedan
realizar operaciones, el monitor mantiene todo el código necesario
para asegurar el acceso concurrente a los datos en un sólo lugar.
Cuando un método sincronizado comienza a ejecutarse a éste se le da
un monitor para el objeto actual, lo que no permite la ejecución de
ningún otro método sincronizado en ese objeto. El monitor es liberado
cuando sale de un método sincronizado, permitiendo la ejecución de
otros métodos sincronizados dentro del mismo objeto.
Operating System Concepts – 9th Edition 1.48 Silberschatz, Galvin and Gagne ©2013
Concurrencia
Mensajes
Los programas concurrentes necesitan algún tipo de comunicación
entre los procesos. Esto debido a dos razones principales:
1. Los procesos compiten para obtener acceso a recursos
compartidos,
2. Los procesos quieren intercambiar datos
Es una técnica empleada en programación concurrente para aportar
sincronización entre procesos y permitir la exclusión mutua, de
manera similar a como se hace con los semáforos, monitores, etc.
No precisa de memoria compartida, por lo que es muy importante en
la programación parasistemas distribuidos.
Los elementos principales que intervienen en el paso de mensajes son
el proceso que envía, el que recibe y el mensaje.
Operating System Concepts – 9th Edition 1.49 Silberschatz, Galvin and Gagne ©2013
Concurrencia
Mensajes
Existen dos tipos de pasos de mensajes:
Síncrono: El proceso que envía el mensaje, espera a que este sea
recibido, antes de generar y enviar otro mensaje
Asíncrono: El proceso que envía no espera a que sea recibido el
mensaje enviado. Estos puede que tengan un buzón para mantener
los mensajes que se han enviado previamente y no han sido
recibidos aún.
Operating System Concepts – 9th Edition 1.50 Silberschatz, Galvin and Gagne ©2013