Está en la página 1de 12

INSTITUTO TECNOLOGICO SUPERIOR DE LA SIERRA NEGRA DE AJALPAN

ING. EN SISTEMAS COMPUTACIONALES

CATEDRATICO: ING. MARCO ANTONIO ISIDRO ABRIL

MATERIA: SISTEMAS OPERATIVOS I

UNIDAD II: ADMINISTRACIN DE PROCESOS Y DEL PROCESADOR

ALUMNO: RAUL DIONICIO PANZO

3ER. SEMESTRE

AJALPAN, PUE., SEPTIEMBRE DE 2012

Sistemas Operativos I

ITSSNA

ADMINISTRACIN DE PROCESOS Y DEL PROCESADOR CONCEPTO DE PROCESO Un 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 uno 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, as como tambin este se debe hacer cargo de la comunicacin entre procesos, pero lo hace a peticin de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcacin (fork). Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de memoria.

Los sistemas operativos que manejan el concepto de proceso deben contar con algn mecanismo para crear todos los procesos necesarios. En los sistemas muy sencillos, o en los diseados para ejecutar solo una aplicacin. En otros sistemas operativos existen llamadas al sistema para crear un proceso, cargar su memoria y ponerlo en ejecutar. Sea cual sea la naturaleza exacta de la llamada al sistema. Los procesos necesitan poder crear otros procesos.

Ral Dionicio Panzo

Sistemas Operativos I

ITSSNA

En MINIX, los procesos se crean con la llamada al sistema FORK (bifurcar), que crea una copia idntica del proceso invocador. El proceso hijo tambin puede ejecutar FORK, as que es posible tener un rbol de proceso. 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. Aunque cada proceso se una entidad independiente, con su propio contador de programa y estado interno, los procesos a menudo necesitan interactuar con otros procesos. Un proceso podra generar ciertas salidas que otro proceso utilizan como entradas, en el comando de Shell. Cuando un proceso se bloquea, lo que hace porque le es imposible continuar lgicamente, casi siempre porque est separando entradas que todava no estn disponibles, tambin puede ser que un programa que conceptualmente est listo y en condiciones de ejecutarse sea detenido porque el sistema operativo ha decidido asignar la CPU a otro proceso durante un tiempo. Estas dos condiciones son totalmente distintas, en el primer caso, la suspensin es inherente al problema (no es posible procesar la lnea de comandos del usuarios antes de que este la teclee). En el segundo caso, se trata de un tecnicismo del sistema (no hay suficiente: CPU para darle a cada proceso su propio procesador privado).

1. Ejecutndose (usando realmente la CPU en este instante). 2. Listo (se puede ejecutar, pero se suspendi temporalmente para dejar que otro proceso se ejecute). 3. Bloqueo (no puede ejecutarse en tanto no ocurra algn evento externo).

Ral Dionicio Panzo

Sistemas Operativos I Transiciones entre estos tres estados

ITSSNA

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. o La transicin 2 ocurre cuando el planificador decide que el proceso en ejecucin ya se ejecut durante suficiente tiempo y es ahora de dejar que otros procesos tengan algo de tiempo de CPU. o 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 est ejecutando en ese instante, se dispara de inmediato la transaccin 3 y el proceso comienza a ejecutarse.

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. Esta distincin ha conducido en los sistemas operativos actuales a desarrollar la construccin conocida como thread, cuyas traducciones ms

Ral Dionicio Panzo

Sistemas Operativos I

ITSSNA

frecuentes son hilo, hebra y proceso ligero. Si se tiene esta divisin de caractersticas, la unidad de asignacin de la CPU se conoce como hilo, mientras que a la unidad que posee recursos se le llama 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.

CONCURRENCIA Y SECUENCIABILIDAD. La concurrencia comprende un gran nmero de cuestiones de diseo, incluyendo la comunicacin entre procesos, comparacin 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: La multiprogramacin se cre para permitir que el tiempo de procesador de la mquina fuese compartido dinmicamente entre varios trabajos o aplicaciones activas.

Ral Dionicio Panzo

Sistemas Operativos I

ITSSNA

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 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. NIVELES, OBJETIVOS Y CRITERIOS DE PLANIFICACIN Los mecanismos de planificacin del procesador son las base de los SO multiprogramados. Mediante la conmutacin del procesador entre distintos procesos, el SO hace que la computadora sea ms productiva. La correcta utilizacin resulta crucial en el diseo del SO.

Conceptos Bsicos

Ciclo de rfagas de CPU y de E/S Una planificacin adecuada del CPU depende de: La ejecucin de un proceso consta de un ciclo de ejecucin en el CPU, seguido de una espera de E/S Los procesos alternan entre estos dos estados.

La ejecucin de un proceso comienza con una rfaga del CPU, seguida de una rfaga de E/S y as sucesivamente. La rfaga final de CPU concluye con una solicitud al sistema para terminar la ejecucin.

Ral Dionicio Panzo

Sistemas Operativos I

ITSSNA

La duracin de las rfagas de CPU, varan dependiendo del proceso y del equipo. CRITERIOS DE PLANIFICACIN Los diferentes algoritmos de planificacion del CPU cuentan con distintas propiedades y la eleccin del mismo pudiera favorecer a algunos procesos por sobre otros. Las caractersticas que se usen para realizar la comparacin pueden afectar a la determinacin de cul es el algoritmo mejor.

Los criterios que se pueden utilizar son los siguientes: Utilizacin del CPU, aqu se pretende utilizar el procesador al mximo, es decir en una escala del 0 al 100% de utilizacin, se considera un sistema ligeramente cargado el que oscila en el 40% e intensamente utilizado los que estn alrededor del 90%.

Ral Dionicio Panzo

Sistemas Operativos I

ITSSNA

Tasa de procesamiento, si el CPU est ocupado ejecutando procesos, se estar llevando a cabo un trabajo. Una medida de esa cantidad de trabajo es el nmero de procesos que se completan por unidad de tiempo, esto es la llamada tasa de procesamiento. Un proceso largo se considera el que se terminara uno por hora, los cortos son los que se pueden completar en 10 minutos o menos. Tiempo de ejecucin, este es el intervalo que va desde la iniciacin del proceso hasta su terminacin. Este es la suma de los periodos que el proceso invierte en espera para cargarse en memoria, esperar en la cola de procesos preparados, ejecutarse en el CPU y realizar las operaciones de E/S.

Tiempo de espera, este es la suma de los periodos invertidos en la espera en la cola de procesos preparados. El algoritmo de planificacin del procesador no afecta a la cantidad de tiempo durante la que un proceso se ejecuta; afecta solo al periodo de tiempo que un proceso invierte en esperar en la cola de procesos preparados. Tiempo en respuesta, es el tiempo en que un proceso tarda en empezar a responder, no el tiempo en que tarda en enviar una salida toda la informacin de respuesta. Generalmente, el tiempo de respuesta est limitado por la velocidad del dispositivo de salida. TCNICAS DE ADMINISTRACIN DEL PLANIFICADOR

Planificacin FCFS Este es el algoritmo ms simple de planificacin (First Come, First Served; primero en llegar, primero servido). En este esquema se asigna el CPU al primer proceso que lo solicite. La implementacin de esta poltica se gestiona con una cola FIFO (First In, First Out; primero en entrar, primero en salir). Cuando un proceso entra en la cola de procesos preparados, su PCB se coloca al final de la cola. Cuando el procesador queda libre, se le asigna al siguiente proceso de la cola y al pasar a ejecutarse se elimina de la cola.

Ral Dionicio Panzo

Sistemas Operativos I

ITSSNA

Si lo procesos llegan en el orden P1, P2, P3 y se sirven segn el orden FCFS, obtendremos el resultado mostrado en el siguiente diagrama de Gantt:

El tiempo de espera es de 10 milisegundos para el proceso P1, de 24 milisegundos para el proceso P2 y de 27 milisegundos para P3. Por tanto el tiempo medio de espera es de (0+24+27)/3 = 17 milisegundos. Sin embargo, si los procesos llegan en el orden P2, P3, P1, los resultados se muestran en el siguiente diagrama de Gantt:

Planificacin SJF

Shortest-job-First (Trabajo ms corto Primero), este algoritmo asocia con cada proceso la duracin de la siguiente rfaga de CPU del proceso. Cuando el CPU esta disponible, se asigna al proceso que tiene la siguiente rfaga de CPU ms corta. Cuando las siguientes rfagas de CPU de dos procesos son iguales, se usa la planificacin FCFS para romper el empate. Un trmino ms apropiado 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, en lugar de depender de la duracin total.

Como ejemplo de planificacin SFJ, tenemos el siguiente conjunto de procesos, estando especificada la duracin de la rfaga de CPU en milisegundos:

Usando la planificacin SJF, planificaramos estos procesos de acuerdo al siguiente diagrama de Gantt:

Ral Dionicio Panzo

Sistemas Operativos I

ITSSNA

El tiempo de espera es de 3 milisegundos para el proceso P1, de 16 milisegundos para el proceso P2, de 9 milisegundos para el proceso P3 y de 0 milisegundos para el proceso 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 de espera seria de 10.25 milisegundos.

Planificacin por Prioridades

El algoritmo SJF es un caso especial del algoritmo de planificacin por prioridades general. A cada proceso se le asocia una prioridad y el CPU se le asigna al proceso que tenga la prioridad ms alta. Los procesos con la misma prioridad se planifican con un orden FCFS. Un algoritmo SJF es simplemente un algoritmo por prioridades donde la prioridad (p) es el inverso de la siguiente rfaga de CPU (predicha). Cuanto ms larga sea la rfaga del CPU, menor ser la prioridad y viceversa.

Por ejemplo, consideremos el siguiente conjunto de procesos y supongamos que llegan en el instante, en este orden P1, P2, , P5, estando la duracin de las rfagas de CPU especificada en milisegundos:

Usando la planificacin por prioridades, vamos a planificar estos procesos de acuerdo con el siguiente diagrama de Gantt:

El tiempo de espera es de 8.2 milisegundos.

Planificacin por turnos

El algoritmo de planificacin por turnos (RR, round robin) est diseado especialmente para los sistemas de tiempo compartido. Es similar a la planificacin FCFS, pero se aade la tcnica de desalojo para conmutar entre procesos. En este tipo de sistema se define

Ral Dionicio Panzo

10

Sistemas Operativos I

ITSSNA

una pequea unidad de tiempo, denominada cuanto de tiempo, franja temporal. Generalmente, el cuanto de tiempo se encuentra en el rango comprendido entre 10 y 100 milisegundos. La cola de procesos preparados se trata como una cola circular. El planificador del CPU recorre la cola de procesos preparados, asignando el CPU a cada proceso durante un intervalo de tiempo de hasta 1 cuanto de tiempo.

El tiempo medio de espera en los sistemas por turnos es, con frecuencia, largo. Consideremos el siguiente caso, un conjunto de procesos llega en el instante 0 especificada la duracin en rfagas de milisegundos:

Planificacin mediante colas multinivel

Un algoritmo de planificacin mediante colas multinivel divide la cola de procesos preparados en varias colas distintas.

Planificacin mediante colas multinivel realimentadas

El algoritmo de planificacin mediante colas multinivel realimentadas permite mover un proceso de una cola a otra. La idea es separar los procesos en funcin de las caractersticas de sus rfagas de CPU. Si un proceso utiliza demasiado tiempo de CPU, se pasa a una cola de prioridad ms baja. Este esquema deja los procesos limitados por E/S y los procesos interactivos en las colas de prioridad ms alta. Adems un proceso

Ral Dionicio Panzo

11

Sistemas Operativos I

ITSSNA

que est esperando demasiado tiempo en una cola de baja prioridad puede pasarse a una cola de prioridad ms alta. Este mecanismo de envejecimiento evita el bloqueo indefinido.

Consideremos un planificador de colas multinivel retroalimentadas, numeradas de 0 a 2 (ver figura abajo). En primer lugar, el planificador ejecuta todos los procesos de la cola 0. Solo cuando la cola 0 este vaca ejecutara los procesos de la cola 1. De forma similar los procesos de la cola 2 solo se ejecutaran si las colas 0 y 1 estn vacas. Un proceso que llegue a la cola 1 desalojara a un proceso de la cola 2 y este proceso de la cola 1 ser, a su vez, desalojado por un proceso que llegue de la cola 0.

Ral Dionicio Panzo

12

También podría gustarte