Sie sind auf Seite 1von 6

IMPLANTACIÓN DE SISTEMAS OPERATIVOS

1º ASIR GESTIÓN DE PROCESOS


________________________________________________________________________________
¿Qué es un proceso? Un proceso se puede definir como un programa en ejecución.

Algunos autores lo denominan tarea, o trabajo (process, task o Jobs). Una de las funciones
fundamentales de un SO es la planificación de los procesos, ya que es el SO el que proporciona
la interfaz para el usuario ante los distintos componentes hardware de la máquina.
Un único programa no utiliza toda la potencialidad de una máquina, por lo tanto el concepto de
multiprogramación surge para mantener “ocupado” lo más posible a todos los recursos del
sistema.

¿Qué es una interrupción? Una interrupción es una señal de un dispositivo hardware o de un


programa que hace que el SO detenga lo que está haciendo y tome una decisión sobre que es
lo que va a hacer a continuación. Existen interrupciones de hardware llamadas IRQ (Interrup
Request) que tienen un valor asociado y que se producen cuando por ejemplo la impresora
necesita papel e interrupciones software cuando por ejemplo un programa ha terminado.

Ejemplo del alumno que estudia varias asignaturas (planificación, tareas, interrupciones, acción
ante una interrupción)

Gestión de Procesos

Los sistemas operativos tienen como función principal controlar las interrupciones que se
producen en el sistema y crear una capa de abstracción para evitar que los usuarios tengan
que controlar el sistema a un nivel tan bajo. Los servicios que proporciona el SO incluyen la
realización de las siguientes actividades:
 Ejecución concurrente de los procesos
 Sincronización entre procesos
 Comunicación entre procesos

Además el SO debe disponer de programas o algoritmos para la gestión y planificación de los


procesos que se encargen de:

 Decidir qué proceso se ejecutará en el procesador


 Llevar la cuenta del estado de los procesos, sus prioridades y toda la información
relevante de los procesos.

Ejemplo del alumno que debe de tener un calendario de actividades, modificar la prioridades si
hay examen, saber en que punto del temario está, etc.

Cada proceso tiene su identificar (id identificador) que lo diferencia del resto. Un proceso se
puede definir como un programa en ejecución, incluyendo el valor actual del Program Counter
(Contador de programa), registros y variables que usa. Varios procesos pueden estar
ejecutando el mismo programa, por ejemplo, si dos usuarios están utilizando al mismo tiempo
el procesador de textos en un SO multiusuario. Cada proceso (cada usuario ejecutando el
procesador) tiene su propio identificador.

Para ocultar los efectos de las interrupciones, los sistemas operativos proporcionan un modelo
conceptual consistente en procesos secuenciales ejecutados en paralelo.

Cada proceso tiene su propio estado y se puede considerar que se ejecuta en su propio
procesador real.

A veces, los procesos deben interactuar entre si, lo que puede derivar condiciones de
competencia por lo que los sistemas operativos deben implementar los algoritmos de
planificación necesarios, así como los mecanismos para que un usuario pueda manejar dichos
conflictos o bloqueos.

GESTIÓN DE PROCESOS
Página 1
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
1º ASIR GESTIÓN DE PROCESOS
________________________________________________________________________________
A lo largo de la vida de todo proceso del sistema, éste puede pasar por distintos estados:

 Ejecución, cuando está siendo ejecutado por la CPU.


 En espera o READY, cuando el proceso está en condiciones de ser ejecutado, pero debe
esperar su turno.
 Bloqueado, cuando está en ejecución, pero esperando que ocurra algún evento.

Para que el sistema operativo pueda controlar los distintos procesos existentes, mantiene para
cada uno de ellos lo que se denomina un bloque de control de procesos o PCB, donde se guarda
para cada proceso la información necesaria para manejarlo. El PCB de un proceso contendrá:

a. Identificador del proceso


b. El estado del proceso.
c. El Program Counter (PC) o contador de programa.
d. Los registros de la CPU que usa.
e. La prioridad asignada.
f. Información de Entrada-Salida.
g. Estadísticas (uso de CPU, ID del proceso, etc.).

El sistema operativo mantiene a su vez una cola de procesos en estado de espera.

Importante: Diferenciar entre los conceptos de COLA y PILA en informática.

Cuando el sistema operativo entrega a la CPU un nuevo proceso, es necesario guardar el


estado del proceso que se estaba ejecutando y cargar el nuevo proceso.

El estado de un proceso comprende el program counter y los registros que está utilizando.

A este cambio de proceso en la CPU se le denomina Cambio de Contexto. Este cambio provoca
que la CPU esté inactiva durante dicho proceso, es decir, es costoso para el sistema

¿Quién crea los procesos y como se crean?

Todo sistema operativo cuando arranca, lanza un proceso inicial que mantiene vivo el sistema.
Este proceso es el encargado de lanzar el resto de los procesos que sean necesarios, los cuales
a su vez pueden lanzar nuevos procesos.

A los procesos que crean a otros procesos se les denomina procesos padre, y a los creados
procesos hijo. Cuando un proceso padre es eliminado, todos sus procesos hijo son eliminados.
(documento / impresión) Obviamente deben existir restricciones en la eliminación de procesos,
no pudiendo un usuario eliminar los procesos de otro usuario.

La eficiencia de los procesos dependerá de las tareas que realice.

Por ejemplo, si un proceso necesita realizar una operación de I/O (Input/Output, Entrada/Salida)
y otra de ejecución en CPU, podríamos crear una estructura que se encargue por separado de
dichas tareas.

A estas estructuras se les denomina hilos o threads. Gracias a ellos, los cambios de contexto
no son tan costosos y el espacio de memoria compartida permite la comunicación entre hilos.

Existen librerías que permiten la creación de hilos dentro de los procesos sin necesidad de
apoyo por parte del S.O., pues éste no necesita conocer la existencia de los mismos.

GESTIÓN DE PROCESOS
Página 2
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
1º ASIR GESTIÓN DE PROCESOS
________________________________________________________________________________
Cuando hay más de un proceso en la cola de espera en condiciones de ser ejecutado por la
CPU, se debe de escoger alguno entre ellos y ejecutarlo.

Planificador de procesos
El encargado de tomar dicha decisión es el planificador o scheduler. Se denomina planificador
de procesos a la parte del SO que se encarga de asginar recurso de un sistema entre los
diferentes procesos que lo solicitan.

Ejemplo del alumno que debe decidir qué asignatura estudia y por cuanto tiempo.
Para la toma de dicha decisión, debe seguir algún algoritmo de planificación cuyos objetivos
han de ser:

 Justicia. Que todos los procesos tengan su tiempo de CPU.


 Eficiencia. Mantener la CPU ocupada el mayor tiempo posible.
 Minimizar los tiempos de respuesta.

Importante: Procesamiento por lotes: un trabajo que se realiza sin la intervención del usuario o
del SO en oposición al procesamiento interactivo.

En ocasiones se utilizan planificación a dos niveles, uno que se encarga de planificar los
trabajos (se llama a largo plazo) y otro que se encarga de planificar el procesador (a corto
plazo)

Multiprocesadores. Cuando hay más de un procesador se puede optar por dos opciones.

 Cada procesador tiene su propia cola de READY.


 Dejar que un procesador planifique los procesos y divide que procesos corren en los
demás

Algoritmos típicos de planificación


Algoritmo expropiativo: Cuando un proceso con mayor prioridad reemplaza a otro proceso
aunque esté en ejecución si tiene menor prioridad.

FCFS
FIRST COME FIRST SERVE

Se atiende a los procesos en el mismo orden en el que entraron en la cola de READY. Este
algoritmo es malo pues no garantiza que los tiempos de espera sean mínimos y la CPU puede
estar mucho tiempo inactiva.

SJR
SHORT JOB FIRST

El trabajo más corto primero. Se debe “adivinar” el tiempo medio de los procesos de la cola.

PLANIFICACIÓN POR PRIORIDAD

A cada proceso se le asigna una prioridad y se le entrega a la CPU el proceso de mayor


prioridad. Para definir la prioridad, se pueden seguir muchos criterios:
 Según el usuario.
 Según el tipo de proceso (sistema, intensivo CPU, intensivo I/O).
 Según la carga de CPU en ese momento

La prioridad puede ser estática o dinámica. Estática no cambia durante el tiempo que el
proceso existe y dinámica puede ser modificada por el usuario o por el sistema.

GESTIÓN DE PROCESOS
Página 3
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
1º ASIR GESTIÓN DE PROCESOS
________________________________________________________________________________
SRT
SHORTEST REMAINING TIME

Se elige el proceso al que le queda menos tiempo para su finalización, incluyendo los últimos
que han llegado a la cola. Es necesario llamar continuamente al planificador.

ROUND ROBIN
PRIORIDAD CIRCULAR O CARRUSEL

Carrusel o Round Robin. Los procesos son ejecutados según llegan, pero dejan de ejecutarse
pasado un tiempo determinado o al realizar una operación bloqueante.

MLQ (MULTI- LEVEL- QUEU)


PLANIFICACIÓN DE COLAS MULTINIVEL

Planificación usando múltiples colas. Se divide la cola de READY en varias colas según la
categoría del proceso. Cada una de las colas independientes tendrá su propio algoritmo de
planificación. Así, se podrán definir colas para procesos del sistema, colas para procesos
interactivos, colas para procesos por lotes, etc.

MLfQ (MULTI- LEVEL- FEEDBACK-QUEU)


PLANIFICACIÓN DE COLAS MULTINIVEL CON REALIMENTACIÓN

Como el sistema anterior pero además se permiten la movilidad de los procesos entre las
diferentes colas

¿Qué algoritmo elegir?


En cada modelo se ve favorecido un proceso en vez de otro, por lo tanto diferenes algoritmos
producirán diferentes resultados en la ejecución.

Elementos a tener en cuenta:


b) El tiempo medio de utilización del procesador
c) El tiempo medio de espera de los procesos
d) Número de procesos completados por unidad de tiempo
e) Tiempo que transcurre desde que un proceso se crea hasta que se
termina

SINCRONIZACION DE PROCESOS

Para optimizar el manejo de los procesos por parte del sistema operativo se usan procesos
cooperativos que se ejecutan al mismo tiempo, técnica que se conoce como programación
concurrente.

Estos procesos concurrentes comparten áreas de proceso, lo que implica que deben crear
procedimientos de exclusión mútua. Si llamamos sección crítica a la parte del programa que da
acceso a la memoria compartida, los procesos deben cumplir las siguientes condiciones:

a. Nunca dos procesos deben de encontrarse en sus secciones críticas a la vez.


b. Ningún proceso suspendido fuera de su sección crítica debe bloquear a otros
procesos.
c. Nunca un proceso debe entrar de forma arbitraria en su sección crítica.

GESTIÓN DE PROCESOS
Página 4
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
1º ASIR GESTIÓN DE PROCESOS
________________________________________________________________________________
Existen distintos algoritmos que solucionan el problema de la sección crítica de los procesos
cooperativos. Los más importantes son:

Deshabilitación de interrupciones. Todo proceso debe deshabilitar las interrupciones cuando


entre en su sección crítica y habilitarlo cuando salga. Exige a los programadores un control
excesivo del sistema.

Semáforos. Son variables protegidas que solo pueden ser modificadas por la rutina de
inicialización que crea el semáforo y por las operaciones de wait y signal.

Monitores. Solo un proceso puede estar activo en un monitor en un instante del tiempo. Los
monitores proveen las variables de condición e implementan las funciones de wait (el
proceso es interrumpido) y signal (habilita un proceso en espera de ejecución por efecto de
la orden wait).

BLOQUEOS
Cuando existen muchos procesos que compiten por recursos finitos, puede darse la situación
de que un proceso esté esperando a que otro proceso libere un dispositivo al que quiere
acceder.

En este caso se dice que dicho proceso se encuentra bloqueado y puede darse el caso de que
el proceso que lo bloquea esté esperando a un evento del proceso bloqueado. En ese caso se
dice que ambos procesos están en bloqueo mútuo.
Para gestionar los bloqueos mutuos los sistemas operativos pueden implementar distintos
métodos:

Método del avestruz. Consiste en no realizar nada. Se supone que un bloqueo mutuo
se produce con una frecuencia menor que la caída de un sistema. Implica el reinicio
del sistema o muerte de los procesos bloqueados.

Detección y recuperación. Monitorizar los procesos existentes y si se detecta un


bloqueo mutuo se matan los procesos afectados.

Algoritmo de prevención. Para ello se imponen restricciones a los procesos de


manera que sea imposible la aparición de bloqueos mutuos. Deben darse las
siguientes condiciones:

Permitir la expropiación de recursos, es decir, permitir que los procesos que


quieran un recurso se los quite al resto.
Obligar a los procesos que declaren de antemano los recursos que van a
necesitar.
Crear restricciones en la entrega de recursos a los procesos.
Asignar un tiempo máximo de uso de los recursos por parte de los procesos.
Una vez que se ha producido un bloqueo mutuo entre procesos, se debe proceder a una
cancelación de los procesos bloqueados y a una obtención de recursos por parte de los
mismos.

Se puede optar por cancelar todos los procesos bloqueados o bien cancelar ciertos procesos
hasta conseguir la liberación de los recursos bloqueados.

Los criterios a elegir para cancelar procesos son:

Por tiempo de uso de la CPU.


Por cantidad de memoria usada.
Etc.

GESTIÓN DE PROCESOS
Página 5
IMPLANTACIÓN DE SISTEMAS OPERATIVOS
1º ASIR GESTIÓN DE PROCESOS
________________________________________________________________________________
GESTION DE PROCESOS EN LINUN

Los procesos en sistemas operativos UNIX se realiza por prioridad y Round Robin.

El sistema provee facilidades para crear túneles entre procesos y crear estadísticas del uso
de recursos por parte de los procesos.

Este sistema operativo permite que un proceso cree una copia de si mismo por medio de la
llamada “fork”, para facilitar trabajos en paralelo.

Provee una serie de comando para el control de procesos, como ps (para verlos), kill (para
matarlos) y nohup (para independizarlos de un terminal).

Los procesos son segmentados en componentes más pequeños llamados threads.

Windows 2000 implementa un sistema de planificación de procesos basado en la prioridad,


ejecutando siempre el hilo de ejecución con una prioridad más elevada. Cuando un hilo de
ejecución es seleccionado para ejecutarse, lo hace durante un periodo de tiempo
denominado Quantum, la duración del cual varía según diversos factores externos. Un
Proceso en ejecución puede ser retirado si llega otro con mayor prioridad. Si un proceso
agota su Quantum antes de finalizar, el sistema lo extrae de ejecución y lo pone a la
espera. Por otra parte también es posible que un hilo no agote su Quantum, y finalice su
ejecución. El módulo de planificación de procesos está incluido en el kernel del sistema.

Dispone de un administrador de procesos para crear, destruir, suspender y reanudar


procesos.

DICCIONARIO

Algoritmo
I/O
BATCH (procesamiento por lotes)
QUEU

GESTIÓN DE PROCESOS
Página 6

Das könnte Ihnen auch gefallen