You are on page 1of 88

CAPITULO II. PROCESOS Y MULTITAREA Ing. Katy Cabezas M.

OBJETIVO
y El objetivo de este capitulo es la adquisicin de

conocimientos relativos a los problemas asociados a la ejecucin concurrente de un conjunto de procesos, as como las soluciones clsicas a los problemas de sincronizacin y comunicacin entre procesos.

INTRODUCCIN
y Todas las computadoras modernas pueden hacer varias cosas al

mismo tiempo. Mientras ejecuta un programa de usuario, una computadora tambin puede estar leyendo de un disco y enviando texto a la pantalla o impresora.

y En un sistema de multiprogramacin, la CPU tambin conmuta

de un programa a otro, ejecutando cada uno durante decenas o centenas de milisegundos.

y Para el ser humano es difcil seguir la pista a mltiples

actividades paralelas. Por ello, los diseadores de sistemas operativos han desarrollado a lo largo de los aos un modelo (procesos secuenciales) que facilita el manejo del paralelismo.

PROCESOS
y Un concepto clave en todos los sistemas operativos, es el proceso. Un proceso es bsicamente un programa en ejecucin. Cada proceso tiene asociado un espacio de direcciones, una lista de posiciones de memoria desde algn mnimo hasta algn mximo, que el proceso puede leer y escribir. y El espacio de direcciones contiene el programa ejecutable, los datos del programa, y su pila. y A cada proceso tambin se asocia un conjunto de registros, que incluyen el contador del programa, el apuntador de la pila y otros registros de hardware, as como toda la dems informacin necesaria para ejecutar el programa

PROCESOS
y Cuando un proceso se suspende temporalmente, debe

reiniciarse despus en el mismo estado exactamente en que estaba en el momento en que se le detuvo.
y Esto implica que toda la informacin acerca del

proceso se debe guardar explcitamente en algn lugar durante la suspensin.

PROCESOS - Ejemplo
y Es posible que el proceso tenga varios archivos abiertos para lectura. Cada uno de estos archivos tiene asociado un apuntador que indica la posicin actual (es decir, el nmero del byte o registro que se leer a continuacin). y Cuando un proceso se suspende temporalmente, es necesario guardar todos estos apuntadores para que una funcion llamada read, pueda ubicarla despus de reiniciarse el proceso y lea los datos correctos. y En muchos S.O., toda la informacin acerca de cada proceso, aparte del contenido de su propio espacio de direcciones, se almacena en una tabla del sistema operativo llamada tabla de procesos, que es un arreglo de estructuras, una para cada proceso existente en ese momento.

y As, un proceso (suspendido) consiste en su espacio de

direcciones, por lo regular llamado imagen de ncleo (recordando las memorias de ncleos magnticos que se usaban en el pasado), y su entrada en la tabla de procesos, que contiene sus registros, entre otras cosas.
y Las llamadas al sistema de administracin para

procesos clave son las que se ocupan de la creacin y terminacin de procesos.

Consideremos un ejemplo representativo


y Un proceso llamado intrprete de comandos o Shell lee comandos de

una terminal. El usuario acaba de teclear un comando solicitando la compilacin de un programa. El Shell debe crear ahora un proceso nuevo que ejecute el compilador. llamada al sistema para terminarse a s mismo.

y Cuando ese proceso haya terminado la compilacin, ejecutar una y Si un proceso puede crear uno o ms procesos distintos (denominados

procesos hijos) y stos a su vez pueden crear procesos hijos, pronto llegamos a la estructura de rbol de procesos.

y Los procesos relacionados que estn cooperando para realizar alguna

tarea a menudo necesitan comunicarse entre s y sincronizar sus actividades. Esta comunicacin se llama comunicacin entre procesos.

Consideremos un ejemplo representativo


A B D E F C

y Fig . Un rbol de procesos. El proceso A cre dos procesos hijos B y C el

proceso B cre tres procesos D, E y F

PROCESOS Y MULTITAREA
y Una definicin tradicional de proceso es la de instancia de un

programa en ejecucin. La ejecucin de tal programa es indicada al S.O. mediante una accin u orden especializada. y El S.O. responde en ese punto creando un nuevo proceso. En general, esta actividad consiste en la creacin inicializacin de estructuras de datos en el S.O. para monitorizar y controlar el progreso de proceso en cuestin. Una vez creado, el proceso pasara a estar activo y competira por la utilizacin de recursos del sistema como el procesador y los dispositivos I/O. y Un proceso evoluciona cclicamente entre perodos de ejecucin activa y de espera por la terminacin de actividades de I/O, cuando un proceso queda inactivo por especificar una operacin de I/O y quedar a la espera de que sta se complete, el sistema operativo puede planificar la ejecucin de otro proceso.

PROCESOS Y MULTITAREA
y Desde este punto de vista, un proceso es una entidad

individualmente planificable, que puede ser asignada al procesador y ejecutada por ste, el sistema operativo controla, pues, dinmicamente la evolucin de los procesos registrando la informacin correspondiente a sus cambios cuando estos se produzcan. y Esta informacin es utilizada por el sistema operativo para sus labores de planificacin y gestin sobre el conjunto de procesos que en un determinado momento pueden coexistir en el sistema informtico.

PROCESOS Y MULTITAREA
y De esta forma adems de la plantilla esttica

constituida por el programa ejecutable en que se basa, un proceso posee ciertos atributos que ayudan al sistema operativo en su gestin.
y Los atributos de un proceso incluyen su estado actual,

unidad de planificacin, derechos de acceso, nivel de prioridad entre otros datos.

LOS SISTEMAS OPERATIVOS Y LOS PROCESOS


Todos los sistemas operativos de multiprogramacin estn construidos en torno al concepto de proceso. Los requisitos principales que debe cumplir un sistema operativo para con los procesos son los siguientes:
1.

El S.O. debe intercalar la ejecucin de procesos para optimizar la utilizacin del procesador ofreciendo a la vez un tiempo de respuesta razonable. El S.O. debe asignar los recursos del sistema a los procesos en conformidad con una poltica especfica que evite situaciones de interbloqueo. El S.O. podra tener que dar soporte a la comunicacin entre procesos y ofrecer mecanismos para su creacin.

2.

3.

ESTADOS DE PROCESOS
y En cualquier S.O., es bsico conocer el comportamiento que

exhibirn los distintos procesos y el conjunto de estados que pueden atravesar. y Aunque cada proceso es una entidad independiente, con su propio contador de programa y estado interno, los posibles estados bsicos para un proceso son:
Ejecutndose. Es el proceso que se encuentra en el momento procesndose dentro de la CPU es decir usando realmente la CPU en ese instante. y Listo. El proceso se encuentra listo para ser ejecutado. Como puede haber varios procesos listos, el mdulo denominado planificador es quien dictamina que proceso es el que entra a ejecutarse. y Bloqueado. Un proceso bloqueado est esperando a que ocurra un evento y no puede seguir ejecutando hasta que suceda el evento. Una situacin tpica de proceso bloqueado se produce cuando el proceso solicita una operacin de E/S. Hasta que no termina esta operacin, el proceso queda bloqueado.
y

MODELO DE DOS ESTADOS


y El modelo ms sencillo que puede construirse tiene en cuenta que un

momento dado un proceso puede estar ejecutndose en el procesador o no. y As pues, un proceso puede estar en uno de dos estados: Ejecucin o No ejecucin. entrada Terminar

no ejecucin

Ejecucin

MODELO DE DOS ESTADOS


y Cuando el S.O. crea un nuevo proceso, ste entra en el sistema en el estado de No ejecucin. De este modo, el proceso existe, es conocido por el sistema operativo y est esperando la oportunidad de ejecutarse. y En un momento dado, el sistema operativo decide otorgar el procesador a un proceso determinado con lo que dicho proceso pasara de estado no ejecucin a ejecucin. Cada cierto tiempo, el proceso en ejecucin es interrumpido y el sistema operativo seleccionara un nuevo proceso para que tome el control del procesador. y El proceso interrumpido pasa del estado de ejecucin al de no ejecucin mientras que el proceso elegido realiza la transicin inversa.

MODELO DE DOS ESTADOS


y Incluso en este modelo tan simple, se aprecian ya

algunos de los elementos importantes en el diseo del sistema operativo. Cada proceso debe representarse de forma que el sistema operativo tenga conocimiento de su estado actual y de su posicin en memoria.
y Aquellos procesos que no estn en estado de ejecucin

debern almacenarse en algn tipo de estructura de datos mientras esperan que el sistema operativo les otorgue el control sobre el procesador.

MODELO DE 3 ESTADOS
y El sistema operativo analiza dicha lista para lanzar la

ejecucin de los procesos a medida que disponga de los recursos necesarios. y Adems de esto, el sistema operativo tiene la facultad de poder suspender algn proceso, el objetivo de la suspensin estriba en dejar suficiente memoria a los procesos no suspendidos para que su conjunto residente tenga un tamao adecuado y de esta manera sea mucho ms eficiente. y De esta manera el diagrama bsico de estados de un proceso se extiende a tener ahora 5 posibles estados:

MODELO DE 3 ESTADOS
1 Ejecutndose 2 3 Bloqueado 4 Listo

1.2.3.4.-

Un proceso se bloquea para aceptar entradas El planificador escoge otro proceso El planificador escoge este proceso Hay entradas disponibles

MODELO DE 5 ESTADOS
Ejecucin Memoria Entra al sistema Nuevo Fin E/S Bloqueado

Listo y Suspendid o Procesos por lotes en espera

Fin E/S

Bloqueado y Suspendid o

Zona de Intercambi o

En este modelo un proceso puede encontrarse en cualquiera de los siguientes 5 estados siguientes:
y Estado Nuevo: esta estado correspondera a procesos que acaban de

ser definidos pero que aun no han sido admitidos por el sistema operativo como procesos ejecutables. y Para estos procesos se habran realizado ciertas tareas de gestin interna como la asignacin de un identificador y la creacin de algunas estructuras de control. y La principal motivacin para la existencia de este estado es la limitacin por parte del sistema operativo del nmero total de procesos activos por razones de rendimiento1 o por las restricciones impuestas por la capacidad de la memoria.

En este modelo un proceso puede encontrarse en cualquiera de los siguientes 5 estados siguientes:
y 2. Estado Listo o Preparado: En este estado se encontraran aquellos

procesos que dispongan de todos los recursos necesarios para comenzar o proseguir su ejecucin. Y se encuentran a la espera de que se les conceda el control del procesador. y 3. Estado de Ejecucin: En este estado se encuentra el proceso que tiene el control del procesador. Dado que se consideraran arquitecturas que disponen de un nico procesador, en un instante determinado slo un proceso puede encontrarse en este estado.

En este modelo un proceso puede encontrarse en cualquiera de los siguientes 5 estados siguientes:
y 4. Estado Bloqueado: En este estado se encuentran aquellos

procesos que carecen de algn recurso necesario para su ejecucin siendo este recurso distinto del procesador o bien se encuentran a la espera de que tenga lugar un determinado evento. y 5. Estado Terminado: A este estado pertenecen aquellos procesos excluidos por el sistema operativo del grupo de procesos ejecutables. Un proceso alcanza este estado cuando llega al punto normal de terminacin, cuando se abandona debido a un error irrecuperable o cuando un proceso con la debida autoridad hace que termine su ejecucin.

MODELO DE 5 ESTADOS
y En este punto, el proceso ya no es susceptible de ser elegido para ejecutarse. y Sin embargo, el sistema operativo conserva cierta informacin asociada con l para su posible utilizacin, bien por otras aplicaciones como programas de utilidad para el anlisis de la historia y rendimiento del proceso o bien por parte del sistema operativo con fines estadsticos. y Una vez extrada esta informacin, el sistema operativo ya no necesita mantener ms datos relativos al proceso y stos se borran del sistema. En la siguiente figura se muestra claramente el diagrama de transiciones entre estados.

Diagra a tra sici s tr sta s. La l a t a a i ica xc ci al. sit aci


PREPARADO EJECUCIN

FIN DE PLAZO NUE O OCURRENCIA ESPERAR DE UN SUCESO SUCESO LOQUEO TERMINADO

Diagrama de transiciones entre estados.


sici n a Nuevo: e crea ev r ces ara ejec tar r ra a y Transici n Nuevo-Preparado: Esta tra sici tie e l ar c a el siste a erativ est re ara ara ace tar a itir r ces s. y e te ra e c e ta las restricci es eriva as e la ca aci a e la e ria y e aya ta t s r ces s activ s c ara e ra ar el re i ie t .
y Tr

Diagrama de transiciones entre estados.


y Transicin Preparado-Ejecucin: Esta transicin se produce cuando

el sistema operativo selecciona un nuevo proceso para ejecutar en funcin de su poltica de planificacin. y Transicin Ejecucin-Preparado: La razn ms comn para esta transicin es que el proceso que est en ejecucin ha alcanzado el tiempo mximo permitido de ejecucin ininterrumpida. Hay otras causas alternativas que no estn implementadas en todos los sistemas operativos como la expropiacin de un proceso en favor de otro ms prioritario.

Otra situacin, muy extraordinaria, que origina esta transicin es que un proceso ceda voluntariamente el control del procesador.
y Transicin Ejecucin-Bloqueo: Un proceso realiza

esta transicin cuando queda a la espera por la concesin de un determinado recurso o por la ocurrencia de un determinado suceso. y Transicin Bloqueado-Preparado: Tiene lugar si a un proceso bloqueado se le concede el recurso solicitado u ocurre el suceso por el que estaba esperando.

Otra situacin, muy extraordinaria, que origina esta transicin es que un proceso ceda voluntariamente el control del procesador.
y Transicin Preparado-Terminado: Puede ocurrir si, por ejemplo, un proceso padre decide en un momento determinado finalizar la ejecucin de sus procesos hijos. Si alguno de dichos procesos se encontraba en estado preparado realizar esta transicin. Otra razn puede ser debida a un requisito de memoria que es denegado. y Transicin Bloqueado-Terminado: Un proceso hijo puede realizar esta transicin por la misma razn que la anterior. Otra causa puede ser que el proceso supere el tiempo mximo de espera por un recurso y el sistema operativo decida entonces terminarlo (es la razn ms habitual).

TIPOS DE PROCESOS Y RELACIN ENTRE PROCESOS CONCURRENTES.


y En principio, podemos realizar una clasificacin muy general de

los procesos entre procesos de usuario y procesos de sistema. y Un proceso de usuario es aquel creado por el sistema operativo como respuesta a una de ejecucin del usuario o de una aplicacin que ejecuta a instancias de ste. y Un proceso de sistema es un proceso que forma parte del propio sistema operativo y que desempea alguna de sus labores caractersticas, como por ejemplo, la eleccin del siguiente proceso a ejecutar o bien la prestacin de un servicio determinado como el acceso a un recurso de I/O del sistema. y Cualquiera que sea la naturaleza de los procesos, stos pueden mantener fundamentalmente dos tipos de relaciones: Competicin y/o Colaboracin.

TIPOS DE PROCESOS Y RELACIN ENTRE PROCESOS CONCURRENTES.


y En virtud de la comparticin de recursos de un solo sistema, todos los procesos concurrentes compiten unos con otros por la asignacin de los recursos del sistema necesarios para sus operaciones respectivas. y Adems, una coleccin de procesos relacionados que representen colectivamente una sola aplicacin lgica, suelen cooperar entre s. La cooperacin es habitual entre los procesos creados como resultado de una divisin explcita de tareas. y Dos o ms procesos decimos que son concurrentes, paralelos, o que se ejecutan concurrentemente, cuando son procesados al mismo tiempo, es decir, que para ejecutar uno de ellos, no hace falta que se haya ejecutado otro.

TIPOS DE PROCESOS Y RELACIN ENTRE PROCESOS CONCURRENTES.


y Los procesos cooperativos intercambian datos y

seales de sincronizacin necesarios para estructurar su progreso colectivo. y Tanto la competicin como la colaboracin de procesos requieren una protegida asignacin y proteccin de los recursos en trminos de aislamiento de los diferentes espacios de direcciones. y La cooperacin depende de la existencia de mecanismos para la utilizacin controlada de los datos compartidos y el intercambio de seales de sincronizacin.

TIPOS DE PROCESOS Y RELACIN ENTRE PROCESOS CONCURRENTES.

y Los procesos cooperativos comparten tpicamente algunos recursos y atributos adems de interactuar unos con otros. Por esta razn, con frecuencia se agrupan en lo que se denomina una familia de procesos. y Aunque dentro de una familia son posibles relaciones complejas entre sus procesos miembros, la relacin ms comnmente soportada por los sistemas operativos es la relacin padre-hijo. y Esta relacin se establece cuando el Sistema Operativo crea un nuevo proceso a instancias de otro ya existente. Los procesos hijos heredan generalmente los atributos de sus procesos padres en el momento de su creacin y tambin pueden compartir recursos con sus procesos hermanos.

PERSPECTIVAS DESDE EL PUNTO DE VISTA DEL COMPUTADOR


y Un Sistema Operativo debe perseguir una utilizacin

lo ms ptima y equilibrada posible de los recursos que administra. y De esta forma se obtendra un alto rendimiento del sistema informtico gobernado. y El Sistema Operativo es el responsable de la gestin de los recursos de la mquina y mediante su administracin tiene el control sobre las funciones bsicas de la misma.

PERSPECTIVAS DESDE EL PUNTO DE VISTA DEL COMPUTADOR


y El sistema operativo no es nada ms que un programa pero la diferencia clave es su propsito. El sistema operativo dirige al procesador en el empleo de otros recursos del sistema y en el control del tiempo de ejecucin de los programas de usuario. y Una parte del Sistema Operativo reside en memoria principal, en esta parte est el ncleo (kernel) que incluye funciones del sistema operativo utilizadas con ms frecuencia aunque, en un momento dado, puede incluir otras partes en uso, el resto de la memoria, que contiene datos y programas de usuario, es administrada conjuntamente por el Sistema Operativo y por el hardware de control de memoria.

PERSPECTIVAS DESDE EL PUNTO DE VISTA DEL COMPUTADOR


y El Sistema Operativo decide cuando puede utilizarse un dispositivo de E/S por parte de un programa en ejecucin y controla el acceso y la utilizacin de los archivos. y El procesador es, en s mismo, un recurso y es el Sistema Operativo el que debe determinar cuanto tiempo de procesador debe dedicarse a la ejecucin de un programa usuario en particular. En el caso de sistemas multiprocesador, la decisin debe tomarse entre todos los procesadores. y Cuando un usuario se sienta frente a uno de ellos y comienza a trabajar, el computador se percibe como un objeto que permite manipular una serie de programas que a su vez realizan una serie de tareas.

Por ejemplo
y Al conectarse a Internet y entrar en un chat, el computador permite, a travs del programa de chat, el intercambio de mensajes con un conjunto de personas que a su vez estn utilizando ese mismo programa en otros computadores en otros lugares. y Pero adems de utilizar el programa de chat, no se debe olvidar que se est utilizando igualmente la pantalla para visualizar los mensajes, el teclado para introducir su texto, y posiblemente el ratn para seleccionar iconos o ventanas en la pantalla. y Otro ejemplo de utilizacin del computador es cuando un usuario abre un fichero de texto y comienza a escribir una carta.

ejemplo
y El computador facilita el trabajo de escritura y almacenamiento de este documento que puede incluir elementos especiales tales como imgenes, diferentes tipos de letras, grficas con datos, etc. y Para realizar esta tarea tambin se utiliza la pantalla para visualizar los datos, el teclado para introducir texto, y el ratn para realizar tareas de seleccin y manipulacin de texto. y Si este documento creado de forma electrnica se necesita en papel, el computador permite enviarlo a una impresora que se encarga de plasmar en papel lo que hasta el momento se haba mostrado en pantalla.

ejemplo
y Tanto la utilizacin de un programa de chat como la redaccin e impresin de una carta son tareas que han sido previamente introducidas o programadas en el computador y por tanto puede ejecutarlas cuando el usuario as lo requiera. y Pero los computadores Poseen una propiedad que los hace realmente potentes: se pueden programar con tareas nuevas. y Es decir, si un computador no dispone del programa necesario para realizar una tarea, y sta es programable, existen lenguajes de programacin tales como Java que permiten escribir estos programas e instalarlos.

ejemplo
y A partir de ese momento, el computador podr ejecutar el programa escrito tantas veces como el usuario desee. y Pero estos lenguajes de programacin, a pesar de que sirven para conseguir que el computador realice una tarea concreta, no son los que el computador entiende directamente. y Antes de instalar un programa es preciso traducirlo al lenguaje bsico que se maneja internamente a este proceso de traduccin se le denomina compilacin. (Preparar un programa en el lenguaje mquina a partir de otro programa de computador escrito en otro lenguaje). y Una vez que el programa ha sido traducido o compilado, el computador ya puede ejecutarlo.

LOS PROCESOS DESDE LA PERSPECTIVA DEL PROGRAMADOR.


y Desde el punto de vista del programador, un proceso

no es ms que la ejecucin de un conjunto de instrucciones que llevan a cabo una determinada tarea, mientras que para el sistema operativo es una entidad que atraviesa dinmicamente un conjunto de estados y que solicita los recursos del sistema que le son necesarios. y De esta forma, el acceso a tales recursos debe ser planificado de forma que se consiga un rendimiento en la utilizacin de los mismos lo ms ptimo posible.

LOS PROCESOS DESDE LA PERSPECTIVA DEL PROGRAMADOR.


y Podemos definir un proceso como un programa en

ejecucin y, de una forma un poco ms precisa, como la unidad de procesamiento gestionada por el sistema operativo. y El sistema operativo mantiene por cada proceso una serie de estructuras de informacin que permiten identificar las caractersticas de ste, as como los recursos que tiene asignados. y Desde el punto de vista del procesador ste ejecutar una secuencia de instrucciones dictadas por los valores cambiantes del registro PC (Program Counter).

LOS PROCESOS DESDE LA PERSPECTIVA DEL PROGRAMADOR.


y A lo largo del tiempo, este contador puede apuntar a cdigo de programas diferentes que son parte de diferentes aplicaciones, viendo de esta manera una lista de programas individuales en ejecucin, La ejecucin de un programa individual se conoce como proceso o tarea. y Esta forma de utilizar un computador, como un objeto al que podemos darle rdenes precisas sobre tareas, mediante un programa escrito en un lenguaje de programacin, y que se traduce al lenguaje mquina interno del computador, es lo que denominaremos la perspectiva del programador .

LOS PROCESOS DESDE LA PERSPECTIVA DEL PROGRAMADOR.


y Un sistema operativo debe hacer que la interaccin del usuario o de los programas de aplicacin con el computador resulte sencilla y fcil y debe construirse de modo que permita el desarrollo efectivo, la verificacin y la introduccin de nuevas funciones en el sistema y, a la vez, no interferir en los servicios ya proporcionados. y El Hardware y el Software que se utilizan para proveer al usuario de aplicaciones pueden contemplarse de forma estratificada o jerrquica, de forma resumida el sistema operativo ofrece servicios en las siguientes tareas:

LOS PROCESOS DESDE LA PERSPECTIVA DEL PROGRAMADOR.


y Creacin de programas: El sistema operativo ofrece una gran variedad de servicios como los editores y depuradores (debuggers), para ayudar al programador en la creacin de programas. Normalmente, estos servicios estn en forma de programas de utilidad que no forman realmente parte del sistema operativo, pero que son accesibles a travs de el. y Ejecucin de programas: Para ejecutar un programa es necesario realizar un cierto nmero de tareas. Las instrucciones y los datos deben cargarse en memoria principal, los archivos y los dispositivos de E/S deben inicializarse y deben prepararse otros recursos. El sistema operativo administra todas estas tareas por el usuario.

LOS PROCESOS DESDE LA PERSPECTIVA DEL PROGRAMADOR.


y Acceso a los dispositivos de E/S: Cada dispositivo de E/S

requiere un conjunto propio y peculiar de instrucciones o seales de control para su funcionamiento. El sistema operativo, ayudado por los manejadores o drivers de dispositivo tiene en cuenta estos detalles de forma que el programador pueda pensar en forma de lecturas y escrituras simples desde o hacia el dispositivo. y Acceso controlado a los archivos: El sistema operativo se ocupa del formato de los archivos y del medio de almacenamiento. En el caso de sistemas de varios usuarios trabajando smultneamente, es el sistema operativo el que brinda los mecanismos para controlar que el acceso a los archivos se lleve a cabo de una forma correcta.

LOS PROCESOS DESDE LA PERSPECTIVA DEL PROGRAMADOR.


y Acceso al sistema: En el caso de un sistema compartido o pblico, el sistema operativo controla el acceso al sistema como un todo y a los recursos especficos del sistema. Las funciones de acceso deben brindar proteccin a los recursos y a los datos ante usuarios no autorizados y debe resolver conflictos en la propiedad de los recursos. y Deteccin y respuesta a errores: Cuando un sistema informtico est en funcionamiento pueden producirse varios errores. El sistema operativo debe dar una respuesta que elimine la condicin de error con el menor impacto posible sobre las Aplicaciones que estn en ejecucin.

LOS PROCESOS DESDE LA PERSPECTIVA DEL PROGRAMADOR.


y Contabilidad: Un sistema operativo debe recoger

estadsticas de utilizacin de los diversos recursos y supervisar parmetros de rendimiento tales como el tiempo de respuesta.

LOS PROCESOS DESDE LA PERSPECTIVA DEL PROGRAMADOR.


Pero adems de los ejemplos cotidianos de uso, es posible percibir un computador desde una perspectiva totalmente diferente. En efecto, si se dispone de nociones bsicas de electrnica digital, se sabe que en su interior hay una serie de circuitos electrnicos interconectados entre s. Si se abre la caja de un computador puede verse todo un conjunto de pequeos circuitos interconectados por infinidad de cables que atraviesan una superficie rgida conocido genricamente con el nombre de placa.

LOS PROCESOS DESDE LA PERSPECTIVA DEL PROGRAMADOR.


Los circuitos, a su vez estn diseados utilizando puertas lgicas, que a su vez constan de un conjunto de transistores. La manera en que dichas puertas lgicas estn conectadas permite realizar operaciones aritmticas bsicas tales como sumas, restas, multiplicaciones, divisiones, etc. Al igual que todo circuito electrnico, se necesita un cierto voltaje para que funcione que es proporcionado por otro circuito que es conocido como la fuente de alimentacin y que forma parte del computador. Si se observa con ms detalle la estructura interna de un computador, es posible distinguir algunos de sus componentes. Los discos duros suelen tener aspecto de caja metlica rectangular con conectores en uno de sus lados.

LOS PROCESOS DESDE LA PERSPECTIVA DEL PROGRAMADOR.


Puede verse cmo algunos de los conectores que aparecen en la parte posterior de la caja del computador estn conectados a pequeas placas con circuitos impresos que a su vez estn conectadas a una placa mayor que ocupa casi la totalidad de la carcasa. De todos los circuitos o componentes presentes en el computador, hay uno especialmente importante. Se distingue, en la mayora de los computadores, porque es el circuito de mayor tamao en el equipo y requiere su propio ventilador para evitar recalentamientos por lo que no suele estar directamente visible.

LOS PROCESOS DESDE LA PERSPECTIVA DEL PROGRAMADOR.


Este circuito es el que se conoce con el nombre de procesador, y es el responsable de dirigir, controlar y ejecutar las principales tareas que realiza el computador. La caracterstica fundamental de este procesador es que puede ejecutar programas en lenguaje mquina. Por tanto, el lenguaje mquina es aqul que consta de las instrucciones o comandos que son entendidos por el procesador. Recordemos que una de las principales capacidades del computador es la de ejecutar programas, y una gran parte de esta capacidad se debe a la presencia del procesador. Esta perspectiva del computador como un conjunto de circuitos electrnicos interconectados entre s se denominar la perspectiva del programador.

APLICACIONES Y MULTITAREA EN WINDOWS.


y La Multitarea, es un modo de funcionamiento disponible en algunos sistemas operativos, mediante el cual una computadora procesa varias tareas al mismo tiempo. Existen varios tipos de multitarea. y La conmutacin de contextos (context switching) es un tipo muy simple de multitarea en el que dos o ms aplicaciones se cargan al mismo tiempo, pero en el que slo se est procesando la aplicacin que se encuentra en primer plano (la que ve el usuario). y Para activar otra tarea que se encuentre en segundo plano, el usuario debe traer al primer plano la ventana o pantalla que contenga esa aplicacin.

APLICACIONES Y MULTITAREA EN WINDOWS.


y En la multitarea cooperativa, la que se utiliza en el

sistema operativo Macintosh, las tareas en segundo plano reciben tiempo de procesado durante los tiempos muertos de la tarea que se encuentre en primer plano (por ejemplo, cuando esta aplicacin est esperando informacin del usuario), y siempre que esta aplicacin lo permita.

y En los sistemas multitarea de tiempo compartido,

como OS/2 por ejemplo cada tarea recibe la atencin del microprocesador durante una fraccin de segundo.

APLICACIONES Y MULTITAREA EN WINDOWS.


y Para mantener el sistema en orden, cada tarea recibe un nivel de prioridad o se procesa en orden secuencial. Dado que el sentido temporal del usuario es mucho ms lento que la velocidad de procesamiento del computador, las operaciones de multitarea en tiempo compartido parecen ser simultneas. y Un sistema multitarea es aquel que permite la ejecucin de varios procesos sobre un procesador mediante la multiplexacin de este entre los procesos. y La multitarea se implementa generalmente manteniendo el cdigo y los datos de varios procesos simultneamente en memoria y multiplexando el procesador y los dispositivos E/S entre ellos.

APLICACIONES Y MULTITAREA EN WINDOWS.


y La multitarea suele asociarse con soporte software y hardware

para la proteccin de memoria con el fin de evitar que los procesos corrompan el espacio de direcciones y el comportamiento de otros procesos residentes en memoria, un sistema multitarea, sin embargo, no tiene necesariamente que soportar formas elaboradas de gestin de memoria y archivos. y En este sentido multitarea es sencillamente sinnimo de concurrencia, el trmino multiprogramacin designa a un sistema operativo que adems de soportar multitarea Proporciona formas sofisticadas de proteccin de memoria y fuerza el control de la concurrencia cuando los procesos acceden a dispositivos E/S y a archivos compartidos, en general la multiprogramacin implica multitarea pero no viceversa.

APLICACIONES Y MULTITAREA EN WINDOWS.


y Los sistemas operativos de multiprogramacin soportan generalmente varios usuarios en cuyo caso tambin se les denomina sistemas multiusuario o multiacceso. y Los sistemas operativos para multiproceso gestionan la operacin de sistemas informticos que incorporan varios procesadores conocidos habitualmente como sistemas multiprocesadores. y Los sistemas operativos para multiprocesadores son multitarea por definicin ya que soportan la ejecucin simultnea de varias tareas o procesos sobre diferentes procesadores y seran multiprogramados si disponen de los mecanismos de control de concurrencia y proteccin de memoria adecuados.

APLICACIONES Y MULTITAREA EN WINDOWS.


y CONCURRENCIA y La concurrencia es el punto clave en los conceptos de multitarea, multiprogramacin y multiproceso y es fundamental para el diseo de sistema operativo. y La concurrencia comprende un gran nmero de cuestiones de diseo incluyendo la y comunicacin entre procesos, y la comparticin y competencia por los recursos, y la sincronizacin de la ejecucin de varios procesos y la asignacin del procesador a los procesos,

APLICACIONES Y MULTITAREA EN WINDOWS.


y La concurrencia puede presentarse en tres contextos diferentes: y Varias aplicaciones: en este caso el tiempo de procesador de una mquina es compartido dinmicamente entre varios trabajos o aplicaciones activas. y Aplicaciones estructuradas: como consecuencia del diseo modular de una aplicacin y la divisin de la misma en tareas explcitas estas pueden ser ejecutadas de forma concurrente. y Estructura del sistema operativo: como resultado de la aplicacin de la estructuracin en el diseo del propio sistema operativo, de forma que este se implemente como un conjunto de procesos.

APLICACIONES Y MULTITAREA EN WINDOWS.


y Como soporte a la actividad concurrente el sistema operativo debe ser capaz de realizar un estrecho seguimiento de los procesos activos, asignando y no asignando recursos entre ellos, el sistema operativo debe proteger los datos y recursos de cada proceso contra ingerencias o intrusiones intencionadas o no, de otros procesos. y El resultado de un proceso debe ser absolutamente independiente de la velocidad relativa a la que se realice su ejecucin con respecto al resto de procesos, y por supuesto dicho resultado debe ser similar al obtenido si la ejecucin del proceso se realizara de forma individual.

POSIBILIDADES DE INTERACCIN DE PROCESOS

POSIBILIDADES DE INTERACCIN DE PROCESOS


y Las posibilidades de interaccin de los procesos pueden clasificarse en funcin

del nivel de conocimiento que cada proceso tiene de la existencia de los dems

1.

2.

3.

Un proceso no tiene en absoluto conocimiento de la existencia de los dems. Se trata de procesos independientes que no estn preparados para trabajar conjuntamente y mantienen entre s una relacin exclusivamente de competencia Que los procesos tengan un conocimiento indirecto de los otros procesos. Esta situacin tiene lugar cuando los procesos no tienen un conocimiento explcito entre ellos, pero comparten el acceso a algunos dispositivos o zonas de memoria del sistema. Tiene lugar cuando los procesos tienen conocimiento directo unos de otros por haber sido diseados para trabajar conjuntamente alguna actividad. Esta situacin muestra una relacin claramente de cooperacin. objetos comunes.

y Entre estos procesos se establece una relacin de cooperacin por compartir

POSIBILIDADES DE INTERACCIN DE PROCESOS


En cualquiera de estas tres situaciones hay que dar solucin a tres problemas de control: y Necesidad de exclusin mutua. Es decir, los procesos deberan acceder de forma exclusiva a ciertos recursos o zonas de memoria considerados como crticos. y Interbloqueos: tienen lugar cuando ninguno de los procesos en competencia puede continuar su ejecucin normal por carecer de alguno de los recursos que necesita. y Inhanicin: este problema tiene lugar cuando la ejecucin de un proceso queda siempre pospuesta a favor de algn otro de los procesos en competencia.

POSIBILIDADES DE INTERACCIN DE PROCESOS


y Por supuesto, el control de la concurrencia involucra inevitablemente al sistema operativo ya que es el encargado de asignar y arrebatar los recursos del sistema a los procesos. y Necesidad de sincronizacin de los procesos: regin crtica y exclusin mutua Independientemente del tipo de interaccin existente entre los distintos procesos activos, en un sistema con multiprogramacin stos comparten un conjunto de elementos que deben ser accedidos de forma controlada para evitar situaciones de inconsistencia. y Estos elementos compartidos ya sean dispositivos de E/S o zonas de memoria comunes son considerados como crticos y la parte del programa que los utiliza se conoce como regin o seccin crtica.

POSIBILIDADES DE INTERACCIN DE PROCESOS


y Es muy importante que slo un programa pueda acceder a su seccin crtica en un momento determinado. Por esta razn, el sistema operativo debe ofrecer mecanismos que hagan posible una correcta sincronizacin de los distintos procesos activos en los accesos a los recursos que comparten. y El uso de variables compartidas es una forma sencilla y habitual de comunicacin entre procesos interactivos. Cuando un conjunto de procesos tiene acceso a un espacio comn de direcciones, se pueden utilizar variables compartidas para una serie de cometidos como, por ejemplo, indicadores de sealizacin o contadores.

CONCEPTO Y CRITERIOS DE PLANIFICACIN

CONCEPTO Y CRITERIOS DE PLANIFICACIN


y 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 completados por el sistema informtico. y Un planificador es un mdulo del sistema operativo que selecciona el siguiente trabajo a admitir en el sistema y el siguiente proceso que tomara el control sobre el procesador. y El objetivo primario de la planificacin es optimizar el rendimiento del sistema de acuerdo con los criterios considerados ms importantes por los diseadores del mismo.

CONCEPTO Y CRITERIOS DE PLANIFICACIN


Entre las medidas de rendimiento y los criterios de optimizacin ms habituales que los planificadores utilizan para llevar a cabo su labor se encuentran los siguientes:
y Utilizacin del procesador: y La utilizacin del procesador es la fraccin de tiempo promedio

durante la cual el procesador est ocupado, es decir, la fraccin de tiempo durante la cual el procesador se encuentra activo ejecutando algn proceso, bien de usuario, bien del propio sistema operativo y Con esta interpretacin, la utilizacin del procesador puede ser medida con relativa facilidad, por ejemplo mediante un proceso nulo especial que se ejecute cuando ningn otro proceso pueda hacerlo.

CONCEPTO Y CRITERIOS DE PLANIFICACIN


y Utilizacin del procesador: y Una alternativa es considerar nicamente la operacin

en modo usuario y, por tanto, excluir el tiempo empleado para el sistema operativo.

y En cualquier caso, el objetivo es mantener al

procesador ocupado tanto tiempo como sea posible. De esta forma, se conseguira que los factores de utilizacin de los restantes componentes tambin sean elevados obtenindose con ello buenas medidas de rendimiento.

CONCEPTO Y CRITERIOS DE PLANIFICACIN


PRODUCTIVIDAD y La productividad se refiere a la cantidad de trabajo completada por unidad de tiempo. Un modo de expresarla es definindola como el nmero de trabajos de usuario ejecutados por una unidad de tiempo. Cuanto mayor sea este nmero, ms trabajo aparentemente est siendo ejecutado por el sistema. TIEMPO DE RETORNO y El tiempo de retorno TR se define como el tiempo que transcurre desde el momento en que un trabajo o programa es remitido al sistema hasta que es totalmente completado por el mismo. y Es decir, el tiempo de retorno TR bajo es el tiempo consumido por el proceso dentro del sistema y puede ser expresado como la suma del tiempo de servicio o tiempo de ejecucin + el tiempo de espera TR=TS+TE.

CONCEPTO Y CRITERIOS DE PLANIFICACIN


TIEMPO DE ESPERA y El tiempo de espera TE es el tiempo que un proceso o trabajo consume a la espera de la asignacin de algn recurso o de que tenga lugar algn evento. y En este tiempo tambin se incluyen el periodo de espera por la obtencin del propio procesador debido a la competencia con otros procesos en un sistema con multiprogramacin. y Este tiempo es la penalizacin impuesta por compartir recursos con otros procesos y puede expresarse como el tiempo de retorno - el tiempo de ejecucin efectivo. y El tiempo de espera TE elimina la variabilidad debida a las diferencias en tiempos de ejecucin del trabajo.

CONCEPTO Y CRITERIOS DE PLANIFICACIN


y TIEMPO DE RESPUESTA y El tiempo de respuesta en sistemas interactivos se define como el tiempo que transcurre desde el momento en que se introduce el ltimo carcter de una orden que desencadena la ejecucin de un programa o transaccin hasta que aparece el primer resultado en el terminal. y Generalmente tambin se le denomina tiempo de respuesta de terminal, en sistemas en tiempo real, el tiempo de respuesta es esencialmente una latencia y se define como el tiempo que transcurre desde el momento en que un suceso interno o externo es sealado hasta que se ejecuta la primera instruccin de su correspondiente rutina de servicio. A este tiempo suele denominarse el tiempo de respuesta al proceso.

TIPOS DE PLANIFICADORES
y En un sistema operativo complejo pueden coexistir tres

tipos de planificadores: A corto, a medio y a largo plazo. y PLANIFICADOR A LARGO PLAZO (PLP) y Su misin consiste en controlar la admisin de procesos nuevos al sistema. Cuando est presente este tipo de planificador, su objetivo principal es proporcionar una mezcla equilibrada de trabajos. El PLP decide cuando se da entrada al sistema a un nuevo proceso para que ste sea ejecutado.

TIPOS DE PLANIFICADORES
PLANIFICADOR A LARGO PLAZO (PLP)
y Este proceso puede proceder de la respuesta al envo de un trabajo por lotes o bien a la orden de ejecucin realizada por el usuario. En cierto modo, el PLP acta como una vlvula de admisin de primer nivel para mantener la utilizacin de recursos al nivel deseado. y Es importante conseguir una administracin equilibrada para saber cmo conjugar procesos interactivos que tienen retardos especiales con procesos por lotes que son una simple de cola de clculo. y Por ejemplo, cuando la utilizacin del microprocesador puede admitir ms trabajos, el planificador puede dar entrada al sistema a nuevos procesos y aumentar con ello la probabilidad de asignacin de alguno de estos procesos al procesador.

TIPOS DE PLANIFICADORES
PLANIFICADOR A LARGO PLAZO (PLP)
y Por el contrario, cuando el tiempo para la utilizacin del

procesador resulte alto y as se refleje en el deterioro en el tiempo de espera, el PLP puede optar por reducir la frecuencia de admisin de procesos a situacin de preparado. El PLP es invocado generalmente cada vez que un trabajo completado abandona el sistema. y La frecuencia de llamada al PLP es, por tanto, dependiente del sistema y de la carga de trabajo pero generalmente es mucho ms baja que para los otros dos tipos de planificadores. y Como resultado de esta no demasiada frecuente ejecucin, el PLP puede incorporar algoritmos relativamente complejos y computacionalmente intensivos para admitir trabajos al sistema. y En trminos del diagrama de transicin de estados de procesos, el PLP quedara a cargo de las transiciones del estado nuevo al estado preparado o listo.

TIPOS DE PLANIFICADORES
y PLANIFICADOR A CORTO PLAZO (PCP) y Este planificador decide que procesos toman el control de la CPU. El PCP asigna el procesador entre el conjunto de procesos preparados residentes en memoria. Su principal objetivo es maximizar el rendimiento del sistema de acuerdo a con el conjunto de criterios elegidos. y Al estar a cargo de la transicin de estado preparado a ejecucin, el PCP debera ser invocado cuando se realice una operacin de conmutacin de procesos para seleccionar el siguiente proceso a ejecutar. y En la prctica el PCP es llamado cada vez que un suceso interno o externo hace que se modifique alguna de las condiciones que definen el estado actual del sistema.

TIPOS DE PLANIFICADORES
PLANIFICADOR A CORTO PLAZO (PCP)
y Algunos de los sucesos que provocan una replanificacin en 1. 2. 3. 4. 5.

virtud de su capacidad de modificar el estado del sistema son: Tics de reloj, es decir, interrupciones basadas en el tiempo. Interrupciones y terminaciones de operaciones de E/S. Llamadas de operacin al sistema operativo frente a llamadas de consulta. Envo y recepcin de seales. Activacin de programas interactivos. En general, cada vez que ocurre uno de estos sucesos, el sistema operativo llama al PCP para determinar si debera planificarse otro proceso para su ejecucin.

TIPOS DE PLANIFICADORES
y PLANIFICADOR A MEDIO PLAZO (PMP) y El PMP tiene por misin traer procesos suspendidos a

la memoria principal. Este planificador controla la transicin de procesos en situacin de suspendidos a situacin de preparados. y El PMP permanecera inactivo mientras se mantenga la condicin que dio lugar a la suspensin del proceso, sin embargo, una vez desaparecida dicha condicin el PMP intenta asignar al proceso la cantidad de memoria principal que requiera y volver a dejarlo en situacin de preparado.

TIPOS DE PLANIFICADORES
PLANIFICADOR A MEDIO PLAZO (PMP)
y Para funcionar adecuadamente, el PMP debe disponer

de informacin respecto a las necesidades de memoria de los procesos suspendidos, lo cual no es complicado de llevar a la prctica ya que el tamao real del proceso puede ser calculado en el momento de suspenderlo almacenndose en el BCP. y Este planificador sera invocado cuando quede espacio libre en memoria por la terminacin de un proceso o cuando el suministro de procesos preparados quede por debajo de un lmite especificado.

You might also like