Vous êtes sur la page 1sur 20

INFORME

1 Introduccin a los Sistemas Operativos


Definicin de Sistema Operativo
Un sistema operativo puede ser contemplado como una coleccin organizada de extensiones software del hardware, consistente en rutinas de control que hacen funcionar al computador y proporcionan un entorno para la ejecucin de programas. Adems, estos programas utilizan las facilidades proporcionadas por el sistema operativo para obtener acceso a recursos del sistema informtico como el procesador, archivos y dispositivos de entrada/salida (E/S). De esta forma, el SO constituye la base sobre la cual pueden escribirse los programas de aplicacin, los cuales invocaran sus servicios por medio de llamadas al sistema. Por otro lado, los usuarios pueden interactuar directamente con el SO a travs de ordenes concretas. En cualquier caso, el SO acta como interfaz entre los usuarios/aplicaciones y el hardware de un sistema informtico. El rango y la extensin de los servicios proporcionados por un SO dependen de varios factores. As, las funciones visibles al usuario estn en gran medida determinadas por la necesidades y caractersticas del entorno objetivo que el SO est destinado a soportar. Por ejemplo, un SO destinado al desarrollo de programas en un entorno interactivo puede tener un conjunto bastante diferente de llamadas y ordenes que un sistema operativo diseado para soporte en tiempo de ejecucin a una aplicacin de tiempo real dedicada, tal como el control del motor de un coche, el control del reactor de una central nuclear o el sistema de actualizaciones derivado de las operaciones de un cajero automtico de una entidad bancaria. Internamente, un SO acta como gestor de los recursos del sistema informtico tales como el procesador, la memoria, los archivos y los dispositivos de E/S. En esa funcin, el SO mantiene actualizada la informacin relativa al estado de sistemas que soportarlaejecucin concurrente de programas, el SO resuelve las peticiones conflictivas de recursos de manera que preserve la integridad del sistema y al hacerlo intenta optimizarel rendimiento final. En general, el SO presenta al usuario el equivalente de una mquina virtual que sea msfcil de utilizar que la mquina subyacente y uno de sus objetivos primarios es incrementarla productividad de los recursos que ofrece al sistema mediante una planificacin lo ms optima posible de ellos.

2 Gestin de procesos
Procesos y tareas
Proceso una definicin tradicional de proceso es la de instancia de un programa en ejecucin. La ejecucin de tal programa es indicada al SO mediante una accin u ordenespecializada. El SO responde en ese punto creando un nuevo proceso. En general, esta actividad consiste en la creacin e inicializacin de estructuras de datos en el SO paramonitorizar y controlar el progreso de proceso en cuestin. Una vez creado, el proceso pasar a estar activo y competir por la utilizacin de recursos del sistema como el procesador y los dispositivos I/O. Un proceso evoluciona cclicamente entre periodos 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 esta se complete, el SO puede planificar la ejecucin de otro proceso. Desde este punto de vista, un proceso es una entidad individualmente panificable, que puede ser asignada al procesador y ejecutada por este. El SO controla, pues, dinmicamente la evolucin de los procesos registrando la informacin correspondiente a sus cambios cuando estos se produzcan. Esta informacin es utilizada por el SO para sus labores de planificacin y gestin sobre el conjunto de procesos que en un determinado momento pueden coexistir en el sistema informtico. 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 SO en su gestin. Los atributos de un proceso incluyen su estado actual, unidad de planificacin, derechos de acceso, nivel de prioridad entre otros datos. Desde el punto de vista del usuario, un proceso no es ms que la ejecucin de un conjunto de instrucciones que llevan a cabo una determinada tarea, mientras que para el SO es una entidad que atraviesa dinmicamente un conjunto de estados y que solicita los recursos del sistema que le son necesarios. 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 optimo posible.

El sistema operativo y los procesos


Todos los SSOO de multiprogramacinestn construidos en torno al concepto deproceso. Los requisitos principales que debe cumplir un SO para con los procesos sonlossiguientes: 1. El SO debe intercalar la ejecucin de procesos para optimizar la utilizacin delprocesador ofreciendo a la vez un tiempo de respuesta razonable. 2. El SO debe asignar los recursos del sistema a los procesos en conformidad con unapolticaespecfica que evite situaciones de interbloqueo. 3. El SO podra tener que dar soporte a la comunicacin entre procesos y ofrecermecanismos para su creacin, labores que pueden ser de ayuda en la estructuracinde aplicaciones.

Creacin y terminacin de procesos


Cuando se aade un proceso a los que ya estadministrando el SO, hay que construirlas estructuras de datos que se utilizan para gestionar y controlar el proceso y asignarel espacio de direcciones que va a utilizar dicho proceso. Estas acciones constituyen la creacin de un nuevo proceso.Son cuatro los sucesos comunes que llevan a la creacin de un proceso. 1. 2. 3. 4. Nueva tarea en un sistema de proceso por lotes. Nueva conexin interactiva. Nuevo proceso creado por el SO para dar un servicio. Un proceso generado por otro ya existente.

Por otro lado, en cualquier sistema informtico debe existir alguna forma de que unproceso indique su terminacin. Un trabajo por lotes debe incluir una instruccin de detencinhalt o una llamada explcita a un servicio del sistema operativo para indicarsu terminacin, mientras que en una aplicacin interactiva, ser la accin del usuario laque indique cuando termine el proceso.Todas estas acciones provocan al final una peticin deservicio al SO para terminar elproceso demandante. Adems, una serie de errorespueden llevarnos a la terminacin deun proceso. A continuacin se enumeran algunas delas condiciones ms habituales de terminacin de procesos: 1. Terminacin normal: instruccionesyfinaliza. Un proceso termina de ejecutar su conjunto de

2. Tiempo lmite excedido: El proceso requiere ms tiempo para completar su ejecucin son del que el sistema establece como mximo. 3. No disponibilidad de memoria: Tiene lugar cuando un proceso necesita ms memoriade la que el sistema puede proporcionar. 4. Violacin de lmites: Ocurre cuando un proceso trata de acceder a una posicin dememoria a la que no puede hacerlo. 5. Error de proteccin: Se produce si un proceso intenta utilizar un recurso o unarchivo para el que no tiene permiso o trata de utilizarlo de forma incorrecta. 6. Error aritmtico: Aparece si el proceso intenta hacer un clculo prohibido comola divisin por cero o trata de almacenar un nmero mayor del que el hardwareacepta. 7. Superacin del tiempo mximo de espera por un recurso: En este caso, el procesose encuentra a la espera de obtener un recurso o de que tenga lugar un determinadoevento durante un tiempo que alcanza el lmite establecido. 8. Fallo de dispositivo I/O: Se produce por un error en la entrada o la salida tal comola incapacidad de encontrar un archivo o la ocurrencia de un fallo de lectura oescritura despus de un nmeromximo de intentos. 9. Instruccin no vlida: Se produce si un proceso intenta ejecutar una instruccin inexistente.

10. Intento de acceso a una instruccin privilegiada: Se presenta si un proceso intentautilizar una instruccin reservada para el SO. 11. Mal uso de los datos: Un elemento de dato no est inicializado o es de un tipoequivocado para la operacin que se pretende realizar. 12. Intervencin del operador o del SO: Por alguna razn, el operador o el SO terminacon el proceso. Por ejemplo, si se considera comprometido el rendimiento delsistema. 13. Finalizacin del proceso padre: Cuando un proceso padre finaliza el SO puede disearse para terminar automticamente con todos sus descendientes. 14. Solicitud del proceso padre: Un proceso padre tiene normalmente autoridad paraterminar con cualquiera de sus hijos.

Estados de un proceso
En cualquier sistema operativo, es bsico conocer el comportamiento que exhibirn los distintos procesos y el conjunto de estados que pueden atravesar.

Esquema de un diagrama de dos estados

Cuando el SO crea un nuevo proceso, este entra en el sistema en el estado de No ejecucin. De este modo, el proceso existe, es conocido por el SO y est esperando laoportunidad de ejecutarse. En un momento dado, el sistema operativo decide otorgarelprocesador a un proceso determinado con lo que dicho proceso pasar de estado No ejecucina 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. El proceso interrumpidopasa del estado de Ejecucinal de No ejecucinmientras que el procesoelegido realiza la transicin inversa.Incluso en este modelo tan simple, se aprecian ya algunos de los elementos importantesen el diseo de SSOO. Cada proceso debe representarse de forma que el sistema operativotenga conocimiento de su estado actual y de su posicin en memoria.Aquellos procesos que no estn en estado de ejecucindebern almacenarse en algn tipo de estructura de datos mientrasesperan que el sistema operativo les otorgue elcontrol sobre el procesador.

ESQUEMA DE UN SISTEMA COLA FIFO

Dicha cola consiste en una lista enlazada de bloques en la que cada uno de estos bloquesrepresenta a un proceso. Cada bloque consistir en un puntero a la estructura de datosdonde el SO guarda toda la informacin relativa al proceso. El comportamiento del SO eneste caso es similar al de un gestor de colas. As, cada vez que el SO cree un nuevoprocesose introducir el correspondiente bloque al final de la cola, accin que tambin se llevar a cabo cuando un proceso sea expropiado del procesador en favor de otro o cuando sebloquee en espera de que se complete una operacin de E/S. Cuando unproceso terminesu ejecucin, ser descartado del sistema. Si todos los procesosestuvieran siempre listospara ejecutar, la disciplina de comportamiento de colapresentada sera eficaz. El modelode cola sigue un comportamiento FIFO y elprocesador opera siguiendo un turno rotatoriocon los procesos disponibles. De estaforma, a cada proceso de la cola se le otorga unacierta cantidad de tiempo para ejecutar. Si no se presentan bloqueos y transcurrido este volver a la cola para optar de nuevo a tener control sobre el procesador. Sin embargo,esta implementacin no es adecuada debido a que algunos procesos en estado de no ejecucinestarn listos para ejecutar mientras que otros se encontrarn a la espera deobtener algn recurso solicitado o a que se complete una operacin de E/S. As pues, elSO puede no entregar el procesador al proceso que se encuentre al frente de la cola. Si este est bloqueado, tendr que recorrer la cola buscando el primer proceso que no lo est y que lleve ms tiempo en espera.

Procesos suspendidos
Debido a que el procesador es mucho msrpido que los dispositivos de E/S puedeocurrir que en un momento dado todos los procesos del sistema se encuentrenbloqueadosa la espera de que se complete alguna operacin de E/S. Para solucionar este problemaexisten dos opciones 1. Ampliar la memoria del sistema de forma que sea posible albergar en ella ms procesos incrementar as la posibilidad de que alguno de ellos haga uso efectivodel procesador. 2. La otra solucin consiste en aplicar una tcnica conocida como intercambio oswaping.Esta tcnica consiste en que cuando todos los procesos que se encuentranen memoria principal estn bloqueados, el SO puede sacar a uno de ellos de sucorrespondiente cola y transferirlo a memoria secundaria. El proceso transferido sedice entonces que queda en estado suspendido. Una vez realizada esta operacin,el SO est en condiciones de traer de nuevo a memoria a un proceso previamentesuspendido o bien dar entrada al sistema a un nuevo proceso.

En general, se considera suspendido a un proceso que presenta las caractersticas siguientes: 1. Un proceso suspendido no est disponible de inmediato para su ejecucin. 2. Un proceso puede estar esperando o no un suceso. Si lo est, la condicin debloqueado es independiente de la condicin de suspendido y el acontecimiento delsuceso bloqueante no lo habilita para la ejecucin. 3. El proceso fue situado en estado suspendido por un agente (el SO o el procesopadre) con el fin de impedir su ejecucin. 4. El proceso no puede apartarse de estado hasta que llegue la orden expresa paraello.

3 Planificacin de procesos
Concepto y criterios de planificacin
La planificacin hace referencia a un conjunto de polticas y mecanismos incorporadosalSO que gobiernan el orden en que se ejecutan los trabajos que deben ser completadospor el sistema informtico. Un planificador es un mdulo del SO que selecciona elsiguientetrabajo a admitir en el sistema y el siguiente proceso que tomar el controlsobreel procesador. El objetivo primario de la planificacin es optimizar el rendimiento delsistema de acuerdo con los criterios considerados ms importantes por los diseadores del mismo.Entre las medidas de rendimiento y los criterios de optimizacinms habituales quelos planificadores utilizan para llevar a cabo su labor se encuentran lossiguientes:

Utilizacin del procesador


La utilizacin del procesador es la fraccin de tiempo promedio durante la cual elprocesador est ocupado, es decir, la fraccin de tiempo durante la cual el procesadorseencuentra activo ejecutando algn proceso, bien de usuario, bien del propio SO. Con estainterpretacin, la utilizacin del procesador puede ser medida con relativa facilidad, porejemplo mediante un proceso nulo especialque se ejecute cuando ningn otro procesopueda hacerlo. Una alternativa es considerar nicamente la operacin en modo usuarioy, por tanto, excluir el tiempo empleado para el SO.En cualquier caso, el objetivo es mantener al procesador ocupado tanto tiempo comosea posible. De esta forma, se conseguir que los factores de utilizacin de los restantescomponentes tambin sean elevados obtenindose con ello buenas medidas de rendimiento.

Productividad
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 ejecutadospor una unidad de tiempo. Cuanto mayor sea este nmero, ms trabajo aparentemente est siendo ejecutado por el sistema.

Tiempo de retorno
El tiempo de retorno TR se define como el tiempo que transcurre desde el momento enque un trabajo o programa es remitido al sistema hasta que es totalmente completadopor el mismo. Es decir, el tiempo de retorno TR es el tiempo consumido por el procesodentro del sistema y puede ser expresado como la suma del tiempo de servicio o tiempode ejecucin+ el tiempo de espera. TR = TS + TE.

Tiempo de espera
El tiempo de espera TE es el tiempo que un proceso o trabajo consume a la espera de laasignacin de algn recurso o de que tenga lugar algn evento. En este tiempo tambinse incluyen el periodo de espera por la obtencin del propio procesadordebido a lacompetencia con otros procesos en un sistema con multiprogramacin. Este tiempo esla penalizacin impuesta por compartir recursos con otros procesos y puede expresarsecomo el tiempo de retorno - el tiempo de ejecucin efectivo. El tiempo de espera TEelimina la variabilidad debida a las diferencias en tiempos de ejecucin del trabajo.

Tiempo de respuesta
El tiempo de respuesta en sistemas interactivos se define como el tiempo que transcurredesde el momento en que se introduce el ultimo carcter de una orden que desencadenala ejecucin de un programa o transaccin hasta que aparece el primer resultado en elterminal. Generalmente tambin se le denomina tiempo de respuesta de terminal.En sistemas en tiempo real, el tiempo de respuesta es esencialmente una latencia yse define como el tiempo que transcurre desde el momento en que un suceso interno oexterno es sealado hasta que se ejecuta la primera instruccin de su

correspondienterutina de servicio. A este tiempo suele denominrsele tiempo de respuesta al proceso.

Tipos de planificadores
En un SO complejo pueden coexistir tres tipos de planificadores: A corto, a medio ya largo plazo.

Planificador a largo plazo (PLP)


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 mezclaequilibrada de trabajos. El PLP decide cuando se da entrada al sistema a un nuevoproceso para que este sea ejecutado. Este proceso puede proceder de la respuesta al envi de un trabajo por lotes o bien a la orden de ejecucin realizada por el usuario. Encierto modo, el PLP acta como una vlvula de admisin de primer nivel paramantenerla utilizacin de recursos al nivel deseado. Es importante conseguir una administracin equilibrada para saber como conjugar procesos interactivos que tienen retardos especialescon procesos por lotes que son una simple de cola de clculo.Por ejemplo, cuando la utilizacin del microprocesador puede admitir ms trabajos,elplanificador puede dar entrada al sistema a nuevos procesos y aumentar con ello laprobabilidad de asignacin de alguno de estos procesos al procesador. Por el contrario,cuando el tiempo para la utilizacin del procesador resulte alto y as se refleje en eldeterioro 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 untrabajo completado abandona el sistema.La frecuencia de llamada al PLP es, por tanto, dependiente del sistema y de la cargade trabajo pero generalmente es mucho ms baja que para los otros dos tipos deplanificadores.Como resultado de esta no demasiada frecuente ejecucin, el PLP puede incorporaralgoritmos relativamente complejos y computacionalmente intensivos para admitir trabajosal sistema. En trminos del diagrama de transicin de estados de procesos, el PLP quedar a cargo de las transiciones del estado nuevo al estado preparado o listo.

ESQUEMA DE UN SO CON PLANIFICADORES

Planificador a corto plazo (PCP)


Este planificador decide que procesos toman el control de la CPU. El PCP asigna elprocesador entre el conjunto de procesos preparados residentes en memoria. Su principalobjetivo es maximizar el rendimiento del sistema de acuerdo a con el conjunto de criterioselegidos. Al estar a cargo de la transicin de estado preparado a ejecucin, el PCPdeber ser invocado cuando se realice una operacin de conmutacin de procesos paraseleccionarel siguiente proceso a ejecutar. En la prctica el PCP es llamado cada vezque un sucesointerno o externo hace que se modifique alguna de las condiciones que definen el estadoactual del sistema. Algunos de los sucesos que provocan una replanificacin en virtud desu capacidad de modificar el estado del sistema son: 1. Tics de reloj, es decir, interrupciones basadas en el tiempo. 2. Interrupciones y terminaciones de operaciones de E/S. 3. Llamadas de operacin al sistema operativo frente a llamadas de consulta. 4. Envi y recepcin de seales. 5. Activacin de programas interactivos.En general, cada vez que ocurre uno de estos sucesos, el SO llama al PCP para determinarsi debera planificarse otro proceso para suejecucin.

Planificador a medio plazo (PMP)


El PMP tiene por misin traer procesos suspendidos a la memoria principal. Esteplanificador controla la transicin de procesos en situacin de suspendidos a situacin depreparados. El PMP permanecera inactivo mientras se mantenga la condicin que diolugar a la suspensin del proceso, sin embargo, una vez desaparecida dicha condicin elPMP intenta asignar al proceso la cantidad de memoria principal que requiera y volver adejarlo en situacin de preparado. Para funcionar adecuadamente, el PMP debe disponerde informacin respecto a las necesidades de memoria de los procesos suspendidos, locual no es complicado de llevar a la prctica ya que el tamao real del proceso puedesercalculado en el momento de suspenderlo almacenndose en el BCP.Este planificador ser invocado cuando quede espacio libre en memoria por la terminacin de un proceso ocuando el suministro de procesos preparados quede por debajo de un lmite especificado.

Algoritmos de planificacin
Antes de comenzar a estudiar los distintos tipos de algoritmos de planificacin esimportante tener en cuenta que hay dos categoras generales de estos.La planificacin no apropiativaSe basa en que una vez que el proceso pasa a estadode ejecucin no abandona el procesador hasta que termina o hasta que se bloqueaen espera de una operacin de E/S o al solicitar algn servicio del sistema.La planificacin apropiativa Un proceso que est ejecutando puede ser interrumpido porel sistema operativo para otorgar el procesador a un proceso distinto en funcin delos criterios de planificacin utilizados; prioridad, nmero de usos del procesador,etc.

Algoritmo por reparto circular de tiempo (RR, Round-Robin)


En entornos interactivos tales como sistemas de tiempo compartido, el requisito principales proporcionar tiempos de esperas razonablemente buenas y, en general, compartirlosrecursos del sistema equitativamente entre todos los usuarios. Solamente las disciplinasde planificacin que permiten la expropiacin del procesador pueden ser consideradasen tales entornos y una de las ms utilizadas es la de Reparto circular de tiempos o porturnos. Bsicamente, el tiempo del procesador se divide en cuotas o cuantos que sonasignadosa los procesos solicitantes. Ningn proceso puede ejecutarse durante mstiempoque el establecido por ese cuanto si hay ms procesos esperando en la cola depreparados.Si un proceso necesita ms tiempo para completarse despus de agotar sucuota detiempo, volver de nuevo a la cola de procesos preparados. Si el procesotermina antesde que expire esta cuota de tiempo, el planificador dar inmediatamente elprocesadora otro proceso en situacin de preparado. Con esta planificacin y en unsistema con nprocesos activos, cada proceso recibe aproximadamentedel tiempo delprocesador.Con este algoritmo de planificacin, los procesos cortos pueden serejecutados dentrode una nica cuota de tiempo y presentarn por tanto buenos tiempos de respuesta. Enel caso de procesos ms largos, estos pueden circular unas cuantas veces a travs de lacola de preparados antes de terminar. El tiempo de respuesta a estos procesos ms largosser siempre proporcional a sus necesidades de recursos.

ALGORITMO TRABAJO MS CORTO PRIMERO (SJF)


Algoritmo no expropiativo que al conocer a priori los tiempos de ejecucin de los procesos, los ordena de acuerdo a su duracin Este mtodo acorta los tiempos promedio de ejecucin considerablemente, pero solo si se tienen disponibles todos los procesos simultneamente. De lo contrario no tiene efecto y su comportamiento se asemeja a FIFO.

ALGORITMO PRIMERO EN ENTRAR (FIFO)


Los procesos se despachan de acuerdo a su tiempo de llega a la cola de procesos listos, si un proceso llega al procesador sale hasta que termine. La poltica FIFO actualmente no se usa como el esquema principal de un sistema, pero si por ejemplo cuando se usa una poltica de prioridades y hay procesos con la misma prioridad, a estos se les podra aplicar FIFO.

Tiempo restante ms corto (SRT)


En SJF una vez que un proceso comienza su ejecucin contina hasta terminar. En SRT, un proceso en ejecucin puede ser desposedo por uno nuevo de menor tiempo de ejecucin.

Prioridad de la tasa de respuesta ms alta (HRN)


Poltica no apropiativa que corrige el retraso excesivo de procesos grandes que produce el SJF, para as no caer en un favoritismo excesivo por los procesos cortos, lo logra usando una formula basada en el tiempo de espera y el tiempo de servicio, con lo cual la prioridad de cada trabajo no solo esta en funcin del tiempo de servicio sino tambin del tiempo que ha esperado para ser atendido.

Objetivos de la Planificacin
Los objetivos de la planificacin del procesador son los siguientes e involucran a los conceptos detallados seguidamente segn Deitel: Ser justa: - Todos los procesos son tratados de igual manera. - Ningn proceso es postergado indefinidamente. - Maximizar la capacidad de ejecucin: -Maximizar el nmero de procesos servidos por unidad de tiempo. -Maximizar el nmero de usuarios interactivos que reciban unos tiempos de respuesta aceptables: - En un mximo de unos segundos. Ser predecible: Un trabajo dado debe ejecutarse aproximadamente en la misma cantidad de tiempo independientemente de la carga del sistema. Minimizar la sobrecarga: No suele considerarse un objetivo muy importante. Equilibrar el uso de recursos: Favorecer a los procesos que utilizarn recursos infrautilizados. Equilibrar respuesta y utilizacin: La mejor manera de garantizar buenos tiempos de respuesta es disponer de los recursos suficientescuando se necesitan, pero la utilizacin total de recursos podr ser pobre. Evitar la postergacin indefinida: Se utiliza la estrategia del envejecimiento. Mientras un proceso espera por un recurso su prioridad debe aumentar, as la prioridad llegar a ser tan alta que el proceso recibir el recurso esperado. Asegurar la prioridad: Los mecanismos de planificacin deben favorecer a los procesos con prioridades ms altas. Dar preferencia a los procesos que mantienen recursos claves: Un proceso de baja prioridad podra mantener un recurso clave, que puede ser requerido por unproceso de ms alta prioridad. Si el recurso es no apropiativo, el mecanismo de planificacin debe otorgar al proceso un tratamiento mejor del que le correspondera normalmente, puesto que es necesario liberar

rpidamente el recurso clave. Dar mejor tratamiento a los procesos que muestren un comportamiento deseable: Un ejemplo de comportamiento deseable es una tasa baja de paginacin. Degradarse suavemente con cargas pesadas: Un mecanismo de planificacin no debe colapsar con el peso de unaexigente carga del sistema. Se debe evitar una carga excesiva mediante las siguientes acciones: - No permitiendo que se creen nuevos procesos cuando la carga ya es pesada. - Dando servicio a la carga ms pesada al proporcionar un nivel moderadamente reducido de servicio a todos los procesos, Muchas de estas metas se encuentranen conflicto entre s, por lo que la planificacin se convierte en un problema complejo.

4 Multiprocesamiento
Es una tendencia significativa en el campo de la computacin. Consiste en configurar un sistema de computacin con varios procesadores. No es un enfoque nuevo pero s posee grandes perspectivas en funcin del desarrollo de los microprocesadores. Se podran concebir sistemas construidos por cientos o miles de microprocesadores.

Confiabilidad
Si un procesador falla, los restantes continan operando, lo cual no es automtico y requiere de un diseo cuidadoso. Un procesador que falla habr de informarlo a los dems de alguna manera, para que se hagan cargo de su trabajo. Los procesadores en funcionamiento deben poder detectar el fallo de un procesador determinado. El Sistema Operativo debe percibir que ha fallado un procesador determinado y ya no podr asignarlo y tambin debe ajustar sus estrategias de asignacin de recursos para evitar la sobrecarga del sistema que est degradado.

Explotacin del Paralelismo


La programacin sigue siendo esencialmente secuencial y generalmente no se explota la concurrencia. Las principales razones son las siguientes: Las personas piensan en forma secuencial. Ningn lenguaje humano proporciona la expresin adecuada de paralelismo, pero existen lenguajes de computacin con soporte de concurrencia (por ejemplo, Ada, Pascal Concurrente, etc.). Ni el multiprocesamiento ha sido usado con amplitud para explotar el paralelismo. El hardware tradicional del computador est orientado hacia la operacin secuencial. Es muy difcil depurar programas en paralelo.

Los multiprocesadores no se utilizan a menudo para explotar el paralelismo ya que es muy escaso el software que explote el paralelismo. Lo deseable es que los Sistemas Operativos y compiladores puedan detectar e implementar el paralelismo automticamente.

Paralelismo Masivo
Se debe disponer de suficientes procesadores como para que todas las operaciones que puedan ser ejecutadas en paralelo puedan ser asignadas a procesadores separados. Esto ofrece una forma de ejecutar un programa en el menor tiempo posible. La cuestin central es, disponiendo del paralelismo masivo, cul es el tiempo mnimo requerido para ejecutar un algoritmo determinado?

Metas de los Sistemas de Multiprocesamiento


Las metas de los sistemas de multiprocesamiento generalmente son la confiabilidad y la disponibilidad muy altas, como as tambin el incremento del poder de computacin. El diseo modular proporciona una flexibilidad importante y facilita la expansin de la capacidad.

Deteccin Automtica del Paralelismo


Los multiprocesadores hacen posible la explotacin del paralelismo. Los sistemas de computacin obtienen los beneficios del procesamiento concurrente ms por la multiprogramacin de varios procesos y menos por la explotacin del paralelismo dentro de un solo proceso. La deteccin del paralelismo es un problema complejo y la puede efectuar el programador, el traductor del lenguaje, el hardware o el Sistema Operativo. El paralelismo dentro de los programas puede ser explcito o implcito. Las principales caractersticas del paralelismo explcito son las que se detallan a continuacin: Es indicado de forma especfica por un programador construccin de concurrencia como la siguiente: cobegin; proposicin ................ proposicin n; coend; mediante una

1;

Se pueden utilizar procesadores separados para ejecutar cada una de las proposiciones. Es susceptible de errores de programacin difciles de detectar y depurar. El programador puede omitir tratar situaciones donde sera aplicable el paralelismo.

Las principales caractersticas del paralelismo implcito son las que se detallan a continuacin: La verdadera esperanza est en la deteccin automtica del paralelismo implcito. Es el paralelismo intrnseco del algoritmo pero no establecido explcitamente por el programador. Los compiladores explotan el paralelismo implcito mediante las tcnicas de distribucin de ciclos y de reduccin de la altura del rbol.

ALGORITMOS
ALGORITMOBANQUERO Para este algoritmo es importante considerar los siguientes puntos: Estado. Es la asignacin actual de los recursos a los procesos. Matriz demanda (o mximo necesario). Son las exigencias mximas de recursos para cada proceso. Matriz asignacin. Son las asignaciones actuales de recursos para cada proceso. Vector disponible. Cantidad total de recursos sin asignar a los procesos. Estado seguro. Es un estado en el que existe al menos un orden en el que todos los procesos pueden ejecutar hasta el final sin generar interbloqueo. Cuando un proceso realiza una solicitud de recursos, se supone que se concede, se actualiza el estado y se toma una decisin. Si se llega a un estado seguro, se concede la peticin. Si se llega a uno inseguro, se rechaza y el proceso es bloqueado. A continuacin se presenta un ejemplo: Utilizando el algoritmo del banquero resuelva el siguiente problema, indicando el orden en que los procesos pasan a ser estados seguros evitando el problema del interbloqueo.

Lista de procesos: P1-P3-P4-P0 P2 A la derecha se tienen 5 procesos, cada uno tiene recursos de tipo A, B y C. En la primer columna de asignados est la cantidad de recursos que el proceso ha obtenido a lo largo de un tiempo; en la segunda columna de Mximo Necesario, estn los recursos que tiene que obtener de cada tipo para comenzar a ser ejecutado. Por ejemplo, el P0 no ha obtenido ningn recurso del tipo A, slo 1 del tipo B y ninguno del tipo C, y necesita para ejecutarse haber conseguido 7 del A, 5 del B y 3 del C. En la ltima columna se tienen los recursos disponibles que da el sistema, los que se pueden utilizar con todos los procesos. Hay 3 del A, 3 del B y 2 del C.

El algoritmo del banquero trata de asegurar qu proceso tiene un estado seguro es decir, se requiere alcanzar el mximo requerido entre los que estn en Asignados y los que se encuentren en Disponibles.

Ejemplo: El proceso 0 no est en estado seguro. Si se suman Asignados + Disponibles para cada uno de los recursos A, B y C, realmente no se alcanzan los Mximos Requeridos. Entonces se va al proceso 1 y se trata de hacer lo mismo, sumar Asignados + Disponibles. All s se tiene un ESTADO SEGURO, A con 5, B con 3 y C con 2, y como se alcanza a llenar los Mximos, ese proceso se ejecuta.

Una vez que el proceso se ejecut, entonces se procede a SUMAR los recursos asignados del proceso anterior a los disponibles. Hay que recordar que el proceso al terminar de ejecutarse libera todos sus recursos, por lo tanto pasan tanto los de tipo A, B y C a sumarse con los disponibles 3-3-2 y se tendrn nuevos DISPONIBLES que repartir, siendo ahora stos 5-3-2.

Con estos se pasa al proceso P2 y as sucesivamente.

Y el algoritmo es como sigue: (El algoritmo principal es el de asignacin de recursos)

Ventajas del algoritmo del banquero: No es necesario expulsar y hacer retroceder procesos como en la deteccin del interbloqueo. Es menos restrictivo que la prevencin.

Desventajas: Se debe conocer la mxima demanda de recursos por anticipado. La ejecucin de los recursos no debe estar forzada por la sincronizacin. Se tiene un nmero fijo de procesos y recursos. Los procesos no finalizan mientras retengan recursos. Requiere que los procesos salden sus prstamos en un tiempo finito.

El kernel: El proceso de arranque del kernel ===================================================== ========================= Objetivos =========== - Secuencia de arranque del sistema - Etapa 1. La BIOS - Etapa 2. El boot-loader - GRUB: Arranque directo vs arranque encadenado - Fichero /boot/grub/menu.lst - Etapa 3. El kernel - Montaje de la particionraiz - La imagen initramfs - Etapa 4. El user-space - Fichero /etc/inittab - Lab0 - Lab1 Secuencia de arranque del sistema =================================== - Desde el power-on hasta el "Login:" se pasa por 4 etapas: 1.- Programa en ROM carga el boot-loader 2.- El boot-loader carga el kernel 3.- El kernel inicializa el sistema y pasa el control al user-space 4.- El user-space finaliza la inicializacion. Finalmente /bin/sh Etapa 1. La BIOS ================== - Power-on - Un pequeo programa cargado en ROM toma el control --> La BIOS en x86 - Localiza el "bootdevice" con el que arrancar el sistema --> Elige el primer bootable-device disponible en secuencia "bootorder" --> Por ejemplo: CD/DVD, USB, HD (orden configurado por el usuario) - Lee el MBR (sector 0) del bootable-device - El MBR almacena tres cosas: - La rutina bootstraploader (codigo .asm) - Tabla de particiones (recordar capitulo filesystems) - Firma de bootable-device (dos ultimos bytes = 0x55AAh) - Ejecuta la rutina bootstraploader, hecha unica y exclusivamente para pasar el control al boot-loader

Etapa 2. El boot-loader ========================= - El boot-loader toma el control del sistema

- Responsable de cargar un kernel en RAM y transferirle el control - Ejemplos mas comunes en Linux: --> GRUB y LiLo (x86, AMD) --> U-boot (multiplataforma) - Muestran un menu al usuario con las distintas opciones de arranque: --> Diferentes sistemas operativos --> Diferentes kernel del mismo sistema operativo --> Programas que no necesitan sistema operativo (memtest86+) - Normalmente tienen una opcion seleccionada por defecto + timeout - Usuario elige una opcion (o el timeout elige la opcion por defecto) - El boot-loader carga en RAM: - El binario del kernel - (Opcional) La imagen initramfs - Como accede a los datos de la particion del disco sin soporte del kernel? - LiLo necesita conocer la localizacion exacta del sector del disco en el que esta la imagen del kernel - GRUB entiende muchos sistemas de fichero: -->ffs, fat16, fat32, minic, ext2, reiserfs, jfs, xfs y vst --> Puede leer ficheros de dichas particiones sin ayuda de nadie - Pasa el control al kernel con su lista de argumentos argv GRUB: Arranque directo vs arranque encadenado =============================================== - GRUB permite dos tipos de arranque: --> Directo: Arranca un sistema operativo (Linux) --> Encadenado (chain-loading): Arranca otro boot-loader (Windows) - Para arrancar un sistema operativo siempre necesita: --> Dispositivo de almacenamiento -->Particion del dispositivo de almacenamiento - En modo directo: --> Necesita el path al binario del kernel al que transfiere el control - En modo encadenado: --> Transfiere el control al PBR de la particion indicada --> PBR = PartitionBoot Record (similar al MBR pero en particion) - Con esto puede arrancar cualquier sistema operativo (libre o propietario)

Vous aimerez peut-être aussi