Beruflich Dokumente
Kultur Dokumente
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.
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
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:
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á:
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
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.
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:
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.
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.
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.
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.
Como el sistema anterior pero además se permiten la movilidad de los procesos entre las
diferentes colas
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:
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:
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.
Se puede optar por cancelar todos los procesos bloqueados o bien cancelar ciertos procesos
hasta conseguir la liberación de los recursos bloqueados.
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).
DICCIONARIO
Algoritmo
I/O
BATCH (procesamiento por lotes)
QUEU
GESTIÓN DE PROCESOS
Página 6