Sistemas operativos – Planificación y gestión de los recursos

Una responsabilidad importante de los sistemas operativos es la gestión de varios recursos disponibles para ellos, tales como espacio de la memoria principal, dispositivos de E/S, procesadores, etc. Es necesario que se planifique el uso de estos recursos mediante distintos procesos activos. Cualquier asignación de recursos y política de planificación debe tener en cuenta tres factores:

  • Equitatividad: Por norma general, se desea que todos los procesos que compiten por un determinado recurso, se le conceda un acceso equitativo a dicho recurso.
  • Respuesta diferencial: Por otro lado, el sistema operativo puede necesitar discriminar entre diferentes clases de trabajos con diferentes requisitos de servicio. El sistema operativo debe decidir sobre la asignación y planificación con el objetivo de satisfacer el conjunto total de los requisitos. Además, debe tomar decisiones de forma dinámica. Por ejemplo, si un proceso está esperando para hacer uso de un recurso de E/S, el sistema operativo puede intentar planificar este proceso lo antes posible con el objetivo de dejar libre ese recurso para posteriores demandas por parte de otros procesos.
  • Eficiencia: El sistema operativo debe intentar maximizar la productividad, minimizar los tiempos de respuesta, y en caso de sistemas de tiempo compartido, acomodar tantos usuarios como sea posible.

El sistema operativo mantiene un número de colas, cada una de ellas, no es más que una lista de procesos esperando para hacer uso de algún recurso. La cola a corto plazo está compuesta por procesos que se encuentra en memoria principal y están listos para ejecutar, siempre que la CPU esté disponible. Es responsabilidad del planificador a corto plazo o dispatcher, elegir uno de ellos. Una estrategia común es asignar en orden a cada proceso de la cola un intervalo de tiempo o quantum, esta técnica se conoce como round-robin o turno rotatorio. Esta técnica de turno emplea una cola circular. Otra estrategia consiste en asignar niveles de prioridad a los distintos procesos, siendo el planificador el encargado de elegir los procesos en base a su prioridad.

La cola a largo plazo es una lista de nuevos trabajos esperando utilizar el procesador. El sistema operativo añade trabajos al sistema transfiriendo un proceso desde la cola a largo plazo hasta la cola a corto plazo. Llegados a este punto, se debe asignar una porción de memoria principal al proceso entrante. El sistema operativo debe estar seguro de que no sobrecarga la memoria o el tiempo de procesador admitiendo demasiados procesos en el sistema. Existe una cola E/S por cada dispositivo E/S. Puede ocurrir, que más de un proceso quiera acceder al mismo dispositivo E/S, en este caso, los procesos aspirantes al recurso, esperarán en la cola propia del dispositivo E/S. Es el sistema operativo, el que determinará finalmente a qué proceso le asigna el dispositivo E/S cuando éste se encuentre disponible.

Si ocurre una interrupción, el sistema operativo recibe el control del procesador a través de un manejador de interrupciones. Un proceso puede invocar específicamente un servicio del sistema operativo mediante una llamada al sistema (trap). En este caso, es el manejador de la llamada al sistema el punto de entrada al sistema operativo. Una vez que se maneja la interrupción o la llamada al sistema, se invoca al planificador a corto plazo para que seleccione un proceso para su ejecución.

Anuncios
Publicado en Sistemas operativos, Varios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s

Sobre mi…

Soy Técnico en Explotación de Sistemas Informáticos y Técnico Superior en Administración de Sistemas Informáticos en Red. Actualmente estudiando el Grado de Ingeniería Informática en la Universidad de Córdoba (España).

Enamorado de la ciencia en general y de la computación en particular.

Música: Heavy, Rock, Celta, New Age, Electrónica, etc...
Libros:Isaac Asimov, Richard Dawkins, Stephen Hawking, Carl Sagan...

Estoy interesado en la programación de videojuegos. Políticamente de izquierdas, escéptico y ateo. En definitiva, mala gente.

Sígueme en Twitter

Introduce tu dirección de correo electrónico para seguir este Blog y recibir las notificaciones de las nuevas publicaciones en tu buzón de correo electrónico.

Únete a otros 24 seguidores

Usa Linux Mint
The Bit Developer Box
A %d blogueros les gusta esto: