Вы находитесь на странице: 1из 12

INSTIUTO TECNOLOGICO SUPERIOR DE LA SIERRA NEGRA DE AJALPAN

MATERIA: SISTEMAS OPERATIVOS

UNIDAD 2 ADMINISTRACION DE PROCESOS Y DEL PROCESADOR

PROFESOR: ING. MARCO ANTONIO ISIDRO ABRIL

ALUMNA: SANDRA ORTIZ MERINO

ADMINISTRACIN DE PROCESOS Y DEL PROCESADOR


2.1.-CONCEPTO DE PROCESO Un programa, es un conjunto de instruccionesque pueden ser ejecutadas por el procesador,cuando este programa se ejecuta de maneraindividual en el procesador, se le conoce comoproceso o tarea. El conjunto de instrucciones que se han deejecutar en el proceso, se le llama traza delproceso. En los sistemas operativos multihilos, unproceso, 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 . - E S T AD O S Y TRANSICIONES 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 esta separando entradas que todava no estn disponibles, tambin puede ser que un programa que conceptualmente esta 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). 2.3.-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. 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.

Un proceso ligero (thread o hebra) es un programa en ejecucin que comparte la imagen de la memoria y otras informaciones con otros procesos ligeros. Un proceso ligero se define corno una funcincuya ejecucin se puede lanzar en paralelo conotras.

Figura

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

Figura 2 Tareas con una y varias hebras

2.4.-CONCURRENCIA YS E C U E N C I AB I L I D AD Los procesos son concurrentes si existensimultneamente. Cuando dos o ms procesosllegan al mismo tiempo a ejecutarse, se diceque se ha presentado una concurrencia deprocesos. Es importante mencionar que paraque dos o ms procesos sean concurrentes, esnecesario que tengan alguna relacin entreellos.La concurrencia es la propiedad de lossistemas que permiten quemltiples procesos sean ejecutados al mismotiempo, y que potencialmente puedaninteractuar entre s. 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. Elementos a gestionar y disear a causa de la concurrencia. Se pueden enumerar los siguientes:

1. El sistema operativo debe ser capaz de seguir la pista de los distintos procesos activos. Esto lo hace por medio de PBCs (Bloque de Control de Procesos) 2. El sistema operativo debe asignar y quitar los distintos recursos a cada proceso activo. Entre estos recursos se incluyen: Tiempo de procesador: Es funcin de la planificacin. Memoria: La mayora de los sistemas operativos emplean esquemas de memoria virtual. Archivos: Dispositivos de E/S:

3. El sistema operativo debe proteger los datos y los recursos fsicos de cada proceso contra injerencias no intencionadas de otros procesos. 4. Los resultados de un proceso deben ser independientes de la velocidad relativa a la que se realiza la ejecucin con respecto a otros procesos concurrentes. 2.4.1-EXCLUSIN MUTUA DESECCIONES CRTICAS Los algoritmos de exclusin mutua se usanen programacin concurrente para evitar el usosimultneo de recursos comunes, comovariables globales, por fragmentos de cdigoconocidos como secciones crticas.La mayor parte de estos recursos son lasseales, contadores, colas y otros datos que seemplean en la comunicacin entre el cdigoque se ejecuta cuando se da servicio auna interrupcin y el cdigo que se ejecuta elresto del tiempo. 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.

Regin Crtica. Protocolo de sincronizacin Los puntos de entrada de un recurso indican la cantidad de procesos que pueden utilizar simultneamente al mismo. Si un recurso tiene slo un punto de entrada, se lo denomina recurso crtico o recurso no compartible. Regin crtica de un proceso es la fase o etapa en la vida de ese proceso concurrente en la cual accede a un recurso crtico para modificarlo o alterarlo. El uso adecuado de la concurrencia entre procesos exige la capacidad de definir secciones crticas y hacer cumplir la exclusin mutua. Cualquier servicio o capacidad que d soporte para la exclusin mutua debe cumplir con un protocolo de sincronizacin, que tiene los requisitos siguientes: 1. Debe cumplirse la exclusin mutua: slo un proceso de entre todos los que poseen secciones crticas por el mismo recurso u objeto compartido, debe tener permiso para entrar en ella en un instante dado. 2. Un proceso que se interrumpe en una seccin no crtica debe hacerlo sin estorbar a los otros. Es decir que si se cuelga un proceso que est usando un recurso, los dems procesos que esperan deben poder acceder al recurso de todas formas (el S.O. mata al proceso que se colg y as libera al recurso). 3. No se puede demorar indefinidamente la entrada de un proceso a un cierto recurso; no debe permitirse el interbloqueo y la inanicin. Todos los procesos deben poder acceder al recurso que solicitan, sino se van a morir sin usarlo y no es justo. 4. Cuando ningn proceso est en su seccin crtica, cualquier proceso que solicite entrar en la suya debe poder hacerlo sin dilatacin. Es decir, si nadie est usando un cierto recurso, entonces se le otorga al primer proceso que lo solicite. 5. No se pueden hacer suposiciones sobre la velocidad relativa de los procesos o su nmero (cantidad de procesadores). Nunca se puede saber a priori si a un proceso le falta mucho o poco para terminar. 6. Un proceso permanece en su seccin crtica slo por un tiempo finito. Esto sirve para evitar que un proceso se quede con un recurso por mucho tiempo y para que un recurso no se quede trabado sin sentido 2.4.2.-SINCRONIZACIN DE PROCESOS EN S.C. Sincronizacin de hilos (procesos)Todos los hilos comparten el mismo espacio dedirecciones y otros recursos como pueden serarchivos abiertos. Cualquier modificacin de unrecurso desde un hilo afecta al entorno delresto de los hilos del

mismo proceso. Por lotanto, es necesario sincronizar la actividad delos distintos hilos para que no interfieran unoscon otros o corrompan estructuras de datos.Una ventaja de la programacin multihilo esque los programas operan conmayor velocidad en sistemas de computadorescon mltiples CPUs (sistemas multiprocesadoro a travs de grupo de mquinas) ya que loshilos del programa se prestan verdaderamentepara la ejecucin concurrente. En tal caso elprogramador necesita ser cuidadoso paraevitar condiciones de carrera (problema quesucede cuando diferentes hilos o procesosalteran datos que otros tambin estn usando),y otros comportamientos no intuitivos. Loshilos generalmente requieren reunirse paraprocesar los datos en el orden correcto. Esposible que los hilos requierande operaciones atmicas para impedir que losdatos comunes sean cambiados o ledosmientras estn siendo modificados, para lo queusualmente se utilizan los semforos. Eldescuido de esto puede generar interbloqueo Los procesos deben sincronizar sus actividades; por ejemplo, en el caso de que unproceso 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 mecanismob. enviar o escribir: el proceso emisor enva informacin al proceso receptor c. recibir o leer: el proceso receptor recibe informacind. 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. Elemisor 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 unalmacenamiento intermedio para guardar la informacin enviada, hasta que elreceptor la solicite 2.4.2.1.-MECANISMO DE SEMFOROS

Semforo es un mecanismo de comunicacin con el cual no se mueven datos, puestoque solo se puede consultar y modificar su valor al tener un carcter puramenteinformativo. Los semforos se implementan mediante una cola de tareas a la que seaaden los procesos que estn en espera del recurso. Solo se permiten tresoperaciones 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 lallamada y ponerla en la cola de tareas.

3.Seal (signal)(s) if cola de tareas vaca then s : = 1 else Reanudar la primeratarea de la cola tareas. Estas operaciones son procedimientos que se implementan como accionesindivisibles. 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 detransiciones, el de espera. Las diversas soluciones hardware al problemade la seccin critica, basadas en lasinstrucciones TestAndSet () y Swap (), soncomplicadas de utilizar por los programadoresde 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 accedemediante dos operaciones atmicasestndar:wait () y signal (). Originalmente, la operacinwait () se denominaba P (del terminoholands proberen, probar); mientras quesignal ( ) denominaba originalmente V(verhogen, 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 programacinpara sincronizar dos o ms procesos o hilos de ejecucin que usan recursoscompartidos. 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 algnprocedimiento del monitor pero no han podido adquirir permiso para ejecutarlosan. Aunque los semforos proporcionan unmecanismo adecuado y efectivo para elproceso de sincronizacin, un uso incorrecto delos mismos puede dar lugar a errores detemporizacin que son difciles de detectar,dado que estos errores solo ocurren si tienenlugar algunas secuencias de ejecucinconcretas y estas secuencias no siempre seproducen.Hemos visto un ejemplo de dichos errores en eluso de contadores en la solucin del problemaproductor-consumidor. En ese ejemplo, elproblema de temporizacin se produca rarasveces, e incluso entonces el valor del contador pareca ser razonable: lo que pasaba es quedifera en 1 del valor correcto. Pero aunque elvalor pareciera correcto, no era aceptable y espor esta razn que se introdujeron lossemforos

2.4.3.-INTERBLOQUEO

(DEADLOCK)

Es un conjunto de procesos se encuentra en estado de interbloqueo cuando cadauno de ellos espera un suceso que solo puede originar otro proceso del mismoconjunto. Un interbloqueo supone un bloqueopermanente de un conjunto de procesos quecompiten por recursos o bien se comunican osincronizan entre s. Los interbloqueosaparecen cuando se utilizan mecanismos decomunicacin y sincronizacin, se deben a unmal uso de los mismos. 2.4.3.1.-PREVENCIN la estrategia bsica de la prevencin del interbloqueo consiste, a grandesrasgos, en disear su sistema de manera que est excluida, a priori, laposibilidad de interbloqueo. Los mtodos para prevenir el interbloqueo son de dos tipos:- Los mtodos indirectos que consisten en impedir la aparicin de alguna de lastres condiciones necesarias para que se del interbloqueo.- Los mtodos directos que consisten en evitar la aparicin del crculo viciosode espera Se refiere a disear un SistemaOperativo para prevenir que surja elinterbloqueo en el mismo. De tal manera quenunca se lleguen a cumplir ninguna de lassiguientes condiciones: exclusin mutua,garantizar que un proceso no este bloqueado siretiene algn recurso, permitir que el SistemaOperativo pueda relevar los recursos aprocesos bloqueados y la espera circular, lascuales 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 imponiendorestricciones sobre los procesos. En cambio, las estrategias de deteccin deinterbloqueo, no limitan el acceso a recursos ni restringen las acciones delproceso. Con la deteccin del interbloqueo, se concedern los recursos que losprocesos necesiten siempre que sea posible. Peridicamente, el S. O. ejecutaun algoritmo que permite detectar la condicin de circulo vicioso de espera 2.4.3.3.-RECUPERACIN Se refiere a realizar la recuperacin deun sistema despus de un interbloqueo, parallevarla a cabo es necesario conocer losprocesos que produjeron dicho interbloqueo yposteriormente se realiza alguna de lassiguientes formas de intentar el proceso derecuperacin de un interbloqueo, que son laterminacin de procesos y la expropiacin derecursos. Cabe mencionar que al aplicarcualquiera de las dos formas se debe tenercuidado de no provocar una inanicin deprocesos

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 elque solucione dicho problema de la manera ms conveniente posible, de modoque su decisin no afecte demasiado a al usuario del proceso en conflicto, ysobre todo que no afecte a los dems usuarios del sistema. ABORTAR LOS PROCESOS Para eliminar interbloqueos abortando un proceso, tenemos dos mtodos; enambos, el sistema recupera todos los recursos asignados a los procesosterminados.1) Abortar todos los procesos interbloqueados. Esta es una de las solucionesms comunes, adoptada por Sistemas Operativos. Este mtodo romperdefinitivamente el ciclo de interbloqueo pero con un costo muy elevado, ya queestos procesos efectuaron clculos durante mucho tiempo y habr quedescartar los resultados de estos clculos parciales, para quiz tener quevolver 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 enalgn criterio de costo mnimo. Despus de cada aborto, debe solicitarse denuevo el algoritmo de deteccin, para ver si todava existe el interbloqueo. Estemtodo cae en mucho tiempo de procesamiento adicion

2.5.-NIVELES,OBJETIVOS YC R I T E R I O S D E P L AN I F I C A C I N En pocas pasadas de los sistemas deprocesamiento por lotes, con una entrada enforma de imgenes de tarjetas en una cintamagntica, el algoritmo de planificacin erasencillo: solo haba que ejecutar el siguientetrabajo en la cinta.En los sistemas de multiusuario de tiempocompartido, que se combinaban con un fondode trabajos procesados en lote, el algoritmo erams complejo. En forma invariable, existanvarios usuarios en espera de servicio y podanexistir tambin otros trabajos para ser procesados en lote. Incluso en los sistemaspuros de tiempo compartido existen confrecuencia los trabajos colaterales, como elsistema de correo electrnico, que a menudo seejecuta todo el tiempo para enviar o recibir correo o noticias

Concepto de Planificacin La planificacin hace referencia a un conjuntode polticas y mecanismos incorporados alsistema operativo que gobiernan el orden enque se ejecutan los trabajos que deben sercumplimentados por el sistema informtico. Objetivo de la Planificacin

El objetivo principal de la planificacin esoptimizar el rendimiento del sistema yproporcionar un buen servicio a todos losprocesos que se encuentren en el. En general,la planificacin trata de cubrir los siguientesobjetivos: Planificacin. Mxima capacidad de ejecucin Mximonmero de usuariosinteractivos. Predecibilidad. Minimizacin de la sobrecarga. Equilibrio en el uso de recursos. Seguridad de las prioridades. . Evitar la postergacin indefinida 2.6.-TCNICAS DE ADMINISTRACIN DEL PLANIFICADOR Se refieren a los diferentes algoritmos quepuede utilizar el planificador para asignarrecursos del procesador para la ejecucin deprocesos en base al tipo de proceso, tiempo deejecucin, prioridad, etc. Hay dos tipos detcnicas de administracin, los algoritmosapropiativos, en los que un proceso se ejecutahasta que termina o hasta que este se bloquea,y los no apropiativos, en los que un proceso enejecucin puede interrumpirse y pasarse a unacola de procesos listos que se est ejecutandopuede ser interrumpido y pasado a cola delistos si el sistema operativo lo consideraprudente.Entre los algoritmos apropiativos est: RoundRobin (planificacin por turno circular).Entrelos algoritmos no apropiativos est: FCFS(primero en llegar primero en atender).Entrelos algoritmos que pueden ser apropiativos yno apropiativos en base a distintas condicionesestn: SJF y prioridades (colas multinivel y colasmultinivel realimentadas).

2.6.1.-FIFO Por sus siglas en ingls para First Input FirstOutput (primeras entradas, primeras salidas),se refiere al algoritmo de planificacin, queconsiste en ordenar los procesos en una cola yejecutarlos en base a como se vanpresentando, es decir, lo primero que entra enuna 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 alalgoritmo de planificacin, en el que cuando seinicia el planificador,

basndose en la prioridaddeprocesos, elige el de menor duracin paraejecutarlo primero.

2.6.3.-ROUND ROBIN Es un algoritmo de la planificacin por turnocircular de fcil implementacin, que consisteen asignarle a un proceso un tiempo deejecucin llamado cuanto, si este no termina suejecucin en el tiempo destinado, se utiliza elRound Robin para asignar los recursos de laCPU a otro proceso. Tambin se utiliza cuandoun proceso se bloquea o se ejecuta en untiempo menor al previsto. 2.6.4.-QUEVES MULTI-LEVEL En espaol, colas multinivel, es un algoritmo deplanificacin multinivel, el cual divide una colaen colas separadas segn el tipo de procesoque ejecuten. 2.6.5.-MULTI-LEVEL FEEDBACK QUEVES En espaol,colas multinivel realimentadas, es un algoritmode planificacin, en el cual los procesos puedendesplazarse por las colas para separar procesoscon distintas interrupciones de la CPU. En estealgoritmo tambin se toma en cuenta, que siun proceso consume mucho tiempo y recursosde la CPU, se mover a una cola de menorprioridad y si espera mucho tiempo se movera una de mayor prioridad

Вам также может понравиться