95

Administracion de los procesos y del procesador

Embed Size (px)

DESCRIPTION

Es un proyecto de administracion de sistemas y procesadores dejado en cuarto semestre de universidad

Citation preview

  • Sistemas programas procesosEl proceso es un programa en ejecucin, y en general necesita ciertos recursos como tiempo en la CPU, memoria, archivos y dispositivos de E/S para cumplir con su tarea.

  • Estos recursos se asignan al proceso en el momento de crearlo o mientras se est ejecutando.

    En la mayora de los S.O. el proceso es la unidad ms pequea de trabajo individualmente planificable.

  • El S.O es responsable de las siguientes actividades relacionadas con la administracin de procesos:

    La creacin y eliminacin de procesos tanto de los sistemas como de los usuarios.

    La planificacin y sincronizacin de los procesos.

    Comunicacin y manejo de bloqueos mutuos entre procesos.

  • Un solo procesador puede ser compartido por varios procesos con el uso de algn algoritmo de planificacin para determinar cuando se debe de detener el trabajo con un proceso y dar servicio a otro.

  • Todas las computadoras realizan varias tareas al mismo tiempo en un sistema de multiprogramacin, la unidad central de proceso tambin cambia de un programa a otro ejecutando cada uno en cientos de milisegundos.

  • La CPU solo est ejecutando un proceso, en el curso de un segundo puede trabajar en varios procesos, con lo cual se da a los usuarios la ilusin de paralelismo.

  • Por tanto, hablaremos de Seudoparalelismo para referirnos a estos rpidos cambios que la CPU realiza entre procesos, tambin conocido como Multiprogramacin.

  • ESTADOS DE UN PROCESO

    Un proceso tiene una entrada, una salida y un estado. Un proceso tiene una serie de estados discretos. Varios eventos pueden ocasionar que un proceso cambie de estado.

  • Los tres estados en que se puede encontrar un proceso son:

  • El planificador por medio de un algoritmo de planificacin ordena los procesos en la lista de listos

  • El planificador se encarga de las transiciones de un estado a otro.Listo a ejecucinEjecucin a listoEjecucin a bloqueadoBloqueado a listo

  • Algoritmo de planificacin RR

  • Algoritmo de planificacin RR

  • Algoritmo de planificacin RR

  • Algoritmo de planificacin RR

  • Algoritmo de planificacin RR

  • Algoritmo de planificacin RR

  • Algoritmo de planificacin RR

  • Algoritmo de planificacin RR

  • Algoritmo de planificacin RR

  • Algoritmo de planificacin RR

  • Para evitar que un proceso monopolice el sistema en forma accidental o mal intencionada el S.O. utiliza un reloj de interrupciones por HW o cronometro de intervalos para que las tareas se ejecuten durante un intervalo especfico de tiempo llamado Quantum.

  • Si el proceso no libera voluntariamente la CPU antes de que expire su tiempo el reloj genera una interrupcin haciendo que retome el control el sistema.

  • BLOQUE DE CONTROL DE PROCESOS (BCP)

    El S.O. agrupa toda la informacin que necesita conocer respecto a un proceso en particular en una estructura de datos esta sirva como descriptor en tiempo de ejecucin durante toda la vida del proceso.

  • Un proceso resulta conocido para el S.O. y por tanto elegible para competir por los recursos del sistema solo cuando exista un BCP activo utilizado por el proceso.

  • Cuando un proceso termina (salida) su BCP es liberado y devuelto al dispositivo de celdas libres del cual se extraen nuevos BCPs.

    El estado inactivo de un proceso se distingue de los otros estados porque no tiene BCP.

  • El BCP es una estructura de datos y la informacin que se almacena en l incluye tpicamente algunos o todos los campos siguientes:

    Nombre del proceso o identificador.Prioridad.Estado (listo, ejecucin o bloqueado).

  • Apuntadores para localizar la memoria del proceso.rea para preservar registros.Apuntadores para asignar recursos.

  • Procesos ligeros (hilos o hebras)

    En la mayora de los sistemas operativos tradicionales, cada proceso tiene un espacio de direcciones y un hilo de control.

  • Con frecuencia existen situaciones en donde se desea tener varios hilos de control que compartan un espacio de direcciones, pero que se ejecutan de manera casi paralela, como si fueran de hecho procesos independientes excepto por el espacio de direcciones compartido.

  • COMPUTADORACOMPUTADORAPROCESO HILO CONTADOR DEL PROG.

  • Cuando un proceso tiene varios hilos de control cada hilo se ejecuta estrictamente secuencial y tiene su contador de programa y una pila para llevar un registro de su posicin. Los hilos comparten el CPU, de la misma forma que lo hacen los procesos; primero se ejecuta un hilo y despus otro.

  • Slo en un multiprocesador se pueden ejecutar en realidad en paralelo. Los hilos pueden crear hilos hijos y se pueden bloquear en espera de que se terminen sus llamadas al sistema, al igual que los procesos regulares. Mientras un hilo est bloqueado, se puede ejecutar otro hilo del mismo proceso.

  • Sin embargo, los distintos hilos de un proceso no son tan independientes como los procesos distintos.

    Todos los hilos tienen el mismo espacio de direcciones ya que comparten las mismas variables globales.

  • Puesto que cada hilo puede tener acceso a cada direccin virtual, un hilo puede leer, escribir o limpiar de manera completa la pila de otro hilo.

    No existe proteccin entre los hilos debido a que es imposible y no debe ser necesaria.

  • Los hilos comparten:

    Espacio de direcciones Archivos abiertos Procesos hijos Cronmetros Seales, etc.

  • ELEMENTOS POR HILOContador del programaPilaConjunto de registrosHilos hijosEstadoELEMENTOS POR PROCESOEspacio de direccionesVariables globalesArchivos abiertos, SealesProcesos hijos, SemforosCronmetro, etc.

  • Todos los hilos pueden tener los siguientes estados:

    Ejecucin Bloqueado Listo Terminado

  • Los hilos se inventaron para permitir la combinacin del paralelismo con la ejecucin secuencial y el bloqueo de las llamadas al sistema.

  • CONDICIONES DE CONCURSO

    En algunos S.O., los procesos que trabajan en conjunto, con frecuencia comparten almacenamiento comn, cada uno puede leer y escribir, el almacenamiento compartido puede ubicarse en la memoria central o bien puede ser un archivo

  • La localidad de la memoria compartida no altera la naturaleza de la comunicacin o los problemas que se puedan presentar, situaciones en las que ms de dos procesos quieren modificar algunos datos compartidos, el resultado final depende de cual se ejecute en un momento preciso a esto se le denomina Condiciones de Concurso.

  • Se dice que los procesos son concurrentes si existen simultneamente.

    Los procesos concurrentes pueden funcionar de forma totalmente independiente unos de otros, o pueden ser sncronos lo cual significa que en ocasiones requiere cierta sincronizacin y cooperacin.

  • La sincronizacin entre procesos concurrentes cooperativos es esencial para preservar las relaciones de precedencia y para evitar los problemas de temporizacin relacionados con la concurrencia.

  • Los procesos cooperativos deben sincronizarse unos con otros cuando van a utilizar recursos compartidos ya que el S.O. no se encarga de ello, los propios procesos cooperativos deben encargarse de sincronizar adecuadamente sus operaciones.

  • La clave para prevenir el problema que se presenta cuando interviene la memoria compartida, archivos compartidos y otros recursos que se pueden compartir, consiste en determinar alguna manera de prohibir que un proceso lea y escriba los datos compartidos al mismo tiempo.

  • Mientras un proceso incrementa la variable compartida los dems procesos que desean hacer lo mismo en ese momento deben esperar, cuando el acceso finaliza a la variable compartida puede proceder alguno de los procesos que estn en espera para utilizarla.

  • De est manera cada proceso que obtiene acceso a los datos compartidos impide que los otros procesos hagan simultneamente lo mismo, a esto se le conoce como Exclusin Mutua.

  • Cuando un proceso obtiene acceso a datos compartidos se dice que se encuentra en su regin crtica.

  • Cuando un proceso se encuentra en una regin crtica los que tengan acceso a esos datos compartidos no pueden entrar a su propia regin crtica.

  • Aunque este requisito impide que haya condiciones de concurso no basta para hacer que los procesos paralelos cooperen en forma correcta y eficiente utilizando datos compartidos.

  • Se necesita que se cumplan cuatro condiciones para obtener una solucin adecuada:

    Nunca dos procesos pueden encontrarse simultneamente dentro de sus regiones crticas.

    No se hacen suposiciones acerca de las velocidades relativas de los procesadores o nmeros de los CPUs.

  • Ningn proceso suspendido fuera de su regin crtica debe bloquear a otro proceso.

    Nunca un proceso debe querer entrar en forma arbitraria en su regin crtica.

  • Cuando un proceso entra a una regin crtica debe completar todas las instrucciones incluidas en ella antes de que se pueda permitir a cualquier otro proceso entrar a la misma regin crtica.

  • Solo un proceso puede entrar en la variable compartida, los restantes procesos debern tenerlo prohibido hasta que sea liberada la regin crtica.

  • A esto se le denomina exclusin mutua ya que un proceso excluye temporalmente a todos los dems de utilizar un recurso compartido con el fin de observar la integridad del sistema.

  • REGIN CRTICASon recursos que se pueden compartir entre los procesos y pueden ser modificables, puede ser:

    Una variable Memoria Almacenamiento secundario Registro ArchivosDispositivos de E/S, etc.

  • EXCLUSIN MUTUA

    Verifica que dos procesos no se encuentren al mismo tiempo en una misma regin crtica.

    Para que la exclusin mutua se cumpla est se apoya en los semforos y los monitores.

  • Una carencia de sincronizacin de los procesos puede dar como resultado dos condiciones extremas:

    El bloqueo mutuo o la inanicin.

  • El bloqueo mutuo se conoce tambin como abrazo mortal.

    El bloqueo mutuo es completo si el resto del sistema tambin llega a un paro total.

  • Los bloqueos mutuos se volvieron ms frecuentes con el uso creciente de los sistemas interactivos, dichos sistemas mejoran el uso de los recursos al compartirlos en forma dinmica y esto incrementa la posibilidad de bloqueos.

  • Un bloqueo mutuo ocurre cuando no se pueden compartir los recursos tales como:

    ArchivosImpresoras Unidades de cintaDiscos Bases de datos

  • La inanicin es cuando una tarea no puede ejecutarse porque permanece en espera de recursos que nunca quedan disponibles.

  • A fin de encarar este problema es necesario controlar el tiempo que cada trabajo permanece en espera de recursos, el sistema puede bloquear nuevos trabajos hasta que los trabajos ms viejos utilicen los recursos.

  • Semforos

    Es una variable entera no negativa, que se utiliza como bandera.

    Se utilizan en la sealizacin que usan los ferrocarriles para indicar si una seccin de rieles est libre.

  • Cuando se eleva el brazo del semforo, los rieles estn libres y el tren puede seguir.

    Cuando el brazo est abajo, los rieles estn ocupados y el tren debe esperar.

  • En un S.O. un semforo efecta una funcin similar.

    Seala si un recurso est libre y lo puede usar un proceso.

  • Los semforos son un mecanismo relativamente sencillo pero poderoso de asegurar la exclusin mutua entre procesos concurrentes para acceder a un recurso compartido.

  • Los semforos son una herramienta proporcionada por el diseador del sistema.

    Los usuarios solo necesitan contribuir a controlar el acceso a los recursos compartidos.

  • Un monitor es un mecanismo que contiene tanto los datos como los procedimientos necesarios para asignar un recurso compartido.

  • Para ejecutar una funcin de asignacin de recursos, un proceso debe llamar a una entrada del monitor.

    Slo se permite la entrada de un proceso a al vez.

  • Los procesos que desean entrar en el monitor cuando ya est en uso deben esperar.

    Cuando un proceso que llama a la entrada del monitor encuentra que el recurso requerido, ya ha sido asignado, el monitor llama a la funcin esperar.

  • Un planificador es un mdulo del S.O. que selecciona el siguiente trabajo que hay que admitir en el sistema y el siguiente proceso que hay que ejecutar.

  • Niveles de planificacin

    Planificacin de alto nivelPlanificacin de nivel intermedioPlanificacin de bajo nivel

  • Planificacin de alto nivel o admisin:

    Determina cules trabajos podrn competir activamente por los recursos del sistema o cules trabajos deben admitirse en el sistema.

  • Planificacin de nivel intermedio :

    Determina que procesos pueden competir por la CPU. Acta, como amortiguador entre la admisin de trabajos en el sistema y la asignacin de la CPU a esos trabajos.

  • Planificacin de bajo nivel :

    Determina a cul proceso listo se le dar la CPU cuando sta se encuentre disponible y la asigna.

  • Objetivos de la planificacin

    Ser justa: Todos los procesos deben de tratarse de la misma forma y no aplazarse en forma indefinida.

    Mximo rendimiento: Atender el mayor nmero posible de procesos por unidad de tiempo.

  • Aumentar al mximo el nmero de usuarios interactivos que reciben respuesta en tiempos aceptables.

    Ser predecible: una tarea debe ejecutarse aprox. En el mismo tiempo y casi al mismo costo no importa la carga del sistema.

  • No tener desperdicio de recursos.

    Se deben mantener ocupados los recursos del sistema.

    Lograr un equilibrio entre la respuesta y el aprovechamiento de recursos.

  • Evitar el aplazamiento indefinido, mientras un proceso espera un recurso su prioridad debe crecer.

    Los mecanismos de planificacin deben favorecer a los procesos de ms alta prioridad.

    Si un proceso tiene prioridad baja pero necesita un recurso decisivo es necesario darle preferencia.

  • No debe caerse bajo el peso de una carga fuerte en el sistema, debe impedir la creacin de procesos nuevos cuando la carga es pesada.

    Muchas de estas metas estn en conflicto unas con otras, as que la planificacin se torna compleja.

  • Criterios de planificacin y rendimiento

    Utilizacin del procesador.Productividad.Tiempo de retorno.Tiempo de espera.Tiempo de respuesta.

  • 1. Es la fraccin de tiempo promedio durante la cual el procesador est ocupado, incluye tanto el tiempo para ejecutar programas de usuario como del S.O.

  • 2. Es la cantidad de trabajo completada en una unidad de tiempo.

    3. Es el tiempo consumido dentro del sistema y puede ser expresado como la suma de tiempo de ejecucin y el tiempo de espera del trabajo.

  • 4. Es el tiempo que consume un proceso esperando la asignacin de recursos debido a la competencia.

    5. Se define como el tiempo que transcurre desde el momento en que damos enter a una lnea de orden que desencadena la ejecucin de un programa hasta que aparece el resultado.

  • Diseo del planificador

    Se comienza por seleccionar uno o ms criterios de rendimiento primario y clasificarlos en orden relativo de importancia.

  • Los planificadores intentan maximizar el rendimiento promedio de un sistema, relativo a un criterio dado, pero raramente logran un rendimiento optimo absoluto.

  • Uno de los problemas al seleccionar un conjunto de criterios de rendimiento es que a menudo entrar en conflicto unos con otros.

  • El diseo de un planificador requiere generalmente un cuidadoso equilibrio entre todos los requisitos y restricciones diferentes.

  • Una planificacin es apropiativa si al proceso se le puede arrebatar la CPU.

    Una planificacin es no apropiativa si al proceso no se le puede arrebatar la CPU.

  • Las prioridades pueden ser asignadas en forma automtica por el sistema, o bien se pueden asignar externamente, pueden ser estticas o dinmicas.

  • Las prioridades estticas no cambian.

    Las prioridades dinmicas responden a los cambios.

  • Algoritmos de planificacin

    El planificador de procesos se apoya en un algoritmo de planificacin de procesos, basado en una poltica especfica para asignar la CPU y mover los trabajos por el sistema.

  • Algunos algoritmos de planificacin son:FCFS o PEPS (prim. ent. prim. sal.)SJN (trabajo ms corto)SRTN (tiempo restante ms breve)RR (reparto del tiempo)PLANIFICACIN POR PRIORIDADCOLAS DE RETROALIMENTACION EN MILTIPLES NIVELES.