Está en la página 1de 25

3. ARQUITECTURA DE UN SISTEMA OPERATIVO Qu es un sistema operativo?

Un sistema operativo es el programa que oculta la verdad del hardware al programador y presenta una vista simple y agradable de los archivos nominados que pueden leerse y escribirse. El sistema operativo resguarda al programador del hardware del disco y presenta una interfaz simple orientada al archivo, tambin disimula mucho del trabajo concerniente a interrupciones, relojes o cronmetros, manejo de memoria y otras caractersticas de bajo nivel. La funcin del sistema operativo es la de presentar al usuario con el equivalente de una mquina ampliada o mquina virtual que sea ms fcil de programar que el hardware implcito. Un sistema operativo es una parte importante de casi cualquier s istema de computacin. Un sistema de computacin puede dividirse en cuatro componentes: el hardware, el sistema operativo, los programas de aplicacin y los usuarios. El ncleo El ncleo es la componente del sistema operativo que siempre est residente en la memoria real del computador. La funcin primordial del ncleo es transformar los recursos reales del computador en recursos estndares y cmodos de usar. Es as como el ncleo transforma un procesador real con su memoria finita en un nmero prcticamente ilimitado de procesadores virtuales o procesos. Cada proceso dispone de su propio tiempo de CPU, una memoria extensible y mecanismos estndares para interactuar con los dispositivos, sin importar los detalles fsicos de su implementacin. La API del ncleo Una API (Interfaz de Programacin de Aplicaciones) es el conjunto de servicios que ofrece un sistema a las aplicaciones usuarias de ese sistema. Las aplicaciones invocan estos servicios a travs de llamadas a procedimientos. La API queda definida por lo tanto por los nombres de estos procedimientos, sus argumentos y el significado de cada uno de ellos. El conjunto de servicios que ofrece el ncleo a los procesos se denomina la API del ncleo. Est formada por procedimientos pertenecientes al ncleo, pero que se

invocan desde un proceso cualquiera. La invocacin de uno de estos procedimientos es una llamada al sistema. Ejemplos de llamadas al sistema en Unix son:

Manejo de Procesos: creacin ( fork), destruccin ( kill), trmino ( exit), sincronizacin ( wait), carga de un binario ( exec). Manejo de memoria: extensin de la memoria de datos ( sbrk). Manejo de archivos y dispositivos: open, read, write y close.

Estas llamadas se implementan usualmente con una instruccin de mquina que provoca una interrupcin. Esta interrupcin hace que el procesador real pase a modo sistema e invoque una rutina de atencin perteneciente al ncleo y que ejecuta la llamada al sistema. Los argumentos de la llamada se pasan a travs de los registros del procesador. Los drivers para dispositivos La operacin de los dispositivos es altamente dependiente de su implementacin. Es as como un disco SCSI se opera de una forma distinta de un disco IDE. Para independizar el cdigo del ncleo de los variados mecanismos de interaccin con los dispositivos, el ncleo define clases de dispositivos. Ejemplos de clases son disco, cinta, puerta de comunicacin, interfaz de red, etc. Para cada clase se define una interfaz estndar para interactuar con cualquier dispositivo que pertenezca a la clase. Esta interfaz corresponde a las declaraciones de un conjunto de procedimientos no implementados. Un driver es el cdigo que implementa una interfaz estndar para interactuar con un dispositivo especfico, como por ejemplo un disco SCSI. Este cdigo es por lo tanto altamente dependiente de los discos SCSI y no funcionar con discos IDE. Sin embargo, el ncleo interacta con este driver para discos SCSI de la misma forma que lo hace con el driver para discos IDE, es decir a travs de la misma interfaz. La visin que tiene el ncleo de un disco a travs de un driver es la de un arreglo de bloques de 512 o 1024 bytes de taman o fijo. El ncleo puede leer o escribir directamente cualquiera de estos bloques haciendo uso de la interfaz estndar de la clase disco. Por otra parte, la visin que tiene el ncleo de una cinta es la de un conjunto de bloques de taman o variable que slo pueden leerse o grabarse en secuencia.

Tambin puede rebobinar esta cinta para volver a leerla o grabarla. Todo esto a travs de la interfaz estndar de la clase cinta. En Unix una aplicacin puede accesar una particin de un disco en su formato nativo abriendo por ejemplo /dev/sd0a. Es usual que los drivers estn siempre residentes en la memoria real y por lo tanto son parte del ncleo. Sin embargo la tendencia es que los drivers son mdulos que se cargan dinmicamente si es necesario. Tambin existen drivers que corren como un proceso --como cualquier aplicacin-- y por lo tanto corren en modo usuario (por ejemplo el servidor X de X-windows). El sistema de archivos El sistema de archivos es la componente del sistema operativo que estructura un disco en una jerarqua de directorios y archivos. Conceptualmente multiplexa un disco de taman o fijo en una jerarqua de discos de taman o variable o archivos. Dada esta equivalencia conceptual entre discos y archivos no es raro que ambos se manipulen con las mismas llamadas al sistema: open, read, write, close y lseek (esta ltima mueve la cabeza del disco hacia un bloque determinado). Es usual que el sistema de archivos sea parte del ncleo. Por lo dems la motivacin inicial de muchos sistemas operativos como Unix era el de ofrecer un sistema de archivos a un nico proceso. Por algo DOS significaDisk Operating System y por ello es natural que forme parte del ncleo. Sin embargo hay sistemas operativos que ofrecen el sistema de archivos como parte de un proceso que no es parte del ncleo. El intrprete de comandos El intrprete de comando (o shell) se encarga de leer las rdenes interactivas del usuario y ejecutar los programas que el usuario indique. Usualmente el intrprete de comandos es un proceso ms del sistema operativo y no forma parte del ncleo. Por ejemplo Unix ofrece varios intrpretes de comandos ( sh, csh y sus variantes). El intrprete de comandos de DOS se encuentra en COMMAND.COM. Ejemplos de Sistemas Operativos A continuacin revisamos la estructura de algunos sistemas operativos.

DOS En sus primeras 3 versiones, DOS era realmente un monitor residente que se situaba entre una aplicacin y el Hardware/ROM de un PC (ver figura ). Los objetivos del sistema no eran ambiciosos puesto que deba correr en computadores con poca memoria.

Figure: Organizacin del Software en un PC El ncleo de DOS implementaba un sistema de archivos jerrquico y da acceso a puertas seriales y paralelas. El sistema es estrictamente mono-proceso y la memoria se limita a los primeros 640 KBytes de la memoria descontando lo que ocupa el mismo DOS. Un programa puede llamar a la API de DOS a travs de la instruccin de mquina INT que provoca una interrupcin. Dado que la Intel 8088 no ofreca modo dual ni mecanismos para implementar espacios de direcciones virtuales, tanto DOS como el proceso en ejecucin corren en el mismo modo y espacio de direcciones. Esto no es un problema en un sistema mono-usuario y mono-proceso y que por lo tanto no necesita un mecanismo de proteccin. Los drivers no son parte de DOS, sino que vienen en la memoria ROM de un PC. Esta componente se llama BIOS (Basic Input Output System) y puede ser invocada directamente por la aplicacin sin pasar por DOS. Lamentablemente la BIOS no incluye los drivers suficientemente generales para manejar apropiadamente los distintos dispositivos. Esto obliga a que las aplicaciones deban accesar directamente el hardware para operaciones tan simples como dibujar una lnea en la pantalla. Hoy en da DOS s implementa en una forma rudimentaria mltiples procesos, cada uno en su propio espacio de direcciones. Sin embargo DOS debe permitir que estos manipulen directamente los dispositivos (sin hacerlo a travs de DOS) para garantizar la compatibilidad con las antiguas aplicaciones. Por ello DOS no puede ofrecer verdadera proteccin entre procesos.

Linux, Berkeley Unix y Unix System V release 3.X Todas estas variantes de Unix tienen estructura similar (ver figura incluye los drivers y el sistema de archivos. ). El ncleo

Figure: Estructura de un Sistema Unix tradicional. Adems de los servicios de la API del ncleo, Unix ofrece muchsimos otros servicios a travs de procesos demonios, que corresponden a procesos que siempre estn corriendo. Entre estos se cuentan los servicios de spooling, mail, news, www, etc. Chorus y Mach El ncleo de estos sistemas operativos est disen ado con el enfoque minimalista: slo ofrece el servicio de manejo de procesos e intercomunicacin entre procesos a travs de una API no estndar. El sistema de archivos, los drivers y cualquier otro servicio queda fuera del ncleo y son ofrecidos por medio de procesos. Ambos sistemas son compatibles con Unix System V gracias a un proceso que implementa la API estndar de Unix. Las llamadas de sistema de un proceso Unix se implementan enviando mensajes al proceso de la API que ejecuta la llamada y devuelve el resultado en otro mensaje. El inters de este tipo de sistemas es que pueden implementar varias APIs no slo la de Unix, sino que tambin la de Windows o la de Macintosh, etc., cada una de estas APIs se implementan en procesos independientes

3.1 MANEJO DEL PROCESADOR Administracin del procesador (Scheduling) LA IDEA principal de la administracin del procesador tiene que ver con el tiempo que permanecer un proceso en el procesador, Qu proceso corre en que momento?

En un computador personal es mas dificil encontrar el caso que u usuario necesite ejecutar dos procesos al mismo tiempo, enviar un correo y escribir un texto. Mientras que en un servidor esta clase de ejecuciones es constante. Para eso se necesita realizar planificacin del procesador. Planificacin del procesador La tarea del planificador es hacer que un proceso dentro del procesador pase a la lista de procesos listos. la lista de procesos listos no es una FIFO. El planificador se ejecuta cuando: Se crea ose termina un proceso Un proceso realiza una llamada al sistema (syscall). Pasa de corriendo a esperando. Un proceso pasa de corriendo a listo. (ej: interrupcin de hardware). Un proceso que pasa de esperando a listo (ej: interrupcin de hardware).

Tipos de planificacin SO no expropiativo (non-premptive): El planificador se ejecuta en los puntos 1 y 2 solamente. -> Si un proceso entra en un lazo cerrado , el SO no responde. (DOS). SO exporpiativo(preemptive): Es en el que el planificador se ejecuta en cualquiera de los puntos 1,2,3 4), y se programa un timer externo al procesador para que realice una interrupcin cada cierto perodo. Un SO preemptive (UNIX, WinNT, etc). debe proporcionar mecanismos de sincronizacin a los procesos, ya que estos pueden ser interrumpidos en cualquier momento. (Ejemplo: memoria compartida). Syscall: Preemptive?: en la mayora de UNIX no: Se deshabilita el manejo de interrupciones mientras se maneja la syscall. En Linux, desde Linux 2.6 es kernel es preemptive. - Ventajas: Realtime: tiempo de respuesta. - Desventajas: Complejidad.

Niveles de planificacin Planificacin a largo plazo (planificador de trabajos): es el encargado de crear los procesos y decide cual es el prximo trabajo que se va a ejecutar. Slo existe en los sistemas de procesamiento por lotes. En los de tiempo compartido su misin es cargar los programas en memoria. Planificacin a medio plazo (planificador de procesos inactivos o swapping): decide si un proceso que est suspendido o bloqueado debe ser extrado temporalmente de la memoria, para reducir el grado de multiprogramacin. Slo existe en los sistema de tiempo compartido. Planificacin a corto plazo (planificador del procesador): tiene la responsabilidad de decidir el cmo y cuando un proceso preparado va a acceder al procesador (funciones de la multiprogramacin). Est siempre residiendo en la memoria y se ejecuta con mucha frecuencia (20 ms) y debe ser de ejecucin muy rpida. Es importante que de un buen servicio a los procesos para que el usuario no perciba que est compartiendo el sistema con otros. Despachador Una vez que el Planificador seleciona el proceso a correr, pasa el control a despachador. Este se encarga de: ejecutando. (context switch). - Cambiar de Contexto (context switch). - Cambiar de Kernel a User mode. - Saltar a la direccin donde el proceso se estaba Criterios de planificacin - Utilizacin del Procesador: Porcentaje de tiempo en que el procesador esta ocupado. - Rendimiento (Throughput): Nmero de procesos ejecutados por unidad de tiempo. - Tiempo de Servicio(T): Tiempo tomado para procesar una peticin (un proceso, un programa). excluyendo el tiempo gastado en la lista de procesos esperando. - Tiempo de Ejecucin(t): Tiempo de servicio menos tiempo de espera. - Tiempo de Espera (E): Tiempo que un proceso esta en la lista de procesos esperando.

- Tiempo de Respuesta: Velocidad con la que el ordenador da respuesta a una peticin. (depende de los dispositivos de E/S). - Latencia. Bsicamente, mide el tiempo transcurrido entre la realizacin de una peticin y el comienzo de la visualizacin o ejecucin de los resultados. Se mide en unidades de tiempo (segundos, milisegundos...) Objetivos de la planificacin Justicia, sin favorecer, ni perjudicar a ninguno de los procesos. Mxima capacidad de ejecucin, disminuyendo el nmero de cambios entre procesos. Mximo nmero de usuarios interactivos. Predictibilidad, intentando conocer de antemano como ser la ejecucin de un proceso. Minimizacin de la sobrecarga, ya que a menor sobrecarga se consigue mayor velocidad de procesamiento (los cambios de contexto deben minimizarse). Equilibrio en el uso de recursos, procurando que sean usados equitativamente el mayor tiempo posible. Seguridad de las prioridades, a mayor prioridad ejecucin ms rpida. Algoritmos de planificacin Primero en llegar, primero en ser atendido: FCFS (FIRST COME, FIRST SERVED):

Se procesan hasta terminar, el resto de procesos en cola esperando, sencillo pero de pobre ejecucin, hacen esperar mucho a los tiempos cortos, es no expropiativa. El Proceso ms corto primero (No expropiativo): SJF (Short Job First):

En este caso es necesario PREDECIR los tiempos que demora el proceso en ejecutarse. Esto se puede hacer suponiendo los ciclos anteriores. Cuando llega un proceso nuevo su tiempo total se compara con el tiempo que falta para que el proceso termine de ejecutarse, si es menor se cede el procesador al nuevo proceso. El tiempo mas corto restante (Expropiativo): SRT (Short Remaing Time):

Cuando un proceso nuevo llega, su tiempo total de ejecucin es comparado y si este es menor que el proceso que se esta ejecutando el viejo proceso se detiene para dar paso al nuevo, hay que predecir el tiempo de los procesos una vez mas, si se calcula mal el tiempo, el SO aborta el proceso.

Asignacin cclica: RR (Round Robin) q=1

Se concede a cada proceso un periodo de tiempo de ejecucin fijo, q (quantum), si se supera el proceso es pasado a la cola de espera y es atendido por mecanismo FIFO o por prioridades, si los valores de q son muy altos se convierte en FCFS, si el valor tiende a 0 sobrecarga el sistema, en la prctica 10<q<100ms, si un proceso es creado cuando acaba el q del otro se supone que el anterior llego primero. Asignacin cclica: RR (Round Robin) q=3 Incrementando q el tiempo de servicio se mantiene cte. y el tiempo de espera crece en funcin de ejecucin. Baja sobrecarga sin los Procesos estn en memoria. Es la poltica ms utilizada en tiempos de espera compartidos. Es un mtodo bastante justo y no ex-propiativo. El tamao de q depende de: el tipo de sistema el n de procesos

Prioridades: Se asigna al procesador el proceso con mayor prioridad. Las prioridades pueden ser asignadas interna o externamente. El problema principal en estos casos son los procesos con baja prioridad Puede ser expropiativo o noexpropiativo.

Colas Multiples Multilevel Queue (MQ): Es posible conseguir mayor flexibilidad en la planificacin de los Procesos si creamos varias colas y cada una con distinta planificacin. Los Procesos se asignan a una u otra dependiendo de sus necesidades y tipo. Para conocer que cola suministrar el Proceso al procesador se utiliza un algoritmo no-expropiativo de prioridad fija.

Colas Multiples Multilevel Queue (MQ):

Colas Multiples con retroalimentacin Multilevel Queue Feedback (MQF): Como es difcil determinar el trato justo que ha de recibir cada proceso a priori, se opta por favorecer a: Los procesos cortos Los procesos limitados por E/S Este mtodo divide a los procesos en varias colas de manera que la numeracin ms baja corresponde a una mayor prioridad. Cuando el proceso consume su quantum, entra el primero de la cola de mayor prioridad (nivel ms bajo). Una vez que un proceso haya consumido un tiempo determinado en una cola, ser colocado al final de la cola inmediatamente inferior en prioridad. Es expropiativa y adaptable (gestin de colas con RR y FCFS)

Colas Multiples con retroalimentacin Multilevel Queue Feedback (MQF):

Planificacin para Multiprocesamiento Este tema esta dado por la capacidad de paralelismo de los procesadores. Se puede hacer una divisin clara del paralelismo dado por el nivel de sincronizacin que se puede tener entre los procesos permitiendo esto tener un nivel de granularidad distinto sobre los procesos que pueden ser ejecutados: Grano Fino paralelismo: Paralelismo definido en una sola instancia, no necesariamente involucra al SO, no hay una alta tasa de sincronizacin. Grano medio: Paralelismo potencial de una aplicacin puede ser implementada por mltiples hilos en un solo proceso, el nivel de coordinacin a veces es dado por un programador. Grano Grueso: Multiprocesamiento concurrente de procesos de un ambiente de ultiprogramacin Grano muy distribuida. grueso: La sincronizacin es distribuida en una red

Paralelismo independiente: Mltiples procesos no relacionados. Asignacin de Procesos al Procesador Asignacin Master/slave: Las funciones del Kernel siempre corren sobre un procesador. Otro procesador ejecuta procesos de usuarios. - Ventaja: Los conflictos de recursos se ven simplificados a un solo procesador.

- Desventaja: Falla del procesador Master?, el procesador principal hace la asignacin==> cuello de botella. Por asignacin: SO se puede ejecutar sobre cualquier procesador. Cada procesador aplica sus propios algoritmos para los procesos. Es similar a como funciona SOLARIS Y (SMP). Despacho de procesos Despus de la asignacin, el despachador debe decidir de la cola de procesos en espera que proceso debe ser despachado. Estrategias de multiprogramacin basados en un solo procesador (contador productivo) pueden ser establecidas ac. Prioridades e histrico de procesos no es suficiente. Una cola simple de procesos o una cola de multiprioridades pueden ser usadas. Modelos de colas multiservidores: Mltiples cola vs una sola cola, el anlisis de desempeo de los procesos siendo asignados a distintas colas dado el nmero de procesos puede no ser la mejor opcin. Conclusin: La recomendacin puede ser usar FCFS sobre uno de los procesadores combinado con el uso de una cola de prioridades y que sobre el otro procesador se atiendan el resto de procesos. Planificacin de hilos Si una aplicacin es implementada para que funciones con un conjunto de hilos y que compartan por supuesto una direccin nica de memoria por proceso, se puede seguir alguno de estos mtodos: Balanceo de cargas: Sabemos que si un proceso esta formado por distintos hilos un buen mtodo es permitir que la planificacin del SO sea la que se encargue de decidir cuales hilos van a que procesador, desventaja, como puede un hilo repetir el mismo procesador (cache), muchos procesadores buscando procesos con una nica direccin de memoria pueden presentarse para este mtodo. Planificacin por grupos: Grupos de hilos se ejecutan juntos, si son procesos ntimamente relacionados los tiempos se reducen considerablemente. Desventajas son dadas por la consideracin de operar todos los hilos como un

todo deja algunos planificacin.

procesadores ociosos si no se usa un buen algoritmo de

Asignacin de procesadores dedicados: Consiste en dedicar procesadores durante toda la duracin de la ejecucin de la aplicacin, este mtodo es bueno si: hay muchos procesadores, si se puede controlar el nmero de hilos por aplicativo. Planificacin dinmica: Depender de si el lenguaje que programa el aplicativo o el SO permiten controlar dinmicamente el nmero de procesos sobre el procesador, un mtodo es examinar si algn procesador esta ocioso de ser as asignarles grupos de hilos. Planificacin en tiempo real La computacin en tiempo real se puede definir como aquella en la que la correccin del sistema depende no solo del resultado lgico de la computacin sino tambin del momento en el que se producen resultados. Un sistema en tiempo real duro: Tiene un tiempo para la ejecucin de las tareas. Un sistema en tiempo real suave: Tiene un tiempo lmite deseable pero no obligatorio. Caractersticas de sistemas operativos en tiempo real - Determinismo. - Reactividad - Control de usuario - Fiabilidad - Operacin de fallo suave Determinismo Un SO es determinista en el sentido de ejecutar operaciones en instantes de tiempos fijos predeterminados o dentro de intervalos de tiempos predeterminados, es difcil que en un sistema operativo sea determinista, para SO en tiempo real el determinismo esta dado por eventos externos y temporizaciones. El determinismo esta dado en los tiempos en que atiende las interrupciones y si puede atender todos los requerimientos. En SO no-RT esta demora puede estar en el orden de 10s y 100s de milisegundos, en SO RT esta dado en pocos microsegundos hasta 1 milisegundo.

Reactividad Depende de cuanto tarda el SO despus que reconoce la interrupcin, se incluyen algunos aspectos como: -Tiempo para manejar la interrupcin y comenzar a ejecutar la rutina de servicio de interrupcin. - La cantidad de tiempo necesario para la ejecucin de la interrupcin. - El tiempo cuando hay mas de una interrupcin por ejecutarse. Control de usuario El usuario tiene control sobre: - Prioridades. - Paginacin o swapping. - Algoritmos de transferencias de disco. - Tiempo real de tipo suave o duro. - Etc. Fiabilidad En SO no RT el fallo de los procesadores, no cumplimiento de las tareas, etc, es mas sencillo de ser solventado que en SO RT, en estos estn de por medio tareas como datos financieros, manejo de equipos en hospitales, etc. Operacin de fallo suave Capacidad de fallar de forma tal que se preserven tantos datos como sea posible. Requerimientos de tiempo real - Rpido cambio de contexto. - Capacidad de almacenamiento rpido. - Planificacin no-expropiativa. - Respuesta rpida a interrupciones. La meta es completar la mayor cantidad de tareas en el menor tiempo posible.

Algoritmos para tiempo real Es necesario saber que existen dos tipos de eventos: - Peridicos: Su tiempo de ocurrencia no es frecuente, ni predecible, ej: un loop. - Aperidicos: Su tiempo de ocurrencia es frecuente e impredecible, ej: un click del mouse. Los enfoques se dividen a varias clases de algoritmos. - Enfoque esttico dirigido por tablas. - Enfoque esttico expropiativo dirigido por prioridad. - Enfoque dinmico basado en un plan. - Enfoque dinmico de mejor esfuerzo. Clases de algoritmos - Enfoque esttico dirigido por tablas: Aplicable a tareas peridicas, se necesitan datos como tiempo peridico de llegada, tiempo de ejecucin, plazo peridico de ejecucin y prioridad de las tareas. Se debe definir un plan que nos diga cuando ejecutar cada tarea. - Enfoque esttico expropiativo dirigido por prioridad: Debe usar un mtodo expropiativo basado en prioridades (no RT), para la planificacin se debe basar en que demora mas las tareas. - Enfoque dinmico basado en un plan: Se determina un plan, que incluye a las tareas ya planificadas ms cualquier nueva tarea que no entorpezca el tiempo. - Enfoque dinmico de mejor esfuerzo: Cuando llega un nuevo proceso se le asigna una prioridad basado en las caractersticas del proceso. En este caso los procesos no se ejecutan de forma peridica. Planificacin por plazos La mayora de los sistemas operativos actuales en tiempo real se disearon con el objetivo de dar inicio a las tareas de tiempo real tan rpidamente como fuera posible, y por lo tanto, hacen hincapi en una rpida gestin de las interrupciones y expediciones de las tareas. De hecho, no hay medidas particularmente tiles en la evaluacin de los sistemas operativos en tiempo real. En las aplicaciones en tiempo real generalmente no preocupa la velocidad absoluta, sino completar las tareas en el momento mas apropiado, ni antes ni despus, a pesar de las peticiones

dinmicas de recursos y los conflictos, la sobrecarga de proceso y los fallos de hardware o software.

Planificacin en GNU/Linux Linux est basado en la planificacin tradicional de Unix aadiendo 2 clases de prioridad para procesos de tiempo real flexibles. Las tres clases de prioridad de Linux son las siguientes: SCHED_FIFO: FIFO o FCFS, no se obliga a dejar el procesador, se usa en procesos de tiempo real. SCHED_RR: Usan su quantum de tiempo, se obliga al proceso a dejar el procesador. SCHED_OTHER: hilos que no son de tiempo real y otros. Planificacin en GNU/Linux Dentro de cada clase se utilizan mltiples prioridades, siendo las prioridades de las clases de tiempo real mayores que el resto. Para los hilos FIFO, se aplican las siguientes reglas: 1. El sistema no interrumpe la ejecucin de un hilo FIFO, excepto en los siguientes casos: a) Pasa a estar listo otro hilo FIFO de mayor prioridad.

b) El hilo FIFO en ejecucin se bloquea a la espera de un evento, como una E/S.

c) El hilo FIFO en ejecucin abandona el procesador como resultado de la ejecucin de la primitiva sched_yield. 2. Cuando se interrumpe un hilo FIFO en ejecucin, pasa a la cola asociada a su prioridad. 3. Cuando un hilo FIFO pasa a listo y tiene mayor prioridad que el hijo que est en ejecucin, se expulsa al hilo en ejecucin y pasa a ejecutar el hilo de mayor prioridad. Si ms de un hilo tiene esta mayor prioridad, se escoge al que lleva ms tiempo esperado. La poltica SCHED_RR se comporta de forma similar a la SCHED_FIFO, excepto por el uso de un cuanto de tiempo asociada a cada hilo. Cuando un hilo SCHED_RR ha consumido su cuanto de tiempo, pasa a suspendido y se escoge un hilo de tiempo real con una prioridad igual o mayor. Esta ejecucin de la figura es dada por las prioridades de los distintos hilos.

La planificacin descrita anteriormente funciona para el kernel 2.4, para el kernel 2.6 se decido tomar lo mejor del kernel 2.4 y usar algunas nuevas caractersticas, para tratar de mejorar el desempeo de los procesos. - Tienen mayor prioridad a los que les quede mayor tiempo en el procesador - Se aumenta ligeramente la prioridad de los hilos del mismo proceso. - Se aade la prioridad nice colocada por el usuario.

- Los procesos se ejecutan en un solo procesador a menos que haya un bloqueo de otro procesador. Ejecutar los hijos antes que sus padres, lo cual mejora el desempeo.

Planificacin Windows Las prioridades en Windows se organizan de dos formas: tiempo real y variable. Cada una de estas bandas consta de 16 niveles de prioridad. Los hilos que requieren atencin inmediata estn en clase de tiempo real, que incluye funciones como comunicaciones tareas de tiempo real. En general, puesto que Windows utiliza un planificador expropiativo con prioridades, los hilos con prioridades de tiempo real tienen preferencia sobre los otros hilos. En un monoprocesador, cuando un hilo cuya prioridad es mayor que la del que se ejecuta en ese momento pasa a estar Listo, el hilo de menor prioridad es expulsado y se asigna el procesador al de mayor prioridad. Las prioridades se gestionan de forma algo diferente en las clases. En la clase de prioridad de tiempo real, todos los procesos tienen una prioridad fija que no cambia nunca.

Planificacin Unix Dentro de la clase de tiempo compartido, un proceso tiene prioridad variable. El planificador reduce su prioridad cada vez que agota un cuanto de tiempo, y le

incrementa cuando se bloquea un evento o recurso. El cuanto de tiempo asignada a un proceso de tiempo compartido depende de su prioridad, oscilando entre 10ms para prioridad 0 y 100ms para prioridad 59. Cada proceso de tiempo real tiene una prioridad fija de un cuanto de tiempo fijo. de Dentro de la clase de tiempo.

3.2 MANEJO DE MEMORIA SECUNDARIA A diferencia de la Memoria Principal la Memoria Secundaria, auxiliar, masiva, externa no es tan veloz pero tiene gran capacidad para almacenar informacin en dispositivos tales como discos, cintas magnticas, discos pticos. Frecuentemente los datos y programas se graban en la Memoria Secundaria, de esta forma, cuando se ejecuta varias veces un programa o se utilicen repetidamente unos datos, no es necesario darlos de nuevo a travs del dispositivo de entrada

En la Memoria Secundaria un archivo consta de un conjunto de bloques (correspondiente a la cantidad de informacin que se transfiere fsicamente en cada operacin de acceso (lectura o escritura). El Sistema Operativo o Sistema de Gestin de Archivos es el encargado de la asignacin de bloques a archivos, de lo que surgen dos cuestiones, en primer

lugar, debe asignarle el espacio de Memoria Secundaria a los archivos y, en segundo lugar, es necesario guardar constancia del espacio disponible para asignar. El sistema de archivos se ocupa primordialmente de administrar el espacio de almacenamiento secundario, sobre todo el espacio en disco. El manejo del espacio libre en disco se lleva a cabo de la siguiente manera: Vector de bits Lista ligada (lista libre) Por conteo (agrupacin) Vector de bits. El espacio libre en disco es frecuentemente implementado como un mapa de bits, donde cada block es representado por un bit y si el bloc es libre el bit es cero de lo contrario est asignado.11000111 Lista ligada. Una lista ligada de todos los blocks libres. Otra implantacin se consigue guardando la direccin del primer block libre y el nmero de los blocks libres contiguos que le siguen. Cada entrada de la lista de espacio libre consiste de una direccin de disco y un contador (por conteo).

Lista de espacio libre enlazada en el disco Por agrupacin. Se almacena la direccin en n blocks libres en el primer block libre y el ltimo contiene la direccin de otro block que contiene la direccin de otros blocks libres.

Para manejar los espacios en disco existen los siguientes mtodos: Contiguos Ligados Indexados Contiguos. Esta asignacin requiere que cada archivo ocupe un conjunto de direcciones contiguas en el disco, su asignacin es definida por la direccin del primer bloc y la longitud del archivo. Cuando se crea un archivo se le asigna un nico conjunto contiguo de bloques, esta es una estrategia de asignacin previa que emplea secciones de tamao variable. La tabla de asignacin de archivos necesita solo una entrada por cada archivo y que muestre el bloque de comienzo y la longitud del archivo. La asignacin contigua es la mejor para un archivo secuencial. La asignacin contigua presenta algunos problemas, como la fragmentacin externa. Lo que hace difcil encontrar bloques contiguos de espacio de tamao suficiente., lo que lleva a ejecutar un algoritmo de compactacin para libera el espacio adicional en el disco. Asignacin ligada o encadenada. Cada archivo es una lista ligada de blocks y el directorio contiene un apuntador al primer bloc y al ltimo. La asignacin se hace con bloques individuales, cada bloque contendr un puntero al siguiente bloque de la cadena. La tabla de asignacin de archivos necesita una sola entrada por cada archivo que muestre el bloque de comienzo y la longitud del mismo, cualquier bloque puede aadirse a la cadena. No hay que preocuparse por la fragmentacin externa porque solo se necesita un bloque cada vez. Una consecuencia del encadenamiento es que no hay cabida para el principio de cercana, si es necesario traer varios bloques de un archivo al mismo tiempo, se necesita una serie de accesos a partes diferentes del disco por lo que se debe ejecutar un algoritmo de compactacin para liberar el espacio adicional en el disco. Asignacin Indexada. Cada archivo tiene su propio bloc de ndice el cual es un arreglo de direcciones de bloc. En esta asignacin la tabla de asignacin de archivos contiene un ndice separado de un nivel para cada archivo: el ndice posee una entrada para cada seccin asignada al archivo. Normalmente, los ndices no estn almacenados fsicamente como parte de la tabla de asignacin de archivos. Mas exactamente el ndice de

archivo se guardara en un bloque aparte y la entrada del archivo en la entrada de asignacin apuntara a dicho bloque. La asignacin puede hacerse por bloques de tamao fijo, O en secciones de tamao variable. La asignacin por bloques elimina la fragmentacin externa, mientras que la asignacin por secciones de tamao variable mejora la cercana. En cualquier caso, los archivos pueden concentrarse en zonas cercanas de cuando en cuando. La concentracin reduce el tamao del ndice en el caso de secciones de tamao variable, pero no en el caso de asignacin por bloques. La asignacin indexada soporta tanto el acceso secuencial como el acceso directo a los archivos y por ello se ha convertido en la forma ms popular de asignacin de archivos. En un sistema de cmputo, los elementos que se declaran para almacenamiento son los Fyle System. Cundo existe una solicitud de almacenamiento o manejo de bloc libres en un file system surge una interrogante cmo atenderlas? esto se lleva a cabo mediante una planificacin de discos y para esto existen las siguientes polticas de planificacin. a) FCFS b) SSTF c) SCAN d) SCAN de n-pasos e) C-SCAN f) Esquema Eschenbach

BIBLIOGRAFIA
http://es.scribd.com/doc/38727616/Estructura-de-Un-S-O-Reporte http://www.mitecnologico.com/Main/ManejoEspacioMemoriaSecundaria http://html.rincondelvago.com/memoria-secundaria.html http://ditec.um.es/deiso/apuntes/tema2.pdf http://www.monografias.com/trabajos11/oper/oper.shtml#es procesador.pdf

http://pitagoras.usach.cl/~eflores/lcc/cd_arq/arquitectura/material/administracion-