Anda di halaman 1dari 9

www.monografias.

com

Administracin de procesos. Sistemas operativos. 1. Introduccin 2. Procesos 3. Implantacin de los procesos 4. Comunicacin entre procesos 5. Instruccin TSL 6. Planificacin de procesos 7. Colas mltiples 8. Procesos ligeros 9. Seales
Introduccin El siguiente documento describe las caractersticas que presentan los sistemas operativos para la administracin de procesos en los sistemas mono y multiprocesadores. Se comienza con una introduccin sobre la funcionalidad de un proceso para luego entrar en los detalles de implementacin tpicos de los sistemas operativos. An no termine la totalidad del documento pero lo quiero publicar en Internet para obtener feedback por parte de los lectores interesados en el mismo. Procesos Qu es un proceso? Un proceso es un programa en ejecucin. Un proceso simple tiene un hilo de ejecucin, por el momento dejemos esta ltima definicin como un concepto, luego se ver en ms detalle el concepto de hilo. Una vez definido que es un proceso nos podramos preguntar cul es la diferencia entre un programa y un proceso, y bsicamente la diferencia es que un proceso es una actividad de cierto tipo que contiene un programa, entradas salidas y estados. Los procesos pueden ser cooperantes o independientes, en el primer caso se entiende que los procesos interactan entre s y pertenecen a una misma aplicacin. En el caso de procesos independientes en general se debe a que no interactan y un proceso no requiere informacin de otros o bien porque son procesos que pertenecen a distintos usuarios. Estados de los procesos Un proceso puede estar en cualquiera de los siguientes tres estados: Listo, En ejecucin y Bloqueado.

Ejecucin

Bloqueado

Listo

Los procesos en el estado listo son los que pueden pasar a estado de ejecucin si el planificador los selecciona. Los procesos en el estado ejecucin son los que se estn ejecutando en el procesador en ese momento dado. Los procesos que se encuentran en estado bloqueado estn esperando la respuesta de algn otro proceso para poder continuar con su ejecucin. Por ejemplo operacin de E/S. Implantacin de los procesos La implementacin del modelo de procesos se logra debido a que el sistema operativo almacena en una tabla denominada tabla de control de procesos informacin relativa a cada proceso que se esta ejecutando en el procesador. Cada lnea de esta tabla representa a un proceso. La informacin que se almacena es la siguiente: 1) Identificacin del proceso. 2) Identificacin del proceso padre. 3) Informacin sobre el usuario y grupo. 4) Estado del procesador. 5) Informacin de control de proceso 5.1) Informacin del planificador. 5.2) Segmentos de memoria asignados. 5.3) Recursos asignados. Comunicacin entre procesos Condiciones de competencia Las condiciones de competencia se dan cuando dos o ms procesos intentan acceder a un mismo recurso. Secciones crticas Para solucionar las condiciones de competencia se implement un modelo para prohibir que dos procesos accedan al mismo recurso. El modelo en cuestin se denomina exclusin mutua. Exclusin mutua con espera ocupada Las soluciones con espera ocupada funcionan de la siguiente manera, cuando un proceso intenta ingresar a su regin crtica, verifica si esta permitida la entrada. Si no, el proceso se queda esperando hasta obtener el permiso. Desactivacin de interrupciones El mtodo ms simple para evitar las condiciones de competencia es hacer que cada proceso desactive todas sus interrupciones antes de entrar a su seccin crtica y las active una vez que salio de la misma. Este modelo como se puede observar, ste modelo tiene una gran problema y es que si se produce una falla mientras que el proceso esta en la regin crtica no se puede salir de la misma y el sistema operativo no recuperara el control. Variables cerradura En ste caso se genera una variable la cual puede tener dos valores o bien 0 (no hay ningn proceso en su seccin crtica) o bien 1 (indicando que la seccin crtica est ocupada) entonces cada proceso antes de ingresar a la seccin crtica verifica el estado de la variable de cerradura y en caso de que la misma este en 0, le cambia el valor e ingresa a la misma y en caso de que la misma sea 1 el proceso se queda verificando el estado de la misma hasta que el mismo sea 0. El problema aqu se presenta si dos procesos verifican al mismo tiempo que la variable cerradura esta en 0 e ingresan a la regin crtica. Alternancia estricta El algoritmo de alternancia estricta no bloquea el ingreso a la regin crtica cuando otro proceso se esta ejecutando. El problema de sta solucin es que cuando un proceso no esta en la seccin crtica igualmente tiene bloqueado el acceso a la misma y por lo tanto no permite que otro proceso que requiera ingresar a la misma logre hacerlo. Instruccin TSL

Esta solucin requiere ayuda del hardware y es debido a que en general las computadoras diseadas para tener ms de un procesador tienen una instruccin TEST AND SET LOCK Dormir y despertar El modelo de espera acotada tienen el inconveniente que se desperdicia tiempo de procesador. El problema del productor y el consumidor El problema del productor y el consumidor describe el echo de que cuando hay dos o ms procesos interactuando a travs de un buffer comn habiendo procesos que ponen informacin o datos y otros que los sacan se pueden llegar a dar condiciones en las cuales los procesos que ingresan los datos no puedan hacerlo debido a que el buffer ya se encuentra lleno y para el caso de los que sacan los datos del buffer intenten sacar datos cuando ya no hay nada que sacar. Para evitar estas condiciones se desarrollaron mtodos de comunicacin/sincronizacin entre procesos en los cuales se impide que esto suceda haciendo que el proceso productor duerma si el buffer est lleno y una vez que exista espacio el proceso consumidor despierte al productor para que siga generando o viceversa. Planificacin de procesos La planificacin es el proceso por el cual el sistema operativo selecciona que proceso ejecutar. La seleccin del proceso se basa en alguno de los algoritmos de planificacin que se describen ms abajo. Expulsin Es la caracterstica por el cual el sistema operativo puede o no expulsar del estado de ejecucin a un proceso dado. En este sentido entonces tenemos la planificacin apropiativa en la cual el sistema operativo puede cortar en cualquier momento la ejecucin de un proceso y la planificacin no apropiativa en la cual una vez que el proceso esta en ejecucin el sistema operativo no puede sacarlo de ese estado. Objetivos de la planificacin Los objetivos de la planificacin de proceso son: Equidad, todos los procesos deben poder ejecutarse Eficacia, mantener ocupada la CPU un 100% del tiempo Tiempo de respuesta, minimizar el tiempo de respuesta al usuario Tiempo de regreso, minimizar el tiempo que deben esperar los usuarios por lotes para obtener sus resultados Rendimiento, maximizar el nmero de tareas procesadas por hora. Algoritmos de planificacin Los algoritmos de planificacin son los que definen que poltica se va a seguir para que un proceso pase al estado de ejecucin. Planificacin Round-Robin En este tipo de planificacin cada proceso tiene asignado un quantum de tiempo para ejecutarse y en el caso de que no pueda terminar la ejecucin en su quantum el proceso pasa de nuevo a la cola de procesos para ser ejecutado por otro quantum luego de recorrer la cola para asegurarse que todos los procesos reciban ese quantum de procesamiento. Planificacin por prioridad En la planificacin round-robin todos los procesos son tratados con la misma prioridad. Para el caso de este tipo de planificacin a cada proceso se le asigna una prioridad y los mismos son ejecutados Colas mltiples Las colas mltiples estn basadas en una pila que sirve como ndice de una lista de procesos que se tienen que ejecutar. Primero el trabajo ms corto Este tipo de algoritmo de planificacin se usa para trabajos en batch o de procesamiento or lotes en los cuales se puede saber cual es el tiempo de duracin de la ejecucin de cada proceso y entonces se puede seleccionar primero el trabajo ms corto. El problema que se presenta con

ste algoritmo es que los grandes procesos podran sufrir de inanicin dado que cualquier proceso pequeo se cuela sobre uno de mayor tamao y como resultado final se podra dar el caso que el proceso grande nunca obtenga procesamiento. Planificacin garantizada En este modelo de planificacin se tiene en cuenta la cantidad de usuarios en el sistema y se le asigna a cada uno el tiempo de ejecucin de 1/n (siendo n la cantidad total de usuarios) de esa forma el planificador tiene que llevar cuenta del tiempo de ejecucin de los procesos y balancear el tiempo que estn utilizando el procesador para cumplir con la ecuacin previa. Procesos ligeros Los procesos ligeros son programas en ejecucin son bsicamente procesos pero a diferencia de stos ltimos que solo tienen un hilo de ejecucin los primeros tienen el hilo principal ms hilos secundarios o hijos, en ste caso todos los procesos hijos comparten la informacin del hilo principal pero adems puede cada hilo tener su informacin privada. Dentro de la informacin propia tenemos: Contador de programa Pila Registros. Estado del proceso ligero. Dentro de la informacin compartida tenemos: Variables globales. Archivos abiertos Seales Semforos. Contabilidad. Seales Las seales son el mecanismo de comunicacin que se establece entre los procesos. Para comparar se puede decir que las seales son a los procesos lo que las interrupciones son al procesador. Cuando un proceso recibe una seal detiene su ejecucin, bifurca a la rutina del tratamiento de la seal que esta en el mismo proceso y luego una vez finalizado sigue la ejecucin en el punto que haba bifurcado anteriormente. Las seales se pueden originar en un proceso o bien en el sistema operativo. Las seales se pueden enviar entre procesos, solo los que tengan el mismo uid, o bien el sistema operativo puede enviarle una seal a un proceso, por ejemplo excepciones de ejecucin.

Procesamiento de Interrupciones Una interrupcin es un evento que altera la secuencia en que el procesador ejecuta las instrucciones; es un hecho generado por el hardware del computador [7, Deitel]. Cuando ocurre una interrupcin, el Sistema Operativo: Obtiene el control. Salva el estado del proceso interrumpido, generalmente en su bloque de control de procesos. Analiza la interrupcin. Transfiere el control a la rutina apropiada para la manipulacin de la interrupcin. Una interrupcin puede ser iniciada por un proceso en estado de ejecucin o por un evento que puede o no estar relacionado con un proceso en ejecucin. Generalmente las interrupciones se pueden clasificar por tipos segn el siguiente detalle (ver Tabla 2.1 [7, Deitel]: SVC (llamada al supervisor): es una peticin generada por el usuario para un servicio particular del sistema, por ejemplo, realizacin de Entrada / Salida u obtencin de ms memoria. Entrada / Salida: son iniciadas por el hardware de Entrada / Salida, indicando a la cpu que ha cambiado el estado de un canal o dispositivo, por ejemplo, finalizacin de Entrada / Salida u ocurrencia de un error. Externas: son causadas por distintos eventos, por ejemplo, expiracin de un cuanto en un reloj de interrupcin o recepcin de una seal de otro procesador en un sistema multiprocesador. De reinicio: ocurren al presionar la tecla de reinicio o cuando llega una instruccin de reinicio de otro procesador en un sistema multiprocesador. De verificacin de programa: son causadas por errores producidos durante la ejecucin de procesos, por ejemplo: Un intento de dividir por cero. Un intento de un proceso de usuario de ejecutar una instruccin privilegiada. Un intento de ejecutar un cdigo de operacin invlido. De verificacin de mquina: son ocasionadas por un mal funcionamiento del hardware. Tipo de Interrupcin Descripcin SVC Llamada al Sistema Operativo Entrada / Salida Cambio de estado de un canal o dispositivo Externa Evento externo al sistema De Reinicio Reinicio del procesamiento De Verificacin de Programa Errores de procesos De Verificacin de Mquina Errores de hardware Tabla 2.1: Tipos de interrupciones. El Sistema Operativo incluye rutinas llamadas Manipuladores de Interrupciones (IH) para procesar cada tipo diferente de interrupcin. Cuando se produce una interrupcin el Sistema Operativo efecta las siguientes acciones: Salva el estado del proceso interrumpido. Dirige el control al manipulador de interrupciones adecuado. Se aplica la tcnica de Cambio de Contexto .

Los Sistemas Operativos instrumentan informacin de control que puede aparecer como las Palabras de Estado de Programa (PSW), las cuales controlan el orden de ejecucin de las instrucciones y contienen informacin sobre el estado del proceso. Existen tres tipos de PSW, que son la actual, la nueva y la vieja. La PSW Actual almacena la direccin de la prxima instruccin que ser ejecutada e indica los tipos de instrucciones actualmente habilitadas e inhabilitadas. En un sistema uniprocesador existe: Solo una PSW actual. Seis PSW nuevas (una para cada tipo de interrupcin). Seis PSW viejas (una para cada tipo de interrupcin). La PSW nueva para un tipo de interrupcin dado contiene la direccin en el hardware donde reside el manipulador de interrupciones para este tipo especfico. Cuando ocurre una interrupcin para la cual el procesador no est inhabilitado, ocurren las siguientes acciones: El hardware cambia las PSW en los casos siguientes: Al almacenar la PSW actual en la PSW vieja, para este tipo de interrupcin. Al almacenar la PSW nueva en la PSW actual, para este tipo de interrupcin. Luego de este intercambio de PSW: La PSW actual contiene la direccin del manipulador de interrupcin adecuado. El manipulador de interrupciones procesa la interrupcin. Luego de procesar la interrupcin, la cpu es enviada al: Proceso que estaba en ejecucin en el momento de la interrupcin, o al Proceso de listo de ms alta prioridad. La accin precedente depende de si el proceso de interrupcin es: Apropiativo: obtiene la cpu solo si no hay procesos de listos. No apropiativo: obtiene de nuevo la cpu. TEMA 14. INTERRUPCIONES. 1.- Introduccion Es la detencion de la ejecucion de un programa antes de que concluya. Cuando se procesa la interrupcion, volvemos al programa. A la rutina que se ejecuta para la interrupcion se le llama rutina de servicio de interrupcion. Tipos: - Interrupciones externas: desde un controlador de E/S. - Interrupciones internas: desde la CPU (procesador). Ocurren cuando hay sucesos excepcionales: - Division por 0.

- Desbordamiento (cuando el resultado de una operacion se sale del rango de representacion). - Violacion de la proteccion de memoria: cuando un programa invade la porcion de memoria donde se encuentra otro. Jerarquia de interrupciones Identifica que interrupciones son mas importantes. - Interrupcion no enmascarable: cuando no puede ser ignorada, bien porque provocaria daos o porque tiene una prioridad alta. - Interrupcion enmascarable: s se puede ignorar. A traves de instrucciones, podemos inhibir que ocurra.

2.- Reconocimiento de interrupciones (Cmo adivina la CPU qu o quin provoc la interrupcion). A.- Interrupciones multinivel: Cada dispositivo que puede provocar interrupcion tiene una entrada de interrupcion conectada a la CPU. Es muy sencillo, pero muy caro.

B.- Linea de interrupcion unica. Una unica entrada de interrupcion a la que estan conectados todos los dispositivos. Tiene que preguntar a cada dispositivo si ha producido la interrupcion (tecnica Polling).

C.- Interrupciones vectorizadas. El dispositivo que quiere pedir interrupcion pone en el bus de datos un identificador (vector), ademas de la seal de interrupcion. Lo puede poner el periferico directamente, o bien un controlador de interrupciones (que se ocupa de todo)

CPU

Bus de datos Los dispositivos estan ordenados por orden de importancia, siendo el mas cercano el que tiene prioridad. Si pone su vector, los demas ya no pueden ponerlo. (tecnica Daisy Chaining).

3.- Procesamiento de interrupciones.

- Se recibe una peticion de interrupcion. - Se termina de ejecutar la instruccion actual. - La CPU acepta o rechaza la peticion de interrupcion. - Se almacena el estado actual de ejecucion (contenido del contador de programas y del registro de estado) para poder volver. - El contador de programas pasa a tomar el valor de la direccion de la 1 instruccion de la rutina del servicio de interrupcion.

Interrupciones del procesador


http://www.itver.edu.mx/so1/sistemas_operativos.htm

Una interrupcin es un evento que altera la secuencia en que el procesador ejecuta las instrucciones. La interrupcin es generada por el hardware del sistema de cmputo. Cuando ocurre una interrupcin:

El sistema operativo toma el control (es decir, el hardware pasa el control al sistema operativo). El sistema operativo guarda el estado del proceso interrumpido. En muchos sistemas esta informacin se guarda en el bloque de control de proceso interrumpido. El sistema operativo analiza la interrupcin y transfiere el control a la rutina apropiada para atenderla; en muchos sistemas actuales el hardware se encarga de esto automticamente. La rutina del manejador de interrupciones procesa la interrupcin.

Se restablece el estado del proceso interrumpido (o del siguiente proceso). Se ejecuta el proceso interrumpido (o el siguiente proceso).

Una interrupcin puede ser iniciada especficamente por un proceso en ejecucin (en cuyo caso se suele denominar trampa (trap), y se dice que est sincronizada con la operacin del proceso) o puede ser causada por algn evento que puede estar relacionado o no con el proceso en ejecucin (en cuyo caso se dice que es asncrona con la operacin del proceso). Los sistemas orientados hacia las interrupciones pueden sobrecargarse. Si ests llegan con mucha frecuencia, el sistema no ser capaz de atenderlas. En algunos sistemas orientados hacia el teclado, cada tecla presionada almacena en la memoria un

cdigo de un byte y genera un interrupcin para informar a la UCP que un carcter est listo para ser procesado. Si la UCP no puede procesar el dato antes de que se presione la siguiente tecla, se pierde el primer carcter.

Clases de Interrupciones Existen seis clases de interrupciones:

Interrupciones SVC (supervisor call, llamadas al supervisor). Son iniciadas por un proceso en ejecucin que ejecute la instruccin SVC. Una SVC es una peticin generada por el usuario de un servicio particular del sistema, como realizar una operacin de entrada/salida, obtener ms memoria o comunicarse con el operador del sistema. El mecanismo de las SVC ayuda a proteger el sistema operativo de las acciones de los usuarios. Un usuario no puede entrar arbitrariamente al sistema operativo, sino que debe solicitar un servicio por medio de una SVC. El sistema operativo est al tanto de todos los usuarios que intentan rebasar sus limites y puede rechazar ciertas peticiones si el usuario no tiene los privilegios necesarios. Interrupciones de E/S. Son iniciadas por hardware de entrada y salida. Estas interrupciones indican a la UCP el cambio de estado de un canal o dispositivo. Las interrupciones de E/S se producen cuando finaliza una operacin de E/S o cuando un dispositivo pasa al estado listo. Interrupciones externas. Son causadas por diversos eventos, incluyendo la expiracin de un cuanto de un reloj que interrumpe, la pulsacin de la tecla de interrupcin de la consola o la recepcin de una seal procedente de otro procesador en un sistema de mltiples procesadores. Interrupciones de Reinicio. Se produce cuando se presiona el botn de reinicio de la PC o cuando llega de otro procesador una instruccin de reinicio en un sistema de multiprocesamiento Interrupciones de verificacin del programa. Son causadas por una amplia clase de problemas que pueden ocurrir cuando se ejecutan las instrucciones en lenguaje mquina de un programa. Dichos problemas incluyen la divisin entre cero, el exceso o defecto de los nmeros que pueden ser manejados por las operaciones aritmeticas, el intento de hacer referencia a una localidad de memoria que est fuera de los lmites de la memoria real. Muchos sistemas ofrecen a los usuarios la opcin de especificar las rutinas que deben ejecutarse cuando ocurra una interrupcin de verificacin del programa. Interrupciones de verificacin de la mquina. Son ocasionadas por el mal funcionamiento del hardware.

Anda mungkin juga menyukai