Title: SISTEMAS OPERATIVOS
1CAPÍTULO II PROCESOS
Realizado por Ing. Samanta
CuevaDocentes Ing. Carlos Córdova Ing.
Alexander López Ing. Julia Pineda
Abril-Agosto 2008
2CAPÍTULO II PROCESOS
2.1 Procesos 2.2 Planificación de Procesos 2.3
Sincronización de Procesos 2.4 Interbloqueos
32.1 Procesos
Un programa en ejecución Una actividad
asíncrona El "espíritu animado" de un
procedimiento El "centro de control" de
un procedimiento en ejecución Lo que se
manifiesta por la existencia de un "bloque de
control del proceso" en el sistema
operativo La entidad a la que se asignan
los procesadores La unidad "despachable"
4Proceso
- Un proceso es una abstracción de un programa en
ejecución y es la unidad de trabajo del sistema. - Aunque se han dado muchas otras definiciones, no
hay una definición universalmente aceptada, pero
el concepto de "Programa en ejecución" parece ser
el que se utiliza con mas frecuencia. Un programa
es una entidad inanimada sólo cuando un
procesador le "infunde vida" se convierte en la
entidad "activa" que se denomina proceso.
5DIVISIÓN IMPLÍCITA DE TAREAS
División Implícita de Tareas Significa que los
procesos son definidos por el sistema y se aplica
en sistemas operativos multitarea de tal manera
que permita explotar los beneficios de la
concurrencia entre aplicaciones.
6DIVISIÓN EXPLÍCITA DE TAREAS
- División Explícita de Tareas Significa que las
tareas y algunos de sus atributos son definidos
por el programador y permiten elevar el
rendimiento y controlar explícitamente las
actividades del sistema a explotar la
concurrencia incluida dentro de una aplicación o
programa. - Ventajas de aplicar división explícita
- Ganancia de velocidad.
- Uso de dispositivos de E/S que tienen latencia.
- Conveniencia del usuario,
- Multiprocesamiento.
- Computación Distribuida.
7ESTADOS DE UN PROCESO
Los estados por los que transita un proceso son
cuatro, aunque algunos autores consideran solo
tres 1.-Inactivo 2.-Preparado o listo 3.-En
ejecución 4.-Suspendido o bloqueado
8ESTADOS DE UN PROCESO
1.-Inactivo El estado inactivo no es considerado
un estado válido de proceso por algunos autores,
principalmente porque implica la inexistencia del
proceso. Efectivamente, llamamos proceso inactivo
a aquel que no ha sido creado y por lo tanto no
existen estructuras de control asociadas a él.
9ESTADOS DE UN PROCESO
2.-Preparado o listo El estado preparado o
listo involucra ya la creación del proceso, y
suele ser el primer estado a adoptar por él. En
este estado el Sistema Operativo ya reconoce al
proceso como tal, pues existen una serie de
estructuras con datos relevantes del proceso que
el Sistema Operativo constantemente monitorea. La
característica principal del estado listo es que
el proceso posee todos los recursos para su
ejecución menos la CPU. Esta preparado para
ejecutarse, pero no se está ejecutando. Cuando la
CPU sea liberada, todos los procesos en estado
listo competirán por ella. Quien gana la
competencia será dictado por los criterios en los
que los programadores del sistema se basaron para
cumplir sus objetivos, implementados a través de
los Algoritmos de Planificación.
10ESTADOS DE UN PROCESO
3.-En ejecución En este estado el proceso ya
posee todos los recursos, incluso el procesador.
De hecho, un proceso en ejecución está "pasando"
por la CPU, y aquí es cuando el proceso puede
realizar todas las operaciones que implementa.
11ESTADOS DE UN PROCESO
4.-Suspendido o bloqueado En este estado el
proceso carece de procesador y además de algún
otro recurso, por lo que no solo no está siendo
ejecutado, sino tampoco compite por ser
ejecutado. Normalmente un proceso es bloqueado
cuando, para proseguir, necesita de algún dato
enviado por un canal E/S, como teclado. Debido a
que el tiempo que se toma el usuario para teclear
es impredecible y extraordinariamente largo, si
hablamos en términos de procesamiento
computacional, el Sistema Operativo prefiere
bloquear el proceso y planificar otro, hasta que
la entrada del dato despierta al proceso y éste
continua su ciclo normal.
12ESTADOS DE UN PROCESO
13(No Transcript)
14TABLA DE PROCESOS
- Para manejar la información de todos los
procesos, el sistema operativo maneja una tabla
de procesos, la que contiene una entrada por la
información de cada proceso. A cada una de estas
entradas a la tabla de procesos se le conoce con
el nombre de PCB (Process Control Block). Por lo
general esta estructura posee diversa información
asociada al proceso que incluye - Estado del proceso El estado puede ser en
ejecución, listo o bloqueado. - Contador de programas Contiene la dirección de
la siguiente instrucción a ejecutar por el
proceso. - Información de planificación Esta información
incluye prioridad del proceso, apuntadores a
colas de planificación, etc.
15TABLA DE PROCESOS
16TABLA DE PROCESOS
- Información del Sistema de archivos Esta
información incluye protecciones, identificación
de usuario, grupo, etc. - Información del estado de E/S Esta información
incluye, solicitudes pendientes de E/S,
dispositivos de E/S asignados al proceso,etc. - El Sistema Operativo forma colas de BCP de
procesos, de acuerdo a su condición, gestionando
normalmente una cola de procesos (BCP's de
procesos) preparados, cola de procesos
suspendidos y, en sistemas operativos
multiprocesadores, colas de procesos en ejecución.
17NÚCLEO DEL S.O.
- El núcleo del Sistema Operativo controla todas
las operaciones que implican procesos y
representa solo una pequeña porción del código de
todo el Sistema Operativo pero es de amplio uso. - Generalmente permanece en el almacenamiento
primario. - Las interrupciones se incluye en el núcleo por la
rapidez en la que se deben efectuar. - El núcleo inhabilita las interrupciones mientras
responde a una interrupción. Las interrupciones
son habilitadas de nuevo después de completar el
proceso de una interrupción. - El núcleo del Sistema Operativo generalmente
realiza las siguientes funciones
18NÚCLEO DEL S.O.
- Manipulación de interrupciones.
- Creación y destrucción de procesos.
- Cambio de estados de procesos.
- Despacho.
- Suspensión y reanudación de procesos.
- Sincronización de procesos.
- Comunicación entre procesos.
- Manipulación de bloques de control de proceso.
- Soporte de las actividades de Entrada / Salida.
- Soporte de la asignación y desasignación de
almacenamiento. - Soporte del sistema de archivos.
- Soporte de un mecanismo de llamada / regreso al
procedimiento. - Soporte de ciertas funciones contables
(estadísticas) del sistema.
19PLANIFICACIÓN DE PROCESOS
La planificación de procesos es muy importante
pues, es a través de esta que se ha logrado
implementar el concepto de multiprogramación.
La Planificación hace referencia a un conjunto
políticas y mecanismos incorporados al sistema
operativo que gobiernan el orden en que deben ser
ejecutados los trabajos que deben cumplimentarse
por el sistema operativo. El Objetivo de la
planificación es optimizar el rendimiento del
sistema. Los Planificadores son módulos de
software encargados de determinar el orden en que
los procesos serán ejecutados. El sistema
operativo utiliza para la planificación de
procesos Colas de Planificación. Para explicar
como el sistema operativo opera con colas,
recordemos que los estados de los procesos
20PLANIFICACION DE PROCESOS
21OBJETIVOS DE LA PLANIFICACION
- Equidad Este objetivo consiste en compartir la
CPU equitativamente, sin priviligiar notoriamente
algún tipo de proceso. - Maximizar la utilización de la CPU Las funciones
que realice el planificador de procesos tienden a
mantener la CPU utilizada la mayor parte del
tiempo. - Maximizar la productividad La productividad es
una medida del rendimiento, que se refleja con la
cantidad de tareas que puede realizar la CPU en
un intervalo de tiempo. - Minimizar el tiempo de espera Este tiempo
corresponde al tiempo en que un proceso está en
la cola de procesos listos, es un tiempo de
espera por asignación de CPU.
22OBJETIVOS DE LA PLANIFICACION
- Minimizar el tiempo de retorno Este tiempo
corresponde al tiempo total en que se utiliza
para la ejecución completa del proceso. Este
tiempo se asocia en general al tiempo de
ejecución de los procesos por lotes (batch). - Minimizar el tiempo de respuesta Este tiempo
está relacionado con los tiempos de respuesta
parciales de los procesos interactivos. Puesto
que estos procesos se caracterizan porque
interactuan con el medio constantemente durante
la ejecución completa del proceso
23CRITERIOS DE PLANIFICACIÓN
- Los criterios para comparar los algoritmos de
planificación son - Utilización de CPU La CPU esté tan ocupada como
se pueda - Rendimiento Número de procesos que se completan
por unidad de tiempo. - Tiempo de retorno El tiempo que tarda la
ejecución de ese proceso ? Suma de los periodos
durante los cuales espera entrar en la memoria. - Tiempo de espera Es la suma de los periodos que
el proceso pasa esperando en dicha cola. - Tiempo de respuesta Es el tiempo que transcurre
entre la presentación de una solicitud y la
producción de la primera respuesta.
24TIPOS DE PLANIFICADORES
- Planificador a largo plazo
- Planificador a mediano plazo
- Planificador a corto plazo
25PLANIFICADOR A LARGO PLAZO
- Planificador de trabajos
- Selección de trabajos a cargar en memoria
principal. - Invocado muy infrecuentemente (segundos o
minutos). - Puede ser (más) lento.
- Controla el grado de multiprogramación en el
sistema.
26PLANIFICADOR A MEDIANO PLAZO
- Traslado de un proceso en memoria principal a
disco (intercambio o swapping). Posteriormente
volverá a memoria principal. - Reduce la contienda por el uso de la CPU.
- En ocasiones necesario ante los requisitos de
memoria principal.
27PLANIFICADOR A CORTO PLAZO
- Planificador de la CPU
- Selección del proceso listo que será ejecutado a
continuación. - Invocado muy frecuentemente (milisegundos).
- Debe ser rápido.
28PLANIFICADOR A CORTO PLAZO
29LOS ALGORITMOS DE PLANIFICACIÓN
- Las políticas de planificación, en general,
persiguen varios objetivos, entre los que
destacan - Ser justas, tratando a todas las cargas de
procesos de igual modo. - Aumentar la productividad.
- Aumentar la capacidad de atención de usuarios y
programas concurrentes activos sin el peligro de
saturación. - Ser predecibles.
- Imponer una mínima carga extra al sistema.
- Evitar tanto la saturación como la ociosidad de
los recursos. - Proveer seguridad y evitar problemas clásicos
como el del "aplazamiento indefinido".
30LOS ALGORITMOS DE PLANIFICACIÓN
- Los algoritmos de planificación más conocidos
- ALGORITMOS MONOPROCESADOR
- Algoritmo de planificación FIFO
- Algoritmo de planificación SJF, primero el
trabajo más corto. - Algoritmo de Planificación Basado en Prioridades
- Algoritmo de Planificación por turno rotario
(RR). - Algoritmo de Planificación MLQ, de múltiples
colas multinivel
31FIFO
- Los procesos pasan a CPU en orden de llegada a
cola de procesos listos. - Si el proceso en ejecución necesita E/S, se
inserta al final de la cola de procesos listos al
regresar a ésta. - Algoritmo no expulsivo.
- Fácil implementación con cola FIFO.
- Poco eficiente.
- Sufre la Anomalía de Belady
32FIFO
33ALGORITMO SJF
- Asociar a cada proceso el tiempo de ráfaga de
CPU. - Seleccionar el proceso con menor ráfaga de CPU.
- En caso de empate, aplicar FIFO.
- Algoritmo no expulsivo.
34BASADO EN PRIORIDADES
- Asociar a cada proceso una prioridad (número
entero). - Asignar la CPU al proceso más prioritario.
- En caso de empate, aplicar FIFO.
- Asumiremos mayor prioridad con menor número
entero. - Algoritmo expulsivo o no expulsivo.
35BASADO EN PRIORIDADES
36ROUND ROBIN
- Especialmente diseñado para sistemas de tiempo
compartido. - Cola circular de procesos listos.
- Asociar a cada proceso un tiempo de posesión de
CPU (cuantum q). - Tras el cuantum q el proceso en ejecución se
expulsa de la CPU y se pasa al final de la cola
de procesos listos. - Algoritmo expulsivo cada cuantum q de tiempo.
37ROUND ROBIN
38ROUND ROBIN
39ROUND ROBIN
- El rendimiento del algoritmo depende de q
- q grande FIFO.
- q pequeño Muchos cambios de contexto y
sobrecarga en la gestión de interrupciones de
reloj. - q debe ser grande respecto al tiempo de realizar
un cambio de contexto. - Generalmente, tiempo de retorno mayor que con
SJF pero mejor tiempo de respuesta.
40COLAS MULTINIVEL
- Colas multinivel sin realimentación
- Varias colas para los procesos listos.
- Cada cola tiene su propio algoritmo de
planificación. - Sistema de colas definido por
- Número de colas.
- Algoritmo de planificación de cada cola.
- Planificación entre colas.
- - Prioridad a cada cola.
- - Cuantum de CPU a cada cola, que se
- reparte entre los procesos de cada cola
41COLAS MULTINIVEL
42COLAS MULTINIVEL
- Colas multinivel con realimentación
- Varias colas para los procesos listos.
- Un proceso se mueve de una cola a otra.
- Sistema de colas definido por
- Número de colas.
- Algoritmo de planificación de cada cola.
- Cola en la que entrará un proceso al llegar a
preparado. - Planificación entre colas.
- Método para determinar la realimentación
- - Cuándo promover un proceso a una cola de
mayor prioridad. - - Cuándo degradar un proceso a una cola de
- menor prioridad.
43COLAS MULTINIVEL
Colas multinivel con realimentación
44PLANIFICACIÓN DE PROCESADORES MÚLTIPLES
- Algoritmo de planificación complejo.
- Sistema heterogéneo
- - Cada procesador tiene su cola y algoritmo de
planificación. - - Los procesos han de ejecutarse en un
procesador determinado. - Sistema homogéneo
- - Cola común de procesos listos.
45OPERACIONES CON PROCESOS
Recordemos Un proceso es un programa en
ejecución! Por lo que Es necesario que el
Sistema Operativo tenga mecanismos para crear o
eliminar dichos procesos.
46CREACIÓN DE PROCESOS
La creación de procesos se la realiza a travéz
de fork En el momento de la llamada a fork el
proceso hijo Es una copia exacta del padre
excepto el PID. Tiene las mismas variables y
ficheros abiertos. Las variables son
independientes (padre e hijo tienen distintas
pilas). Los ficheros son compartidos (heredan
el descriptor).
47ELIMINACIÓN DE PROCESOS
- En cualquier sistema informático, debe existir
alguna forma de que un proceso pueda indicar que
ha terminado. - Razones para la terminación de un proceso
- Normal
- Por tiempo excedido
- Violación de limites.
- No memoria disponible.
- Error de protección
48RELACIONES ENTRE PROCESOS
- Todos los procesos concurrentes compiten por la
asignación de recursos del sistema que le
permitan realizar las operaciones respectivas
además durante la división explícita el
programador divide una aplicación lógica en
varios procesos con atributos propios surgiendo
la necesidad de que estos cooperen entre sí,
surgiendo las relaciones de - Competición Los procesos trabajan solos sin
afectar mayormente a los demás, realizando
asignación cuidadosa de recursos. - Cooperación Afectan a los demás procesos a
través del intercambio de datos y señales de
sincronización.
49HILOS
Un Hilo es una unidad básica de utilización de
la CPU y tiene poco estado compartido. Un grupo
de hilos semejantes comparten código, espacio de
direcciones y recursos del SO. El entorno en el
cual se ejecuta un hilo se llama Tarea . Un
proceso tradicional equivale a una tarea con un
solo hilo. Una tarea no hace nada si no tiene
hilos. Un hilo posee un registro de estados y
generalmente su propia pila.