PROCESOS DE CPU
- Planificación: forma o criterio que se sigue a la hora de decidir qué proceso debe entrar en ejecución. Los distintos algoritmos tienen propiedades diferentes y pueden favorecer o perjudicar a un tipo u otro de procesos.
- Proceso: Es un programa en ejecución que incluye la actividad actual, representada por el valor del contador de programa y el contenido de los registros del procesador.
- Bloque de control de procesos (PCB).
- Process ID.
- Estado.
- Registros y PC.
- Información de memoria.
- Descriptores de archivos abiertos.
- Información de contabilidad.
- Punteros a otras estructuras de datos del S.O.
Objetivos:
- Reparto equitativo de la CPU.
- Eficiencia (maximizar uso de la CPU).
- Minimizar tiempo de respuesta (interactivo).
- Minimizar tiempo de retorno (batch).
- Maximizar *throughput (batch).
- Cumplir con tiempos limites (tiempo real).
Ejemplos:
El primero que llega se atiende primero, por lo que es lo mismo:
FCFS (First-come, first-served) por sus siglas en inglés. Es un algoritmo que no usa expropiación, y que consiste en atender a los procesos por estricto orden de llegada a la cola READY. Cada proceso se ejecuta hasta que termina, o hasta que hace una llamada bloqueante (de I/O), o sea, ejecuta su fase de CPU completa. La gracia es que se trata de un algoritmo muy simple: la cola READY se maneja como una simple cola FIFO. El problema es que el algoritmo es bastante malo.
- Asocia a cada procesos la longitud del mismo (en uso de la CPU).
- Selecciona el que tenga menor longitud.
- Existen dos variantes:
- Sin expulsión.
- Con expulsión (Shortest Remaining Time First).
- Es optimo (minimiza el tiempo de espera).
- La dificultad esta en calcular la longitud.
Desventajas:
- Es muy complejo calcular la longitud por adelantado.
- Puede provocar inanición ante gran cantidad de procesos cortos.
- Sin expulsión no es adecuad para ambientes de tiempo compartido.
- Con expulsión penaliza los procesos largos, con los cual puede empeorar la inanición.
A cada proceso se le cede la CPU durante un periodo de tiempo q (quantum de tiempo). Si hay n procesos, entonces la espera máxima es w=(n-1)*q
Desempeño:
q grande: FCFS.
q pequeño: si q es demasiado pequeño respecto del tiempo de cambio de contexto, el overhead puede ser demasiado alto.
*Throughput: Numero de procesos ejecutados por unidad de tiempo (de principio a fin).
0 comentarios:
Publicar un comentario