Está en la página 1de 26

INSTITUTO TECNOLOGICO DE LA SIERRA NEGRA DE AJALPAN

SISTEMAS OPERATIVOS

ING. MARCO ANTONIO ISIDRO ABRIL

Unidades II, III

JOSE MANUEL BUSTAMANTE MARCIAL

ING. EN SISTEMAS COMPUTACIONALES.

Unidad II Administracin de procesos y del procesador 2.1 CONCEPTO DE PROCESO


Un proceso no es mas que un programa en ejecucin, e incluye los valores actuales del contador de programa, los registros y las variables. Conceptualmente cada unos de estos procesos tiene su propia CPU virtual. Desde luego, en la realidad la verdadera CPU conmuta de un proceso a otro. Un proceso es un concepto manejado por el sistema operativo que consiste en el conjunto formado por:

Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador. Su estado de ejecucin en un momento dado, esto es, los valores de los registros de la CPU para dicho programa. Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos. Otra informacin que permite al sistema operativo su planificacin.

Esta definicin vara ligeramente en el caso de sistemas operativos multihilo, donde un proceso consta de uno o ms hilos, la memoria de trabajo (compartida por todos los hilos) y la informacin de planificacin. Cada hilo consta de instrucciones y estado de ejecucin. Los procesos son creados y destruidos por el sistema operativo. En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para s mismo y en que dichos hilos comparten toda la memoria reservada para el proceso. .

2.2.- ESTADOS Y TRANSICIONES DE LOS PROCESOS.


El principal trabajo del procesador es ejecutar las instrucciones de mquina que se encuentran en memoria principal. Estas instrucciones se encuentran en forma de programas. Para que un programa pueda ser ejecutado, el sistema operativo crea un nuevo proceso, y el procesador ejecuta una tras otra las instrucciones del mismo. En un entorno de multiprogramacin, el procesador intercalar la ejecucin de instrucciones de varios programas que se encuentran en memoria. El sistema operativo es el responsable de determinar las pautas de intercalado y asignacin de recursos a cada proceso.

Puede haber cuanto transiciones entre estos tres estados, como se muestra: La transaccin 1 ocurre cuando un proceso descubre que no puede continuar. En algunos sistemas el proceso debe ejecutar una llamada al sistema, block, para pasar al estado bloqueado. En otros sistemas, incluido MINIX, cuando un proceso lee de un conducto o de un archivo especial, (p.ej., una terminal) y no hay entradas disponibles, se bloquea automticamente. Las transiciones 2 y 3 son causadas por el planificador de procesos, un parte del sistema operativo , sin que el proceso se entere siquiera de ellas. La transicin 2 ocurre cuando el planificador decide que el proceso en ejecucin ya se ejecuto durante suficiente tiempo y es ahora de dejar que otros procesos tengan algo de tiempo de CPU. La transaccin 3 ocurre cuando todos los dems procesos han disfrutado de una porcin justa y es hora de que el primer proceso reciba otra vez la CPU para ejecutarse. La transaccin 4 ocurre cuando acontece el suceso externo que un proceso estaba esperando (como la llegada de entrada). Sin ningn otro proceso se esta ejecutando en ese instante, se dispara de inmediato la transaccin 3 y el proceso comienza a ejecutarse.

2.3 PROCESOS LIGEROS (HILOS O HEBRAS)


El concepto de proceso engloba dos conceptos separados y potencialmente independientes: uno relativo a la propiedad de recursos y otro que hace referencia a la ejecucin. Unidad que posee recursos: A un proceso se le asigna un espacio de memoria y, de tanto en tanto, se le puede asignar otros recursos como dispositivos de E/S o ficheros. Unidad a la que se le asigna el procesador: Un proceso es un flujo de ejecucin (una traza) a travs de uno o ms programas. Esta ejecucin se entremezcla con la de otros procesos. De tal forma, que un proceso tiene un estado (en ejecucin, listo, etc) y una prioridad de expedicin u origen. La unidad planificada y expedida por el sistema operativo es el proceso. En la mayora de los sistemas operativos, estas dos caractersticas son, de hecho, la esencia de un proceso. Sin embargo, son independientes, y pueden ser tratadas como tales por el sistema operativo. .Dentro de un proceso puede haber uno o ms hilos de control cada uno con:

Un estado de ejecucin (en ejecucin, listo, bloqueado) Un contexto de procesador, que se salva cuando no est ejecutndose.

Una pila de ejecucin. Algn almacenamiento esttico para variables locales. Acceso a la memoria y a los recursos de ese trabajo que comparte con los otros hilos.

Un ejemplo de aplicacin que podra hacer uso de los hilos es un servidor de ficheros de una red de rea local. Cada vez que llega una solicitud de una operacin sobre un fichero, se puede generar un nuevo hilo para su gestin. El servidor gestiona multitud de solicitudes, por tanto, se pueden crear y destruir muchos hilos en poco tiempo para dar servicio a estas peticiones. Si el servidor es un multiprocesador, se pueden ejecutar varios hilos de un mismo proceso simultneamente y en diferentes procesadores.

Un proceso ligero (thread o hebra) es un programa en ejecucin que comparte la imagen de la memoria y otras informaciones con otros procesos ligeros.

Es una unidad bsica de utilizacin de la CPU consistente en un juego de registros y un espacio de pila. Comparte el cdigo, los datos y los recursos con sus hebras pares

Una tarea (o proceso pesado) est formada ahora por una o ms hebras Una hebra slo puede pertenecer a una tarea

ESTADOS DE LOS PROCESOS LIGEROS Un proceso ligero puede estar ejecutando, listo o bloqueado.

PARALELISMO Los procesos ligeros permiten paralelizar una aplicacin.[3]

2.4 CONCURRENCIA Y SECUENCIABILIDAD.


La concurrencia comprende un gran nmero de cuestiones de diseo, incluyendo la comunicacin entre procesos, comparicin y competencia por los recursos, sincronizacin de la ejecucin de varios procesos y asignacin del tiempo de procesador a los procesos y es fundamental para que existan diseos como Multiprogramacin, Multiproceso y Proceso distribuido Los procesos son concurrentes si existen simultneamente. Cuando dos o ms procesos llegan al mismo tiempo a ejecutarse, se dice que se ha presentado una concurrencia de

procesos. Es importante mencionar que para que dos o ms procesos sean concurrentes, es necesario que tengan alguna relacin entre ellos. . La concurrencia puede presentarse en tres contextos diferentes: . Varias aplicaciones:

Aplicaciones estructuradas Estructura del sistema operativo

ELEMENTOS A GESTIONAR Y DISEAR A CAUSA DE LA CONCURRENCIA


Se pueden enumerar los siguientes:

1. El sistema operativo debe ser capaz de seguir la pista de los distintos procesos activos. Esto lo hace por medio de PBCs (Bloque de Control de Procesos) . 2. El sistema operativo debe asignar y quitar los distintos recursos a cada proceso activo. Entre estos recursos se incluyen: Tiempo de procesador: Es funcin de la planificacin. Memoria. Archivos. Dispositivos de E/S: 3. El sistema operativo debe proteger los datos y los recursos fsicos de cada proceso contra injerencias no intencionadas de otros procesos. 4. Los resultados de un proceso deben ser independientes de la velocidad relativa a la que se realiza la ejecucin con respecto a otros procesos concurrentes.

2.4.1 EXCLUSIN MUTUA DE SECCIONES CRTICAS.

El mtodo ms sencillo de comunicacin entre los procesos de un programa concurrente es el uso comn de unas variables de datos. El problema de este sistema es que la accin de un proceso interfiere en las acciones de otro de una forma no adecuada. Para evitar este tipo de errores se pueden identificar aquellas regiones de los procesos que acceden a variables compartidas y dotarlas de la posibilidad de ejecucin como si fueran una nica instruccin. Se denomina seccin crtica a aquellas partes de los procesos concurrentes que no pueden ejecutarse de forma concurrente o, que desde otro proceso se ven como si fueran una nica instruccin. Esto quiere decir que si un proceso entra a ejecutar una seccin crtica en la que accede a unas variables compartidas, entonces otro proceso no puede entrar a ejecutar una regin crtica en la que se modifique las variables compartidas con el anterior. Las secciones crticas se pueden agrupar en clases, siendo mutuamente exclusivas las secciones crticas de cada una. Para conseguir dicha exclusin se deben implementar protocolos software que impidan o bloqueen el acceso a una seccin crtica mientras est siendo utilizada por un proceso . Los algoritmos de exclusin mutua (comnmente abreviada como mutex por mutual exclusion) se usan en programacin concurrente para evitar que fragmentos de cdigo conocidos como secciones crticas accedan al mismo tiempo a recursos que no deben ser compartidos. La mayor parte de estos recursos son las seales, contadores, colas y otros datos que se emplean en la comunicacin entre el cdigo que se ejecuta cuando se da servicio a una interrupcin y el cdigo que se ejecuta el resto del tiempo. Se trata de un problema de vital importancia porque, si no se toman las precauciones debidas, una interrupcin puede ocurrir entre dos instrucciones cualesquiera del cdigo normal y esto puede provocar graves fallos. La tcnica que se emplea por lo comn para conseguir la exclusin mutua es inhabilitar las interrupciones durante el conjunto de instrucciones ms pequeo que impedir la corrupcin de la estructura compartida (la seccin crtica). Esto impide que el cdigo de la interrupcin se ejecute en mitad de la seccin crtica. En un sistema multiprocesador de memoria compartida, se usa la operacin indivisible test-and-set sobre una bandera, para esperar hasta que el otro procesador la despeje. La operacin test-and-set realiza ambas operaciones sin liberar el bus de memoria a otro procesador. As, cuando el cdigo deja la seccin crtica, se despeja la bandera. Esto se conoce como espera activa. Algunos sistemas tienen instrucciones multioperacin indivisibles similares a las anteriormente descritas para manipular las listas enlazadas que se utilizan para las colas de eventos y otras estructuras de datos que los sistemas operativos usan comnmente.. Algunos ejemplos de algoritmos clsicos de exclusin mutua son:

El algoritmo de Dekker.

El algoritmo de Peterson. [6]

REGIN CRITICA. PROTOCOLO DE SINCRONIZACIN Los puntos de entrada de un recurso indican la cantidad de procesos que pueden utilizar simultneamente al mismo. Si un recurso tiene slo un punto de entrada, se lo denomina recurso crtico o recurso no compartible. Regin crtica de un proceso es la fase o etapa en la vida de ese proceso concurrente en la cual accede a un recurso crtico para modificarlo o alterarlo. El uso adecuado de la concurrencia entre procesos exige la capacidad de definir secciones crticas y hacer cumplir la exclusin mutua. Cualquier servicio o capacidad que d soporte para la exclusin mutua debe cumplir con un protocolo de sincronizacin, que tiene los requisitos siguientes: 1. Debe cumplirse la exclusin mutua: slo un proceso de entre todos los que poseen secciones crticas por el mismo recurso u objeto compartido, debe tener permiso para entrar en ella en un instante dado. 2. Un proceso que se interrumpe en una seccin no crtica debe hacerlo sin estorbar a los otros. Es decir que si se cuelga un proceso que est usando un recurso, los dems procesos que esperan deben poder acceder al recurso de todas formas (el S.O. mata al proceso que se colg y as libera al recurso). 3. No se puede demorar indefinidamente la entrada de un proceso a un cierto recurso; no debe permitirse el interbloqueo y la inanicin. Todos los procesos deben poder acceder al recurso que solicitan, sino se van a morir sin usarlo y no es justo. 4. Cuando ningn proceso est en su seccin crtica, cualquier proceso que solicite entrar en la suya debe poder hacerlo sin dilatacin. Es decir, si nadie est usando un cierto recurso, entonces se le otorga al primer proceso que lo solicite. 5. No se pueden hacer suposiciones sobre la velocidad relativa de los procesos o su nmero (cantidad de procesadores). Nunca se puede saber a priori si a un proceso le falta mucho o poco para terminar. 6. Un proceso permanece en su seccin crtica slo por un tiempo finito. Esto sirve para evitar que un proceso se quede con un recurso por mucho tiempo y para que un recurso no se quede trabado sin sentido
2.4.2 SINCRONIZACIN DE PROCESOS EN S.C.

Uno de los objetivos del sistema operativo es la representacin de los procesos y el soporte de los cambios de contexto entre procesos, que posibilitan la comparticin del recurso CPU. El acceso a otros recursos compartidos y comunicacin entre procesos relacionados (por ejemplo, de una misma aplicacin) hacen necesaria la utilizacin de mecanismos de sincronizacin dentro del sistema operativo. Tpicamente, un proceso requiere la CPU durante un periodo de tiempo, realiza alguna operacin de E/S, y vuelve a requerir la CPU, repitindose este ciclo hasta la finalizacin del programa. El proceso pasa por diversos estados entre los que se definen transiciones. Cada proceso se ejecuta asncronamente con respecto a otro (son impredecibles las frecuencias de reloj asociadas). En algunos instantes, los procesos deben sincronizar sus actividades; por ejemplo, en el caso de que un proceso no pueda progresar hasta que otro haya terminado algn tipo de actividad. . Un sistema operativo multiprogramado es un caso particular de sistema concurrente donde los procesos compiten por el acceso a los recursos compartidos o cooperan dentro de una misma aplicacin para comunicar informacin. Ambas situaciones son tratadas por el sistema operativo mediante mecanismos de sincronizacin que permiten el acceso exclusivo de forma coordinada a los recursos y a los elementos de comunicacin compartidos.

2.4.2.1 MECANISMO DE SEMFOROS. Un semforo es un mecanismo de comunicacin con el cual no se mueven datos, puesto que solo se puede consultar y modificar su valor al tener un carcter puramente informativo. Dijkstra define un semforo como una variable entera positiva o nula sobre la que slo se pueden realizar dos operaciones: wait (tambin denominada P) y signal (tambin denominada V). La operacin wait decrementa el valor del semforo siempre que ste tenga un valor mayor que 0; por lo tanto esta operacin se utiliza para adquirir el semforo o para bloquearlo en el caso de que valga 0. La operacin signal incrementa el valor del semforo y por tanto se utiliza para liberarlo o inicializarlo.

Ambas operaciones deben ser atmicas para que funcionen correctamente; es decir que una operacin wait no puede ser interrumpida por otra operacin wait o signal sobre el mismo semforo, y lo mismo ocurre para la operacin signal. Este hecho garantiza que cuando varios procesos compitan por la adquisicin de un semforo, slo uno de ellos va a poder realizar la operacin.

los problemas de sincronizacin entre procesos. Un semforo binario es un indicador de condicin (s) que registra si un registro est disponible o no. Un semforo slo puede tomar dos valores; 0 y 1. Si para un semforo, S=1 el recurso est disponible y la tarea lo puede utilizar; si S=0 el recurso no est disponible y el proceso debe esperar. Los semforos se implementan mediante una cola de tareas a la que se aaden los.

EXCLUSIN MUTUA CON SEMFOROS La exclusin mutua se realiza fcilmente usando semforos. La operacin de espera se usar como procedimiento de bloqueo antes de acceder a una seccin crtica y la operacin seal como procedimiento de desbloqueo. Se emplean tantos semforos como clases de secciones crticas se establecen 2.4.2.2 MECANISMO DE MONITORES. Los monitores son estructuras de datos utilizadas en lenguajes de programacin para sincronizar dos o ms procesos o hilos de ejecucin que usan recursos compartidos. En el estudio y uso de los semforos se puede ver que las llamadas a las funciones necesarias para utilizarlos quedan repartidas en el cdigo del programa, haciendo difcil corregir errores y asegurar el buen funcionamiento de los algoritmos. Para evitar estos inconvenientes se desarrollaron los monitores. El concepto de monitor fue definido por primera vez por Charles Antony Richard Hoare en un artculo del ao 1974. La estructura de los monitores se ha implementado en varios lenguajes de programacin, incluido Pascal concurrente, Modula-2, Modula-3 y Java, y como biblioteca de programas. Componentes Un monitor tiene cuatro componentes: inicializacin, datos privados, procedimientos del monitor y cola de entrada. Inicializacin: contiene el cdigo a ser ejecutado cuando el monitor es creado Datos privados: contiene los procedimientos privados, que slo pueden ser usados desde dentro del monitor y no son visibles desde fuera Procedimientos del monitor: son los procedimientos que pueden ser llamados desde fuera del monitor. Cola de entrada: contiene a los threads que han llamado a algn procedimiento del monitor pero no han podido adquirir permiso para ejecutarlos an.

La poltica de insercin de procesos en las colas de las variables condicin es la FIFO, ya que asegura que ningn proceso caiga en la espera indefinida, cosa que s ocurre con la poltica LIFO (puede que los procesos de la base de la pila nunca sean despertados) o con una poltica en la que se desbloquea a un proceso aleatorio. Caractersticas: Es un proceso que se encarga de verificar el funcionamiento de algn recurso garantizando la exclusin mutua (mutex). En un monitor los procesos se bloquean y desbloquean.

Pueden existir diversas implementaciones no estandarizadas de un monitor. En Java los monitores estn implementados de manera nativa con el modificador de los mtodos syncronized. El monitor es el mecanismo que nos permite controlar el acceso a una regin crtica, en este caso un mtodo. Tambin se puede utilizar semforos como objetos mutex disponibles en el paquete java.util.concurrent.

2.4.3.- INTERBLOQUEO (DEADLOCK)


Definicin Un conjunto de procesos se encuentra en estado de interbloqueo cuando cada uno de ellos espera un suceso que solo puede originar otro proceso del mismo conjunto. En la mayora de los casos, el evento que espera cada proceso es la liberacin de cierto recurso que posee por el momento otro miembro del conjunto. En otras palabras, cada miembro del conjunto de procesos bloqueados espera un recurso posedo por un proceso bloqueado. Ninguno de los procesos puede continuar su ejecucin, ni liberar recursos, y puede ser despertado.

RECURSOS Un sistema se compone de un nmero finito de recursos que se distribuyen entre varios tipos:

Fsicos: Ciclo de cpu, espacio en memoria, dispositivos de e/s (impresoras, unidades de cinta, etc.) Lgicos: Ficheros, tablas del sistemas, etc.

Un recurso apropiable es aquel que se puede tomar del proceso que lo posee sin efectos dainos. La memoria es un ejemplo de recurso apropiable. Por el contrario, un recurso no apropiable, es aquel que no se puede tomar de su poseedor activo sin provocar un fallo de clculo. Si un proceso comienza a imprimir una salida, se toma la impresora y se le da a otro proceso, el resultado ser una salida incomprensible. Las impresoras no son apropiables. Los interbloqueos se relacionan con los recursos no apropiables. Lo usual es que los bloqueos asociados a recursos apropiables se pueden resolver, mediante la reasignacin de recursos de un proceso a otro. La secuencia de eventos necesaria para utilizar un recurso es:

Solicitar el recurso

Utilizar el recurso Liberar el recurso

Si el recurso no est disponible cuando se le solicita, el proceso solicitante debe esperar. En algunos sistemas operativos, el proceso se bloquea de manera automtica al fallar una solicitud de un recurso y se despierta cuando dicho recurso est disponible. CONDICIONES PARA PRODUCIR INTERBLOQUEO . En la poltica del sistema operativo, deben darse tres condiciones para que pueda producirse un interbloqueo: 1- Condicin de exclusin mutua: Cada recurso est asignado a un nico proceso o est disponible. 2- Condicin de posesin y espera: Los procesos que tienen, en un momento dado, recursos asignados con anterioridad, pueden solicitar nuevos recursos. 3- Condicin de no apropiacin: Los recursos otorgados con anterioridad no pueden ser forzados a dejar un proceso. El proceso que los posee debe liberarlos en forma explcita. 4- Condicin de espera circular (o crculo vicioso de espera): Debe existir una cadena circular de dos o ms procesos, cada uno de los cuales espera un recurso posedo por el siguiente miembro de la cadena.

2.4.3.1.-PREVENCION DE UN INTERBLOQUEO
La estrategia bsica de la prevencin del interbloqueo consiste, a grandes rasgos, en disear su sistema de manera que est excluida, a priori, la posibilidad de interbloqueo. Los mtodos para prevenir el interbloqueo son de dos tipos:

- Los mtodos indirectos que consisten en impedir la aparicin de alguna de las tres condiciones necesarias para que se del interbloqueo.

- Los mtodos directos que consisten en evitar la aparicin del crculo vicioso de espera. . Exclusin mutua

Si ningn recurso se puede asignar de forma exclusiva, no se producir interbloqueo. Sin embargo, existen recursos para los que no es posible negar la condicin de exclusin

mutua. No obstante, es posible eliminar esta condicin en algunos procesos. Por ejemplo, una impresora es un recurso no compatible pues si se permite que dos procesos escriban en la impresora al mismo tiempo, la salida resulta catica. Pero con el spooling (en cola) de salida varios procesos pueden generar salida al mismo tiempo. Puesto que el spooler nunca solicita otros recursos, se elimina el bloqueo originado por la impresora. . Retencin y espera

La condicin de retencin y espera puede prevenirse exigiendo que todos los procesos soliciten todos los recursos que necesiten a un mismo tiempo y bloqueando el proceso hasta que todos los recursos puedan concederse simultneamente. Esta solucin resulta ineficiente por dos factores:

- En primer lugar, un proceso puede estar suspendido durante mucho tiempo, esperando que concedan todas sus solicitudes de recursos, cuando de hecho podra haber avanzado con solo algunos de los recursos.

- Y en segundo lugar, los recursos asignados a un proceso pueden permanecer sin usarse durante periodos considerables, tiempo durante el cual se priva del acceso a otros procesos.

No apropiacin

La condicin de no apropiacin puede prevenirse de varias formas. Primero, si a un proceso que retiene ciertos recursos se le deniega una nueva solicitud, dicho proceso deber liberar sus recursos anteriores y solicitarlos de nuevo, cuando sea necesario, junto con el recurso adicional. Por otra parte, si un proceso solicita un recurso que actualmente est retenido por otro proceso, el sistema operativo debe expulsar al segundo proceso y exigirle que libere sus recursos. Este ltimo esquema evitar el interbloqueo slo si no hay dos procesos que posean la misma prioridad.

Esta tcnica es prctica slo cuando se aplica a recursos cuyo estado puede salvarse y restaurarse ms tarde de una forma fcil, como es el caso de un procesador.

2.4.3-2.- DETECCIN DEL INTERBLOQUEO


Las estrategias de prevencin de interbloqueo son muy conservadoras; resuelven el problema limitando el acceso a recursos e imponiendo restricciones sobre los procesos. En cambio, las estrategias de deteccin de interbloqueo, no limitan el acceso a recursos

ni restringen las acciones del proceso. Con la deteccin del interbloqueo, se concedern los recursos que los procesos necesiten siempre que sea posible. Peridicamente, el S. O. ejecuta un algoritmo que permite detectar la condicin de circulo vicioso de espera.

La deteccin del interbloqueo es el proceso de determinar si realmente existe un interbloqueo e identificar los procesos y recursos implicados en l. Una posibilidad detectar un interbloqueo es monitorear cada cierto tiempo el estado de los recursos. Cada vez que se solicita o se devuelve un recurso, se actualiza el estado de los recursos y se hace una verificacin para observar si existe algn ciclo.

Este mtodo est basado en suponer que un interbloqueo no se presente y que los recursos del sistema que han sido asignados, se liberarn en el momento que otro proceso lo requiera.

ALGORITMO DE DETECCIN DE INTERBLOQUEO

Una comprobacin para interbloqueo puede hacerse con igual o menor frecuencia que cada solicitud de recursos, dependiendo de qu tan probable es que ocurra un interbloqueo. Comprobar cada solicitud de recursos tiene dos ventajas: Conduce a la deteccin temprana y el algoritmo es simple, de manera relativa porque se basa en cambios crecientes al estado del sistema. Adems, las comprobaciones frecuentes consumen un tiempo considerable de procesador.

Los algoritmos de deteccin de bloqueos implican cierta sobrecarga en tiempo de ejecucin:

El empleo de algoritmos de deteccin de interbloqueo implica cierto gasto extra durante la ejecucin. As pues, se presenta de nuevo la cuestin de coste-habilidad, tan habitual en los sistemas operativos. Los algoritmos de deteccin de interbloqueo determinan por lo general si existe una espera circular.

2.4.3.3.- RECUPERACIN DE INTERBLOQUEO


Cuando se ha detectado que existe un interbloqueo, podemos actuar de varias formas. Una posibilidad es informar al operador que ha ocurrido un interbloqueo y dejar que el operador se ocupe de l manualmente. La otra posibilidad es dejar que el sistema se recupere automticamente del interbloqueo. Dentro de esta recuperacin automtica tenemos dos opciones para romper el interbloqueo: Una

consiste en abortar uno o ms procesos hasta romper la espera circular, y la segunda es apropiar algunos recursos de uno o ms de los procesos bloqueados. La recuperacin despus de un interbloqueo se complica porque puede no estar claro que el sistema se haya bloqueado. Las mayoras de los Sistemas Operativos no tienen los medios suficientes para suspender un proceso, eliminarlo del sistema y reanudarlo ms tarde. Los procesos pueden eliminarse de acuerdo con algn orden de prioridad, aunque es posible que no existan prioridades entre los procesos bloqueados, de modo que el operador necesita tomar una decisin arbitraria para decidir que procesos se eliminarn. RECUPERACIN MANUAL Est forma de recuperacin consiste en avisarle al administrador o al operador del sistema que se ha presentado un interbloqueo, y ser el administrador el que solucione dicho problema de la manera ms conveniente posible, de modo que su decisin no afecte demasiado a al usuario del proceso en conflicto, y sobre todo que no afecte a los dems usuarios del sistema. ABORTAR LOS PROCESOS Para eliminar interbloqueos abortando un proceso, tenemos dos mtodos; en ambos, el sistema recupera todos los recursos asignados a los procesos terminados. 1) Abortar todos los procesos interbloqueados. Esta es una de las soluciones ms comunes, adoptada por Sistemas Operativos. Este mtodo romper definitivamente el ciclo de interbloqueo pero con un costo muy elevado, ya que estos procesos efectuaron clculos durante mucho tiempo y habr que descartar los resultados de estos clculos parciales, para quiz tener que volver a calcularlos ms tarde. 2) Abortar un proceso en cada ocasin hasta eliminar el ciclo de interbloqueo. El orden en que se seleccionan los procesos para abortarlos debe basarse en algn criterio de costo mnimo. Despus de cada aborto, debe solicitarse de nuevo el algoritmo de deteccin, para ver si todava existe el interbloqueo. Este mtodo cae en mucho tiempo de procesamiento adicional. Existen muchos factores que determinan el proceso que se seleccionar, siendo los principales los siguientes:

La prioridad del proceso. Se elimina el proceso de menor prioridad. Tiempo de procesador usado. Se abortar aquel proceso que haya utilizado menos tiempo el procesador, ya que se pierde menos trabajo y ser ms fcil recuperarlo ms tarde.

Tipos de recursos utilizados. Si los recursos son muy necesarios y escasos ser preferible liberarlos cuanto antes. Cuntos recursos ms necesita el proceso. Es conveniente eliminar a aquellos procesos que necesitan un gran nmero de recursos. Facilidad de suspensin / reanudacin. Se eliminarn aquellos procesos cuyo trabajo perdido sea ms fcil de recuperar.

2.5 NIVELES, OBJETIVOS Y CRITERIOS DE PLANIFICACIN


NIVELES DE PLANIFICACIN . La planificacin es el proceso por el cual el sistema operativo selecciona que proceso ejecutar. La seleccin del proceso se basa en alguno de los algoritmos de planificacin. La planificacin de la CPU, en el sentido de conmutarla entre los distintos procesos, es una de las funciones del sistema operativo. Este despacho es llevado a cabo por un pequeo programa llamado planificador a corto plazo o dispatcher (despachador). La misin del dispatcher consiste en asignar la CPU a uno de los procesos ejecutables del sistema, para ello sigue un determinado algoritmo. Los acontecimientos que pueden provocar la llamada al dispatcher dependen del sistema (son un subconjunto de las interrupciones), pero son alguno de estos:

El proceso en ejecucin acaba su ejecucin o no puede seguir ejecutndose (por una E/S, operacin WAIT, etc). Un elemento del sistema operativo ordena el bloqueo del proceso en ejecucin El proceso en ejecucin agota su cuantum o cuanto de estancia en la CPU. Un proceso pasa a estado listo.

Se puede definir el scheduling -algunas veces traducido como -planificacin- como el conjunto de polticas y mecanismos construidos dentro del sistema operativo que gobiernan la forma de conseguir que los procesos a ejecutar lleguen a ejecutarse. El scheduling est asociado a las cuestiones de:

Cundo introducir un nuevo proceso en el Sistema. Determinar el orden de ejecucin de los procesos del sistema.

El scheduling est muy relacionado con la gestin de los recursos. Existen tres niveles de scheduling, estos niveles son:

Planificador de la CPU o a corto plazo. Planificador a medio plazo. Planificador a largo plazo.

En la planificacin de procesos se suelen incluir varios niveles, en funcin del periodo temporal que cubren: PLANIFICACIN A LARGO PLAZO PLANIFICACIN A MEDIANO PLAZO PLANIFICACIN A CORTO PLAZO Qu proceso ser el que se ejecutar en el procesador en el instante siguiente.

Expulsin denota si un proceso acapara el procesador cuando est ejecutndose. Existen sistemas con y sin expulsin: a) Sin expulsin: un proceso conserva el uso del procesador mientras lo desee; es decir, mientras no solicite del SO un servicio que lo bloquee. Ventajas: minimiza tiempo de planificacin. Inconvenientes: un proceso podra monopolizar el uso del procesador. b) Con expulsin: el SO puede desalojar a un proceso del uso del procesador (sin que el proceso lo haya solicitado). Ventaja: control sobre el tiempo de ejecucin de cada proceso. Inconveniente: gasto de tiempo.

2.6 TCNICAS DE ADMINISTRACIN DEL PLANIFICADOR


Las disciplinas de planificacin pueden ser: Expropiativas No expropiativas

Se denomina planificador al software del sistema operativo encargado de asignar los recursos de un sistema entre los procesos que los solicitan. Siempre que haya tomar una decisin, el planificador debe decidir cul de los procesos que compiten por la posesin de un determinado recursos lo recibir.

Los algoritmos (tcnicas) tienen distintas propiedades segn los criterios en los que se basen para su construccin, lo cual se refleja en qu tipo de procesos se puede ver favorecido frente a otro en la disputa del procesador. Antes de realizar la eleccin de un algoritmo se debe considerar las propiedades de estos frente al criterio de diseo elegido. Algunos de estos son:

a) Eficacia: Se expresa como un porcentaje del tiempo medio de utilizacin. Aunque puede parecer lgico intentar mantener este parmetro prximo al 100%, con un valor tan elevado otros aspectos importante de medida del comportamiento del sistema pueden verse deteriorados, como por ejemplo el tiempo medio de espera.

b) Rendimiento: Es una medida del numero de procesos completados por unidad de tiempo. Por ejemplo 10 procesos por segundo.

c) Tiempo de retorno o regreso: Es el intervalo de tiempo que transcurre desde que un proceso se crea o presenta hasta que completa por el sistema.

d) Tiempo de espera: Es el tiempo que el proceso espera hasta que se le concede el procesador. Puede resultar una medida mas adecuada de la eficiencia del sistema, ya que se elimina de la media el tiempo que tarda en ejecutarse el mismo.

e) Tiempo de respuesta a un evento: Se denomina as el intervalo de tiempo que transcurre desde que se seala un evento hasta que se ejecuta la primera instruccin de la rutina de servicio de dicho evento. El criterio de seleccin de un algoritmo se suele basar en la maximizacin o minimizacin de una funcin de los parmetros anteriores

2.6.1. FIFO
FIFO: First In First Out Mecanismo de scheduling en el cual los procesos se ordenan en una fila, en la cual se ejecutan cada uno de los procesos hasta su finalizacin secuencialmente. Es tremendamente ineficiente. Cuando se tiene que elegir a qu proceso asignar la CPU se escoge al que llevara ms tiempo listo. El proceso se mantiene en la CPU hasta que se bloquea voluntariamente. Para implementar el algoritmo slo se necesita mantener una cola con los procesos listos ordenada por tiempo de llegada. Cuando un proceso pasa de bloqueado a listo se sita el ltimo de la cola. FIFO FIFO es el acrnimo ingls de First In, First Out (primero en entrar, primero en salir). Un sinnimo de FIFO es FCFS, acrnimo ingls de First Come First Served ( primero en llegar, primero en ser servido). Es un mtodo utilizado en estructuras de datos, contabilidad de costes y teora de colas. Guarda analoga con las personas que esperan en una cola y van siendo atendidas en el orden en que llegaron, es decir, que la primera persona que entra es la primera persona que sale. Esquema de funcionamiento de una cola FIFO.FIFO se utiliza en estructuras de datos para implementar colas. La implementacin puede efectuarse con ayuda de arrays o vectores, o bien mediante el uso de punteros y asignacin dinmica de memoria. Si se implementa mediante vectores el nmero mximo de elementos que puede almacenar est limitado al que se haya establecido en el cdigo del programa antes de la compilacin (cola esttica) o durante su ejecucin (cola pseudoesttica). Sea cual sea la opcin elegida, el nmero de elementos que podr almacenar la cola quedar determinado durante toda la ejecucin del programa.

El sistema debe reservar el tamao de memoria necesario para acoger todos los datos, sea cual sea el nmero de elementos usados, lo que en algunas aplicaciones supone un despilfarro de la memoria. Sin embargo, si se usan punteros, el nmero mximo no est declarado sino que se hace un uso dinmico de la memoria, adaptndose al tamao necesario en cada momento en funcin de los elementos que hay en la cola. Uno de los usos de las colas es la exploracin en anchura de un rbol de bsqueda. Otro uso tpico de las colas, es la gestin de descargas de una aplicacin p2p. Los FIFOs se usan comnmente en circuitos de electrnica para almacenaje y hacer control de flujo. Hablando de hardware form un FIFO consiste bsicamente en una conjunto de punteros de lectura/escritura, almacenamiento y lgica de control. El almacenamiento puede ser SRAM, flip-flops, latches o cualquier otra forma adecuada de almacenamiento. Para FIFOs de un tamao importante se usa usualmente una SRAM de doble puerto, donde uno de los puertos se usa para la escritura y el otro par a la lectura. Un FIFO sincrnico maneja el mismo reloj (clock) tanto para las lecturas como para las escrituras. Una asicrnico es aquel que utiliza diferentes relojes (clocks) una para lectura y otro para la escritura. Cuando se habla de FIFOs asincrnicos se introduce el tema de la meta-estabilidad. Una implementacin comn de un FIFO asincrnico usa un Gray code ( o cualquier cdigo de unidad de distancia) para los punteros de lectura y escritura de modo de asegurarse una generacin de banderas (flags) segura/estable Como ejemplo de banderas de estado FIFO, se pueden enumerar: full (lleno), empty (vacio), almost full (casi lleno) o almost empty (casi vacio). FIFO FULL (LLENO)/EMPTY (VACIO) [editar]En el hardware FIFO se usa para propsitos de sincronizacin. Comportndose como una cola circular . Tiene dos punteros: 1. Puntero de Lectura/Registro de Direccin de Lectura 2. Puntero de Escritura/Registro de Direccin de Escritura Las direcciones de lectura y escritura estn ambas inicialmente en la primer ubicacin de la memoria y la cola FIFO est Vaca. FIFO Vaca: Cuando registro de direccin de lectura alcanza al registro de direccin de escritura, la cola FIFO dispara la seal Vacio. FIFO Llena: Cuando el registro de direccin de escritura alcanza al registro de direccin de lectura, la cola FIFO dispara la seal LLENO.

2.6.2 SJF

Al igual que en el algoritmo FIFO las rfagas se ejecutan sin interrupcin, por tanto, slo es til para entornos batch. Su caracterstica es que cuando se activa el planificador, ste elige la rfaga de menor duracin. Es decir, introduce una nocin de prioridad entre rfagas. La ventaja que presenta este algoritmo sobre el algoritmo FIFO es que minimiza el tiempo de finalizacin promedio, como puede verse en el siguiente ejemplo:

2.6.3 RR
Cada proceso tiene asignado un intervalo de tiempo de ejecucin, llamado cuantum o cuanto. Si el proceso agota su cuantum de tiempo, se elige a otro proceso para ocupar la CPU. Si el proceso se bloquea o termina antes de agotar su cuantum tambin se alterna el uso de la CPU. El round robin es muy fcil de implementar. Todo lo que necesita el planificador es mantener una lista de los procesos listos.

2.6.4 Queves Multi-level


Un algoritmo de planificacin multinivel particiona la cola de listos en colas separadas. Se asignan en forma permanente los trabajos a una cola, generalmente, basndose en alguna propiedad del mismo (requerimientos de memoria, tipo de trabajo), teniendo cada cola su propio algoritmo. Por ejemplo, la cola interactiva podra planificarse usando RR y la batch FIFO. Ningn trabajo en una cola de baja prioridad puede ejecutarse si las colas con mayor prioridad no estn vacas. Si algn trabajo entra en una cola de mayor prioridad, el trabajo de otras colas es interrumpido.

2.6.5 Multi-Level Feedback Queves


En colas multinivel realimentadas los trabajos pueden moverse dentro de distintas colas. La idea es separar procesos con distintos tipos de interrupciones de la CPU. Si un trabajo consume mucho tiempo de CPU, ser movido a una cola con menor prioridad. En forma similar, si un proceso espera demasiado tiempo en una cola de baja prioridad, lo moveremos a una cola de mayor prioridad. En general un planificador de este tipo esta definido por los siguientes parmetros:

1. El nmero de colas. 2. El tipo de algoritmo de planificacin de cada cola. 3. Un mtodo de determinacin de cuando mover un trabajo a una cola de mayor prioridad. 4. Un mtodo de determinacin de cuando mover un trabajo a una cola de menor prioridad. 5. Un mtodo de determinacin de a qu cola se enviar un trabajo cuando necesita servicio

Unidad III Administracin de memoria

3.1Polticay Filosofa
Filosofa La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de tamao. Cada localidad de almacenamiento tiene asignada una direccin que la identifica. Una de las funciones bsicas que debe implementar un SO es la Administracin de la Memoria para tener un control sobre los lugares donde estn almacenados los datos y procesos que actualmente se estn utilizando.

3.4.- ADMINISTRACION DE MEMORIA VIRTUAL. La memoria virtual es una tcnica para proporcionar la ilusin de un espacio de memoria mucho mayor que la memoria fsica de una maquina. Esta "ilusin permite que los programas se hagan sin tener en cuenta el tamao exacto de la memoria fsica. La ilusin en la memoria virtual est soportada por el mecanismo de traduccin de memoria, junto con una gran cantidad de almacenamiento rpido en disco duro. En cualquier momento el espacio de direcciones virtual, est mapeado de tal forma que una pequea parte de l, est en memoria real y el resto almacenado en el disco. El espacio de memoria principal est muy "achuchado". Tres problemas diferentes de la Memoria virtual Vitalizacin de la memoria

Proteccin Reutilizar la memoria

ADMINISTRACIN DE MEMORIA VIRTUAL Es un mtodo mediante el cual, un sistema operativo simula tener ms memoria principal que la que existe fsicamente. Para implementar la memoria virtual se utiliza un medio de almacenamiento secundario de alta velocidad de acceso, generalmente en disco duro de la maquina. Un sistema de memoria virtual se implementa utilizando paginacin como mtodo de administracin de memoria bsica y algn mecanismo de intercambio (para descargar paginas dela memoria principal hacia el disco duro y para cargar esas paginas de nuevo ala memoria).La memoria virtual es una tcnica para proporcionar la simulacin de un espacio de memoria mucho mayor que la memoria fsica de una maquina. Esta ilusin permite que los programas se hagan sin tener en cuenta el tamao Exacto de la memoria fsica. La ilusin de la memoria virtual esta soportada por el mecanismo de traduccin de memoria, junto con una gran cantidad de almacenamiento rpido en disco duro. As en cualquier momento el espacio de direcciones virtual hace un seguimiento de tal forma que una pequea parte de l, esta en memoria real y el resto almacenado en el disco, y puede ser referenciado fcilmente. ESTRATEGIAS DE COLOCACIN EN ALMACENAMIENTO Estrategias del mejor ajuste: Un trabajo que entre en el sistema se colocar en el espacio vaci del almacenamiento principal en el que quepa mejor y que deje la menor cantidad posible de espacio sin utilizar. Estrategias del primer ajuste: Un trabajo que entre en el sistema se colocara en el almacenamiento principal en el primer vaci disponibles lo bastante grande para contenerlo. Estrategias del peor ajuste: Consiste en colocar un programa en el almacenamiento primario en el espacio vaci donde peor se ajusta es decir en el espacio ms grande posible. 3.4.1._ ESTRATEGIAS DE ADMINISTRACIN. Estrategias de obtencin: Determina cuando se debe transferir una pgina o un segmento de almacenamiento secundario al primario. Las estrategias de obtencin por demanda esperan a que un proceso en ejecucin haga referencia a una pgina o a un segmento antes de traer la pgina o el segmento de almacenamiento primario. Los esquemas de obtencin anticipada intentan determinar por adelantado a cuales paginas o segmentos har referencia un proceso. Estrategias de colocacin: Determinan en que lugar del almacenamiento primario se debe colocar una pagina o un segmento entrante. Una pgina entrante se puede colocar en cualquier marco de pgina disponible. Estrategias de remplazo:

Sirven para decidir cual pgina o segmento se debe desplazar para dar espacio a una pgina o segmento entrante cuando esta completamente ocupado el almacenamiento primario. 3.4.2._ TECNICAS DE REEMPLAZO DE PGINA Las rutinas de administracin de almacenamiento del Sistema operativo deben decidir que pgina del almacenamiento primario se debe desplazar para dejar espacio a una pgina entrante. Principio de Optimalidad: Para obtener un rendimiento ptimo, la pgina que se debe remplazar es aquella que tardar ms tiempo en ser utilizada. Esta estrategia ptima de remplazo se denomina OPT o MIN. Remplazo de Pginas aleatorio: Es una tcnica sencilla. Todas las pginas que se encuentran en el almacenamiento principal tienen la misma probabilidad de ser elegidas para el remplazo. Esta estrategia podra seleccionar cualquier pgina para ser remplazada, incluyendo la siguiente pgina la que se har referencia. Las decisiones de remplazo aleatorio se de pginas se pueden tomar rpidamente y con un nmero significativo de marcos de pgina. Es un esquema que casi no se utiliza por su enfoque aleatorio de acertar o errar. Remplazo de pginas de primeras entradas-primeras salidas (PEPS): Cada pgina se registra en el instante que entr en el almacenamiento primario. Cuando se necesita remplazar una pgina, se escoge la que ha permanecido en el almacenamiento durante el mayor tiempo. 3.4.3.- PAGINACIN POR DEMANDA. Las pginas son cargadas por demanda. No se llevan pginas del almacenamiento secundario al primario hasta que son referenciadas explcitamente por un proceso en ejecucin. Las razones del atractivo de esta estrategia son: Los resultados de computabilidad, en especial el problema de parada ,indican que el camino que tomar la ejecucin de un programa no se puede predecir con exactitud. Garantiza que solo las pginas que necesita el proceso sean tradas almacenamiento principal. La sobrecarga de proceso para decidir qu pgina traer almacenamiento principal es mnima. El principal inconveniente est en los procesos que requieren acumular sus pginas una por una: Los tiempos de espera de pginas son considerables. Es creciente la cantidad de almacenamiento primario afectada al proceso que espera pginas, por lo que el producto espacio Tiempo se incrementa. El producto espacio tiempo indica la cantidad de almacenamiento que usaun proceso y la cantidad de tiempo

que lo usa. La reduccin del producto espacio- tiempo de las esperas de pginas de un proceso es una meta importante de las estrategias de administracin del Almacenamiento

3.4.4._ PAGINACIN ANTICIPADA El S. O. intenta predecir las pginas que un proceso va a necesitar y a continuacin precarga estas pginas cuando hay espacio disponible. Mientras el proceso ejecuta sus pginas actuales, el sistema carga pginas nuevas que estarn disponibles cuando el proceso las pida, debido a ello, el tiempo de ejecucin de un proceso se puede reducir.

3.4.5._ LIBERACIN DE PGINAS Un proceso usuario puede emitir una liberacin voluntaria de pgina Para liberar el marco de pgina cuando ya no necesitara esa pgina. Se puede eliminar el desperdicio y acelerar la ejecucin. El inconveniente es que la incorporacin de mandatos de liberacin de pginas dentro de los programas de usuarios puede ser peligrosa y retrasar el desarrollo de aplicaciones. Los compiladores y S. O. deberan detectar automticamente situaciones deliberacin de pgina mucho antes de lo que es posible con estrategias de conjuntos de trabajo. Los programas que ya no requieran pginas especficas debern desechar tales pginas de sus conjuntos de trabajo. Por lo regular hay un tiempo durante el cual permanecen en el almacenamiento principal las pginas que ya no se requieran.

3.4.6._ TAMAO DE PGINA Generalmente el almacenamiento real se divide en marcos o celdas de pgina de tamao fijo. Los interrogantes tienen que ver con el tamao de las pginas, si todas las pginas tendrn igual tamao, si en caso de utilizar pginas de diferente tamao las pginas mayores deben ser o no mltiplos enteros de las menores, etc. Algunas consideraciones para determinar el tamao de pgina son las siguientes: Cuanto ms pequeo sea el tamao de una pgina, ms pginas y marcos de pginas habr y mayores sern las tablas de pginas: o el desperdicio de almacenamiento debido al tamao excesivo delas tablas de pgina se llama fragmentacin de tablas. O esto indica la necesidad de Pginas ms grandes. Con pginas grandes, grandes cantidades de informacin que nunca llegara a ser referenciada, se paginarn hacia el almacenamiento primario: o esto indica la necesidad de pginas ms pequeas.

Debido a que las transferencias de e / s del disco (paginacin)consumen bastante tiempo, se debe minimizar la paginacin que un proceso requiera: o esto indica la necesidad de pginas grandes. Los programas tienden a mostrar la propiedad de localidad de referencia y esta localidad tiende a ser pequea: o esto indica la necesidad de pginas pequeas. Los procedimientos y datos rara vez comprenden un nmero entero de pginas, por lo que los sistemas de paginacin experimentan una fragmentacin interna:

También podría gustarte