So 2da unidad

17

Transcript of So 2da unidad

Page 1: So 2da unidad
Page 2: So 2da unidad

2.1 Concepto de proceso. Un proceso es un programa en ejecución.

Un proceso es una secuencia de acciones derivadas de la ejecución de una serie de instrucciones. Esto implica que: un proceso puede requerir la ejecución de uno o varios

programas; y

que un programa puede formar parte de más de un proceso.

Un proceso necesita de ciertos recursos para completar su tarea, incluye: tiempo de CPU,

memoria,

archivos,

y dispositivos de E/S,

Page 3: So 2da unidad

2.2 Estados y transiciones de los procesos Ejecución (Activo). En este estado está el proceso que está siendo

ejecutado por el procesador, es decir, que está en fase de procesamiento. En esta fase el estado del proceso reside en los registros del procesador.

• Bloqueado. Un proceso bloqueado está esperando a que ocurra un evento y no puede seguir ejecutando hasta que suceda el evento. Una situación típica de proceso bloqueado se produce cuando el proceso solicita una operación de E/S. Hasta que no termina esta operación, el proceso queda bloqueado. En esta fase, el estado del proceso reside en el BCP.

• Listo. Un proceso está listo para ejecutar cuando puede entrar en fase de procesamiento. Dado que puede haber varios procesos en este estado, una de las tareas del sistema operativo será seleccionar aquel que debe pasar a ejecución. El módulo del sistema operativo que toma esta decisión se denomina planificador. En esta fase, el estado del proceso reside en el BCP.

Page 4: So 2da unidad
Page 5: So 2da unidad

2.3 Procesos ligeros: Hilos o hebras

Un proceso ligero, o thread, es un programa en ejecución (flujo de ejecución) que comparte la imagen de memoria y otras informaciones con otros procesos ligeros.

Un proceso ligero se define coMo una función cuya ejecución se puede lanzar en paralelo con otras.

Cada proceso ligero tiene informaciones que le son propias y que no comparte con otros procesos ligeros. Las informaciones propias se refieren fundamentalmente al contexto de ejecución, pudiéndose destacar las siguientes: Contador de programa.

Pila.

Registros.

Estado del proceso ligero (ejecutando, listo o bloqueado).

Page 6: So 2da unidad

Todos los procesos ligeros de un mismo proceso comparten la información del mismo.

En concreto, comparten:

Espacio de memoria.

Variables globales.

Archivos abiertos.

Procesos hijos.

Temporizadores.

Señales y semáforos.

Contabilidad.

Page 7: So 2da unidad

2.4 Concurrencia y secuenciabilidad.

La concurrencia es el solapamiento en el tiempo de la ejecución de varias actividades.

Dos procesos, P1 y P2, se ejecutan concurrentemente si la primera instrucción de P1 se ejecuta entre la primera y la última instrucción de P2.

Page 8: So 2da unidad

2.5 Niveles, objetivos y criterios de planificación. La planificación consiste en un conjunto de políticas y

mecanismos incorporados al S. O. y por los que se rige el orden en que se completa el trabajo que hay que realizar. Su objetivo primordial es optimizar el rendimiento del sistema.

La planificación del procesador es la asignación de los procesadores físicos a los procesos. La parte del S. O. encargada de tomar esta decisión se denomina planificador y el algoritmo que utiliza se llama algoritmo de planificación o disciplina.

Page 9: So 2da unidad

Niveles de planificación Planificación de alto nivel:— También se denomina Planificación de trabajos.— Determina a qué trabajos se les va a permitir competir activamente por los recursos del sistema, lo cual se denomina Planificación de admisión.

Planificación de nivel intermedio:— Determina a qué procesos se les puede permitir competir por la cpu.— Responde a fluctuaciones a corto plazo en la carga del sistema y efectúa “suspensiones” y “activaciones” (“reanudaciones”) de procesos.— Debe ayudar a alcanzar ciertas metas en el rendimiento total del sistema.

Planificación de bajo nivel:— Determina a qué proceso listo se le asigna la cpu cuando esta queda disponible y asigna la cpu al mismo, es decir que “despacha” la cpu al proceso.— La efectúa el Despachador del Sistema Operativo, el que opera muchas veces por segundo y reside siempre en el almacenamiento primario.

Page 10: So 2da unidad
Page 11: So 2da unidad

Objetivos: Ser justo; Todos los procesos son tratados de igual manera, Ningún proceso es

postergado indefinidamente. Maximizar la capacidad de ejecución; Maximizar el número de procesos

servidos por unidad de tiempo. Maximizar el número de usuarios interactivos recibiendo unos tiempos

de respuesta aceptables; En un máximo de unos segundos. Equilibrar el uso de recursos; Favorecer a los procesos que utilizarán

recursos infrautilizados. Lograr un equilibrio entre respuesta y utilización; La mejor manera de

garantizar buenos tiempos de respuesta es disponer de los recursos suficientes cuando se necesitan, pero la utilización total de recursos podrá ser pobre.

Evitar la postergación indefinida; Se utiliza la estrategia del “envejecimiento” , Mientras un proceso espera por un recurso su prioridad debe aumentar, así la prioridad llegará a ser tan alta que el proceso recibirá el recurso esperado.

Asegurar las prioridades; Los mecanismos de planificación deben favorecer a los procesos con prioridades más altas.

Dar preferencia a los procesos que mantienen recursos no compartidos.

Page 12: So 2da unidad

2.6 Técnicas de administración del planificador. Cíclica o Round-robin: El algoritmo cíclico está diseñado para hacer un

reparto equitativo del tiempo del procesador, por lo que está especialmentedestinado a los sistemas de tiempo compartido.

Los procesos están organizados en forma de cola circular, eligiéndose para suejecución el proceso cabecera de la cola.

Un proceso permanecerá en ejecución hasta que ocurra una de las doscondiciones siguientes: El proceso pasa a estado de bloqueado, porque solicita un servicio del sistema

operativo. El proceso consume su rodaja de tiempo, es decir, lleva ejecutando el tiempo

estipulado de rodaja.

Un proceso que ha consumido su rodaja de tiempo es expulsado y pasa a ocuparel último lugar en la cola. De esta forma, se consigue que todos los procesospasen a ejecutar, repartiendo el tiempo del procesador de forma homogéneaentre ellos. La Figura muestra cómo el proceso 5, al consumir su rodaja detiempo, pasa al final de la cola.

Page 13: So 2da unidad

2.6 Técnicas de administración del planificador. FIFO: En este caso, la cola de procesos en estado de listo

está ordenada de acuerdo al instante en que los procesospasan al estado de listo. Los que llevan más tiempoesperando están más cerca de la cabecera.

El algoritmo es sencillo, puesto que consiste en tomar paraejecutar al proceso de la cabecera de la cola. No se planteaexpulsión, por lo que el proceso ejecuta hasta que realizauna llamada bloqueante al sistema operativo.

Es aplicable a los sistemas batch, pero no a los interactivos.

Page 14: So 2da unidad

2.6 Técnicas de administración del planificador. Prioridades: En el algoritmo de prioridades se selecciona para

ejecutar el proceso en estado de listo que tenga la máximaprioridad.

Cuando las prioridades son fijas puede surgir el problema de lainanición, que implica que un proceso puede estar esperandoindefinidamente sin llegar a ejecutar. Esto ocurrirá si vanapareciendo siempre procesos de mayor prioridad que estén enestado de listo.

Para evitar este problema, se puede añadir un mecanismo deenvejecimiento, que se encargue dc aumentar la prioridad a losprocesos que lleven un determinado tiempo esperando a serejecutados.

Page 15: So 2da unidad

2.6 Técnicas de administración del planificador. Primero el trabajo más corto: Este algoritmo exige conocer a

priori el tiempo de ejecución de los procesos, por lo que esaplicable a trabajos batch repetitivos cuyo comportamiento setenga analizado.

El algoritmo consiste en seleccionar para ejecución al procesolisto con menor tiempo de ejecución. No se plantea expulsión,por lo que el proceso sigue ejecutándose mientras lo desee.

La ventaja de este algoritmo es que produce el menor tiempo derespuesta, pero a costa de penalizar los trabajos de mayor tiempode ejecución. También puede sufrir de inanición, puesto que, enel caso de que estén continuamente apareciendo procesos contiempo de ejecución pequeño, un proceso largo puede no llegar aejecutar.

Page 16: So 2da unidad

2.6 Técnicas de administración del planificador. Planificación de sistemas de tiempo real: Los sistemas de tiempo real se

caracterizan porque los procesos tienen que ejecutar en instantespredeterminados. Se pueden diferenciar dos tipos de procesos de tiempo real: aplazo fijo y periódico. La diferencia estriba en que los de plazo fijo tienen queejecutar una vez, en un instante determinado, mientras que los periódicosdeben ejecutar de forma repetitiva cada cierto tiempo.

La planificación de tiempo real está basada en el reloj de tiempo de lacomputadora y su objetivo es conseguir que no se retrase la ejecución de losprocesos. En los denominados sistemas de tiempo real críticos, los procesostienen asignada una franja de tiempo en la cual deben ejecutar y. en ningúncaso, se ha de rebasar el tiempo máximo sin que el proceso complete suejecución.

Como muestra la Figura, se asocia a cada proceso el instante en el que debeejecutar. Los procesos que no han alcanzado su tiempo de ejecución están enuna cola de espera, mientras que los que han alcanzado el tiempo de ejecuciónpasan a las colas de listo para ejecutar. La planificación consiste en seleccionarde entre estos últimos el proceso a ejecutar.

Page 17: So 2da unidad

2.6 Técnicas de administración del planificador.

Planificación de dos niveles : Hasta ahora más o menos hemossupuesto que todos los procesos ejecutables están en la memoriaprincipal. Si la memoria principal disponible no es suficiente, algunosde los procesos ejecutables tendrán que mantenerse en el disco total oparcialmente. Esta situación tiene implicaciones importantes para laplanificación, ya que el tiempo de conmutación de procesos cuandohay que traer los procesos del disco es varios órdenes de magnitudmayor que cuando la conmutación es a un proceso que ya está en lamemoria.

Aquí también podríamos usar planificación round robin, por prioridado por cualquiera de varios otros métodos. Los dos planificadorespodrían usar el mismo algoritmo o algoritmos distintos.