Anda di halaman 1dari 8

Unidad 2

S.O

JJULIO CESAR GONZALEZ CERVANTES

ADMINISTRACIN DE PROCESOS Y DEL PROCESADOR 2.1.-CONCEPTO DE PROCESO Un programa, es un conjunto de instrucciones que pueden ser ejecutadas por el procesador, cuando este programa se ejecuta de manera individual en el procesador, se le conoce como proceso o tarea. El conjunto de instrucciones que se han de ejecutar en el proceso, se le llama traza del proceso. En los sistemas operativos multihilos, un proceso, puede tener al mismo tiempo, diferentes hilos ejecutndose al mismo tiempo. 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. 2.2.-ESTADOS YTRANSICIONES DE LOSPROCESOS 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).

Unidad 2

S.O

JJULIO CESAR GONZALEZ CERVANTES

2.3 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).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. Seales 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. 2.4 Concurrencia y secuenciabilidad. Los procesos son concurrentes si existen simultneamente. Los procesos concurrentes pueden funcionar en forma totalmente independiente unos de otros, o pueden ser asncronos, lo cual significa que en ocasiones requieren cierta sincronizacin o cooperacin. 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 como puede ser la cooperacin para un determinado trabajo o el uso de informacin o recursos compartidos, por ejemplo: en un sistema de un procesador, la multiprogramacin es una condicin necesaria pero no suficiente para que exista concurrencia, ya que los procesos pueden ejecutarse de forma totalmente independiente. Por otro lado en un sistema de varios procesos se puede presentar la concurrencia siempre y cuando las actividades necesiten actuar entre si ya sea para utilizar

Unidad 2

S.O

JJULIO CESAR GONZALEZ CERVANTES

informacin en comn o para cualquier otra cosa. Existen tres formas modelos de computadora en los que se puede pueden ejecutar procesos concurrentes: Multiprogramacin con un nico procesador.

En este modelo todos los procesos concurrentes ejecutan sobre 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 simultanea.

Multiprocesador. Un multiprocesador es una maquina formada por un conjunto de procesadores que comparten memoria principal. En este tipo de arquitecturas, los procesos concurrentes no solo pueden intercalar su ejecucion sino tambin superponerla. En un instante dado se pueden ejecutar deforma simultanea tantos procesos como procesadores haya. Multicomputadora. Una multicomputadora es una maquina de memoria distribuida, en contra posicion con el multiprocesador que es de memoria compartida. Esta formada por una serie de computadoras completas con su UCP, memoria principal y, en su caso, periferia. Cada uno de estos procesadores completo se denomina nodo. Los nodos se encuentran conectados y se comunican entre si a travs de una red de interconexin, empleando el mtodo de paso de mensajes. En este tipo de arquitecturas tambien es posible la ejecucion simultanea de los procesos sobre los distintos procesadores. 2.4.1 Exclusion Mutua de Secciones Critica El metodo mas sencillo de comunicacion entre los procesos de un programa concurrente es el uso comun de unas variables de datos. Esta forma tan sencilla de comunicacion puede llevar, no obstante, a errores en el programa ya que el acceso concurrente puede hacer que la accion de un proceso interfiera en las acciones de otro de una forma no adecuada. Aunque nos vamos a fijaren variables de datos, todo lo que sigue seria valido con cualquier otro recurso del sistema que solo pueda ser utilizado por un proceso a la vez. Esto es asi por que en un sistema con un unico procesador solo se puede realizar una instruccin cada vez y en un sistema multiprocesador se arbitran mecanismos que impiden que varios procesadores accedan a la vez a una misma posicion de memoria. El resultado seria que el incremento o decremento de la variable se produciria de forma secuencial pero sin interferencia de un proceso en la accion del otro. Sin embargo, si se produce interferencia de un proceso en el otro si la actualizacion de la variable se realiza mediante la ejecucion de otras instrucciones mas sencillas, como son las usuales de: Este tipo de errores son muy dificiles de detectar mediante test del programa ya que el que se produzcan depende de la temporizacion de dos procesos independientes. 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 ejecucion como si fueran una unica instruccion. Se denomina Seccion Critica

Unidad 2

S.O

JJULIO CESAR GONZALEZ CERVANTES

a aquellas partes de los procesos concurrentes que no pueden ejecutarse de forma concurrente o, tambien, que desde otro proceso se ven como si fueran una unica instruccion. Esto quiere decir que si un proceso entra a ejecutar una seccin critica en la que se accede a unas variables compartidas, entonces otro proceso no puede entrar a ejecutar una region critica en la que acceda a variables compartidas con el anterior. Las secciones criticas se pueden agrupar en clases, siendo mutuamente exclusivas las secciones criticas de cada clase. Para conseguir dicha exclusion se deben implementar protocolos software que impidan o bloqueen (lock) el acceso a una seccion critica mientras esta siendo utilizada por un proceso.

Requisitos para la exclusin mutua -Solo un proceso, de todos los que poseen secciones criticas por el mismo recurso compartido, debe tener permiso para entrar en ella en un momento dado.-Un proceso que se interrumpe en una seccin no critica debe hacerlo sin interferir con los otros procesos.-Un proceso no debe poder solicitar acceso a una seccin critica para despus ser demorado indefinidamente, no puede permitirse el interbloqueo o la in anicion.Si ningn proceso est en su seccin critica, cualquier proceso que solicite entrar en la suya debe poder hacerlo sin demora.-No se debe suponer sobre la velocidad relativa de los procesos o el numero de procesadores.-Un proceso permanece en su seccin critica por un tiempo finito.-Una manera de satisfacer los requisitos de exclusin mutua es dejar la responsabilidad a los procesos que deseen ejecutar concurrentemente. 2.4.2-Sincronizacion de procesos en SC los procesos se renen para realizar tareas en conjunto, a este tipo de relacin se le llama procesos cooperativos. Para lograr la comunicacin, los procesos deben sincronizarse, de no ser as pueden ocurrir problemas no deseados. La sincronizacin es la transmisin y recepcin de seales que tiene por objeto llevar a cabo el trabajo de un grupo de procesos cooperativos. Es la coordinacin y cooperacin de un conjunto de procesos para asegurar la comparacin de recursos de cmputo. La sincronizacin entre procesos es necesaria para prevenir y/o corregir errores de sincronizacin debidos al acceso concurrente a recursos compartidos, tales como estructuras de datos o dispositivos de E/S, de procesos contendientes. La sincronizacin entre procesos tambin permite intercambiar seales de tiempo (ARRANQUE/PARADA) entre procesos cooperantes para garantizar las relaciones especficas de precedencia impuestas por el problema que se resuelve. Sin una sincronizacin adecuada entre procesos, la actualizacin de variables compartidas puede inducir a errores de tiempo relacionados con la concurrencia que son con frecuencia difciles de depurar. Una de las causas principales de este problema es que procesos concurrentes puedan observar valores temporalmente inconsistentes de una variable compartida mientras se actualizan. una aproximacin para resolver este problema es realizar actualizaciones de variables compartidas de manera mutuamente exclusiva. Se pueden mejorar permitiendo que a lo mas un proceso entre a la vez en la seccin critica de cdigo en la que se actualiza una variable compartida o estructura de datos en particular. Para que los procesos puedan sincronizarse es necesario disponer de servicios que permitan bloquear o suspender bajo determinadas circunstancias la ejecucin de un proceso.

Unidad 2

S.O

JJULIO CESAR GONZALEZ CERVANTES

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 sal 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 coninhibir 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. Las diversas soluciones hardware al problema de la seccin critica, basadas en las instrucciones Test And Set () y Swap (), son complicadas de utilizar por los programadores de aplicaciones. Para superar esta dificultad, podemos usar una herramienta desincronizacin denominada semforo. Un semforo S es una variable entera a la que, dejando aparte la inicializacin, solo se accede mediante dos operaciones atmicas estndar: wait () y signal ().Originalmente, la operacin wait () se denominaba P (del termino holands prober en, probar); mientras que signal ( ) denominaba originalmente V(ver hogen, incrementar). La definicin de wait() es la que sigue. 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 ejecutar los an. Aunque los semforos proporcionan un mecanismo adecuado y efectivo para el proceso de sincronizacin, un uso incorrecto de los mismos puede dar lugar a errores de temporizacin que son difciles de detectar, dado que estos errores solo ocurren si tienen lugar algunas secuencias de ejecucin concretas y estas secuencias no siempre se producen. Hemos visto un ejemplo de dichos errores en el uso de contadores en la solucin del problema productor-consumidor. En ese ejemplo, el problema de temporizacin se produca raras veces, e incluso entonces el valor del contador pareca ser razonable: lo que pasaba es que difera en 1 del valor correcto. Pero aunque el valor pareciera correcto, no era aceptable y es por esta razn que se introdujeron los semforos

Unidad 2

S.O

JJULIO CESAR GONZALEZ CERVANTES

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. Un interbloqueo supone un bloqueo permanente de un conjunto de procesos que compiten por recursos o bien se comunican o sincronizan entre s. Los interbloqueos aparecen cuando se utilizan mecanismos de comunicacin y sincronizacin, se deben a un mal uso de los mismos. 2.4.3.1.-PREVENCIN 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 Se refiere a disear un Sistema Operativo para prevenir que surja el interbloqueo en el mismo. De tal manera que nunca se lleguen a cumplir ninguna de las siguientes condiciones: exclusin mutua, garantizar que un proceso no este bloqueado si retiene algn recurso, permitir que el Sistema Operativo pueda relevar los recursos a procesos bloqueados y la espera circular, las cuales propician el interbloqueo. 2.4.3.2.-DETECCION 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 quesea posible. Peridicamente, el S. O. ejecuta un algoritmo que permite detectar la condicin de circulo vicioso de espera 2.4.3.3.-RECUPERACIN Se refiere a realizar la recuperacin de un sistema despus de un interbloqueo, para llevarla a cabo es necesario conocer los procesos que produjeron dicho interbloqueo y posteriormente se realiza alguna de las siguientes formas de intentar el proceso de recuperacin de un interbloqueo, que son la terminacin de procesos y la expropiacin de recursos. Cabe mencionar que al aplicar cualquiera de las dos formas se debe tener cuidado de no provocar una inanicin de procesos 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.

Unidad 2

S.O

JJULIO CESAR GONZALEZ CERVANTES

ABORTAR LOS PROCESOS Para eliminar interbloqueos abortando un proceso, tenemos dos mtodos; en ambos, el sistema recupera todos los recursos asignados a losprocesosterminados.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. l 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 adicin. 2.5.-NIVELES, OBJETIVOS YCRITERIOS DEPLANIFICACIN 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 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: Planificacin. Mxima capacidad de ejecucin Mximo nmero de usuarios interactivos. Predecibilidad. Minimizacin de la sobrecarga. Equilibrio en el uso de recursos. Seguridad de las prioridades. .

Unidad 2

S.O

JJULIO CESAR GONZALEZ CERVANTES

Evitar la postergacin indefinida 2.6.-TCNICAS DE ADMINISTRACIN DEL PLANIFICADOR Se refieren a los diferentes algoritmos que puede utilizar el planificador para asignar recursos del procesador para la ejecucin de procesos en base al tipo de proceso, tiempo de ejecucin, prioridad, etc. Hay dos tipos de tcnicas de administracin, los algoritmos apropiativos, en los que un proceso se ejecuta hasta que termina o hasta que este se bloquea, y los no apropiativos, en los que un proceso en ejecucin puede interrumpirse y pasarse a una cola de procesos listos que se est ejecutando puede ser interrumpido y pasado a cola de listos si el sistema operativo lo considera prudente. Entre los algoritmos apropiativos est: Round Robin (planificacin por turno circular).Entre los algoritmos no apropiativos est: FCFS(primero en llegar primero en atender). Entre los algoritmos que pueden ser apropiativos y no apropiativos en base a distintas condiciones estn: SJF y prioridades (colas multinivel y colas multinivel realimentadas). 2.6.1.-FIFO Por sus siglas en ingls para First Input First Output (primeras entradas, primeras salidas),se refiere al algoritmo de planificacin, que consiste en ordenar los procesos en una cola y ejecutarlos en base a como se van presentando, es decir, lo primero que entra en una cola, es lo primero que sale de ella. 2.6.2.-SJF Por sus siglas en ingls para Shortest-Job-First (el proceso ms corto primero), se refiere al algoritmo de planificacin, en el que cuando se inicia el planificador, basndose en la prioridad de procesos, elige el de menor duracin para ejecutar lo primero. 2.6.3.-ROUND ROBIN Es un algoritmo de la planificacin por turno circular de fcil implementacin, que consiste en asignarle a un proceso un tiempo de ejecucin llamado cuanto, si este no termina su ejecucin en el tiempo destinado, se utiliza el Round Robin para asignar los recursos de la CPU a otro proceso. Tambin se utiliza cuando un proceso se bloquea o se ejecuta en un tiempo menor al previsto. 2.6.4.-QUEVES MULTI-LEVEL En espaol, colas multinivel, es un algoritmo de planificacin multinivel, el cual divide una cola en colas separadas segn el tipo de proceso que ejecuten. 2.6.5.-MULTI-LEVEL FEEDBACK QUEVES En espaol, colas multinivel realimentadas, es un algoritmo de planificacin, en el cual los procesos pueden desplazarse por las colas para separar procesos con distintas interrupciones de la CPU. En este algoritmo tambin se toma en cuenta, que si un proceso consume mucho tiempo y recursos de la CPU, se mover a una cola de menor prioridad y si espera mucho tiempo se mover a una de mayor prioridad.