# data[].attributes.body
Los principales conceptos relacionados con Planificación del Procesador son los siguiente:

Planificación apropiativa: es la estrategia de permitir que procesos ejecutables (desde el punto de vista lógico) sean suspendidos temporalmente.

Planificación no apropiativa: es la estrategia de permitir la ejecución de un proceso hasta terminar.
Planificación del procesador: determinar cuándo deben asignarse los procesadores y a qué procesos, lo cual es responsabilidad del Sistema Operativo.

# data[].attributes.headline
Objetivos de la planificación y sus características

# data[].attributes.subject
Objetivos de la planificación y sus características

# data[].attributes.body
El objetivo de la planificación es optimizar el comportamiento del sistema. Ahora bien, el comportamiento de un sistema informático es muy complejo; por tanto, el objetivo de la planificación se deberá centrar en la faceta del comportamiento en el que se esté interesado. Entre los objetivos se suelen perseguir están los siguientes:

1. Reparto equitativo del procesador.

2. Eficiencia (optimizar el uso del procesador)

3. Menor tiempo de respuesta en uso interactivo.

4.  Menor tiempo de espera en lotes.

5.  Mayor número de trabajos por unidad de tiempo.

6. Cumplir los plazos de ejecución de un sistema de tiempo real.

# data[].attributes.body
Se consideran tres niveles importantes de planificación, los que se detallan a continuación: •Planificación de alto nivel: Se encarga de llevar procesos de disco a memoria y viceversa. Seleccionando los trabajos que deben admitirse en el sistema. •Planificación de nivel intermedio: En algunos casos, en especial cuando el sistema está sobrecargado, el planificador de nivel medio encuentra ventajoso retirar trabajos activos de la memoria para reducir el grado de multiprogramación, y por lo tanto, permitir que los trabajos se completen mas aprisa. •Planificación de bajo nivel: Se encarga de pasar de un proceso a otro en memoria principal. Determinando a cuál proceso listo se le asignará el CPU cuando éste se encuentra disponible

# data[].attributes.body
Es una técnica por la que dos o más procesos pueden alojarse en la memoria principal y ser ejecutados concurrentemente  por el procesador o CPU.

Con la multiprogramación, la ejecución de los procesos (o hilos) se va solapando en el tiempo a tal velocidad, que causa la impresión de realizarse en paralelo (simultáneamente). Se trata de un paralelismo simulado, dado que la CPU solo puede trabajar con un proceso cada vez (el proceso activo).

MEMORIA REAL

La memoria real o principal es en donde son ejecutados los programas y procesos de una computadora y es el espacio real que existe en memoria para que se ejecuten los procesos. Por lo general esta memoria es de mayor costo que la memoria secundaria, pero el acceso a la información contenida en ella es de más rápido acceso. Solo la memoria caché es más rápida que la principal, pero su costo es a su vez mayor.

# data[].attributes.body
Se llama así porque el programador ve una cantidad de memoria mucho mayor que la real, y en realidad se trata de la suma de la memoria de almacenamiento primario y una cantidad determinada de almacenamiento secundario. El sistema operativo, en su módulo de manejo de memoria, se encarga de intercambiar programas enteros, segmentos o páginas entre la memoria real y el medio de almacenamiento secundario. Si lo que se intercambia son procesos enteros, se habla entonces de multiprogramación en memoria real, pero si lo que se intercambian son segmentos o páginas, se puede hablar de multiprogramación con memoria virtual. Otro factor importante es si los programas exhiben un fenómeno llamado localidad, lo cual quiere decir que algunos programas tienden a usar mucho las instrucciones que están cercanas a la localidad de la instrucción que se está ejecutando actualmente.

# data[].attributes.body
Decide el proceso de la cola de procesos listos al que se le asigna CPU.
• Criterios para comparar algoritmos de planificación:
– Equidad: procesos usan la CPU de forma equitativa.
– Eficiencia (utilización de la CPU): 100% uso.
– Tiempo de retorno (o de trabajo global): tiempo que tarda en ejecutarse un proceso concreto.
– Tiempo de respuesta: minimizar el tiempo de respuesta para usuarios interactivos.
– Tiempo de espera: tiempo que un proceso espera en la cola de procesos listos.
– Rendimiento (productividad): número de trabajos procesados por unidad de tiempo.
-----------------------------

Por prioridad: El de mayor prioridad se ejecuta primero. Si hay procesos con igual prioridad se ejecuta en orden de llegada.

Trabajo más corto primero: Difícil de llevar a cabo, necesita estimación de cuánto tiempo necesitara el proceso para terminar.

Primero en llegar, primero en ejecutarse: Los procesos que llegan reciben su turno conforme llegan.

Round Robin: Consiste en darle a cada proceso un intervalo de tiempo de ejecución y cada vez que se vence ese intervalo se copia el contexto de este, en el lugar seguro y se le pasa el turno a otro.

Tiempo restante más corto: Parecido al “trabajo más corto primero” pero aquí se calcula en todo momento cuando el tiempo restante para terminar a los procesos.

Tasa de respuesta más alta: castiga o premia uno o más atributos de los procesos. Se puede combinar con Round Robin. No hay aplazamiento indefinido, es justo. UNIX usa Round Robin + Prioridad (tasa de respuesta más alta).

Por política: Se establece un reglamento específico que el planificador debe obedecer, no es justo.

# data[].attributes.headline
Manejo de memoria en sistemas monousuario o sin intercambio

# data[].attributes.subject
Manejo de memoria en sistemas monousuario o sin intercambio

# data[].attributes.body
Se usa Principalmente en sistemas monousuario y monotarea, como son en las computadoras con DOS.

Bajo este esquema, la memoria real es tomada para almacenar el programa que se este ejecutando en un momento dado, con la desventaja de que si se está limitado a la cantidad de RAM disponible únicamente. Su organización física es simple. El sistema operativo se ubica en las localidades superior o inferior de la memoria, seguido por algunos manejadores de dispositivos al último, con el objetivo de que ésta pueda crecer hasta el máximo posible.

Bajo estos esquemas no se requieren algoritmos sofisticados para asignar la memoria a los diferentes procesos, ya que éstos son ejecutados secuencialmente conforme con terminando.
El concepto de multiprogramación se refiere a la idea general de poder cargar múltiples programas dentro de un mismo computador para que sean ejecutados en un determinado momento. Para lograr manejar múltiples programas, es necesario primero definir que compone a un programa.

# data[].attributes.attachment_link.title
Sistemas Operativos - Administración de memoria -Jose María Cecilia