martes, 8 de octubre de 2013

Posted by darksystem79 |
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.

Atributos de un procesos:

  1. Bloque de control de procesos (PCB).
  2. Process ID.
  3. Estado.
  4. Registros y PC.
  5. Información de memoria.
  6. Descriptores de archivos abiertos.
  7. Información de contabilidad.
  8. Punteros a otras estructuras de datos del S.O.
Objetivos:

  1. Reparto equitativo de la CPU.
  2. Eficiencia (maximizar uso de la CPU).
  3. Minimizar tiempo de respuesta (interactivo).
  4. Minimizar tiempo de retorno (batch).
  5. Maximizar *throughput (batch).
  6. Cumplir con tiempos limites (tiempo real).

Ejemplos:

First - In - First -Out (FIFO)

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.

Shortest - Job- First / Next (SJF/SJN)

  • Asocia a cada procesos la longitud del mismo (en uso de la CPU).
  • Selecciona el que tenga menor longitud.
  • Existen dos variantes:
    1. Sin expulsión.
    2. 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.
 
Cola Circular (Round Robin):

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