Algoritmos de Planificación de Procesos
Próximo Proceso, el de Tiempo Restante Más Corto (SRT)
Es una mezcla de las dos anteriores. Cambia el proceso que está en ejecución cuando se ejecuta un proceso con una exigencia de tiempo de ejecución total menor que el que se está procesando.
Características:
- Variante de SJN para hacerla apropiativa.
- Puede ser injusta, un proceso corto puede desplazar a uno largo que se está ejecutando, cuando está a punto de acabar.
- Presenta mayor sobrecarga.
- Excelente tiempo medio de servicio.
- Es muy eficiente.
Prioridad
- Se asocia a cada proceso una prioridad, de manera que el procesador se asigna al proceso con una mayor prioridad.
- Las prioridades pueden ser definidas de manera interna (SO) o externa (usuario).
- Su mayor problema es el bloqueo o postergación indefinida.
Próximo, el de Más Alto Índice de Respuesta (HRN)
Trata de corregir las posibles injusticias de las políticas SJN con los procesos largos y de FCFS con los cortos. Se basa en hacer variable la prioridad de un proceso, calculándola constantemente por medio de la expresión:
P = (W+t)/t
- P = Prioridad.
- W = Tiempo de espera en la cola de preparados.
- t = Tiempo de ejecución del proceso.
Características:
- Si un proceso corto es lanzado después de uno largo tendrá que esperar mucho.
- Es muy costosa de llevar a la práctica, ya que la prioridad debe de calcularse para todos los procesos de la cola, cada vez que acabe un proceso.
- Sobrecarga mucho el sistema debido a los cálculos.
- No es apropiativa.
- Es justa.
- Es costosa de poner en práctica.
Colas Múltiples
Agrupamos los procesos en distintos grupos. Se asigna cada grupo a una cola, cada una de ellas con distintas planificaciones.
Colas Múltiples con Retroalimentación (Feedback) (FB)
- Para dar un trato justo a los procesos, es necesario saber de antemano sus necesidades, esto no suele ser conocido y suele ser muy costoso de adivinar.
- Se trata de asignar prioridades a las colas, de manera que primero se ejecutarán aquellos procesos de cada cola con más baja prioridad.
- Cuando un proceso ha consumido su quantum y no ha terminado, se pone al final de la cola de un nivel superior.
Características:
- Soporta bien la sobrecarga.
- Es apropiativa.
- Adaptable a las necesidades del entorno ya que cada cola se puede gestionar de manera diferente.
Gestión de la Memoria Principal
Introducción
- Para poder ejecutar un programa, el requisito previo es: Estar previamente cargado en memoria.
- Mientras solo hubo un único programa ejecutándose, toda la memoria era para él.
- Esto cambió con la aparición de la multiprogramación.
- Al haber varios programas cargados y ejecutándose a la vez en la memoria, surge la necesidad de gestionar adecuadamente esta compartición de la memoria.
- Aparición del área del núcleo del SO encargada de dicha gestión.
Los parámetros físicos relacionados con la memoria y que en buena medida condicionan su velocidad de funcionamiento son:
- Tiempo de acceso: Espacio de tiempo que transcurre entre el inicio y el fin de una operación de L/S en la memoria.
- Tiempo de ciclo de memoria: Marca el retraso que impone el hardware entre el fin de una operación y el principio de la siguiente.
Gestión de Memoria
- Monoprogramación.
- Multiprogramación.
- Particiones contiguas de tamaño fijo.
- Particiones contiguas de tamaño variable (reubicables).
- Paginación.
- Segmentación.
- Sistemas combinados.
- Memoria virtual.
- Criterios de reemplazamiento de página.
- Asignación de memoria.
Consideraciones de Diseño
Direccionamiento
Básicamente tenemos 2 opciones:
- Direccionamiento por byte.
- Direccionamiento por palabra.
Asignación de Direcciones
- Antiguamente, la asignación de direcciones de memoria principal, en donde se ejecutaba el programa, la ejercía el programador en la secuencia de inicio del programa.
- Actualmente lo normal es que esta asignación de direcciones la realice el compilador (direcciones lógicas).
- Independientemente de las direcciones que asigne el compilador, el SO carga el programa en las direcciones físicas de memoria donde le viene bien (direcciones físicas).
- Disparidad entre las direcciones lógicas y las direcciones físicas.
- ¿Cómo se consigue ejecutar el programa sin que haya ningún problema?
- Necesidad de convertir las direcciones lógicas en físicas y viceversa.
- Esta función recae en la parte del núcleo del SO que gestiona la memoria.