You are on page 1of 13

Tecnolgico Superior de la Sierra Negra de Ajalpan

Facilitador: Marco Antonio Isidro Abril Materia: Sistemas Operativos Tema: Unidad 2 Alumna: Beatriz Villeda Guerrero 3er Semestre Ing. En Sistemas Computacionales

Sistemas Operativos

Pgina 1

Tecnolgico Superior de la Sierra Negra de Ajalpan

Concepto de procesos

Se puede definir como el programa en ejecucin: "Una unidad de actividad que se caracteriza por la ejecucin de una secuencia de instrucciones, un estado actual, y un conjunto de recursos del sistemas asociados".

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 son independientes y no comparten memoria (es decir, informacin) con el proceso que los ha creado. 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.

Sistemas Operativos

Pgina 2

Tecnolgico Superior de la Sierra Negra de Ajalpan

Estados y transiciones de los procesos


Como se indico anteriormente, el proceso es la unidad de procesamiento gestionada por el sistema operativo. Para poder realizar este cometido, el proceso tiene asociado una serie de elementos de informacin, que se resumen en la Figura 3.8, que se analizan seguidamente. Estos elementos se organizan en tres grupos: estado del procesador, imagen de memoria y tablas del sistema operativo. Estado del procesador El estado del procesador esta formado por el contenido de todos sus registros, que se enumeran seguidamente:

Registros generales. De existir registros especficos de coma flotante tambin se incluyen aqu. Contador de programa.

Informacin del proceso


Puntero de pila. Registro o registros de estado. Registros especiales. Como puede ser el RIED (registro identificador de espacio de direccionamiento).

Sistemas Operativos

Pgina 3

Tecnolgico Superior de la Sierra Negra de Ajalpan

El estado del procesador de un proceso reside en los registros del procesador, cuando el proceso esta en ejecucin, o en el bloque de control de proceso (BCP), cuando el proceso no esta en ejecucin. Cuando el proceso esta ejecutando, el estado del procesador varia de acuerdo al flujo de instrucciones maquina ejecutado. En este caso, la copia del estado del procesador que reside en el BCP no esta actualizada. Tengas en cuenta que los registros de la maquina se utilizan para no tener que acceder a la informacin de memoria, dado que es mucho mas lenta. Por tanto, no tiene sentido plantear que, en cada modificacin de un registro, se actualice su valor en el BCP, puesto que esta en memoria. Sin embargo, cuando se detiene la ejecucin de un proceso, como consecuencia de la ejecucin de una interrupcin, es muy importante que el sistema operativo actualice la copia del estado del procesador en su BCP. En trminos concretos, la rutina del sistema operativo que trata las Interrupciones lo primero que ha de hacer es salvar el estado del procesador en el BCP del proceso interrumpido.

Procesos ligeros. Hilos o hebras


Un proceso ligero, o thread, es un programa en ejecucin (flujo de ejecucin) que comparte la imagen de memoria y otras informaciones con otros procesos ligeros. Un proceso puede contener un solo flujo de ejecucin, como ocurre en los procesos clsicos, o ms de un flujo de ejecucin (procesos ligeros). Desde el punto de vista de la programacin, un proceso ligero se define como una funcin cuya ejecucin se puede lanzar en paralelo con otras. El hilo de ejecucin primario, o proceso ligero primario, corresponde a la funcin main. 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 ejecucin, pudindose destacar las siguientes:

Contador de programa. Pila. Registros. Estado del proceso ligero (ejecutando, listo o bloqueado).
Pgina 4

Sistemas Operativos

Tecnolgico Superior de la Sierra Negra de Ajalpan

Todos los procesos ligeros de un mismo proceso comparten la informacin del mismo. En concreto, comparten:

Espacio de memoria. Variables globales. Archivos abiertos. Procesos hijos. Temporizadores. Senales y semforos. Contabilidad.

Es importante destacar que todos los procesos ligeros de un mismo proceso comparten el mismo espacio de direcciones de memoria, que incluye el cdigo, los datos y las pilas de los diferentes procesos ligeros. Esto hace que no exista proteccin de memoria entre los procesos ligeros de un mismo proceso, algo que si ocurre con los procesos convencionales. El proceso ligero constituye la unidad ejecutable en Windows NT. La Figura representa de forma esquemtica la estructura de un proceso de Windows NT con sus procesos ligeros.

Proceso ligero

Sistemas Operativos

Pgina 5

Tecnolgico Superior de la Sierra Negra de Ajalpan

Concurrencia y secuencialidad
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. 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.
Sistemas Operativos Pgina 6

Tecnolgico Superior de la Sierra Negra de Ajalpan

Multicomputadora. Es una maquina 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. En general, la concurrencia ser aparente siempre que el nmero de procesos sea mayor que el de procesadores disponibles, es decir, cuando haya ms de un proceso por procesador. La concurrencia ser real cuando haya un proceso por procesador. Aunque puede parecer que la intercalacin y la superposicin de la ejecucin de procesos presentan formas de ejecucin distintas, se ver que ambas pueden contemplase como ejemplos de procesos concurrentes Existen diversas razones que motivan la ejecucin de procesos concurrentes en un sistema: Facilita la programacin de aplicaciones al permitir que stas se estructuren como un conjunto de procesos que cooperan entre s para alcanzar un objetivo comn. 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 mas procesos requieran el mismo recurso (No apropiativo)

Sistemas Operativos

Pgina 7

Tecnolgico Superior de la Sierra Negra de Ajalpan

Niveles, objetivos y criterios de planificacin


En pocas pasadas de los sistemas de procesamiento por lotes, con una entrada en forma de imgenes de tarjetas en una cinta magntica, el algoritmo de planificacin era sencillo: solo haba que ejecutar el siguiente trabajo en la cinta. En los sistemas de multiusuario de tiempo compartido, que se combinaban con un fondo de trabajos procesados en lote, el algoritmo era ms complejo. En forma invariable, existan varios usuarios en espera de servicio y podan existir tambin otros trabajos para ser procesados en lote. Incluso en los sistemas puros de tiempo compartido existen con frecuencia los trabajos colaterales, como el sistema de correo electrnico, que a menudo se ejecuta todo el tiempo para enviar o recibir correo o noticias. Cuando mas de un proceso es ejecutable, el Sistema Operativo debe decidir cual de ellos deber ejecutarse primero. Hay que tener una planificacin de los procesos que quieren ejecutarse en el sistema. La planificacin es una funcin primordial del Sistema Operativo. La mayora de los recursos, si no es que todos, se planifican antes de que se utilicen. La asignacin de procesadores fsicos a los procesos hace posible que estos realicen su trabajo, y tal asignacin es un problema complejo manejado por el Sistema Operativo.

Concepto de Planificacin

La planificacin hace referencia a un conjunto de polticas y mecanismos incorporados al sistema operativo que gobiernan el orden en que se ejecutan los trabajos que deben ser cumplimentados por el sistema informtico. Objetivo 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 el. En general, la planificacin trata de cubrir los siguientes objetivos:

Justicia. La planificacin debe ser lo mas justa posible con todos los procesos, sin favorecer a unos y perjudicar a otros.

Sistemas Operativos

Pgina 8

Tecnolgico Superior de la Sierra Negra de Ajalpan

Mxima capacidad de ejecucin. Debe dar un servicio eficiente para que todos los trabajos se realicen lo mas rpidamente posible. Esto se puede lograr disminuyendo el numero de cambios de proceso. Mximo numero de usuarios interactivos. En los sistemas de tiempo compartido se tratara de que puedan estar trabajando el mayor numero de usuarios al mismo tiempo. Predecibilidad. La planificacin debe realizarse de tal forma que en todo momento pueda saberse como 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 mas rpidamente. Evitar la postergacin indefinida. Esto se logra aumentando la prioridad de un proceso mientras espere por un recurso. La prioridad llegara a ser tan alta que al proceso le ser asignado el recurso que pidi.

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.

Sistemas Operativos

Pgina 9

Tecnolgico Superior de la Sierra Negra de Ajalpan

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, mas rpida que la respuesta requerida por un proceso en lotes (batch) que deber entregarse al dsa siguiente. La prioridad de un proceso: a mayor prioridad mejor tratamiento. Frecuentemente un proceso genera fallos (carencias) de pagina: o Probablemente los procesos que generan pocos fallos de pagina hayan acumulado sus conjuntos de trabajo en el almacenamiento principal. o Los procesos que experimentan gran cantidad de fallos de pagina aun no han establecido sus conjuntos de trabajo. o Un criterio indica favorecer a los procesos que han establecido sus conjuntos de trabajo. o Otro criterio indica favorecer a los procesos con una tasa alta de fallos de pagina ya que rpidamente generaran una peticin de Entrada / Salida. Frecuentemente un proceso ha sido apropiado por otro de mas alta prioridad, lo cual significa lo siguiente: o A menudo los procesos apropiados deben recibir un tratamiento menos favorable. o 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.

Cuanto tiempo adicional va a necesitar el proceso para terminar: los tiempos promedio de espera pueden reducirse priorizando los procesos que requieren de un tiempo de ejecucin mnimo para su terminacin, pero pocas veces es posible conocer la cantidad de tiempo adicional que cada proceso necesita para terminar.

Sistemas Operativos

Pgina 10

Tecnolgico Superior de la Sierra Negra de Ajalpan

Tcnicas de administracin del planificador

Planificacin por Prioridades

"Los procesos se despachan de acuerdo con su tiempo de llegada a la cola de listos. Una vez que el proceso obtiene la CPU, se ejecuta hasta terminar, ya que es una disciplina no apropiativa. Puede ocasionar que procesos largos hagan esperar a procesos cortos y que procesos no importantes hagan esperar a procesos importantes. Es ms predecible que otros esquemas. No puede garantizar buenos tiempos de respuesta interactivos. Suele utilizarse integrado a otros esquemas, por ejemplo, de la siguiente manera: Los procesos se despachan con algn esquema de prioridad. Los procesos con igual prioridad se despachan FIFO. SJF El algoritmo SJF es un caso especial de algoritmos de la planificacin por prioridades generales. A cada proceso de le asocia una prioridad y el CPU se la asigna al proceso que tenga la prioridad mas 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). Cuando mas larga sea la rfaga del CPU, menor ser la prioridad y viceversa. Se debe observar que al hablar de planificacin se piense en trminos de alta prioridad y baja prioridad. Generalmente, las prioridades se indican mediante un rango de nmeros fijo, como por ejemplo de 0 a 7, o del 0 al 4095. Sin embargo, no existe un consenso sobre si 0 es la prioridad baja. Algunos sistemas usan los nmeros bajos para representar una prioridad baja, mientras que otros sistemas operativos manejan los nmeros bajos como prioridad alta; esta diferencia puede presentar confusiones. En este caso supondremos que los nmeros bajos son prioridades altas.

Sistemas Operativos

Pgina 11

Tecnolgico Superior de la Sierra Negra de Ajalpan

RR "Los procesos se despachan en FIFO y disponen de una cantidad limitada de tiempo de CPU, llamada divisin de tiempo o cuanto. Si un proceso no termina antes de expirar su tiempo de CPU ocurren las siguientes acciones: La cpu es apropiada. La CPU es otorgada al siguiente proceso en espera. El proceso apropiado es situado al final de la lista de listos. Es efectiva en ambientes de tiempo compartido. La sobrecarga de la apropiacin se mantiene baja mediante mecanismos eficientes de intercambio de contexto y con suficiente memoria principal para los procesos. " Queves multi-level "Los esquemas analizados hasta ahora suponen que todos los procesos ejecutables estn en la memoria principal. Si la memoria principal es insuficiente, ocurrir lo siguiente. Habr procesos ejecutables que se mantengan en disco. Habr importantes implicaciones para la planificacin, tales como las siguientes: El tiempo de alternancia entre procesos para traer y procesar un proceso del disco es considerablemente mayor que el tiempo para un proceso que ya est en la memoria principal. Es ms eficiente el intercambio de los procesos con un planificador de dos niveles. El esquema operativo de un planificador de dos niveles es como sigue: Se carga en la memoria principal cierto subconjunto de los procesos ejecutables. El planificador se restringe a ellos durante cierto tiempo. Peridicamente se llama a un planificador de nivel superior para efectuar las siguientes tareas: Eliminar de la memoria los procesos que hayan permanecido en ella el tiempo suficiente. Cargar a memoria los procesos que hayan estado en disco demasiado tiempo. El planificador de nivel inferior se restringe de nuevo a los procesos ejecutables que se encuentren en la memoria. El planificador de nivel superior se encarga de desplazar los procesos de memoria a disco y viceversa. Los criterios que podra utilizar el planificador de nivel superior para tomar sus decisiones son los que se indican a continuacin: Cunto tiempo ha transcurrido desde el ltimo intercambio del proceso? Cunto tiempo de CPU ha utilizado recientemente el proceso? Qu tan grande es el proceso? (generalmente los procesos pequeos no causan tantos problemas en este sentido). Qu tan alta es la prioridad del proceso?. El planificador de nivel superior podra utilizar cualquiera de los mtodos de planificacin analizados.

Sistemas Operativos

Pgina 12

Tecnolgico Superior de la Sierra Negra de Ajalpan

Multi-level feedback queves Proporcionan una estructura para lograr los siguientes objetivos: Favorecer trabajos cortos. Favorecer trabajos limitados por la Entrada / Salida para optimizar el uso de los dispositivos de Entrada / Salida. Determinar la naturaleza de un trabajo lo ms rpido posible y planificar el trabajo (proceso) en consecuencia. Un nuevo proceso entra en la red de lnea de espera al final de la cola superior. Se mueve por esta cola FIFO hasta obtener la CPU. Si el trabajo termina o abandona la CPU para esperar por la terminacin de una operacin de Entrada / Salida o la terminacin de algn otro suceso, el trabajo abandona la red de lnea de espera. Si su cuanto expira antes de abandonar la CPU voluntariamente, el proceso se coloca en la parte trasera de la cola del siguiente nivel inferior. El trabajo recibe servicio al llegar a la cabeza de esta cola si la primera est vaca. Mientras el proceso contine consumiendo totalmente su cuanto en cada nivel, continuar movindose hacia el final de las colas inferiores. Generalmente hay una cola en la parte ms profunda a travs de la cual el proceso circula en asignacin de rueda hasta que termina. Existen esquemas en los que el cuanto otorgado al proceso aumenta a medida que el proceso se mueve hacia las colas de los niveles inferiores, en tal caso, cuanto ms tiempo haya estado el proceso en la red de lnea de espera, mayor ser su cuanto cada vez que obtiene la CPU y no podr obtener la CPU muy a menudo debido a la mayor prioridad de los procesos de las colas superiores. Un proceso situado en una cola dada no podr ser ejecutado hasta que las colas de los niveles superiores estn vacas. Un proceso en ejecucin es apropiado por un proceso que llegue a una cola superior. Es un mecanismo adaptable, es decir que se adapta a cargas variables. A los efectos de una revisin grfica de lo enunciado precedentemente..."

Sistemas Operativos

Pgina 13

You might also like