1. Criterios de rendimiento:
* Utilización de la CPU: Su objetivo es mantener ocupada la CPU tanto como sea posible, maximizando su utilización.
* rendimiento: Mide el número de procesos completados por unidad de tiempo.
* Tiempo de respuesta: El tiempo total de un proceso gasta en el sistema, desde la llegada hasta la finalización.
* Tiempo de espera: El momento en que un proceso pasa esperando en la cola lista antes de obtener la CPU.
* Tiempo de respuesta: El tiempo que lleva un proceso comenzar a responder después de una solicitud de usuario.
* Justicia: Asegura que todos los procesos obtengan una buena parte del tiempo de la CPU.
2. Criterios de utilización de recursos:
* Utilización de recursos: Mide cuán eficientemente se utilizan recursos del sistema como CPU, memoria y dispositivos de E/S.
* Asignación de recursos: Se centra en cómo se asignan los recursos a diferentes procesos y garantiza que no hay hambre (donde un proceso nunca recibe recursos).
3. Otros criterios:
* Prioridad: Asigne diferentes prioridades a los procesos en función de su importancia o urgencia.
* fechas límite: Considere los plazos asociados con los procesos, asegurando la finalización oportuna.
* Requisitos en tiempo real: Manejar procesos en tiempo real que tengan restricciones de sincronización estrictas (por ejemplo, en aplicaciones multimedia).
4. Criterios específicos del algoritmo de programación:
Algunos algoritmos de programación tienen criterios específicos más allá de los generales enumerados anteriormente. Por ejemplo:
* El trabajo más corto primero (SJF): Favores procesos con el tiempo de ejecución esperado más corto.
* Programación de prioridad: Asigna prioridades a los procesos y programa el proceso de mayor prioridad primero.
* Round Robin: Le da a cada proceso una porción de tiempo fija de la CPU, girando entre procesos.
Elegir los criterios correctos:
La elección de los criterios de programación depende de los requisitos específicos del sistema y de la naturaleza de los procesos que se están programando. Por ejemplo:
* Sistemas interactivos: Priorice el tiempo de respuesta y la justicia para proporcionar una experiencia de usuario fluida.
* Sistemas de lotes: Concéntrese en el rendimiento y la utilización de la CPU para maximizar la eficiencia del procesamiento.
* Sistemas en tiempo real: Priorizar los plazos y los tiempos de respuesta para garantizar la ejecución oportuna.
Al comprender los diferentes criterios de programación, puede elegir el algoritmo y los parámetros más apropiados para las necesidades específicas del sistema.