Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Trabajo Sistemas
Trabajo Sistemas
UNIDAD:
2 TEMA: Administracin de procesos y del procesador
EQUIPO: 1
Carrillo Santiago Lucero Martnez Gasga Liliana 12190312 12190392
12190243
12190248 12190269
SEMESTRE:
GRUPO: Y
ndice
Pgina
2 3 4 6 8 10 12 15 17 19 21 22 23 25 27 28 30 33 35 36 38 39
Conclusin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bibliografa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Introduccin
El concepto central de cualquier Sistema Operativo es Lo cual es una abstraccin de un programa en ejecucin tambin llamada tarea. el de proceso.
La gestin de procesos es la tarea fundamental de cualquier sistema operativo moderno. El sistema operativo debe asignar recursos a los procesos, permitir el intercambio de informacin entre los mismos, proteger los recursos de un proceso del resto y facilitar la sincronizacin de procesos. Lo que se ver en el siguiente trabajo ser lo ms esencial sobre la forma en la que el sistema gestiona las interrupciones, este se encarga de controlar los accesos al procesador, verificar el estatus de un proceso y determinar se ejecucin de acuerdo al nivel de importancia, cabe destacar que no todas las interrupciones son controladas por el SO, ya que existen interrupciones enmascaradas y que son exclusivas del hardware de nuestro ordenador. Se tratar de hacer comprender de forma sencilla la manera tan compleja en la que trabaja una computadora, se hablar sobre un tema muy importante: cmo prever soluciones a ciertos problemas de ejecucin, as como establecer prioridades al monto de asignar tareas, sobre todo para los sistemas multiusuario.
Se hablara sobre la sincronizacin por medio de semforos, que son 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; y tambin por medio de monitores, que son un mecanismo de software para control de concurrencia que contiene los datos y los procedimientos necesarios para realizar la asignacin de un determinado recurso o grupo de recursos compartidos reutilizables en serie. Tambin mencionaremos las tcnicas de administracin del planificador, ya que ste es un componente funcional muy importante de los sistemas operativos multitarea y multiproceso y es esencial en los sistemas operativos de tiempo real. Su funcin consiste en repartir el tiempo disponible de un microprocesador entre todos los procesos para su ejecucin.
El estado de un proceso define su actividad actual. Durante su existencia, un proceso pasa por una serie de estados discretos. Estos estados son se muestran en el siguiente diagrama:
A continuacin se describe cada uno de estos procesos: Estado Nuevo Descripcin Se dice que un proceso est en estado de nuevo cuando apenas se encuentra en proceso de crearse. Un proceso est en estado de listo, cuando podra usar una UCP, si hubiera una disponible. Se dice que un proceso est estado de ejecucin, si en ese momento tiene sta ocupando la CPU. Se dice que un proceso est en estado de bloqueado, si espera que ocurra algo, como por ejemplo, la terminacin de una E/S, para as poder ponerse en marcha. Cuando un proceso se ha completado su ejecucin pasa a ser un proceso terminado.
Listo
En ejecucin
Bloqueado
Terminado
Transiciones de estados:
Una vez que un programa se ha lanzado y se ha convertido en proceso puede atravesar varias fases o estados hasta que finaliza o termina. Cuando un proceso se lanza nunca se ejecuta directamente, sino que se coloca en la cola de procesos en un estado denominado preparado. Cuando la UCP le asigna su tiempo, el proceso pasa de preparado a ejecucin. Transicin A. Ocurre cuando el programa que est en ejecucin necesita algn elemento para continuar ejecutndose. Transicin B. Ocurre cuando un programa o proceso ha utilizado el tiempo asignado por la UCP (procesador) para su ejecucin y tiene que dejar paso al siguiente proceso. Transicin C. Ocurre cuando el proceso que est preparado pasa al proceso de ejecucin, es decir, cuando al proceso le llega una nueva disposicin de tiempo de la UCP para poder ejecutarse. Transicin D. Ocurre cuando el proceso pasa de estar bloqueado a estar preparado.
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
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.
Paralelismo:
Los procesos ligeros permiten paralelizar una aplicacin.
Existen tres modelos de computadora en los que se pueden ejecutar procesos concurrentes: Multiprogramacin con un nico procesador. El sistema operativo se encarga de ir repartiendo el tiempo del procesador entre los distintos procesos, intercalando la ejecucin de los mismos para dar as una apariencia de ejecucin simultnea. Multiprocesador. Es una maquina formada por un conjunto de procesadores que comparten memoria principal. En este tipo de arquitecturas, los procesos concurrentes no slo pueden intercalar su ejecucin sino tambin superponerla. Multicomputadora. Es una mquina de memoria distribuida, que est formada por una serie de computadoras. En este tipo de arquitecturas tambin es posible la ejecucin simultnea de los procesos sobre los diferentes procesadores.
Ejemplo de concurrencia:
En una base de datos bancaria podra ocurrir que se paguen dos cheques en forma simultnea sobre una cuenta que no tiene suficiente saldo para cubrirlos en su totalidad, esto es posible evitarlo si tiene un control de concurrencia
Buffer:
Es una ubicacin de la memoria en un Disco o en un instrumento digital reservada para el almacenamiento temporal de informacin digital, mientras que est esperando ser procesada. Por ejemplo, un analizador TRF tendr uno o varios buffers de entrada, donde se guardan las palabras digitales que representan las muestras de la seal de entrada. El Z-Buffer es el usado para el renderizado de imgenes 3D.
Exclusin mutua:
Los algoritmos de exclusin mutua se usan en programacin concurrente para evitar el uso simultneo de recursos comunes, como variables globales, por fragmentos de cdigo conocidos como secciones crticas.
Regiones
crticas:
Es posible clasificar las interacciones de los procesos en funcin del nivel de conocimiento que cada proceso tiene de la existencia de los dems: Los procesos no tienen conocimiento de los dems: Estos son procesos independientes que no estn pensados para operar juntos. Los procesos tienen un conocimiento indirecto de los otros: Los procesos no conocen necesariamente a los otros, pero comparten el acceso a algunos objetos. Los procesos tienen un conocimiento directo de los otros: Los procesos son capaces de comunicarse con los dems y estn diseados para trabajar conjuntamente en alguna actividad.
Los procesos concurrentes entran en conflicto cuando compiten por el uso del mismo recurso, es decir, quieren entrar a un recurso al mismo tiempo, y la ejecucin de un proceso puede influir en el comportamiento de los procesos que compiten y el sistema operativo le asignar el recurso a uno de ellos y el otro tendr que esperar. Por lo que el proceso que quede esperando, se retrasar, se bloqueara y en el mal de los casos nunca se terminar con xito. Es en estos procesos concurrentes, donde, se plantean una serie de situaciones clsicas de comunicacin y sincronizacin, entre ellos el problema de la seccin crtica.
10
11
En programacin concurrente, se define como a la porcin de cdigo de un programa de computador el cual accede a un recurso compartido que no debe de ser accedido por ms de un hilo en ejecucin.
12
La seccin crtica por lo general termina en un tiempo determinado y el hilo, proceso tarea solo tendr que esperar un perodo determinado de tiempo para entrar. Se necesita de un mecanismo de sincronizacin en la entrada y salida de la seccin crtica para asegurar la utilizacin exclusiva del recurso, por ejemplo un semforo. Slo un proceso puede estar en una seccin crtica a la vez. Los mecanismos de comunicacin y sincronizacin son dinmicos. Es decir, cuando se necesita un mecanismo de este estilo, se crea, usa y destruye, de forma que no se establezca de forma definitiva ningn mecanismo de comunicacin, ya que ellos podran producir efectos indeseados. Es decir, la comunicacin es algo puntual.
a. Crear: El proceso solicita la creacin del mecanismo b. Enviar o escribir: El proceso emisor enva informacin al proceso receptor c. Recibir o leer: El proceso receptor recibe informacin d. Destruir: El proceso solicita la destruccin del mecanismo de comunicacin
Dentro del ncleo del sistema operativo, el espacio de direcciones es nico, por lo que la comunicacin se resuelve mediante el uso de variables de memoria compartida. Como contrapartida a la agilidad de este esquema, es necesario utilizar mecanismos explcitos de sincronizacin para garantizar acceso exclusivo a las variables compartidas.
13
Si se definen buffers o colas compartidas a las que se proporciona acceso exclusivo, se pueden utilizar esquemas de comunicacin ms elaborados, como es el caso del productor-consumidor. El esquema cliente-servidor es un caso particular del productor-consumidor donde los clientes producen peticiones que son consumidas por el servidor de un determinado recurso. Un sistema operativo con estructura cliente-servidor resulta atractivo por la claridad de su diseo. Cuando los procesos que se comunican mediante estos esquemas no comparten el espacio de direcciones, lo que sucede en particular en sistemas basados en micro ncleo, se requieren primitivas de comunicacin por paso de mensajes, que, al gestionar implcitamente la sincronizacin, simplifican la programacin de la comunicacin.
Adems, existen otros criterios que determinan la calidad del mecanismo y que fundamentalmente se refieren a su rendimiento, como son laproductividad(nmero de operaciones de sincronizacin por unidad de tiempo que el mecanismo es capaz de soportar) y el tratamiento equitativo entre los procesos (por ejemplo, siguiendo una poltica FIFO para entrar a la seccin crtica).
14
15
Los semforos se implementan mediante una cola de tareas a la que se aaden los procesos que estn en espera del recurso. Solo se permiten tres operaciones sobre un semforo:
1. Inicializa (s: Semforo_Binario; v: integer) -- > poner el valor del semforo s al valor de v (0,1). 2. Espera (wait)(s) if s = 1 then s: = 0 else Suspender la tarea que hace la llamada y ponerla en la cola de tareas. 3. Seal (signal)(s) if cola de tareas vaca then s : = 1 else Reanudar la primera tarea de la cola tareas.
Estas operaciones son procedimientos que se implementan como acciones indivisibles. En sistemas con un nico procesador bastar simplemente con inhibir las interrupciones durante la ejecucin de las operaciones del semforo. Al introducir el semforo se crea un nuevo estado en el diagrama de transiciones, el de espera.
16
Un monitor es un mecanismo de software para control de concurrencia que contiene los datos y los procedimientos necesarios para realizar la asignacin de un determinado recurso o grupo de recursos compartidos reutilizables en serie.
Tipos de Monitores
Monitor tipo monitor: Este monitor fue implementado en Pascal Concurrente, lenguaje desarrollado por Per Brinch Hansen. Es el monitor ms simple de todos pues solo tiene tres estados y las funciones internas son muy sencillas. Una caracterstica distintiva de este monitor es que el proceso que reinicia a otros debe salir del monitor, es decir abandona el estado activo. El diagrama de estados de este monitor esta dado en la siguiente figura.
17
Monitor tipo gladiador: Este monitor propuesto por Cavers y Brown tiene la caracterstica fundamental de solo tener un punto de consistencia interno (un punto de consistencia interno ocurre cuando el proceso que est activo abandona este estado y sigue dentro del monitor). El diagrama de estados de este monitor se da en la figura.
18
Ejemplo: Una carretera en 2 direcciones tiene un puente que slo deja pasar vehculos en un sentido, con las siguientes situaciones: Un auto llega al puente y en sentido contrario no hay nadie y puede cruzar. Si el paso es controlado por un semforo en cada lado y 100 m antes de cada uno hay detectores de autos para encender el semforo opuesto en rojo, pude pasar que 2 autos lleguen al mismo tiempo en ambos sentidos y ambos estn detenidos por el semforo (interbloqueo). Si no hay semforos, un conductor cede el paso, pero antes de que termine el otro, aparece un 3 y as sucesivamente, puede hacer que el conductor educado no cruce mientras haya carros en sentido contrario (postergacin indefinida). Recursos: Elemento que un programa o proceso puede usar en la computadora donde se ejecuta, y puede ser usado por un solo proceso en un momento dado. Tipos de Recursos: Reutilizables.- El que puede ser usado con seguridad por un proceso y no se agota con el uso, son liberados para que otros los resen: CPU, canales de E/S, memoria y estructuras de datos archivos, bases de datos y semforos. Consumibles.- El que puede ser creado (producido) y destruido (consumido). No hay lmite en la cantidad. Un proceso productor que no est bloqueado puede liberar cualquier nmero de recursos consumibles. Cuando un proceso adquiere un recurso, ste deja de existir: seales, mensajes, e informacin en buffers.
19
Coffman (1971) demostr que deben cumplirse cuatro condiciones para que haya un bloqueo mutuo:
1. Condicin de exclusin mutua: Cada recurso est asignado nicamente a un solo proceso o est disponible. 2. Condicin de retener y esperar: Los procesos que actualmente tienen recursos que les fueron otorgados previamente pueden solicitar nuevos recursos. 3. Condicin de no expropiacin: No es posible quitarle por la fuerza a un proceso los recursos que le fueron otorgados previamente. El proceso que los tiene debe liberarlos . 4. Condicin de espera circular: Debe haber una cadena circular de dos o ms procesos, cada uno de los cuales est esperando un recurso retenido por el siguiente miembro de la cadena.
20
2.4.3.1 Prevencin.
Los bloqueos mutuos pueden ser evitados si se sabe cierta informacin sobre los procesos antes de la asignacin de recursos. Para cada peticin de recursos, el sistema controla si satisfaciendo el pedido entra en un estado inseguro, donde puede producirse un bloqueo mutuo.
De esta forma, el sistema satisface los pedidos de recursos solamente si se asegura que quedar en un estado seguro. Para que el sistema sea capaz de decidir si el siguiente estado ser seguro o inseguro, debe saber por adelantado y en cualquier momento el nmero y tipo de todos los recursos en existencia, disponibles y requeridos. Existen varios algoritmos para evitar bloqueos mutuos: Algoritmo del banquero, introducido por Dijkstra. Algoritmo de grafo de asignacin de recursos. Algoritmo de Seguridad. Algoritmo de solicitud de recursos.
Los bloqueos mutuos pueden prevenirse asegurando que no suceda alguna de las condiciones necesarias vistas anteriormente. 1. Eliminando la exclusin mutua: Ningn proceso puede tener acceso exclusivo a un recurso. Esto es imposible para procesos que no pueden ser encolados (puestos en un spool), e incluso con colas tambin pueden ocurrir interbloqueos. 2. La condicin de retencin y espera puede ser eliminada haciendo que los procesos pidan todos los recursos que van a necesitar antes de empezar. Este conocimiento por adelantado muchas veces es imposible nuevamente. Otra forma es requerir a los procesos liberar todos sus recursos antes de pedir todos los recursos que necesitan. Esto tambin es imprctico en general. 3. La condicin de no expropiacin puede ser tambin imposible de eliminar dado que un proceso debe poder tener un recurso por un cierto tiempo o el procesamiento puede quedar inconsistente. 4. La condicin de espera circular es la ms fcil de atacar. Se le permite a un proceso poseer slo un recurso en un determinado momento, o una jerarqua puede ser impuesta de modo tal que los ciclos de espera no sean posibles.
21
2.4.3.2 Deteccin.
Con deteccin del interbloqueo, se concedern los recursos que los procesos necesiten siempre que sea posible. Peridicamente, el sistema operativo ejecuta un algoritmo que permite detectar la condicin de crculo vicioso de espera. Puede emplearse cualquier algoritmo de deteccin de ciclos en grafos dirigidos.
El control del interbloqueo puede llevarse a cabo tan frecuentemente como las solicitudes de recursos o con una frecuencia menor, dependiendo de la probabilidad de que se produzca el interbloqueo.
Una vez detectado el interbloqueo, hace falta alguna estrategia de recuperacin. Las tcnicas siguientes son posibles enfoques, enumeradas en orden creciente de sofisticacin: 1. Abandonar todos los procesos bloqueados. Esta es, se crea o no, una de las soluciones ms comunes, si no la ms comn, de las adoptadas en un sistema operativo. 2. Retroceder cada proceso interbloqueado hasta algn punto de control definido previamente y volver a ejecutar todos los procesos. Es necesario que haya disponibles unos mecanismos de retroceso y reinicio en el sistema. El riesgo de esta solucin radica en que puede repetirse el interbloqueo original. Sin embargo, el no determinismo del procesamiento concurrente asegura, en general, que esto no va a pasar. 3. Abandonar sucesivamente los procesos bloqueados hasta que deje de haber interbloqueo. El orden en el que se seleccionan los procesos a abandonar seguir un criterio de mnimo coste. Despus de abandonar cada proceso, se debe ejecutar de nuevo el algoritmo de deteccin para ver si todava existe interbloqueo. 4. Apropiarse de recursos sucesivamente hasta que deje de haber interbloqueo. Como en el punto 3, se debe emplear una seleccin basada en coste y hay que ejecutar de nuevo el algoritmo de deteccin despus de cada apropiacin. Un proceso que pierde un recurso por apropiacin debe retroceder hasta un momento anterior a la adquisicin de ese recurso.
22
Para los puntos 3 y 4, el criterio de seleccin podra ser uno de los siguientes, consistentes en escoger el proceso con: La menor cantidad de tiempo de procesador consumido hasta ahora. El menor nmero de lneas de salida producidas hasta ahora. El mayor tiempo restante estimado. El menor nmero total de recursos asignados hasta ahora. La prioridad ms baja. Algunas de estas cantidades son ms fciles de medir que otras. El tiempo restante estimado deja lugar a dudas, especialmente. Adems, aparte de las medidas de prioridad, no existe otra indicacin del coste para el usuario frente al coste para el sistema en conjunto.
23
2.4.3.3 Recuperacin.
Una vez que se ha detectado el interbloqueo se debe romper para que los recursos puedan finalizar su ejecucin y liberar as los recursos. Para ruptura de la espera se pueden realizar varias opciones. Las idnea sera suspendiendo algunos de los procesos bloqueados para tomar sus recursos y reanudar sus ejecucin una vez que se hubiera deshecho el interbloqueo. Esta solucin solo pueden resultar factible en casos muy particulares; no se podra suspender a un proceso de escribir de escribir en una impresora para pasarla a otro proceso y reanudar despus la impresin, como tampoco se podra suspender indefinidamente un proceso de tiempo real. Las dos opciones que se suelen utilizar son: reiniciar uno o ms de los procesos bloqueados y expropiar los recursos de algunos de los procesos bloqueados. Para aplicar la primera de las opciones se deben tener en cuenta una serie de factores con el fin de elegir aquellos procesos cuya reiniciacin resulte menos traumtica. Entre los factores a tener en cuenta en cada proceso se tienen: 1. La prioridad del proceso. 2. El tiempo de procesamiento utilizado y el que le resta. 3. El tipoy nmero de recursos que posee. 4. El nmero de recursos que necesita para finalizar. 5. El nmero de otros procesos que se veran involucrados con su reiniciacin El procedimiento de la segunda opcin consiste en ir expropiando recursos de algunos procesos de forma sucesiva hasta que se consiga salir del interbloqueo. La eleccin de los recursos que se expropian se basa en criterios similares a los expuestos en la reiniciacin de los procesos. En algunos sistemas de tiempo real el interbloqueo puede tener resultados inaceptables, por lo que no se puede permitir que se presente dicha situacin. En otros sistemas se rechaza el interbloqueo, aunque la situacin pudiera ser aceptable, por el costo en tiempo y medios adicionales que conlleva la recuperacin.
24
Objetivos de la Planificacin:
El objetivo principal de la planificacin es optimizar el rendimiento del sistema y proporcionar un buen servicio a todos los procesos que se encuentren en l. En general, la planificacin trata de cubrir los siguientes objetivos:
Justicia. La planificacin debe ser lo ms justa posible con todos los procesos, sin favorecer a unos y perjudicar a otros. Mxima capacidad de ejecucin. Debe dar un servicio eficiente para que todos los trabajos se realicen lo ms rpidamente posible. Esto se puede lograr disminuyendo el nmero de cambios de proceso. Mximo nmero de usuarios interactivos. En los sistemas de tiempo compartido se tratara de que puedan estar trabajando el mayor nmero de usuarios al mismo tiempo. Producibilidad. La planificacin debe realizarse de tal forma que en todo momento pueda saberse cmo ser su ejecucin. Minimizacin de la sobrecarga. La computadora debe tener poca sobrecarga ya que esta afecta directamente al rendimiento final del sistema: a menor sobrecarga mayor velocidad de proceso. Equilibrio en el uso de recursos. Para obtener un mayor rendimiento en el uso de los recursos y que estos estn ocupados equitativamente el mayor tiempo posible. Seguridad de las prioridades. Si un proceso tiene mayor prioridad que otro, este debe ejecutarse ms rpidamente.
25
Criterios de planificacin:
Para realizar los objetivos de la planificacin, un mecanismo de planificacin debe considerar lo siguiente:
La limitacin de un proceso a las operaciones de Entrada / Salida: cuando un proceso consigue la CPU, la utiliza solo brevemente antes de generar una peticin de Entrada / Salida La limitacin de un proceso a la CPU: cuando un proceso obtiene la CPU, tiende a usarla hasta que expira su tiempo Si un proceso es por lote (batch) o interactivo: los usuarios interactivos deben recibir inmediato servicio para garantizar buenos tiempos de respuesta. Que urgencia tiene una respuesta rpida: por ejemplo, un proceso de tiempo real de un sistema de control que supervise una refinera de combustible requiere una respuesta rpida, ms rpida que la respuesta requerida por un proceso en lotes (batch) que deber entregarse al da siguiente. La prioridad de un proceso: a mayor prioridad mejor tratamiento. Frecuentemente un proceso genera fallos (carencias) de pgina:
o
Probablemente los procesos que generan pocos fallos de pgina hayan acumulado sus conjuntos de trabajo en el almacenamiento principal. Los procesos que experimentan gran cantidad de fallos de pgina an no han establecido sus conjuntos de trabajo. Un criterio indica favorecer a los procesos que han establecido sus conjuntos de trabajo. Otro criterio indica favorecer a los procesos con una tasa alta de fallos de pgina ya que rpidamente generaran una peticin de Entrada / Salida.
o o
Frecuentemente un proceso ha sido apropiado por otro de ms alta prioridad, lo cual significa lo siguiente:
o o
A menudo los procesos apropiados deben recibir un tratamiento menos favorable. Cada vez que el Sistema Operativo asume la sobrecarga para hacer ejecutar este proceso, el corto tiempo de ejecucin antes de la apropiacin no justifica la sobrecarga de hacer ejecutar al proceso en primer lugar.
Cuanto tiempo de ejecucin real ha recibido el proceso: Un criterio considera que debe ser favorecido un proceso que ha recibido muy poco tiempo de CPU.
26
Algoritmos de planificacin
Los algoritmos de planificacin son los que definen que poltica se va a seguir para que un proceso pase al estado de ejecucin.
27
2.6.1 FIFO.
Algoritmo de planificacin de FIFO
Tal vez la disciplina ms simple de planificacin sea la de primeras entradas primeras salidas (PEPS). Los procesos se despachan de acuerdo con su tiempo de llegada a la cola de procesos listos. Cuando un proceso tiene la CPU, se ejecuta hasta terminar. Es junto en el sentido formal, pero algo injusta en cuanto a que los trabajos largos hacen esperar a los cortos y los trabajos sin importancia hacen esperar a los importantes. FIFO ofrece variaciones relativamente pequeas en los tiempos de respuesta y por lo tanto es ms predecible que los otros esquemas. No es til en la planificacin para los usuarios interactivos porque no puede garantizar buenos tiempos de respuesta. El esquema FIFO rara vez se usa como esquema principal en los sistemas actuales, pero a menudo est incorporado en otros sistemas. Por ejemplo, muchos esquemas de planificacin despachan los procesos de acuerdo con la prioridad, pero los procesos con la misma prioridad se despachan de acuerdo con el esquema FIFO. Este es un algoritmo que no usa apropiacin, y que consiste en atender a los procesos por estricto orden de llegada a la lista de procesos listos. Cada proceso se ejecuta hasta que termina, o hasta que hace una llamada bloqueante (de E/S). Se trata de una poltica muy simple y sencilla de llevar a la prctica, pero muy pobre en cuanto a su comportamiento. Las caractersticas principales de este algoritmo son las siguientes: No es apropiativa. Es justa, aunque los procesos largos hacen esperar mucho a los cortos. Es una poltica predecible. El tiempo promedio de servicio es muy variable ya que esta en funcin del nmero de procesos y la duracin promedio que tenga.
Ejemplo: Proceso P1 P2 P3 Media del tiempo de espera: Caso 1) (0 + 24 + 27) / 3 =17 Caso 2) (6 + 0 + 3) / 3 = 3 Tiempo de CPU 24 3 3
28
En este esquema se tienen tres procesos (P1, P2, P3) listos para ejecutarse, con un tiempo de ejecucin de 24, 3 y 3 unidades de tiempo (para facilidad tomaremos milisegundos como unidad de tiempo) respectivamente. Los procesos se ejecutan en ese mismo orden. El primer proceso se ejecuta de inmediato y no espera nada.
El segundo proceso espera todo lo que dura en ejecutarse el primer proceso que son 24 milisegundos. Por ltimo el tercer proceso esperara la suma de lo que duran en ejecutarse los dos procesos anteriores, o sea, 27 segundos. Todo esto da como resultado un tiempo promedio de espera de 17 milisegundos. Si en cambio, el orden en que se ejecuten los procesos es como el caso 2), entonces el proceso P2 se ejecutara de inmediato, P3 esperara lo que tarde en ejecutarse P2 (3 milisegundos) y P1 esperara lo que duran los dos procesos anteriores, obteniendo un tiempo promedio de espera de 3 milisegundos. Como puede verse el tiempo promedio de espera que tengan los procesos depende por completo del orden en que llegan los procesos a ejecutarse.
29
2.6.2 SJF.
Otro mtodo de planificacin de la CPU es el algoritmo de planificacin con seleccin del trabajo ms corto (SJF, shorts job-first). Este algoritmo asocia con cada proceso la duracin de la siguiente rfaga de CPU del proceso. Cuando la CPU est disponible, se asigna al proceso que tiene la siguiente rfaga de CPU ms corta. Si las siguientes rfagas de CPU de dos procesos son iguales, se usa la planificacin FCFS para romper el empate. Observe que un trmino ms apropiado para este mtodo de planificacin sera el de algoritmo de la siguiente rfaga de CPU ms corta, ya que la planificacin depende de la duracin de la siguiente rfaga de CPU de un proceso, en lugar de depender de su duracin total. Usamos el trmino SJF porque casi todo el mundo y gran parte de los libros de texto emplean este trmino para referirse a este tipo de planificacin.
Como ejemplo de planificacin SJF, considere el siguiente conjunto de procesos, estando especificada la duracin de la rfaga de CPU en milisegundos: Proceso P1 P2 P3 P4 Tiempo de rfaga 6 8 7 3
Usando la planificacin SJF, planificaramos estos procesos de acuerdo con el siguiente diagrama de Gantt: P4 0 P1 3 P3 9 P2 16 24
El tiempo de espera es de 3 milisegundos para el proceso P1, de 16 milisegundos para el proceso P2, de 9 milisegundos para P3 y de 0 milisegundos para P4. Por tanto, el tiempo medio de espera es de (3 + 16 + 9 + 0)/4 = 7 milisegundos. Por comparacin, si estuviramos usando el esquema de planificacin FCFS, el tiempo medio de espera seria de 10,25 milisegundos.
30
El algoritmo de planificacin SJF es probablemente ptimo, en el sentido de que proporciona el tiempo medio de espera mnimo para un conjunto de procesos dado. Anteponer un proceso corto a uno largo disminuye el tiempo de espera del proceso corto en mayor medida de lo que incrementa el tiempo de espera del proceso largo. Consecuentemente, el tiempo medio de espera disminuye. La dificultad real del algoritmo SJF es conocer la duracin de la siguiente solicitud de CPU. En una planificacin a largo plazo de trabajos en un sistema de procesamiento por lotes, podemos usar como duracin el lmite de tiempo del proceso que el usuario especifique en el momento de enviar el trabajo. Con este mecanismo, los usuarios estn motivados para estimar el lmite de tiempo del proceso de forma precisa, dado que un valor menor puede significar una respuesta ms rpida. (Un valor demasiado bajo producir un error de lmite de tiempo excedido y ser necesario reenviar el proceso.) La planificacin SJF se usa frecuentemente como mecanismo de planificacin a largo plazo. Aunque el algoritmo SJF es ptimo, no se puede implementar en el nivel de la planificacin de la CPU a corto plazo, ya que no hay forma de conocer la duracin de la siguiente rfaga de CPU. Un mtodo consiste en intentar aproximar la planificacin SJF: podemos no conocer la duracin de la siguiente rfaga de CPU, pero podemos predecir su valor, por el procedimiento de confiar en que la siguiente rfaga de CPU ser similar en duracin a las anteriores. De este modo, calculando una aproximacin de la duracin de la siguiente rfaga de CPU, podemos tomar el proceso que tenga la rfaga de CPU predicha ms corta. Generalmente, la siguiente rfaga de CPU se predice como la media exponencial de las duraciones medidas de las anteriores rfagas de CPU. Sea tn la duracin de la n-esima rfaga de CPU y sea Tnel el valor predicho para la siguiente rfaga de CPU. Entonces, para a, 0? ? 1, se define tn+1 = tn + (1 - ) tn Esta frmula define un promedio exponencial. El valor de tn contiene la informacin mas reciente; tn almacena el historial pasado. El parmetro a controla el peso relativo del historial reciente y pasado de nuestra prediccin. Si = 0, entonces tn1 = tn, y el historial reciente no tiene ningn efecto (se supone que las condiciones act uales van a ser transitorias); si = 1, entonces tn+1 = tn y solo la rfaga de CPU mas reciente importa (se supone que el historial es obsoleto y, por tanto, irrelevante). Frecuentemente, = 1/2, en cuyo caso, el historial reciente y pasado tienen el mis peso. El valor inicial t0 puede definirse como una constante o como un promedio global para todo el sistema. La Figura 5.3 muestra un promedio exponencial con = 1/2 y t0 = 10.
31
Para comprender el comportamiento del promedio exponencial, podemos desarrollar la frmula para tn+l sustituyendo el valor de tn y de los terminos sucesivos, obteniendo Tn+1 = tn+(1-a)atn-1 +???+(1- )j tn-j +???+(1-(X)n+1t0 Dado que tanto a como 1-a son menores o iguales a 1, cada trmino sucesivo tiene menor peso que su predecesor. El algoritmo SJF puede ser cooperativo o apreciativo. La necesidad de elegir surge cuando un proceso llega a la cola de procesos preparados mientras que un proceso anterior esta todava en ejecucin. La siguiente rfaga de CPU del proceso que acaba de llegar puede ser ms corta que lo que quede del proceso actualmente en ejecucin. Un algoritmo SJF apropiativo detendr el proceso actualmente en ejecucin, mientras que un algoritmo sin desalojo permitir que dicho proceso termine su rfaga de CPU. La planificacin SJF apreciativa a veces se denomina planificacin con seleccin del proceso con tiempo restante ms corto. Como ejemplo, considere los cuatro procesos siguientes, estando especificada la duracin de la rfaga de CPU en milisegundos:
Proceso P1 P2 P3 P4
Tiempo de llegada 0 1 2 3
Tiempo de rfaga 8 4 9 5
Si los procesos llegan a la cola de procesos preparados en los instantes que se muestran y necesitan los tiempos de rfaga indicados, entonces la planificacin SJF apropiativa es la que se muestra en el siguiente diagrama de Gantt:
P1 0
P2 1
P4 5
P1 10
P3 17 26
32
Con la poltica del turno rotatorio, la cuestin principal de diseo es la longitud del de tiempo o fraccin que se va a usar. Los procesos cortos pasan por el sistema rpidamente si el quantum es muy pequeo. Por otro lado, se produce una sobrecarga en la gestin de las interrupciones del reloj y en la ejecucin de las funciones de planificacin y expedicin. Por tanto, se deben evitar los quantum pequeos. Una referencia til consiste en que debe ser ligeramente mayor el quantum que el tiempo necesario para una interaccin. Si es menor, la mayora de los procesos necesitarn al menos dos quantums. En el caso lmite de un quantum mayor que el mayor tiempo de ejecucin, el turno rotatorio degenera en FCFS.
33
Siguiente proceso el de tiempo restante ms corto (SRT) Mezcla de RR y SJN. Cambia el proceso que est en el cpu por el proceso con una exigencia de tiempo total menor. El tiempo de respuesta mejora para los procesos largos. El tiempo de espera es corto para la mayora de los procesos.
34
35
El mtodo de colas mltiples con retroalimentacin divide los procesos en varias colas de procesos preparados (listos): cola 0, cola 1, cola 2, y as sucesivamente, de forma que las de numeracin ms baja tendrn una mayor prioridad.
Se selecciona un nuevo proceso del principio de la cola del nivel ms bajo que tenga algn proceso cuando el proceso que usa el cpu termina su quantum. Un determinado nmero de veces, sin finalizar su ejecucin, ser colocado al final de a de nivel inmediatamente superior al anterior una vez que se haya consumido el quantum de su cola.
36
La poltica FB intenta dar un trato justo a los procesos por medio de separacin en categoras, para as darles el servicio que necesitan. Los procesos limitados por cpu irn a las colas de menor prioridad (nivel ms alto), mientras los de mayor prioridad sern aquellos procesos muy interactivos.
Soporta bien la sobrecarga, apropiativa, adaptable a las necesidades del sistema, y que cada cola puede ser gestionada de forma diferente.
37
Conclusin.
Concluimos que el concepto central de cualquier Sistema Operativo es el de proceso: una abstraccin de un programa en ejecucin tambin llamada tarea. La gestin de procesos es la tarea fundamental de cualquier sistema operativo moderno. El sistema operativo debe asignar recursos a los procesos, permitir el intercambio de informacin entre los mismos, proteger los recursos de un proceso del resto y facilitar la sincronizacin de procesos. Llegado a este punto, hemos aprendido como el sistema operativo se encuentra estructurado en una primera etapa, el desarrollo de procesos y la comprensin de los hilos de ejecucin a travs de los cuales, el sistema delega funciones y opera en forma multi funcional.
Tambin estudiamos la forma en la que el sistema gestiona las interrupciones, este se encarga de controlar los accesos al procesador, verificar el estatus de un proceso y determinar se ejecucin de acuerdo al nivel de importancia, cabe destacar que no todas las interrupciones son controladas por el SO, ya que existen interrupciones enmascaradas y que son exclusivas del hardware de nuestro ordenador. La manera en la que opera nuestra computadora es muy compleja, una vez ms comprender su funcionamiento, nos permite prever soluciones a ciertos problemas de ejecucin, as como establecer prioridades al monto de asignar tareas, sobre todo para los sistemas multiusuario.
38
Bibliografa.
Sistemas Operativos 2da Edicion William Stallings Sistemas Operativos 5ta Edicion Abraham Silberschatz http://sistemasoperativos.angelfire.com/html/2.6.2.html http://administraciondeprocesos-uscanga.blogspot.mx/2008/10/26-tecnicas-deadministracion-del.html http://www.mcgraw-hill.es/bcv/guide/capitulo/8448180321.pdf http://es.wikipedia.org/wiki/Proceso_(inform%C3%A1tica) http://administraciondeprocesos-uscanga.blogspot.mx/2008/10/24-concurrencia-ysecuenciabilidad.html http://administraciondeprocesos-delacruz.blogspot.mx/2008/10/242-sincronizacin-deprocesos-en-sc.html http://www.slideshare.net/peterluis04/sistemas-operativos-13252229 http://administraciondeprocesos-naranjo.blogspot.mx/2008/10/242-sincronizacin-deprocesos-en-sc.html http://eq2-sistemasoperativos.blogspot.mx/2012/04/2421-mecanismo-desemaforos.html
39