Este documento describe los conceptos básicos de los procesos y la administración de procesos. Explica que un proceso es un programa en ejecución que incluye código, datos y pila. También describe los diferentes estados de un proceso como nuevo, en ejecución, espera, listo y terminado. Además, resume varios algoritmos de planificación como round-robin, por prioridad, colas múltiples y primer trabajo más corto.
2. 2.1 Concepto de proceso.
Un proceso es básicamente un programa
en ejecución.
Consta del programa ejecutable, los
datos y la pila del programa, su contador
de programa, apuntador de pila y otros
registros, y la otra información que se
necesita para ejecutar el programa, así
como salidas y estados
3. Proceso - un programa en ejecución; la
ejecución del proceso debe progresar de
manera secuencial.
* Un proceso incluye:
* program counter (contador del programa)
* stack (pila)
* data section (segmento de datos)
4. Estados de los procesos
* Nuevo: El proceso es creado.
* Ejecución: Se ejecutan instrucciones.
* Espera: El proceso esta en espera por la
ocurrencia de algún evento.
* Listo: El proceso esta esperando a que le
asignen el procesador.
* Terminado: El proceso finaliza su ejecución.
* Diagrama de estados de los procesos.
5. Información asociada con cada proceso:
* Estado del proceso
* Program counter
* Registros del CPU
* Información de planificación del CPU
* Memoria
* Información para administración
* Información de estatus de E/S
6. Proceso:
programa o comando en ejecución.
Características:
* Un proceso consta de código, datos y pila.
* Los procesos existen en una jerarquía de árbol (varios
Hijos, un sólo padre).
* El sistema asigna un identificador de proceso (PID) único
al iniciar el proceso.
*El planificador de tareas asigna un tiempo compartido
para el proceso según su prioridad (sólo root puede
cambiar prioridad).
7. 2.2 Estados de un proceso y Transiciones de
estado de los procesos.
un proceso puede pasar por discretos, algunos de ellos son:
En ejecución: El proceso ocupa la CPU actualmente, es decir, se
está ejecutando.
Listo o preparado: El proceso dispone de todos los recursos para
su ejecución, sólo le falta la CPU.
Bloqueado: Al proceso le falta algún recurso para poder seguir
ejecutándose, además de la CPU. Por recurso se pueden
entender un dispositivo, un dato, etc. El proceso necesita que
ocurra algún evento que le permita poder proseguir su
ejecución.
9. Estos colores hay que interpretarlos de forma que, el color del borde de los
estados representa a dichos estados, los colores dentro de los círculos nos
dicen las posibles alternativas de acceso hacia otro estado, y los colores
de las flechas nos representan hacia qué estado nos dirigimos si seguimos
la misma.
10. 2.3 Procesos Ligeros (Hilos o
Hebras)
Un proceso ligero, es un programa en ejecución que comparte la imagen de memoria y
otras informaciones con otros procesos ligeros. Como muestra la Figura, un proceso
puede contener un solo flujo de ejecucion, como ocurre en los procesos clasicos, o más
de un flujo de ejecucion (procesos ligeros).
Las informaciones propias se refieren fundamentalmente al contexto de ejecucion,
pudiéndose destacar las siguientes:
• Contador de programa.
• Pila.
• Registros.
• Estado del proceso ligero (ejecutando, listo o bloqueado).
11. 2.3 Procesos Ligeros (Hilos o Hebras)
Todos los procesos ligeros de un mismo proceso comparten la informacion del
mismo. En concreto, comparten:
Espacio de memoria.
Variables globales.
Archivos abiertos.
Procesos hijos.
Temporizadores.
Senales y semaforos.
Contabilidad.
13. Definición
La concurrencia comprende un gran número de cuestiones de diseño,
incluyendo la comunicación entre procesos, comparación y competencia
por los recursos, sincronización de la ejecución de varios procesos y
asignación del tiempo de procesador a los procesos y es fundamental
para que existan diseños como Multiprogramación, Multiproceso y Proceso
distribuido.
14. Presentarse tres contextos
Varias aplicaciones: La multiprogramación se creó para permitir que el
tiempo de procesador de la máquina fuese compartido dinámicamente
entre varias aplicaciones activas.
Aplicaciones estructuradas: Como ampliación de los principios del diseño
modular y la programación estructurada, algunas aplicaciones pueden
implementarse eficazmente como un conjunto de procesos concurrentes.
Estructura del sistema operativo: Las mismas ventajas de estructuración son
aplicables a los programadores de sistemas y se ha comprobado que
algunos sistemas operativos están implementados como un conjunto de
procesos.
15. Existen tres modelos de computadora en los
que se pueden ejecutar procesos
concurrentes:
Multiprogramación.
Multiprocesador.
Multicomputadora.
16. Tipos de procesos concurrentes.
Proceso independiente: Es aquel que ejecuta sin requerir la ayuda o
cooperación de otros procesos.
Procesos son cooperantes: Son aquellos que están diseñados para trabajar
conjuntamente en alguna actividad, para lo que deben ser capaces de
comunicarse e interactuar entre ellos.
17. Ventajas y Desventajas
Ventajas:
Trata de evitar los tiempos muertos de la
UCP
Comparte y optimiza el uso de recursos
Permite la modularidad en las diferentes
etapas del proceso
Acelera los cálculo
Da mayor comodidad
19. 2.5 Niveles, Objetivos y Criterios de
Planificación
En épocas pasadas de los sistemas de procesamiento por lotes, con una
entrada en forma de imágenes de tarjetas en una cinta magnética, el
algoritmo de planificación era sencillo: solo había que ejecutar el siguiente
trabajo en la cinta.
En los sistemas de multiusuario de tiempo compartido, que se combinaban
con un fondo de trabajos procesados en lote, el algoritmo era más complejo.
Concepto de Planificación.
La planificación hace referencia a un conjunto de políticas y mecanismos
incorporados al sistema operativo que gobiernan el orden en que se ejecutan
los trabajos que deben ser cumplimentados por el sistema informático.
20. Objetivo de la Planificación
El objetivo principal de la planificación es optimizar el rendimiento del
sistema y proporcionar un buen servicio a todos los procesos que se
encuentren en el. En general, la planificación trata de cubrir los
siguientes objetivos: Justicia. La planificacion debe ser lo mas justa posible con todos los procesos, sin favorecer a
unos y perjudicar a otros.
Maxima capacidad de ejecucion. Debe dar un servicio eficiente para que todos los
trabajos se realicen lo mas rapidamente posible.
Maximo numero de usuarios interactivos.
Predecibilidad. La planificacion
Minimizacion de la sobrecarga.
Equilibrio en el uso de recursos.
Seguridad de las prioridades.
Evitar la postergacion indefinida. Esto se logra aumentando la prioridad de un proceso
mientras espere por un recurso.
21. Criterios de planificación
Para realizar los objetivos de la planificación, un
mecanismo de planificación debe considerar lo
siguiente: La limitacion de un proceso a las operaciones de Entrada / Salida: cuando un
proceso consigue la cpu, ?la utiliza solo brevemente antes de generar una
peticion de Entrada / Salida?
La limitacion de un proceso a la cpu: cuando un proceso obtiene la cpu,
?tiende a usarla hasta que expira su tiempo?
Si un proceso es por lote (batch) o interactivo: los usuarios interactivos deben
recibir inmediato servicio para garantizar buenos tiempos de respuesta.
¿Qué urgencia tiene una respuesta rápida?: por ejemplo, un proceso de
tiempo real de un sistema de control que supervise una refineria de
combustible requiere una respuesta rapida, mas rapida que la respuesta
requerida por un proceso en lotes (batch) que debera entregarse al dia
siguiente.
La prioridad de un proceso: a mayor prioridad mejor tratamiento.
22. 2.6 TECNICAS DE
ADMINISTRACION DEL
PLANIFICADOR
Se denomina planificador al software del sistema operativo encargado de
asignar los recursos de un sistema entre los procesos que los solicitan.
23. El planificador es un componente funcional muy importante de los sistemas
operativos multitarea y multiproceso y es esencial en los sistemas operativos
de tiempo real. Su función consiste en repartir el tiempo disponible de un
microprocesador entre todos los procesos para su ejecución. Todo sistema
operativo gestiona los programas mediante el concepto de proceso.
24. ALGORITMOS DE PLANIFICACIÓN
Los algoritmos de planificación son los que definen que política se va a seguir
para que un proceso pase al estado de ejecución.
25. Planificación Round-Robin
Planificación por prioridad
Colas múltiples
Primero el trabajo más corto
Planificación garantizada
26. Planificación Round-Robin
cada proceso tiene asignado un quantum de tiempo para ejecutarse y en
el caso de que no pueda terminar la ejecución en su quantum el proceso
pasa de nuevo a la cola de procesos para ser ejecutado por otro
quantum luego de recorrer la cola para asegurarse que todos los procesos
reciban ese quantum de procesamiento.
27. Planificación por prioridad
En la planificación round-robin todos los procesos son tratados con la
misma prioridad. Para el caso de este tipo de planificación a cada
proceso se le asigna una prioridad y los mismos son ejecutados
28. Colas múltiples
Las colas múltiples están basadas en una pila que sirve como índice de
una lista de procesos que se tienen que ejecutar.
29. Primero el trabajo más corto
se usa para trabajos en batch o de procesamiento or lotes en los cuales se
puede saber cual es el tiempo de duración de la ejecución de cada
proceso y entonces se puede seleccionar primero el trabajo más corto.
30. Planificación garantizada
En este modelo de planificación se tiene en cuenta la cantidad de
usuarios en el sistema y se le asigna a cada uno el tiempo de ejecución de
1/n (siendo n la cantidad total de usuarios) de esa forma el planificador
tiene que llevar cuenta del tiempo de ejecución de los procesos y
balancear el tiempo que están utilizando el procesador para cumplir con
la ecuación previa.