Está en la página 1de 20

SIISTEMAS OPERATIIVOS..

GESTIIN DE PROCESOS S STEMAS OPERAT VOS GEST N DE PROCESOS


1.. SIISTEMAS OPERATIIVOS 1 S STEMAS OPERAT VOS 1..1..IINTERFAZ 1 1 NTERFAZ 1..2..ESTRUCTURA 1 2 ESTRUCTURA 1..3..MODOS DE EXPLOTACIIN 1 3 MODOS DE EXPLOTAC N 1..4..TIIPOS DE SIISTEMAS OPERATIIVOS 1 4 T POS DE S STEMAS OPERAT VOS 2.. NCLEO 2 NCLEO 2..1..FIINALIIDAD Y FUNCIIONES 2 1 F NAL DAD Y FUNC ONES 2..2..CARACTERSTIICAS 2 2 CARACTER ST CAS 3.. PROCESOS 3 PROCESOS 3..1..CONCEPTO 3 1 CONCEPTO 3..2..BLOQUE DE CONTROL DE PROCESOS 3 2 BLOQUE DE CONTROL DE PROCESOS 3..3..ESTADOS 3 3 ESTADOS 3..3..1.. TRANSIICIIONES ENTRE ESTADOS DE UN PROCESO 3 3 1 TRANS C ONES ENTRE ESTADOS DE UN PROCESO 3..3..2.. IINTERRUPCIIONES 3 3 2 NTERRUPC ONES 3..4..OPERACIIONES SOBRE UN PROCESO 3 4 OPERAC ONES SOBRE UN PROCESO 3..5..PLANIIFIICACIIN DE PROCESOS 3 5 PLAN F CAC N DE PROCESOS 3..5..1.. CONCEPTO 3 5 1 CONCEPTO 3..5..2.. ALGORIITMOS DE PLANIIFIICACIIN 3 5 2 ALGOR TMOS DE PLAN F CAC N 3..6..COMUNIICACIIN ENTRE PROCESOS 3 6 COMUN CAC N ENTRE PROCESOS 3..6..1.. EXCLUSIIN MUTUA 3 6 1 EXCLUS N MUTUA 3..6..2.. MECANIISMOS DE COMUNIICACIIN 3 6 2 MECAN SMOS DE COMUN CAC N 4.. BIIBLIIOGRAFA 4 B BL OGRAF A

1.. SIISTEMAS OPERATIIVOS 1 S STEMAS OPERAT VOS


Para comprender el concepto de sistema operativo interesa conocer antes el concepto de sistema informtico del cual forma una parte muy importante. Segn la definicin de la ISO un ordenador es un dispositivo capaz de procesar datos. Para lograrlo debe estar dotados de dos elementos bsicos: un sistema fsico y uno lgico. * El sistema fsico hace referencia al conjunto de elementos fsicos necesarios para el tratamiento eficaz de la informacin (hardware). * El sistema Lgico por su parte es el conjunto de recursos necesarios para que el sistema fsico se encuentre en condiciones de realizar las tareas encomendadas; a este se le conoce como Software. Generalmente se suele dividir en dos tipos de software: Software o programas del sistema, que manejan los recursos lgicos con los cuales opera el ordenador y el software o programas de aplicacin, que son los que resuelven los problemas concretos de los usuarios. El sistema operativo, en concreto, es un programa del sistema que controla los recursos del ordenador y sirve para la ejecucin de los programas en general, convirtindose en el intermediario entre el hardware de un ordenador y del usuario, permitiendo su uso fcil y eficaz. Para conseguir esta funcin los sistemas operativos, se pueden estructurar de muy diversa forma, como ya veremos en el apartado que hace referencia a la estructura del sistema operativo.

1..1 IINTERFAZ 1 1 NTERFAZ


* Lnea de Comandos.

La forma de interfaz entre el sistema operativo y el usuario en la que este escribe los comandos utilizando un lenguaje de comandos especial. Los sistemas con interfaces de lneas de comandos se consideran ms difciles de aprender y utilizar que los de las interfaces grficas. Sin embargo, los sistemas basados en comandos son por lo general programables, lo que les otorga una flexibilidad que no tienen los sistemas basados en grficos carentes de una interfaz de programacin.
* Grfica del Usuario.

Es el tipo de visualizacin que permite al usuario elegir comandos, iniciar programas y ver listas de archivos y otras opciones utilizando las representaciones visuales (iconos) y las listas de elementos del men. Las selecciones pueden activarse bien a travs del teclado o con el mouse. Para los autores de aplicaciones, las interfaces grficas de usuario ofrecen un entorno que se encarga de la comunicacin con el ordenador o computadora. Esto hace que el programador pueda concentrarse en la funcionalidad, ya que no esta sujeto a los detalles de la visualizacin ni a la entrada a travs del mouse o el teclado. Tambin permite a los programadores crear programas que realicen de la misma forma las tareas ms frecuentes, como guardar un archivo, porque la interfaz proporciona mecanismos estndar de control como ventanas y cuadros de dilogo. Otra ventaja es que las aplicaciones escritas para una interfaz grfica de usuario son independientes de los dispositivos: a medida que la interfaz cambia para permitir el uso de nuevos dispositivos de entrada y salida, como un monitor de pantalla grande o un dispositivo ptico de almacenamiento, las aplicaciones pueden utilizarlos sin necesidad de cambios.

1.2. ESTRUCTURA 1.2. ESTRUCTURA SIISTEMAS MONOLTICOS. S ST TEMAS MONOLTICOS.


En estos casos el Sistema Operativo est formado por un conjunto de rutinas que se compilan por separado, se llaman entre s y se montan juntas para formar un todo: el Sistema Operativo. De ah que no tengan una estructura definida. Cada rutina tiene un interface con las dems, es decir, cuando una rutina llama a otra la primera le pasa una serie de parmetros y, cuando la rutina llamada finaliza su tarea, devuelve unos resultados a la rutina madre. En estos sistemas todas las rutinas se pueden llamar entre si. Esto implica que no hay ocultamiento de informacin, es decir, cada rutina conoce .y puede usar., por ejemplo, las estructuras de datos de las dems. Cuando estamos ejecutando un programa de usuario y hace falta un servicio del Sistema Operativo, los pasos que se siguen son los siguientes: 1. El programa hace una llamada al supervisor. 2. El S.O. determina el nmero de servicio que se solicita. 3. El S.O. localiza y llama a un procedimiento de servicio. 4. El control se devuelve al programa de usuario.

Si quisiramos hacer una representacin grfica de estos sistemas, quedara de la siguiente forma:

SIISTEMAS POR NIVELES O ESTRATOS. S ST TEMAS POR NIVELES O ESTRATOS.


Los sistemas operativos se organizan en capas en torno a un ncleo principal. Cada una de estas capas o niveles realiza una funcin determinada y, dependiendo de esa funcin, tienen ms o menos prioridad. No obstante, la capa principal y la de mayor prioridad es el propio ncleo. En general un sistema operativo se puede estructurar o dividir en cuatro capas o niveles: Nivel ncleo. Es el que se encarga de controlar todo lo que ocurre en el ordenador. Gestiona los procesos que llegan para ser ejecutados. Son, fundamentalmente, sistemas operativos multiusuario. Este nivel se encarga de realizar tareas bsicas del sistema, comunicacin con el hardware, planificacin de procesos, etc: o Gestiona interrupciones. o Asignacin de la CPU. o Mecanismos de comunicacin-sincronizacin entre procesos. Nivel ejecutivo. Sobre este nivel se realiza la administracin y gestin de la memoria. Se encarga de almacenar los procesos en pginas, tanto en memoria principal como en disco. Esta gestin es la llamada gestin de memoria virtual. Nivel supervisor. Se encarga de realizar la comunicacin de cada proceso entre el sistema y el usuario. Controla y coordina la gestin de entrada/salida de los diferentes procesos haca los perifricos. Nivel usuario. Es el que controla los procesos que est utilizando el usuario, sin preocuparse de la gestin de memoria, de la gestin de entrada/salida ni de nada en especial. Simplemente, muestra al usuario el proceso que ste quiere ejecutar. Este nivel es el que proporciona el interface para la interrelacin con el usuario.

MQUINAS VIIRTUALES. MQUINAS V RT TUALES.


Conceptualmente un sistema operativo est hecho de capas. El Sistema Operativo tiene 2 funciones fundamentales: Crear una mquina tratable, es decir, adaptada a necesidades de cada usuario (mquina virtual). aspectos en que el sistema operativo debe especialmente en ocultar las caractersticas puramente fsicas y presentar al usuario otras entendibles y manejables son las siguientes: las Algunos incidir ms

Sistema de entrada/salida: El S.O debe evitar al usuario el problema de tener que comprender el funcionamiento del hardware de entrada/salida que, a veces, es demasiado sofisticado, y poner a su alcance un sistema de entrada/salida ms sencillo de usar pero sin perder ninguna de sus posibilidades. Memoria: El S.O debe implementar el modo de que el usuario pueda trabajar con una memoria mayor que la principal de que dispone el ordenador, utilizando memoria virtual. Del mismo modo debe permitir que varios programas y usuarios compartan la memoria disponible sin ningn conflicto ni problema. Sistema de almacenamiento de ficheros: El S.O debe permitir al usuario acceder a la informacin almacenada a travs de nombres simblicos fcilmente recordables por l, sin necesidad de saber ni entender el modo fsico en que los datos se almacenan en los dispositivos. Control de los programas y las aplicaciones: El S.O debe proveer al usuario de un lenguaje de comandos y rdenes fcilmente utilizable para permitirle la gestin y el control de sus programas y sus datos. Al mismo tiempo, el sistema operativo debe impedir que el trabajo de un usuario pueda influir negativamente (errores, bloqueos, etc...) en los trabajos de los dems posibles usuarios.

Hacer posible compartir recursos, es decir, soportar la multiprogramacin En estos sistemas se mantiene por separado el software que implementa cada una de estas funciones. Partiendo de un nico hardware a compartir se simula la existencia de varias mquinas idnticas a la real. Para que esto sea posible hace falta un nuevo elemento en el Sistema Operativo, es el llamado monitor de mquina virtual. ste hace 2 cosas: Simula tantas mquinas virtuales idnticas a la real como haga falta Gestiona los recursos de la mquina real Para que esto se traduzca en una mquina tratable por el usuario sobre cada mquina virtual se ejecuta un Sistema Operativo independiente, que se encarga de la segunda funcin del Sistema Operativo (hacer posible el compartir recursos). Los sistemas operativos actuales como Windows 95 y Windows NT, utilizan esta tcnica.

MODELO CLIENTE-SERVIDOR MODELO CLIENTE-SERVIDOR


En estos sistemas cada funcin del Sistema Operativo se implementa como un programa independiente y se intenta ejecutar al mismo nivel que los programas de usuario. El problema es que muchos de estos programas no pueden ejecutarse a nivel de usuario porque actan directamente sobre el hardware y esas funciones son competencia del ncleo de los Sistemas Operativos Cliente-Servidor. Las partes del Sistema Operativo que se ejecutan a nivel de usuario se denominan servidores. Estos programas tienen exactamente las mismas capacidades que un programa de usuario y por tanto no tienen acceso directo al hardware. Cuando un programa de usuario (denominado cliente) quiere un servicio del Sistema Operativo lanza un mensaje al servidor correspondiente, pero siempre a un servidor de su mismo nivel. El ncleo desempea 2 funciones: Soporta los mensajes a travs de los cuales se comunican los clientes y servidores Manipula al hardware para responder a peticiones cuando se lo piden los servidores Cuando se quiere acceder a un servicio, toda la toma de decisiones (decidir si el que ha pedido el servicio tiene privilegios, a quin dar el servicio en primer lugar si ha habido dos solicitudes al mismo tiempo...), es decir, la poltica del sistema, reside en el servidor del servicio. Entonces, el ncleo que tiene los mecanismos necesarios para manipular el hardware. Ser el que realice el servicio, es decir, la mecnica del sistema reside en el ncleo y est soportado por el hardware. VENTAJAS DE ESTOS SISTEMAS: 1. Siempre y cuando los servidores estn bien delimitados es posible eliminar un servidor si ste no se utiliza. 2. Siempre es posible sustituir un servidor por otro que haga lo mismo 3. Si falla un servidor el sistema sigue funcionando (pero con alguna funcin menos) 4. Estos sistemas se puede adaptar muy fcilmente a los sistemas distribuidos Un Sistema Operativo Distribuido es aquel en el que el Sistema Operativo no est en una sola mquina sino que est repartido entre varias. En este caso, el hardware que manipula el ncleo es ms complejo que antes pero est manipulacin es transparente tanto para el usuario como para los servidores. Cuando una mquina hace exclusivamente la funcin de un servidor a lo largo del tiempo se dice que es un servidor dedicado, aunque hay otras mquinas que pueden ser alternativamente clientes o servidores.

1.3. MODOS DE EXPLOTACIN 1.3. MODOS DE EXPLOTACIN


Las formas de explotacin de un sistema operativo responden a la forma en la que el usuario utiliza los recursos hardware y software que componen el sistema informtico. De esta forma, el usuario podr obtener determinadas respuestas de sus peticiones ante el ordenador. La manera de obtener estas respuestas es lo que denominaremos explotacin de un sistema operativo:

Procesos en lotes. Se procede a la carga de datos desde el correspondiente dispositivo, se procesa la informacin y los resultados se almacenan en otro soporte que permita llevar al correspondiente perifrico de salida para su impresin o visualizacin. Proceso en tiempo real. Como su propio nombre indica la respuesta se obtiene al momento, es decir, el usuario es el encargado de introducir los datos para que el ordenador los procese y, en cuestin de segundos obtenga los resultados del proceso.

1..4.. TIIPOS DE SIISTEMAS OPERATIIVOS 1 4 T POS DE S STEMAS OPERAT VOS


Para hacer una clasificacin de los sistemas operativos hay que tener en cuenta una serie de parmetros: - Nmero de usuarios. - Nmero de procesos. - Nmero de procesadores. - Tiempo de respuesta. La clasificacin es la siguiente: Segn el nmero de usuarios: o Monosuario: Slo un usuario trabaja con un ordenador. En este sistema todos los dispositivos de hardware estn a disposicin de dicho usuario y no pueden ser utilizado por otros hasta que ste no finalice su sesin. Ej: MS-DOS. o Multiusuario: En este sistema, varios usuarios pueden utilizar simultneamente los recursos del sistema. Pueden compartir, sobre todo, los dispositivos externos de almacenamiento y los perifricos de salida, fundamentalmente impresoras- Ej: UNIX, Novell, Windows 2000 Server. Segn el nmero de procesos: o Monoprogramacin o monotarea: En este caso, el sistema solamente puede ejecutar un programa a la vez. De esta forma, los recursos del sistema estarn dedicados al programa hasta que finalice su ejecucin. Esto no impide que el sistema pueda ser multiusuario; es decir, varios usuarios pueden intentar ejecutar sus programas en el mismo ordenador, pero de forma sucesiva. Para ello, se tienen que establecer las correspondientes colas o prioridades en la ejecucin de los trabajos. En este sistema, la atencin del procesador estar dedicada a un solo programa hasta que finalice. E: MS-DOS. o Multiprogramacin o multitarea: Con estos sistemas se pueden ejecutar varios programas o procesos concurrentemente. Para ello la CPU compartir el tiempo de uso del procesador entre los diferentes programas que se van a ejecutar. Ej UNIX, Novell, Windows 2000 Server. En general, la mayora de sistemas multiusuario. Segn el nmero de procesadores del sistema informtico: o Monoproceso: En este caso, el ordenador consta de un nico procesador. Todos los trabajos pasarn por l. El ordenador que tenga este s.o puede ser monousuario, multiusuario, monotarea, multitarea, etc. Ej: MS-DOS, Windows98. o Multiproceso: El ordenador cuenta con varios procesadores. Ej: Pueden ser UNIX, LINUX, Windows 2000. Segn el tiempo de respuesta: Esta clasificacin se hace teniendo en cuenta el tiempo que tarda el sistema en obtener los resultados despus de lanzar un programa a ejecucin. o Tiempo real: La respuesta es inmediata tras lanzar un proceso. o Tiempo compartido: Cada proceso utilizar fracciones de tiempo de ejecucin de la CPU hasta que finalice. En este caso, parece que el usuario dedica la CPU exclusivamente para l; pero esto no es cierto, ya que, aunque el usuario no lo perciba, la CPU est dedicada a varios procesos a la vez. Todos los sistemas operativos multiusuario ofrecen a los usuarios un tiempo de respuesta compartido.

2.. NCLEO 2 NCLEO 2..1 FIINALIIDAD Y FUNCIIONES 2 1 F NAL DAD Y FUNC ONES
La finalidad del ncleo es construir un entorno adecuado donde puedan ejecutarse los distintos procesos. Las funciones del ncleo son: Tratamiento de las interrupciones. (PUNTO 3.3.2) Asignacin de la CPU. (PUNTO 3.5) Despachador o planificador de bajo nivel. Mecanismos de comunicacin sincronizacin. (PUNTO 3.6)

2..2 CARACTERSTIICAS 2 2 CARACTER ST CAS


Las caractersticas del ncleo son: Sus mdulos son residentes en memoria principal. Puesto que son altamente utilizados. Tienden a ser ininterrumpibles. Se ejecutan con el nivel de mximo privilegio, lo que significa una mxima proteccin.

3.. PROCESOS 3 PROCESOS 3..1 CONCEPTO 3 1 CONCEPTO


Para definir lo que es un proceso, hay que establecer la diferencia con el concepto de programa: - Un programa es una entidad pasiva compuesta nicamente por un cdigo y unos datos, es decir, tiene un listado fijo. - Un proceso es una entidad activa, es el programa en ejecucin.

3..2 BLOQUE DE CONTROL DE PROCESOS O DESCRIIPTOR DE UN PROCESO 3 2 BLOQUE DE CONTROL DE PROCESOS O DESCR PTOR DE UN PROCESO
Un bloque de control de proceso (PCB o BCP) o descriptor de proceso es una estructura de datos que contiene cierta informacin importante acerca del proceso, incluyendo, entre otra: Estado del proceso : Determina la situacin actual del proceso. Identificador de proceso. Es un nmero i entre 0-N (no se admiten n negativos). Se le denomina PID y es el mismo durante toda la vida del proceso. Registros de la CPU. Almacenan informacin necesaria del proceso cuando se producen interrupciones como consecuencia de un cambio de estado, y as poder recuperarla para volver al estado original. Lmites de memoria. Indican los lmites de memoria utilizados por un determinado proceso para evitar que otros los invada. Adems existe una zona de memoria donde se colocan los BCP, esa zona solo es accesible por el sistema operativo cuando se encuentra en modo supervisor. Informacin del status de las operaciones de E/S. Se refiere a las operaciones de E/S que el proceso est realizando, sobre que dispositivos si son de Entrada o de Salida. Estas operaciones, segn van siendo atendidas, van siendo eliminadas del BCP. Informacin del planificador de procesos. Sobre el tipo de algoritmo de planificacin que se est utilizando. El PCB es un almacenamiento central de informacin que permite al sistema operativo localizar toda la informacin clave sobre el proceso. Cuando el sistema operativo cambia la atencin de la CPU entre los procesos, utiliza las reas de preservacin para mantener la informacin que necesita para reiniciar el proceso cuando consiga de nuevo la CPU. Debido a que los PCB deben ser manipulados con rapidez por el sistema operativo, muchos sistemas de computacin contienen un registro de hardware que apunta siempre al PCB del proceso que est en ejecucin, el proceso en curso.

3..3 ESTADOS DE UN PROCESO 3 3 ESTADOS DE UN PROCESO


Durante su existencia, un proceso pasa por una serie de estados discretos. Varias circunstancias pueden hacer que un proceso cambie de estado. Los estados ms importantes en que puede encontrarse un proceso son: - Ejecutable (o activo): Si el proceso tiene asignada en ese momento la CPU. - Listo (preparado): Cuando el proceso podra usa una CPU, si hubiera una disponible.

- Bloqueado (en espera): Si el proceso espera que ocurra algo (la terminacin de una E/S por ejemplo) para poder ponerse en marcha.

3.3.1 TRANSICIONES ENTRE ESTADOS DE UN PROCESO 3.3.1 TRANSICIONES EN NTRE ESTADOS DE UN PROCESO
El S.O inicia la ejecucin de un proceso nuevo que esta listo. Cuando este proceso no va a utilizar la CPU durante un tiempo : INTERRUPCIN (hay una llamada a E/S etc.) el S.O lo pone bloqueado hasta que acaba esa operacin. Mientras tanto pasa a la CPU la ejecucin de otro proceso que estuviera listo y realiza los mismos pasos: ejecuta hasta que este deja de usar la CPU, lo pone bloqueado si es necesario y pasa a ejecutar otro. Cuando la accin del proceso que est bloqueado termina (acaba la E/S, etc.) el S.O lo pone otra vez en estado de listo, as hasta que termina con todo el proceso.

El S.O deber decidir que proceso de los que estn listos pasar a ejecutable cuando la CPU quede libre, esta decisin lo har a travs de un Planificador de procesos (DISPACHER).

3.3.2 IINTERRUPCIONES (son necesarias para que un proceso pase de un estado a otro) 3.3.2 NTERRUPCIONES
Permite interrumpir la ejecucin de un proceso ante el acontecimiento de un suceso determinado, tomando el control el S.O. El Procesador puede ejecutar otras instrucciones mientras se est realizando alguna operacin de E/S. Ante una interrupcin, la forma de actuar es (FLIH o manejador de interrupciones de primer nivel): Procesador registra situacin exacta de la ejecucin del trabajo actual. Se desva a la rutina de tratamiento de la interrupcin. La procesa segn su naturaleza y, posteriormente, reanudar el mismo u otro trabajo de usuario. La rutina de tratamiento de la interrupcin forma parte del S.O. Este programa determina la naturaleza de la interrupcin y ejecuta cuantas acciones sean necesarias.

Tipos de Interrupciones: Hardware.- Generadas por los dispositivos cuando finalizan una E/S. Software.- Generadas por el propio proceso. Hay 2 tipos: Llamadas al sistema.- Se producen mediante la invocacin de una instruccin que existe en casi todos los procesadores (Trap al S.O.). Se usan para pedir servicios al S.O. y se gestionan como si fuesen una interrupcin. Excepciones.- Se producen cuando el proceso produce un error grave que impide continuar con su ejecucin (por ejemplo divisin por cero) Finaliza proceso y cambiar a otro.

3..4 OPERACIIONES SOBRE UN PROCESO 3 4 OPERAC ONES SOBRE UN PROCESO


Los S.O. con multitarea permiten numerosas operaciones dedicadas a la gestin de procesos. Entre ellas, las ms importantes : creacin, eliminacin, obtencin de informacin, modificacin, retardo y activacin. Creacin de procesos : crear (id_proceso, atributos) ; El S.O. primero comprobar que no existen errores en la llamada (por ejemplo, comprueba que el procedimiento indicado no exista). A continuacin se crea el proceso, se pasan los atributos como parmetros, se reserva memoria para el proceso (tanto para el BCP como para el cdigo y los datos) y se aade a la cola de preparado. Eliminacin de procesos : eliminar (id_proceso) ; Para eliminar un proceso es necesario que este sea hijo del proceso eliminador, ya que de no ser as podra volverse inconsistente el sistema. Una vez realizada la llamada, el S.O. verifica que no existen errores para a continuacin liberar los recursos retenidos por el proceso. Finalmente se destruye el BCP. Obtencin de informacin : inf_proc (id_proceso,est_BCP) ; Devolver una copia del BCP del proceso requerido. El S.O. debe comprobar que no existen errores en los parmetros. mod _inf (id_proceso, est_BCP) ; Modificacin de la informacin de un proceso : El proceso modificador debe enviar como parmetros el PID del proceso que modifica y un nuevo BCP que sustituya al actual. El S.O. comprobar los posibles errores producidos. Retardar un proceso : retardar (tiempo) ; El proceso que realiza esta llamada se autodetiene durante el tiempo indicado y pierde el control de la CPU durante ese tiempo. Los ciclos de reloj de espera se anotan en el BCP (utilizados posteriormente en la planificacin de procesos). Finalmente, cuando el tiempo transcurre, el ncleo del S.O. introduce al proceso en la cola de procesos preparados para intentar ejecutarlo inmediatamente. Activar procesos retardados : activar (id_proceso); Esta funcin es privilegiada. El mecanismo para despertar procesos se activa en cada ciclo de reloj, recorrindose la cola de procesos retardados para activarlos o disminuir en una unidad el nmero de pulsos de espera. Devuelve un cdigo de error si el PID que se pasa no existe.

3..5 PLANIIFIICACIIN DE PROCESOS 3 5 PLAN F CAC N DE PROCESOS 3..5..1 CONCEPTO 3 5 1 CONCEPTO


Es el encargado de pasar trabajos o procesos a la memoria principal y a la CPU, decidiendo qu procesos de los que estn listos pasarn a ejecucin cuando la CPU se libere de algn otro proceso (cuando este pase a estar bloqueado). Sigue los pasos siguientes: 0. Decidir si se cambia el proceso. 1. Decidir mediante un algoritmo entre los procesos ejecutables, cual es el siguiente al que le asigna el procesador. 2. Salvar la informacin del proceso que se estaba ejecutando ( si no lo hizo el tratamiento de interrupciones) 3. Cargar toda la informacin necesaria del proceso elegido. 4. Pasar el control al siguiente proceso.

3..5..2 ALGORIITMOS DE PLANIIFIICACIIN 3 5 2 ALGOR TMOS DE PLAN F CAC N


Esta planificacin puede ser: Con desplazamiento(No apropiativo): Aquellos en los que unos procesos tienen prioridad sobre otros y cuando acaban de estar bloqueados y pasan a listos hacen que el S.O les d paso a la CPU que abandona el proceso que tena en ejecucin, lo pone listo y pasa a ejecutar el que tiene prioridad. Sin desplazamiento (Apropiativo): Aquella en la cual, la CPU ejecuta un proceso hasta que lo termina o por alguna razn ste pasa a estar bloqueado. Para evaluar el comportamiento de los distintos algoritmos se definen, entre otros, los siguientes parmetros: Tiempo de respuesta: Tiempo transcurrido desde que se hace una peticin de CPU, hasta que es satisfecha . Tiempo de espera: Tiempo que est en estado de listo. Penalizacin: tiempo de respuesta= tiempo de finalizacin / tiempo de CPU Rendimiento: Nmero de trabajos terminados por unidad de tiempo.

Aqu teneis la definicin de los algoritmos, los ejemplos son los vistos en clase. FCFS (First Come First Served) Los procesos son servidos en orden a su llega a la cola de listos. Dichos procesos se ejecutarn hasta que terminen o se bloqueen. Su implementacin es una cola FIFO. SJF (Shortest Job First) Primero el ms corto La CPU se asigna al proceso al que le queda menos tiempo para completar su ejecucin y a igualdad de condiciones al primero que hay hecho la peticin. PRIORIDAD A cada proceso se le asigna un determinado valor de prioridad, definida interna o externamente. La CPU se asigna al de mayor prioridad y a igualdad se sigue el algoritmo FCFS. En este ejemplo, el proceso de menor nmero (En la columna prioridad), es el de mayor prioridad. EL MS CORTO PRIMERO CON DESPLAZAMIENTO Igual que el ms corto primero, excepto que cuando un proceso llega a la cola de listos compara su tiempo con el que se esta ejecutando y si es menor se realiza un cambio de contexto. ROUND ROBIN La CPU se asigna a los procesos en intervalos de tiempo llamados QUANTUM. Si el proceso finaliza o se bloquea antes de agotar el quantum, se toma el siguiente en la lista y se le asigna un nuevo intervalo de tiempo, si por el contrario agota su quantum pasa al final de la lista. La lista se trata como una cola FIFO.
Creacin de nuevo proceso Proceso pasa de bloqueado a ejecutable

CPU

Proceso agota su intervalo de tiempo

COLAS MULTIPLES La cola de ejecutables se divide en varias colas, los trabajos son asignados permanentemente a una cola, segn algn criterio (cada cola puede tener un algoritmo de asignacin, adems debe existir un algoritmo de asignacin entre las colas).

Cola 1

Cola de ejecutables

Cola 2

CPU

Cola 3

COLAS MULTIPLES CON TRASPASO Usa el sistema de colas mltiples pero con la diferencia siguiente: Los trabajos pueden pasar de unas colas a otras.

3..6 COMUNIICACIIN ENTRE PROCESOS 3 6 COMUN CAC N ENTRE PROCESOS


Los distintos procesos, dentro de un computador, no actan, evidentemente, de forma aislada. Por un lado deben cooperar con el fin de alcanzar el objetivo de poder ejecutar las tareas de los usuarios. Por otro lado, compiten por el uso de unos recursos, limitados como los procesadores, la memoria o los ficheros. Las dos actividades de cooperacin y competicin llevan asociada la necesidad de algn tipo de comunicacin y sincronizacin entre los procesos.

3..6..1 EXCLUSIIN MUTUA 3 6 1 EXCLUS N MUTUA


Los recursos de un sistema pueden clasificarse como compartibles, lo que significa que pueden ser empleados por varios procesos de forma concurrente, o no-compartibles, lo que equivale a que su uso se restrinja a un solo proceso a la vez. El problema de la, exclusin mutua es el de asegurar que los recursos no compartibles sean accedidos por un solo proceso a la vez. Aquella parte del programa en la cual se accede al recurso compartido se denomina seccin crtica. Hay que evitar que dos procesos entren simultneamente en su seccin crtica. Cuando varios procesos compiten por recursos es posible que se de una situacin en la que ninguno de ellos pueda proseguir debido a que los recursos que cada uno de ellos necesita estn ocupados por los otros. Esta situacin se conoce con el nombre de interbloqueo o deadlock.

3..6..2 MECANIISMOS DE COMUNIICACIIN DE PROCESOS 3 6 2 MECAN SMOS DE COMUN CAC N DE PROCESOS


En los sistemas operativos multiprocesos los distintos procesos deben de comunicarse unos con otros de tal forma que dos procesos no se apoderen de un mismo recurso nico (memoria, perifrico,...). Para enviar dicha informacin se dispone de muchos mecanismos, uno de ellos es la sincronizacin de procesos (caso particular de comunicacin). Herramienta para la Sincronizacin de procesos : SEMFOROS. Un semforo es un entero no negativo sobre el cual, aparte de su proceso de inicializacin, puede actuarse slo a travs de las. operaciones de wait y signal Estas operaciones actan slo sobre semforos y su efecto se describe a continuacin. A) signal (s) Su efecto consiste en incrementar el valor del semforo s en uno, siendo esta una operacin considerada como indivisible. El concepto de indivisibilidad lleva aparejado el que signal (s) no sea equivalente a la sentencia de asignacin "s: = s + 1". Supongamos que dos procesos A y B desean llevar a cabo la operacin (s) , en el momento en que s tiene por valor 3. El valor de s cuando se hubiesen efectuado ambas operaciones sera 5. Supongamos, por otra parte, que en circunstancias similares ambos procesos quieren llevar a cabo la asignacin "s := s + 1". A podra entonces evaluar la expresin s + 1 obteniendo el valor 4. Antes de que A pudiese asignar este valor a s, B podra tambin evaluar s + 1 llegando al mismo

resultado. -Cada proceso asignara entonces el valor 4 a s, perdindose uno de los dos incrementos que se queran llevar a cabo. B) wat (s) Su efecto consiste. en decrementar el valor del semforo s en 1 en tanto que el resultado al que llegue sea no-negativo. Esta operacin es tambin indivisible. La operacin de wait representa un retardo en potencia ya que cuando acta sobre un semforo cuyo valor sea 0, el proceso que la ejecute podr seguir solo cuando otro proceso haya incrementado el valor del semforo a 1mediante una operacin de signal. La indivisibilidad de esta operacin significa que si el retardo mencionado anteriormente afecta a varios procesos, slo uno de ellos podr proseguir cuando el semforo pase a ser positivo. No se lleva a cabo suposicin alguna sobre cul ser este proceso. MONITORES. En el apartado anterior veamos cmo podan utilizarse semforos para llevar a cabo tareas de sincronizacin y comunicacin entre procesos. El uso indiscriminatorio de semforos es susceptible, sin embargo, de errores, ya que es fcil que un programador coloque las operaciones de wait y signal en el lugar incorrecto, pudiendo incluso omitirlas por completo. Para evitar problemas de este tipo han ido apareciendo un buen nmero de propuestas de construcciones para lenguajes de programacin que obliguen al programador a declarar de forma explcita los datos y los recursos compartidos forzando la exclusin mutua en el acceso a estos elementos comunes. Una de las construcciones propuestas de ms xito y ms ampliamente adoptada es, el monitor. Un monitor consta de: 1.- Los datos que contiene el objeto a compartir. 2.- Un conjunto de rutinas que pueden llamarse para acceder a este objeto. 3.- Un fragmento de programa que inicializa el objeto. en cuestin (y que se ejecuta tan solo una vez cuando ese objeto es creado). Ejemplo: As por ejemplo, un buffer destinado a pasar datos de un proceso productor a otro puede representarse mediante un monitor que consiste en: 1.- El rea de memoria ocupada por el buffer y los punteros (por ejemplo, un vector y los ndices del mismo). 2.- Dos rutinas depositar v extraer que pueden ser llamadas desde cualquier proceso para colocar un determinado elemento en el buffer. o bien para sacarlo. 3.- Un fragmento de programa que inicialice los punteros del buffer al principio del mismo.

El compilador de un lenguaje que incorpore monitores debe garantizar que el acceso a un objeto compartido slo pueda efectuarse llamando a la rutina del correspondiente monitor. El compilador debe asegurar tambin que las rutinas de cada monitor se implementen en forma de secciones crticas mutuamente exclusivas. Ello puede lograrse fcilmente generando el compilador operaciones de wait y de signal sobre semforos apropiados en el programa compilado. EVENTOS : - Los eventos llevan asociado : Un identificador del Evento. Una cola de Eventos. - Dos primitivas : Dormir : El proceso solicitante pierde el control del procesador. Se aade a la cola del procesador. No existen errores (control). Despertar : El proceso solicitante pasa de la Cola de eventos a la del procesador : Si no existen procesos detenidos en la Cola de eventos la llamada queda sin efecto. No existen errores (control). Mientras que los Semforos y Eventos son propios de Sistemas Fuertemente Centralizados (aunque se pueden crear en sistemas distribuidos), los MENSAJES son propios de Sistemas Distribuidos. MENSAJES Definicin : Coleccin de informacin que se intercambia entre 2 ms procesos. Habr ms de 1 2 procesos emisores/receptores. Cabecera (parte fija del mensaje) {Informacin relativa al propio mensaje} Cuerpo (resto del mensaje) {Contenido del mensaje} Formato del mensaje : Tamao Fijo (Mensaje rgido. Descomposicin de la informacin en mdulos) Tamao Variable (Cabecera fija. Cuerpo vara de tamao) Tipo de comunicacin : Comunicacin Directa (Rendez-Vous): - Es simtrica. Cada proceso tiene que saber el identificador del receptor y viceversa. - Un enlace cada 2 procesos. - Enlace puede ser bidireccional.

Comunicacin Indirecta : - Se establece un enlace de comunicaciones cada 2 procesos, siempre que compartan un buzn. - Un enlace puede estar asociado a varios procesos. - BUZN : Buffer que ayuda al intercambio de informacin entre procesos. Se utiliza un identificador. Los dueos de los buzones son los procesos que los crean. Implementacin de las primitivas SEND (enviar) y RECEIVE (recibir) : En Comunicacin Directa : enviar (B, Mensaje); recibir (A, Mensaje);

Proceso A

Proceso B

Proceso A

Proceso B

BUZON

Proceso D

En Comunicacin Indirecta : enviar (id_buzon, Mensaje) ; recibir (id_buzon, Mensaje) , crear_buzon (id_buzon) ;

Proceso C

Modo de Transmisin :
Por Copia : - Se copia en el espacio de direcciones del mensaje.

- Los cambios que se producen en el mensaje emisor no influyen en el receptor y viceversa.


Por Referencia : - El emisor pasa punteros para decir donde est escrito el mensaje.

- Los cambios que haga uno, afecta a todos. Capacidad (del enlace de comunicaciones) : En Comunicacin Directa: Si el proceso A enva a B, se establece un nico enlace de comunicacin. En este caso, la capacidad de enlace es NULA. En Comunicacin Indirecta : Varios procesos se comunican con un BUZN y uno extrae de l. La capacidad del enlace depende del BUZN. Tamao (puede ser fijo o variable).

4.. BIIBLIIOGRAFA 4 B BL OGRAF A


"Sistemas Operativos: Concepto y Diseo"; Milan Milenkovic; McGraw-Hill; 1.994 "Introduccin a la Informtica" A. Prieto; McGraw-Hill; 1.995 "Sistemas Operativos: Diseo e Implementacin"; Tanenbaum; Prentice; 1.988 VICTOR MANUEL,A J.ANTONIO,VSistemas Operativos Alhambra.

También podría gustarte