You are on page 1of 14

INSTITUTO TCNOLOGICO SUPERIOR DE LA SIERRA NEGRA DE AJALAPANA

MATERIA: SISTEMAS OPERATIVOS

PROFESOR: ING. MARCO ANTONIO ISIDRO ABRIL

TAREA: UNIDAD 2: ADMINOSTRACIN DE PROCESOS Y DEL PROCESADOR.

SEMESTRE: TERCERO

NOMBRE: CESAR SUAREZ GUZMAN

2.1.- CONCEPTO DE PROCESO


Proceso no es ms 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. Estos son unos puntos ms relevantes del concepto de proceso manejado en un sistema operativo: 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.

2.2.-ESTADOS Y TRANSICIONES DE LOS PROCESOS.


En este tipo de estados y de transiciones de procesos en pocas palabras esto nos dice que el procesador se encarga de hacer y realizar para estado de proceso segn como valla en funcionamiento en sistema operativo. Pero para que todo este procedimiento se lleve de forma adecuada, y sin ninguna interrupcin es necesario sabes el tipo de transiciones que tiene llevara estos son unos ejemplos mas comunes dentro de ello:

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.

En caso contrario, el proceso tal vez tenga que esperar en el estado listo durante cierto tiempo hasta que la CPU este disponible. Usando el modelo de procesos, es mucho mas fcil visualizar lo que esta sucediendo dentro del sistema.

2.3 PROCESOS LIGEROS (HILOS O HEBRAS)


Estos tipos de procesos esta en diferentes unidades las cuales les presento a continuacin: 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. .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.

Los beneficios clave de los hilos se derivan de las implicaciones del rendimiento: se tarda menos tiempo en crear un nuevo hilo de un proceso que ya existe, en terminarlo, y en hacer un cambio de contexto entre hilos de un mismo proceso. Al someter a un mismo proceso a varios flujos de ejecucin se mantiene una nica copia en memoria del cdigo, y no varias.
Un procesos 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

La concurrencia puede presentarse en tres contextos diferentes: . Varias aplicaciones: La multiprogramacin se cre para permitir que el tiempo de procesador de la mquina fuese compartido dinmicamente entre varios trabajos o aplicaciones activas. Aplicaciones estructuradas: Como ampliacin de los principios del diseo modular y la programacin estructurada, algunas aplicaciones pueden implementarse eficazmente como un conjunto de procesos concurrentes. Estructura del sistema operativo: Las mismas ventajas de estructuracin son aplicables a los programadores de sistemas y se ha comprobado que algunos sistemas operativos estn implementados como un conjunto de procesos.
Existen 2 modelos de computadora en los que se pueden ejecutar procesos concurrentes: Multiprogramacin con un nico procesador. Multiprocesador. Tambin hay diversas razones que motivan la ejecucin de procesos concurrentes en un sistema las cuales son las siguientes:

Acelera los clculos. Si se quiere que una tarea se ejecute con mayor rapidez, lo que se puede hacer es dividirla en procesos, cada uno de los cuales se ejecuta en paralelo con los dems. Posibilita el uso interactivo a mltiples usuarios que trabajan de forma simultnea. . Permite un mejor aprovechamiento de los recursos, en especial de la CPU, ya que pueden aprovechar las fases de entrada-salida de unos procesos para realizar las fases de procesamiento de otros. As como existen las razones que motivan la ejecucin de procesos concurrentes, tambin existen sus contras: Inanicin e interrupcin de procesos Ocurrencia de bloqueos Que dos o ms procesos requieran el mismo recurso (No apropiativo).
TIPOS DE PROCESOS CONCURRENTES.

Los procesos que ejecutan de forma concurrente en un sistema se pueden clasificar como: .

Proceso independiente: Es aquel que ejecuta sin requerir la ayuda o cooperacin de otros procesos. Un claro ejemplo de procesos independientes son los diferentes shells que se ejecutan de forma simultnea en un sistema. Procesos cooperantes: Son aquellos que estn diseados para trabajar conjuntamente en alguna actividad, para lo que deben ser capaces de comunicarse e interactuar entre ellos. En ambos tipos de procesos (independientes y cooperantes), puede producirse una serie de interacciones entre ellos y pueden ser de dos tipos: . Interacciones motivadas porque los procesos comparten o compiten por el acceso a recursos fsicos o lgicos. Por ejemplo, dos procesos independientes compiten por el acceso a disco o para modificar una base de datos. . Interaccin motivada porque los procesos se comunican y sincronizan entre s para alcanzar un objetivo comn, Por ejemplo, un compilador que tiene varios procesos que trabajan conjuntamente para obtener un solo archivo de salida.

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.

Algunos ejemplos de algoritmos clsicos de exclusin mutua son:


El algoritmo de Dekker. El algoritmo de Peterson

2.4.2 SINCRONIZACIN DE PROCESOS EN S.C.


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.

Los servicios bsicos de comunicacin son: 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 La comunicacin puede ser sncrona y asncrona: a. sncrona: los dos procesos han de ejecutar servicios de forma simultnea. El emisor ha de ejecutar el servicio enviar mientras el receptor ejecuta recibir. b. asncrona: el emisor hace el envo y prosigue su ejecucin. El SO ofrece un almacenamiento intermedio para guardar la informacin enviada, hasta que el receptor la solicite.

2.4.2.1 MECANISMO DE SEMFOROS.


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.

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

2.4.2.2 MECANISMO DE MONITORES.


Monitores son estructuras de datos utilizadas en lenguajes de programacin para sincronizar dos o ms procesos o hilos de ejecucin que usan recursos compartidos. 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.

2.4.3.- INTERBLOQUEO (DEADLOCK)


Es 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.

RECURSOS Un sistema se compone de un numero 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.

Por lo general, una computadora tiene distintos recursos que pueden ser otorgados. Algunos recursos podrn tener varias instancias idnticas, como es el caso de tres unidades de cinta. Si se tienen disponibles varias copias de un recurso, cualquiera de ellas se pude utilizar para satisfacer cualquier solicitud del recurso. Un recurso es cualquier cosa que solo puede ser utilizada por un nico proceso en un instante dado. Los recursos son de dos tipos:

Apropiable No apropiables

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.

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. 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.

2.4.3.3.- RECUPERACIN DE INTERBLOQUEO


En este tipo ah 2 tipos de recuperacin de interbloqueo

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.

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.

Hay que destacar el hecho de que cuanto menos se llame al dispatcher menos tiempo ocupa la CPU un programa del sistema operativo, y, por tanto, se dedica ms tiempo a los procesos del usuario (un cambio de proceso lleva bastante tiempo). Se puede definir el scheduling -algunas veces traducido como -planificacincomo 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.

PLANIFICACIN A LARGO PLAZO PLANIFICACIN A MEDIANO PLAZO PLANIFICACIN A CORTO PLAZO

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. 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 importantes de medida del comportamiento del sistema pueden verse deteriorados, como por ejemplo el tiempo medio de espera. b) Rendimiento: Es una medida del nmero 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
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.

Los FIFOs se usan comnmente en circuitos de electrnica para almacenaje y hacer control de flujo. Hablando de hardware forma 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.

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.

Supongamos que en un momento dado existen tres rfagas listos R1, R2 y R3, sus tiempos de ejecucin respectivos son 24, 3 y 3 ms. El proceso al que pertenece la rfaga R1 es la que lleva ms tiempo ejecutable, seguido del proceso al que pertenece R2 y del de R3. FIFO F = (24 + 27 + 30) / 3 = 27 ms. SJF F = (3 + 6 + 30) / 3 = 13 ms.

2.6.3 RR
Cada proceso tiene asignado un intervalo de tiempo de ejecucin, llamado cuantum o cunto. 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.

2.6.4 Queves Multi-level


Un algoritmo de planificacin multinivel particin, 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.

You might also like