



Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Apuntes del curso universitario de Informatica sobre la Planificación - Programa: conjunto ordenado de operaciones sobre un espacio de nombres de objetos creados por el programador y que presentan un conjunto ordenado de instrucciones con el fin de resolver un problema. Es estatico y pasivo. Instrucción: entidad de ejecucion de duracion finita que se ejecuta en un procesador. Es atomica. Determinan un conjunto de operaciones sucesivas y un conjunto de vias de datos.
Tipo: Apuntes
1 / 6
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
Planificacion: conjunto de politicas y mecanismos del SO a traves del modulo PLANIFICADOR, que debe decidir cual de los procesos en condiciones de ser ejecutado conviene ser despachado primero y su orden de ejecucion. Su objetivo es el maximo aprovechamiento del sistema mediante un algoritmo de planificacion.
A extra largo plazo: es externa al SO y muy ligada a las politicas. Se define en ambito del usuario. Depende del centro de computos, y se deben crear procedimientos y reglas de uso, seguridad, etc de cada usuario. Objetivos: o Mayor velocidad de respuesta. o Existencia y disponibilidad de recursos. o Importancia de sus tareas. o Seguridad de que sus trabajos sean completados satisfactoriamente. Largo plazo: Es un planificador que se encarga de: organizar la ejecucion de procesos con un adecuado planeamiento de los recursos para que el Job se ejecute eficiente y ordenadamente, controlar el nivel de multiprogramacion y generar un orden de ejecucion. El trabajo es recibio por el SO. El decide cual sera el proximo job que se ejecutara, por lo que carga el programa y sus datos y crea los procesos y PCB. Si los recursos para la ejecucion de dicho proceso estan disponibles, se le asignan y el proceso entra en la cola de listos. Se ejecuta cuando: se necesita crear un proceso nuevo, termina un trabajo mediante un proceso, o ingresa un usuario al sistema. Su objetivo es proporcionar un balance de carga del sistema, minimizar costos y tiempo de espera. Batch: el procesador es monoprogramado, no existe diferencia entre job y proceso, un solo nivel de planificacion y el scheduler elije el trabajo y lo ejecuta. Interactivo: apunta al servicio del usuario y no tanto al procesador. Se neceista la multiprogramacion. Multiprocesado: varios procesadores para servir a los procesos de ejecucion. Procesamiento en red: se presenta una maquina virtual al usuario y se procesa en distintas maquinas a distancia. Funciones:
Mediano Plazo: Generalmente en SO de tiempo compartido. Mantiene un equilibrio entre Procesos activos e inactivos. Decide que procesos sacar de MC y llevar a disco según su estado o viceversa mediante Swapping. Debe ser rapido y de poca carga. Se invoca cuando queda memoria libre por la eliminacion de un proceso o el suministro de procesos caiga debajo de un determinado nivel. Solo usado en sistemas con mucha carga de procesos por el Overhead que provoca el Swap.
Corto Plazo: su Funcion es asignar el procesador a los procesos prerados para ejecutarse residentes en MC, teniendo como Objetivo maximar el rendimiento del sistema de acuerdo con las politicas establecidas. Dice quien cuando como y por cuanto tiempo va a usar el CPU. o Verifica las interrupciones y las trata o Le quita el procesador a los procesos. o Es invocado cada vez que un suceso externo o interno modifica el estado global del sistema.(SYSCALL, TIMERS, INTERRUPCIONES E/S, etc) TODOS LOS PLANIFICADORES TRABAJAN SOBRE LA COLA DE LISTOS.
El objetivo del algoritmo de planificacion es distribuir los trabajos de tal forma de staisfacer las expectativas de los ususarios. Todos los procesos son tratados de igual manera. Ningun proceso es desplazado indefinidamente. Equilibrar el uso de recursos. Asegurar la prioridad.
Dos esquemas de planificacion: Nonpreemptive scheduling(apropiativo en el uso del cpu): se usa al procesador hasta que terminan o hace un E/S. Preemptive(sin apropiacion del CPU): se utiliza round robin para este esquema. Un proceso puede ser interrumpido e intercambiado por otro.
Proceso nulo o vacio Es creado por el sistema en el arranque. Este procesos nunca termina, no tiene E/S y tiene la prioridad mas baja. Permite que la ejecucion del planificador sea mas rapida al eliminar la necesidad de comprobar constantemente la cola de listos. Este proceso puede: realizar estadisticas de uso del procesador, vigilancia de integridad del sistema, etc.
Politicas para planificar la cola de Listos: FCFS(First Come First Served): es el algoritmo de planificacion mas sencillo. Se realiza mediante una cola fifo. Poseen un codigo sencillo y sus prestaciones son pobres. o El tiempo medio de espera suele ser elevado. o Bajo nivel de utilizacion del CPU. o Pobre tiempo de respuesta. o Cambia la forma de activacion del dispatcher. SJF(Shortest job first): solo se utiliza a nivel de Job scheduler(largo plazo). El usuario debe predecir el tiempo de ejecucion del proceso ya sea por saberlo mediante la compilacion o por una corrida ya efectuada. Produce el tiempo medio minimo de espera. Puede producir STARVATION. Ej: un proceso que esta listo para ejecutarse pero que no dispone del procesador o algun recurso, esta bloqueado esperando por ser muy grande. Una solucion a esto es el AGING : incrementar gradualmente la prioridad de los trabajos que esperan en el sistema por mucho tiempo. Planificador por prioridad: La primer posicion se asigna al trabajo con mayor prioridad. Aquellos con igual prioridad se administran según FCFS. La cola tendra distintos niveles de prioridad. Tambien sucede la Starvation que puede ser solucionada mediante Aging.
Criterios para definir prioridad: Según criterios del usuario. Según tipo de trabajo o proceso. Según CPU utilizada.
Luego el dispathcer debera seleccionar que proceso introducir en la cola. Especial para Time Sharing. Tiene una estructura de cola FIFO circular. Si el quantum es pequeño se produce Overhead, si es muy grande se produce inanicion y se hace FCFS. Si se interrumpio antes de finalizar su quantum, este tiempo restante se le suma en la proxima ronda. A los procesos nuevos se le da un quantum mayor al normal y se los coloca al principio de la cola. Si a un proceso le faltan pocos quantums, se le asiga los que necesite para terminar.
nivel(corto plazo) restringe de nuevo a los procesos ejecutables que se encuentren en memoria. Asi el planificador de tercer nivel se encarga de elegir que procesos estaran en memoria en ese momento, y el de segundo de desplazar los procesos de memoria a disco y viceversa.
Planificador de multiples procesadores Procesamientos: Centralizado: las funciones de procesamiento estan centralizadas en un CPU y un SO. Distribuido: descentralizado, los datos se ejecutan en nodos dispersos en la red. Cooperativo: fragmentar los elementos de una aplicación sobre dos o mas sistemas interconectados de igual o diferente arquitectura. Los recursos de los sistemas cooperantes se controlan y administran independientemente. La relacion entre ambos sistemas puede ser: Cliente Servidor: uno de los sistemas cooperantes asume el rol del cliente para solicitar un servicio especifico al servidor. Peer to peer: cada nodo es igual a otro y ofrecen los mismos servicios. Paralelo: tiene multiples procesadores trabajando sobre un espacio de memoria comun. En tiempo real: responde a eventos producidos por fenomenos que requieren ciertas caracteristicas del procesamiento como ser velocidad de respuesta, etc.
Debilmente acoplados: varios CPU cada uno con una memoria propia. Redes. Especializados: CPU de E/S. CPU principal y los demas le brindan servicios. Fuertemente acoplados: servidor. Varios CPU con una memoria en comun. Brina un mejor rendimiento, y si falla un procesador, se produce una degradacion del sistema, mas no asi una falla total.
Granularidad respecto a la sincronizacion de procesos Independiente: no existe sincronizacion explicita entre procesos. Son independientes. Grano grueso: sincronizacion muy burda. Grano medio: se debe especificar el posible paralelismo de la aplicación. Grano fino: paralelismo mucho mas complejo que con los hilos.
Técnicas de planificación de hilos en Multiprocesador Planificación por grupo Se planifica un conjunto de hilos afines para su ejecución en un conjunto de procesadores al mismo tiempo. Minimiza los intercambios de procesos. Si un hilo de un proceso se está ejecutando y alcanza un punto en el que debe sincronizarse con otro hilo del mismo proceso, el cual se encuentra en Listo, el primer hilo se queda colgado hasta que se pueda realizar un intercambio en otro procesador para traer el hilo que se necesita.
Asignación dedicada de procesador Es otro método de planificar por grupos. Consiste en dedicar un grupo de procesadores a una aplicación, mientras dure la aplicación. Cuando se planifica una aplicación, se asigna cada uno de sus hilos a un procesador que permanece dedicado a ese hilo hasta que la aplicación termine su ejecución. Si un hilo de una aplicación se bloquea, el procesador de dicho hilo quedará desocupado, pues no hay multiprogramación de procesadores. Pero la anulación total del intercambio de procesos durante el tiempo de vida de un programa dará como resultado una aceleración sustancial del programa.
Planificación dinámica El número de hilos de un programa puede cambiar en el curso de una ejecución. Cada trabajo emplea los procesadores de su partición para procesar un subconjunto de sus tareas ejecutables, organizando estas tareas en hilos. Cuando un trabajo solicita uno o más procesadores, se siguen las siguientes acciones: