Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Unidad 1. Introduccin a los Sistemas Operativos
1.1 Definicin y Concepto
Un Sistema Operativo (S.O.) es una coleccin organizada de rutinas o extensiones de software del hardware. Consiste en rutinas de control que hacen funcionar una computadora y proporcionan un entorno para la ejecucin de los programas. Existen otros programas que se apoyan en el S.O. para poder acceder a los recursos que necesitan. Esto se lleva a cabo a travs de llamadas sistema operativo. Tambin el S.O. debe brindar una forma de que el usuario se pueda comunicar con l a travs de una interfaz que le brinde una va de comunicacin con el hardware del sistema informtico.
El objetivo principal del S.O. es lograr que el hardware de la computadora se emplee de modo eficiente, y su objetivo secundario es que se use de manera cmoda.
El S.O. debe asegurar el correcto funcionamiento del sistema informtico. Para lograr esto el hardware debe brindar algn mecanismo apropiado que impida que los usuarios intervengan en el funcionamiento del sistema y as mismo el S.O. debe poder utilizar este recurso de hardware de modo que esto se cumpla.
El S.O. debe ofrecer servicios a los programas y sus usuarios para facilitar la tarea de programacin.
Las clases de sistemas operativos en la que nos basaremos sern los denominados multiusuarios y de multiprogramacin; es decir que varios usuarios podrn correr concurrentemente mltiples programas.
Un S.O. es una parte importante de casi cualquier sistema informtico. Para entender mejor esto veremos que un sistema informtico puede separar en cuatro partes:
El hardware El S.O. Los programas de aplicacin Los usuarios INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Estas partes hacen de capas, cada una de las cuales acerca ms al usuario a utilizar los recursos del hardware. El hardware (CPU, memoria y dispositivos) proporciona los recursos de computacin bsicos sobre los que se agregaran estas capas sucesivas. Los programas de aplicacin como los compiladores, juegos, aplicaciones de negocios, etc. definen la forma en que estos recursos se emplearn para solucionar los problemas del usuario.
Puede haber varias clases de usuarios usando el sistema, como ser personas, programas y otras computadoras, tratando de resolver diversos problemas. El S.O. controla y coordina el uso del hardware entre los diversos programas de aplicacin y los distintos usuarios, administrando todos los recursos como disco, memoria, impresoras, monitor, etc. El S.O. determina los tiempos en que un determinado programa utilizar un recurso. dado.
Al comienzo de la era informtica, los sistemas no utilizaban S.O.'s. Estas computadoras de hace 40 aos ejecutaban un programa a la vez que era cargado por un programador. Este cargaba el programa y lo ejecutaba. Si exista algn error que hiciera que el programa se detuviera antes de lo esperado, se tena que comenzar de nuevo con todo el proceso. Recordemos que en esa poca no haba muchas computadoras en funcionamiento, as que el programador tena que esperar de varios das hasta tener nuevamente su turno enfrente de la computadora. Los S.O.'s existen porque son una solucin razonable al problema de crear un sistema informtico til. El objetivo fundamental de los sistemas informticos es ejecutar los programas de los usuarios y facilitar la resolucin de sus problemas. Todo esto se haca a travs de tarjetas perforadas que una persona encargada cargaba en la computadora y luego de algunas horas devolva la salida impresa al programador.
Al avanzar la tecnologa informtica, muchos de estos programas se cargaban en una sola cinta, otro programa residente en la memoria de la computadora, cargaba y manipulaba los programas de esa cinta. Este es el ancestro de los S.O.'s de hoy en da. En la dcada del 60 la tecnologa de S.O.'s avanzo mucho y se podan tener mltiples programas al mismo tiempo en la memoria. As surgi el concepto de multiprogramacin. Si un programa necesitaba esperas a que ocurriera algn evento externo, como que una cinta se rebobinara, otro podra tener acceso. a la CPU para as poder utilizar el 100% del poder de procesamiento con que contaba la computadora. Esto ahorraba INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin mucho dinero ya que en aquel entonces todo en lo referente a cmputo (memoria, espacio en disco, etc.) costaba cientos de miles de dlares. A finales de los 60's, en 1969, naci UNIX, que es la base de muchos de los S.O.'s de hoy en da.
Definir que forma parte de un S.O. y que no sera difcil, dada la gran variedad existente, pero una definicin para los S.O. que nos compete en estos momentos seria que el S.O. es el programa que ejecuta todo el tiempo en la computadora (conocido usualmente como kernel o ncleo), siendo los programas de aplicacin todo lo dems. En general un S.O. intenta incrementar la productividad de un recurso de proceso tal como el hardware de la computadora, o de los usuarios de los sistemas informticos. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 1.2 Funciones y Caractersticas Funciones Bsicas de un Sistema Operativo Se tendr como punto de partida la mquina tal cual, es decir, el hardware bsico del computador, con una CPU, memoria central y perifricos. Sin ayuda del Software las operaciones de cargar y ejecutar un programa se debe realizar de forma manual, es decir totalmente bajo control humano. El operador debe llevar a cabo una secuencia de tareas:
Colocar el programa fuente almacenado en el dispositivo de entrada adecuado (cintas, tarjetas, discos...). Desencadenar la ejecucin de un programa de lectura para el dispositivo elegido. Desencadenar la ejecucin de un compilador que traduzca el programa fuente. Colocar los datos de entrada en el dispositivo adecuado. Ejecutar el programa objeto. Sacar los resultados por impresora.
Un sistema operativo crea un entorno para la ejecucin de programas. Ofrece ciertos servicios a los programas y a los usuarios de estos programas. Dependen del tipo de Sistema Operativo, pero las funciones bsicas son:
De cara al usuario: Ejecucin de programas. El sistema debe ser capaz de cargar un programa en memoria y ejecutarlo. Operacin de I/O. Un programa de usuario no puede ejecutar directamente operaciones de I/O. El sistema operativo debe facilitar medios para realizarla. Manipulacin de ficheros: Lectura, escritura y borrado a partir del identificador de los mismos. Deteccin de errores: Para cada tipo de error el sistema operativo debe adoptar la iniciativa apropiada que garantice una computacin correcta y consistente. No confundir esta deteccin de errores con la producida durante la compilacin de un programa. Esta deteccin se hace de cara a un funcionamiento eficiente.
De funcionamiento eficiente: Asignacin de recursos. Contabilidad: control del uso. de la computadora por cada usuario. Proteccin: de datos, recursos, programacin, etc.
Caractersticas de un Sistema Operativo 1.- Concurrencia. Consiste en la existencia de varias actividades simultneas o paralelas. Ejemplo de ello lo son la superposicin de las operaciones de I/O con el proceso de computacin, as como la coexistencia en memoria de varios programas. La concurrencia lleva asociado el problema de conmutar de una tarea a otra, as como proteger una determinada actividad de los efectos de las INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin otras, as como la sincronizacin de tareas que sean mutuamente dependientes.
2.- Utilizacin conjunta de recursos. Comparticin. Las razones para la comparticin son las siguientes:
a) El coste: es absurdo disponer de suficientes recursos para cada usuario por separado.
b) Aprovechamiento de los trabajos de otros. La utilidad es poder utilizar rutinas y programas desarrollados por otras personas.
c) Posibilidad de compartir datos: Utilizacin de una misma base de datos para varios programas distintos, asociados posiblemente a distintos usuarios. d) Eliminacin de redundancias: poder disponer de una sola copia de un programa (por ejemplo un compilador) y compartirlo con otros.
3.- Permite que el usuario guarde sus datos o programas en el propio ordenador, y no tener que usar medios externos (portables). Los problemas que se plantean son de proteccin de la informacin frente a terceros y protegerlos frente a fallos del sistema.
4.- Un Sistema Operativo debe ser determinista en el sentido de que el mismo programa ejecutado con los mismos datos, en momentos diferentes, debe producir los mismos resultados. En cambio ser indeterminista porque en caso de variabilidad de las situaciones puede responder de un modo impredecible. Deben tomarse las medidas oportunas. Estas situaciones pueden ser debidas a peticin de recursos, errores de ejecucin en programas o bien interrupcin de perifricos.
Caractersticas Deseables en un Sistema Operativo
Eficiencia Se juzgar la eficiencia de un Sistema Operativo mediante los siguientes criterios:
1. Tiempo transcurrido entre tareas. 2. Tiempo no empleado del procesador central. 3. Tiempo de ejecucin empleado en las tareas batch. 4. Tiempo de respuesta (en los sistemas de acceso mltiple). 5. Utilizacin de recursos. 6. Rendimiento (tareas ejecutadas por hora).
Fiabilidad Estar libre de errores y ser capaz de resolver satisfactoriamente todas las contingencias que se pudieran presentar.
Mantenibilidad Ser posible corregir un Sistema Operativo (mejorndolo, o bien subsanando errores) sin tener graves problemas. Estar bien documentado. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Tamao reducido El espacio ocupado por el Sistema Operativo no est disponible para su utilizacin productiva, por lo que debe ocupar lo menos posible. Para ello es preciso que el sistema operativo sea modular en su construccin. Disponer de interfaces claramente definidas en mdulos y estar bien documentado.
Prestacin de Servicios Llamada al sistema: Los servicios de ms bajo nivel se obtienen mediante el uso de llamadas al sistema, Constituyen un interfaz entre el programa que se est ejecutando y el sistema operativo. Estas llamadas estn implementadas generalmente por instrucciones en lenguaje ensamblador. Se dividen en cuatro clases:
Control de procesos: Sirven para poder detener un programa normal o anormalmente. Tambin se utilizan para cargar y ejecutar otros procesos. Un ejemplo son los Lenguajes de Control de Trabajos.
Manipulacin de ficheros: Crean, abren, borran, cierran, leen, escriben y reposicionan ficheros. Obtienen y establecen atributos de ficheros.
Manipulacin de dispositivos: Solicitud y liberacin de dispositivos. Leen, escriben y reposicionan ficheros. Obtienen y establecen atributos de dispositivos.
Mantenimiento de la informacin: Obtener y establecer hora y fecha. Obtener y modificar datos del sistema. Obtener y establecer atributos de proceso, fichero o dispositivo. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 1.3 Evolucin Histrica Primera generacin (1945-1955) No existen Sistemas Operativos. Un grupo reducido de gente diseaba, construa, programaba, mantena cada mquina. Las instrucciones se codificaban a mano. El programador insertaba su trabajo y esperaba su turno. Exista un desaprovechamiento inadecuado del computador ("tiempos muertos de la CPU"). Disparidad de tiempos de ejecucin entre la CPU y los dispositivos de E/S. En 1950 aparecen las tarjetas perforadas.
Segunda generacin (1955-1965) Aparicin de los transistores. Se especializa el personal (diseadores, analistas, ...). Se desarrollan los primeros sistemas operativos. Se procesan los trabajos por lotes ("batch"). El S.O. se entiende como un programa de control que planifica los trabajos.
Tercera generacin (1965-1980) Aparecen los circuitos integrados y la multiprogramacin. Existen muchas computadoras diferentes con S.O. muy diferentes. Se suministran una gran cantidad de programas de utilidad. Los S.O. son complejos. Se utilizan dispositivos virtuales como las tcnicas de SPOOL. Multiprocesamiento (sistemas compuestos de varios procesadores). Surgimiento de la Ingeniera del software. Separacin entre la venta de hardware y software.
Cuarta generacin (1980-2000) Circuitos LSI (alta escala de integracin) y, posteriormente, VLSI. Relanzamiento de los ordenadores personales. Crecimiento del software para las computadoras personales. Crecimiento de las redes de computadoras que ejecutan S.O. en red y distribuidos.
Quinta generacin (2000-...) Aparicin de las computadoras de bolsillo (PDA, Personal Digital Assistant) como ampliacin de las agendas electrnicas. Los S.O. se adaptan a estas nuevas computadoras y telfonos mviles (mucho ms pequeos que una computadora). INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 1.4 Clasificacin de los Sistemas Operativos
Segn su entorno de funcionamiento: A. Nmero de usuarios que puede soportar: S. O. monousuarios S. O. multiusuarios
B. Propsito para el que fueron diseados: S. O. de propsito general S. O. de propsito especfico S. O. de tiempo real: proveen una respuesta dentro de unos intervalos de tiempo bien definidos a priori. S. O. de tolerancia a fallos: capaces de detectar errores (hardware y software) y darles solucin. S. O. virtuales: ejecutan a otros S. O. concurrentemente en la misma mquina.
C. Modo en el que se trabaja con ellos: S. O. off-line (batch) S. O. on-line (interactivo)
D. Hardware del ordenador: 1. Nmero de procesadores S. O. monoprocesador S. O. multiprocesador
2. Situacin de la memoria principal: S. O. centralizado S. O. distribuido
Tipos de Sistemas Operativos 1. Monoprogramacin Hasta que no finaliza la ejecucin de un programa de usuario no empieza a ejecutarse otro.
Consecuencias: Tiempos muertos de CPU, perifricos, ... Desaprovechamiento de la Memoria Central (la no ocupada por el proceso). Entre la finalizacin de un programa y el comienzo del siguiente transcurre un tiempo en el que el ncleo del sistema operativo tiene el control del procesador (CPU).
2. Sistemas por lotes o colas ("sistemas batch") Un sistema por lotes realiza una secuenciacin automtica de trabajos. En l van pasando a ejecucin de uno en uno los programas en espera. La planificacin es muy simple. Los trabajos se procesan, en general, en el orden de admisin (FIFO). INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Un S.O. por lotes puede servir muy bien para programas que no requieran interaccin con el usuario y aquellos con tiempos de ejecucin largos, como los programas de nminas, de anlisis estadsticos, etc. Debido a los retardos en el tiempo total de ejecucin, el procesamiento por lotes no es muy conveniente para el desarrollo de programas.
3. S.O. de multiprogramacin Se cargan en memoria principal varios programas que se van ejecutando concurrentemente con lo cual, en un determinado tiempo se estarn ejecutando varios programas.
Ventajas: Aprovechamiento de la memoria y mejora de los tiempos muertos del procesador. Un programa en ejecucin se conoce como proceso. El programa es, por tanto, un ente "pasivo" y el proceso un ente "activo". Un S.O. multiproceso o multitarea soporta dos o ms procesos activos simultneamente.
Un S.O. de multiprogramacin soporta mltiples procesos concurrentes y, adems, permite que residan simultneamente en la memoria principal las instrucciones y datos procedentes de dos o ms procesos disjuntos. La multiprogramacin implica multiproceso pero el multiproceso no implica multiprogramacin.
Tipos de multiprogramacin: Clsica Tratamiento paralelo Tiempo compartido
Multiprogramacin clsica El planificador del procesador da el turno a un programa determinado. Cuando ste tiene que realizar una operacin de E/S, le da el control del procesador a otro programa y as sucesivamente. Cuando un programa finaliza una operacin de E/S, el perifrico se lo comunica a la CPU (mediante una interrupcin) para cederle el control la prxima ocasin que le toque su turno.
Problema: Monopolizacin de la CPU por parte de programas con mucho clculo y poca E/S.
Tratamiento paralelo A cada uno de los programas en memoria se le asigna un intervalo de tiempo fijo o periodo T llamado "cuantum" (dcimas de segundo). Al finalizar el cuantum asignado a un programa, el control de la CPU pasa al siguiente programa y as sucesivamente.
La cuenta del tiempo se realiza mediante un circuito contador activado por el reloj de la CPU (temporizador digital). Al transcurrir el periodo T se genera una interrupcin de la CPU.
Tiempo compartido INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Se asigna el control de la CPU a un nuevo programa interrumpiendo al anterior siempre que este ltimo agote su cuantum de tiempo o que entre en la ejecucin de una instruccin de E/S. La CPU trabaja el 100% en determinados intervalos segn el tipo de carga.
4. S.O. de secuencias mltiples o colas paralelas (multisecuencias) Permiten coexistir en memoria en ejecucin concurrente distintos tipos de trabajos (organizados en colas diferentes). Los trabajos se introducen en las distintas colas las cuales contienen distintas caractersticas (tiempo de CPU, prioridades, etc.) que deben reunir los trabajos. En ejecucin concurrente habr un trabajo por cada cola que exista. Pueden existir trabajos de tipo interactivo.
5. Sistemas de bases de datos Estos S.O. mantienen una gran cantidad de datos que pueden ser consultados en busca de una determinada informacin que debe suministrarse en un periodo razonable de tiempo. La B.D. puede ser frecuentemente modificada para mantener la informacin actualizada y se evitan las operaciones simultneas sobre los mismos datos.
6. Sistemas en tiempo real Un S.O. en tiempo real se caracteriza por el procesamiento de una actividad interrumpida, en la mayora de los casos, por sucesos externos aleatorios. El procesamiento de un suceso. particular viene acompaado por secuencias de tareas que se deben de realizar dentro de rgidas restricciones de tiempo.
Un suceso puede ser: La recepcin de un dato (procedente, por ejemplo, de un sensor). La demanda de servicio de un dispositivo en lnea.
Un sistema en tiempo real monitoriza y controla el sistema con mnima intervencin humana. Slo interviene en fallos del sistema o cuando se violan algunos lmites. El sistema est completamente dedicado a la aplicacin de control y debe estar configurado para garantizar respuestas rpidas en el tiempo incluso. con cargas pesadas. Los procesos suelen residir permanentemente en memoria principal para proporcionar tiempos de respuesta rpidos. El entorno es tal que la utilizacin del equipo es menos importante que la respuesta al entorno. Ejemplos: Lneas de produccin, semforos de trfico, equipamiento telefnico, control de vuelo, aplicaciones militares, etc.
Es importante que el procesador pueda responder muy rpidamente a interrupciones externas y determinar intervalos de tiempo con una precisin muy alta.
7. Sistemas multiprocesador. Redes y sistemas distribuidos Una red interconecta varias computadoras ("hosts"), cada una de las cuales puede proporcionar servicios de computacin a los usuarios de la red. Las redes estn conectadas por subsistemas de comunicaciones y uno o varios INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin tipos de enlaces de comunicaciones como pueden ser las lneas telefnicas, canales de satlite, cables coaxiales y enlaces de microondas.
Tipos de aplicaciones de procesamiento distribuido: Redes de recursos compartidos: Los recursos de las diferentes computadoras se ponen a disposicin de las otras computadoras. La red proporciona los mecanismos para crear la ilusin de que los dispositivos remotos estn disponibles en el sistema local. Redes de computacin distribuida: Realiza actividades de multitarea como pueden ser el control de procesos o de bases de datos, etc. Ej.: Planta de fabricacin de una compaa en todo un pas. Redes de comunicacin remota: Proporcionan los medios para que los usuarios puedan acceder a instalaciones remotas de la forma ms econmica posible.
Un sistema operativo para red es una coleccin de software y protocolos asociados que permiten a varias computadoras autnomas que se encuentran interconectadas por una red de computadoras, ser utilizadas conjuntamente de una manera conveniente y econmica.
Los S.O. para redes se clasifican en: S.O. en red (NOS, Network Operating System) S.O. distribuidos (DOS, Distributed Operating System)
S.O. en red Cada uno de los hosts de la red utiliza su propio S.O. que no es de red. La red est controlada por los programas de usuario ejecutados en los diferentes hosts. Los usuarios conocen la existencia de mltiples computadoras y pueden conectarse a mquinas remotas y copiar archivos de una mquina a otra. Cada mquina tiene sus propios usuarios y ejecuta su S.O.
S.O. distribuidos Los S.O. individuales de los hosts quedan descartados y se implementa un nico sistema operativo para toda la red. Aparece a los usuarios como un sistema uniprocesador aunque conste de muchos procesadores. Los usuarios no saben dnde se ejecutan sus programas ni dnde se localizan sus archivos. Por ello, la caracterstica principal de un DOS es la transparencia. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 1.5 Estructuras (Niveles o Estratos de Diseo)
Sistemas monolticos. Descripcin: sin estructura definida. Se componen de un conjunto de procedimientos, donde cada uno de ellos puede llamar a todos los dems.
Proceso para requerir un servicio del S.O.: el programa de usuario coloca los parmetros necesarios en los lugares previamente definidos, y seguidamente ejecuta una llamada al supervisor (se cambia de modo usuario a modo supervisor), transfiriendo el control al S.O. que examina dichos parmetros y determina el procedimiento que debe invocar. Cuando se complete la llamada devuelve el control al programa de usuario.
S.O. con una pequea estructura de niveles:
Sistemas en estratos. Descripcin: se organiza en una jerarqua de estratos, estando construido cada uno de ellos sobre el otro que tiene menor jerarqua que l.
Ejemplos: A. THE (Dijkstra, 1968): sistema de procesamiento por lotes.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin B. MULTICS: anillos concntricos alrededor del hardware, donde los internos son ms privilegiados que los externos.
Mquinas virtuales. Descripcin: crea ilusiones (mquinas virtuales) de la mquina real, permitiendo que en cada mquina virtual se ejecute un S.O. distinto. El programa de control es el que se ejecuta directamente sobre el propio hardware y ofrece al nivel inmediatamente superior varias mquinas virtuales.
Modelo Cliente-Servidor. Descripcin: su objetivo es minimizar el kernel desplazando el cdigo de todos sus servicios a estratos lo ms superiores posibles. Para ello, la mayora de sus funciones se implementan como procesos de usuario, denominados procesos servidores, de forma que cuando un proceso de usuario llamado proceso cliente, necesita un servicio del S.O. lo que hace es enviar un mensaje al proceso servidor correspondiente, que realiza el trabajo y devuelve la respuesta. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin El kernel lo nico que hace es implementar la comunicacin entre clientes y servidores y entre servidores y el hardware
Estructura orientada al objeto. Descripcin: se basan en una coleccin de objetos, donde las funciones del sistema son un tipo de objeto (ficheros, dispositivos, etc.). La interaccin entre dichos objetos viene determinada por las capacidades que cada uno tenga para actuar con el otro.
El kernel es el responsable del mantenimiento de las definiciones de los tipos de objetos soportados y del control de los privilegios de acceso a los mismos. Cuando un programa desee realizar una operacin sobre un objeto determinado, deber ejecutar una llamada al sistema, indicando qu derechos tiene para poder utilizarlo y qu operacin intenta llevar a cabo. Como resultado de dicha llamada, el sistema validar la peticin y, si puede ser aceptada, permitir la realizacin de dicha operacin.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 1.6 Ncleo del Sistema Operativo
Caractersticas del ncleo El kernel se ejecuta con las interrupciones desactivadas y es la parte del S. O. ms cercana al hardware, por ello suele estar codificado en ensamblador o lenguaje mquina, adems de estar residente en memoria principal. El resto del S. O. se suele programar en lenguajes de alto nivel.
Funciones bsicas del kernel: a) Manipulacin de interrupciones; b) Inhabilitacin y habilitacin de interrupciones; c) Creacin y destruccin de procesos; d) Cambio de estado de un proceso; e) Despachar un proceso; f) Comunicacin entre procesos; g) Manipulacin de los Process Control Block (PCB); h) Soporte para servicios de ms alto nivel.
Componentes del ncleo. Administrador de procesos; Controlador de interrupciones; Manejador de la comunicacin entre procesos.
1.6.1 Administrador de Procesos (Dispatcher) Se encarga de asignar los procesadores a los diferentes procesos, por lo tanto debe actuar cuando se debe comprobar si es necesario cambiar el proceso que est activo, es decir en las siguientes situaciones:
Cuando el proceso. que esta activo se bloquea; Cuando un proceso se desbloquea pasando a estado listo y debido al algoritmo de planificacin este puede desplazar al que esta activo; Cuando un proceso debe pasar de activo a listo y por lo tanto otro pasara de listo a activo.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 1.6.2 Controlador de Interrupciones Tipos de interrupciones: Interrupciones internas: producidas por los propios procesos; Interrupciones externas: producidas por elementos ajenos a los procesos.
Objetivos del controlador de interrupciones: 1. Determinar el origen de la interrupcin.
Mtodos:
Ejecutando un trozo de cdigo formado por estructuras de decisin anidadas (cadena de saltos); Que el hardware sea capaz de distinguir las diferentes fuentes de interrupcin y transferir el control a su correspondiente rutina de tratamiento; Primero el hardware reconoce a que grupo pertenece la interrupcin y luego mediante una pequea cadena de salto asociada a ese grupo se identifica la interrupcin.
2. Dar servicio a la interrupcin. El controlador inicia el servicio de la interrupcin invocando a la rutina de tratamiento adecuada. Estas rutinas de tratamiento deben ser lo ms cortas posibles, por lo tanto, en general, llevan a cabo acciones mnimas. Es posible que una interrupcin vare el estado de un proceso, en cuyo caso ser la propia rutina de tratamiento la que cambie dicho estado accediendo al PCB del proceso.
Mientras que acta el controlador de interrupciones estas estn inhabilitadas. Sin embargo, esto no se puede realizar en sistemas donde determinadas interrupciones requieren una respuesta rpida. Por ello, surge la nocin de prioridad entre las interrupciones, de forma que una interrupcin puede ser interrumpida si llega otra con una prioridad ms alta. En definitiva, solo se inhabilitan las interrupciones de igual o menor prioridad.
1.6.3 Primitivas de Comunicacin
Esquemas de comunicacin: 1) Memoria compartida: - Los procesos se comunican a travs de variables compartidas. - El sistema operativo provee la memoria compartida. - El programador tiene la responsabilidad de proveer comunicacin.
2) Sistema de mensajes: - El sistema operativo tiene la responsabilidad de proveer comunicacin. - Operaciones: * SEND (enviar) * RECEIVE (recibir)
Los mensajes pueden ser de tamao fijo o variable INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Enlace de Comunicacin (Link) Debe existir entre dos procesos que deseen comunicarse.
Estos pueden ser:
A) Fsicos: - Memoria Compartida. - Bus de Hardware. - Red de Interconexin.
B) Lgico: Deben definirse e implementarse.
Tipos de Comunicacin. A- Directa: Proceso fuente y proceso destino.
Propiedades Del Link En La Comunicacin Directa Se establece automticamente entre cada par de procesos comunicantes. Entre cada par de procesos que se comunican existe slo un "LINK". Un Link est asociado exactamente con dos procesos. El link es bidireccional.
B. Indirecta: Los mensajes son enviados y recibidos a travs de buzones
- Cada buzn tiene su propia identificacin.
- Operaciones: SEND(A,mensaje) RECEIVE(A,mensaje) donde A es el buzn.
- Asimtrica: Es de uno a varios.
Propiedades del Link en la Comunicacin Indirecta. Se establece entre dos procesos si tiene un buzn compartido. Un Link puede estar asociado con ms de dos procesos. Entre cada par de procesos que se comunican puede existir ms de un Link. Puede ser unidireccional o bidireccional.
Propietarios de un Buzn (Mailbox).
- Un proceso P = Propietario -> P slo lee de A. Q = Usuario -> Q slo escribe en A INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin - El sistema Operativo ofrece mecanismos para: Crear un nuevo buzn. Enviar y recibir mensajes. Destruir un buzn.
Pipes: Generalmente se usa entre un proceso productor y un proceso consumidor. Los mensajes son de tamao fijo.
Buffering: Se refiere a la cantidad de mensajes que pueden residir temporalmente en un link. Esta propiedad puede verse como una "cola de mensajes que est relacionada (unida) al link.
Formas (Colas) Capacidad cero: - El link no puede tener ningn mensaje esperando en el. Capacidad Limitada: A lo sumo n mensajes pueden residir en la cola del link. Capacidad Ilimitada: La cola tiene potencialmente longitud infinita.
ENTREGA DE EVIDENCIAS UNIDAD I 1. INVESTIGACION DOCUMENTAL PARA ELABORACION DE ENSAYO 2. VISITA A EMPRESA PARA CONOCER SUS SISTEMAS OPERATIVOS 3. REPORTE DE VISITA A EMPRESA 4. PRESENTACION DEL ENSAYO Y VISITA INDUSTRIAL 5. PRACTICAS UNIDAD I
Buzn P Q A INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Unidad 2. Administracin de Procesos y del Procesador
2.1 Concepto de Proceso Un programa es una secuencia de instrucciones o acciones definidas a priori, que pueden ser ejecutadas por parte de un procesador.
Un proceso es una secuencia de acciones derivadas de la ejecucin de una serie de instrucciones. Esto implica que:
Un proceso puede requerir la ejecucin de uno o varios programas; y Que un programa puede formar parte de ms de un proceso.
Un proceso se lleva a cabo por la accin de un agente (procesador) que ejecuta el programa asociado. Es decir, un procesador ejecuta un proceso, o un proceso se ejecuta sobre un procesador.
El programa o programas asociados a un proceso no tienen porqu estar implementados en software.
En la literatura, sobre todo en el mbito de sistemas operativos, existen tambin los conceptos de hilos (threads'') y de tareas (tasks'' o jobs'') que son parecidos al concepto de proceso, an que se distinguen en varios aspectos (por ejemplo, en el acceso a los recursos, en la vista de memoria, en la priorizacin etc.). En nuestro contexto no vamos a diferenciar mucho ms. Solo destacamos el concepto de hilo que se usa casi siempre en la programacin moderna. Un programa multi-hilo intercala varias secuencias de instrucciones que usan los mismos recursos (sobre todo aprovechan de una memoria comn) bajo el techo de un slo proceso en el sentido de unidad de control del sistema operativo, (que no se debe confundir con nuestro concepto abstracto de proceso). El cambio de contexto de un hilo al siguiente dentro del procesador se realiza rpidamente.
Cmo se representan los Procesos? Se representan utilizando los conocidos como Bloques de control de proceso (PCB) (Bloque de contexto o descriptor de proceso), los cuales contienen la siguiente informacin sobre ese proceso: Estado actual; Identificacin; Punteros para localizar la memoria que usa; rea para preservar registros; Punteros para asignar recursos. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 2.2 Estados y Transiciones de los Procesos Durante su vida, un proceso puede pasar por una serie de estados discretos, algunos de ellos son:
En ejecucin: El proceso ocupa la CPU actualmente, es decir, se est ejecutando. Listo o preparado: El proceso dispone de todos los recursos para su ejecucin, slo le falta la CPU. Bloqueado: Al proceso le falta algn recurso para poder seguir ejecutndose, adems de la CPU. Por recurso se pueden entender un dispositivo, un dato, etc. El proceso necesita que ocurra algn evento que le permita poder proseguir su ejecucin.
Hay otros estados de los procesos, pero en el presente documento se tratarn estos tres. Por sencillez, se considera un sistema con una sola CPU, aunque no es difcil la extensin a mltiples procesadores. Solamente puede haber un proceso en ejecucin a la vez, pero pueden existir varios listos y varios pueden estar bloqueados. As pues, se forman una lista de procesos listos y otra de procesos bloqueados. La lista de procesos listos se ordena por prioridad, de manera que el siguiente proceso que reciba la CPU ser el primero de la lista. La lista de procesos bloqueados normalmente no est ordenada; los procesos no se desbloquean (es decir, no pasan a ser procesos listos) en orden de prioridad, sino que lo hacen en el orden de ocurrencia de los eventos que estn esperando. Como se ver ms adelante, hay situaciones en las cuales varios procesos pueden bloquearse esperando la ocurrencia del mismo evento; en tales casos es comn asignar prioridades a los procesos que esperan.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Operaciones Bsicas sobre Procesos 1. Crear un proceso: dar nombre al proceso, insertarlo en la lista de procesos en estado listo, determinar su prioridad inicial, crear el PCB del proceso, y asignarle los recursos iniciales del proceso. 2. Destruir un proceso: devolver al sistema los recursos que tiene asignado, eliminarlo de todas las listas del sistema y borrar su PCB. 3. Cambiar la prioridad de un proceso. 4. Bloquear un proceso. 5. Despertar un proceso. 6. Despachar un proceso.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 2.3 Procesos Ligeros (Hilos o Hebras) Uno de los problemas ms importantes en los ordenadores con un procesador es el de la ejecucin simultnea de varios programas (procesos). Este paralelismo no se puede realizar de forma completa dada la exclusividad del procesador y de las zonas de memoria que necesita cada programa. Un mtodo para lograr el paralelismo consiste en hacer que varios procesos cooperen y se sincronicen mediante memoria compartida. Otra alternativa es el empleo de mltiples hilos de ejecucin en un solo espacio de direcciones. Este es el objetivo principal de la utilizacin de los procesos ligeros.
Un proceso ligero (thread o hebra) es un programa en ejecucin que comparte la imagen de la memoria y otras informaciones con otros procesos ligeros. Es un flujo de control perteneciente a un proceso (a veces se habla de tareas con threads).
La sobrecarga debida a su creacin y comunicacin es menor que en los procesos pesados. Cada hilo pertenece a un proceso pesado.
Los procesos ligeros pueden, o no, compartir cierta informacin. Estas informaciones se enlistan a continuacin:
Informacin compartida Espacio de memoria Variables globales Archivos abiertos Procesos hijos Temporizadores Seales y semforos Contabilidad
Informacin No compartida Contador de programa Pila Registro Estado del proceso ligero
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Un proceso ligero puede estar ejecutando, listo o bloqueado.
La ventaja de usar un grupo de hilos en vez de usar un programa secuencial normal es que muchas de las operaciones pueden ser llevadas a cabo en paralelo, y as estos eventos pueden ser manejados inmediatamente cuando llegan.
La ventaja de usar un grupo de hilos en vez de usar un grupo de procesos es que el intercambio de contexto entre los hilos es mucho mas rpido que el intercambio de contexto entre procesos (el intercambio de contexto significa que el sistema intercambia de la ejecucin un hilo o proceso, a otro hilo o proceso). Tambin, la comunicacin entre dos hilos es a menudo ms rpida y ms fcil de implementar que la comunicacin entre dos procesos.
Por otra parte, debido a que los todos los hilos en un grupo usan el mismo espacio de memoria, si uno de ellos corrompe el contenido de la memoria, los otros hilos podra sufrir lo mismo. Con los procesos, el sistema operativo normalmente protege los procesos de otros, y as, si uno corrompe su propio espacio de memoria, el resto de procesos no se perjudicarn. Otra ventaja del uso de procesos es que ellos corren en diferentes maquinas, mientras que los hilos tienen que correr en la misma maquina.
Entre algunas de sus aplicaciones estn:
Utilizacin de los hilos en servidores. Los servidores pueden utilizar las ventajas del multihilo, creando un hilo gestor diferente para cada peticin entrante de un cliente. Utilizacin de los hilos en interfaces de usuario. Se pueden obtener aumentos de rendimiento empleando un hilo para interactuar con un usuario, mientras se pasan las peticiones a otros hilos para su ejecucin. Utilizacin de los hilos en el diseo de un kernel multihilo: para un sistema operativo distribuido, esto quiere decir que distribuya diferentes tareas entre los hilos.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 2.4 Concurrencia y Secuenciabilidad Puede verse la concurrencia de procesos como la ejecucin simultnea de varios procesos. Si tenemos un multiprocesador o un sistema distribuido la concurrencia parece clara, en un momento dado cada procesador ejecuta un proceso. Se puede ampliar el concepto de concurrencia si entendemos por procesado concurrente (o procesado paralelo) la circunstancia en la que de tomar una instantnea del sistema en conjunto, varios procesos se vean en un estado intermedio entre su estado inicial y final. Esta ltima definicin incluye los sistemas multiprogramados de un nico procesador.
Tipos de concurrencia:
Los distintos procesos dentro de un ordenador no actan de forma aislada. Por un lado, algunos procesos cooperan para lograr un objetivo comn. Por otro lado, los procesos compiten por el uso de unos recursos limitados, como el procesador, la memoria o los ficheros. Estas dos actividades de cooperacin y competicin llevan asociada la necesidad de algn tipo de comunicacin entre los procesos.
La velocidad de un proceso con respecto a otro es impredecible ya que depende de la frecuencia de la interrupcin asociada a cada uno de ellos y cun a menudo y de por cunto tiempo tiene asignado cada proceso un procesador. Diremos, pues, que un proceso se ejecuta asncronamente con respecto a otro, es decir, sus ejecuciones son independientes. Sin embargo, hay ciertos instantes en lo que los procesos deben sincronizar sus actividades. Son estos puntos a partir de los cuales un proceso no puede progresar hasta que otro haya completado algn tipo de actividad.
Competencia entre los procesos Los recursos de un sistema pueden clasificarse como compartibles, lo que significa que pueden ser utilizados por varios procesos de forma concurrente, o no compartibles, lo que equivale a que su uso se restrinja a un slo proceso a la vez. El hecho de que un recurso no sea compartible deriva de una de las dos razones siguientes:
La naturaleza fsica del recurso hace que sea imposible compartirlo. Un ejemplo lo constituye una impresora, si una impresora fuera utilizada por varios procesos simultneamente sus salidas se entremezclaran en el papel. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
El recurso es tal que si es usado por varios procesos de forma concurrente la accin de uno de ellos puede interferir con la de otro. Un ejemplo comn lo constituye un fichero que contiene unos datos accesibles desde ms de un proceso, y modificables al menos por uno de ellos.
Dentro de la categora de recursos no compartibles se incluirn la mayora de los perifricos (los discos no), los ficheros de escritura y las zonas de memoria sujetas a modificacin. Los recursos compartibles incluirn la CPU, los ficheros de lectura, y las zonas de memoria que contengan rutinas puras o bien datos que no estn sujetos a modificacin.
Los procesos concurrentes entran en conflicto cuando compiten por el uso del mismo recurso; dos o ms procesos necesitan acceder a un recurso durante su ejecucin. Cada proceso debe dejar tal y como est el estado del recurso que utilice.
La ejecucin de un proceso puede influir en el comportamiento de los procesos que compiten. Por Ej. Si dos procesos desean acceder a un recurso, el sistema operativo le asignar el recurso a uno y el otro tendr que esperar. Cuando hay procesos en competencia, se deben solucionar tres problemas de control, siendo el primero de ellos la necesidad de exclusin mutua. Suponiendo que dos procesos quieren acceder a un recurso no compartible. A estos recursos se les llama "recursos crticos" y la parte del programa que los utiliza es la "seccin crtica del programa. Es importante que slo un programa pueda acceder a su seccin crtica en un momento dado.
Hacer que se cumpla la exclusin mutua provoca un interbloqueo.
Otro problema es la inanicin si tres procesos necesitan acceder a un recurso, P1 posee al recurso, luego lo abandona y le concede el acceso al siguiente proceso P2, P1 solicita acceso de nuevo y el sistema operativo concede el acceso a P1 YP2 alternativamente, se puede negar indefinidamente a P3 el acceso al recurso.
El control de competencia involucra al sistema operativo, porque es el que asigna los recursos.
2.4.1 Exclusin Mutua de Secciones Crticas Exclusin Mutua es la comunicacin requerida entre dos o ms procesos que se estn ejecutando en paralelo y que necesitan a la vez el uso de un recurso no compartible. Consiste en asignar el recurso no compartible a slo uno de los procesos, mientras que los otros deben permanecer a la espera hasta que finalice la utilizacin de dicho recurso por el proceso al que se le asigno. Cuando este proceso termine, el recurso ser asignado a uno de los procesos en espera. Se asegura el correcto uso del recurso.
Seccin crtica o regin crtica es el trozo de cdigo donde un proceso hace uso de un recurso no compartible, por lo tanto debe ejecutarse en exclusin INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin mutua. Las secciones crticas deben ser ejecutadas lo ms rpido posible y adems deben ser cuidadosamente codificadas.
Idear soluciones que garanticen la exclusin mutua es uno de los problemas fundamentales de la programacin concurrente. Muchas son las alternativas y tipos de mecanismos que se pueden adoptar. La seleccin de las operaciones primitivas adecuadas para garantizar la exclusin mutua de las secciones crticas es una decisin primordial en el diseo de un sistema operativo. Al menos, una solucin apropiada debera cumplir las cuatro condiciones siguientes:
1. Que no haya en ningn momento dos procesos dentro de sus respectivas secciones crticas. 2. Que no hagan suposiciones a priori sobre las velocidades relativas de los procesos o el nmero de procesadores disponibles. 3. Que ningn proceso que est fuera de su seccin crtica pueda bloquear a otros. 4. Que ningn proceso tenga que esperar un intervalo de tiempo arbitrariamente grande para entrar en su seccin crtica.
2.4.2 Sincronizacin de Procesos en Secciones Crticas Sincronizacin es la comunicacin requerida entre dos o ms procesos con el fin de sincronizar sus actividades.
Grficamente:
Un proceso es cooperativo si puede afectar o ser afectado por los otros procesos que se estn ejecutando en el sistema.
La cooperacin entre procesos requiere: la ejecucin concurrente de los mismos, mecanismos de comunicacin y mecanismos de sincronizacin Al haber procesos concurrentes se deben emplear mecanismos para asegurar la consistencia de los datos.
Como ejemplo, supongamos que tenemos 3 procesos concurrentes que quieren modificar un mismo archivo. Si los 3 acceden a este al mismo tiempo el archivo quedar con valores incorrectos. Para resolver problemas como este se INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin ide la seccin crtica (descrita anteriormente). Slo puede haber una seccin crtica en ejecucin por vez, as nos aseguramos que los datos quedan consistentes.
El problema de la seccin crtica consiste en disear un protocolo que los procesos puedan usar para cooperar de esta forma. Cualquier solucin al problema de la seccin crtica deber satisfacer los tres requisitos siguiente:
Exclusin mutua.- Si el proceso Pi est ejecutndose en su seccin crtica, los dems procesos no pueden estar ejecutando sus secciones crticas.
Progreso.- Si ningn proceso est ejecutando su seccin crtica, y algunos procesos desean entrar en sus correspondientes secciones crticas, slo aquellos procesos que no estn ejecutando sus secciones restantes pueden participar en la decisin de cul ser el siguiente que entre en su seccin crtica, y esta seleccin no se puede posponer indefinidamente.
Espera limitada.- Existe un lmite en el nmero de veces que se permite que otros procesos entren en sus secciones crticas despus de que un proceso haya hecho una solicitud para entrar en su seccin crtica y antes de que la misma haya sido concedida.
Se usan dos mtodos generales para gestionar las secciones crticas en los sistemas operativos:
1. Kernels apropiativos.- Permite que un proceso sea desalojado mientras se est ejecutando en modo kernel.
2. Kernels no apropiativos.- No apropiativo no permite que un proceso que se est ejecutando en modo kernel sea desalojado.
Hardware de Sincronizacin En sistemas de un procesador, el problema de las secciones crticas podra ser resuelto simplemente si pudiramos deshabilitar las interrupciones mientras una variable compartida est siendo actualizada.
Esta solucin no es factible para un sistema con varios procesadores debido a la demora que implica el pasaje de mensajes.
En muchos sistemas existen instrucciones de hardware que pueden ser usadas para resolver el problema de las secciones crticas.
Estas instrucciones permiten ejecutar atmicamente las operaciones de:
chequear y modificar el contenido de una palabra, o intercambiar el contenido de dos palabras
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 2.4.2.1 Mecanismos de Semforos Las soluciones por hardware presentadas no son fciles de generalizar a problemas ms complejos.
Para solucionar problemas de procesos concurrentes, se diseo un S.O. como un conjunto de procesos secuenciales, eficientes y fiables para dar soporte a la cooperacin. Los procesos de usuario podran utilizar estos mecanismos si el procesador y el S.O. los hacan disponible. El principio fundamental es el siguiente, 20 procesos pueden cooperar por medio de simples seales, de manera que se pueda obligar a un proceso a detener en una posicin determinada hasta que reciba una seal especfica. Para la sealizacin se usan variables especiales llamadas semforos "S", los procesos ejecutan las primitivas wait(s) si la seal aun no se transmiti, el proceso se suspende hasta que tiene lugar la transmisin.
A los semforos se los contemplan como variables que tienen un N entero sobre el que se definen las siguientes operaciones: un semforo puede iniciarse con un valor negativo la operacin wait disminuye el valor del semforo. Si el valor no es positivo el proceso que ejecuta wait se bloquea. Las operaciones signal incrementan el N del semforo. Si el valor es positivo se desbloquea el proceso bloqueado por una operacin wait.
No hay forma de examinar o manipular los semforos aparte de estas tres operaciones.
Las primitivas wait y signal se suponen atmicas, es decir no pueden ser interrumpidas y cada rutina puede considerarse como un peso indivisible.
Un semforo solo puede tomar los valores 0 y 1. Son ms sencillos de implantar y pueden demostrarse que tienen la misma potencia de expresin que los semforos generales.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin En ambos semforos se emplean una cola para mantener los procesos en espera, la cuestin reside en el orden en que se retiran los procesos de la cola. La poltica utilizada el la de FIFO; el proceso que estuvo bloqueado durante mas tiempo se libera de la cola, se denomina semforo robusto (incluye esta estrategia). Un semforo dbil no especifica el orden en que se retiran los procesos de la cola.
Los semforos robustos garantizan la inexistencia de inanicin en el algoritmo de exclusin mutua, pero no as en los semforos dbiles, se supone que los semforos son siempre robustos ya que son los ms adecuados y porque son los tipos de semforos que ms incluyen los S.O. Implementacin de los semforos. Como se menciono anteriormente es impredecible que las operaciones wait y signal sean implementadas como primitivas atmicas.
La esencia del problema del productor/consumidor, es la exclusin mutua: solo 1 proceso puede manipular un semforo a la vez, en una operacin wait o signal. Se pueden utilizar cualquier esquema de software con los algoritmos de Dekker o Peterson los que suponen una sobrecarga de procesos sustancial. Otra alternativa es usar uno de los esquemas de soporte del hardware p/la exclusin mutua.
2.4.2.2 Mecanismos de Monitoreo Son mecanismos de sincronizacin de nivel ms alto que semforos. La construccin se realiza a nivel de lenguaje de programacin que controla el acceso a datos compartidos. Un tipo monitor tiene un conjunto de operaciones definidas por el programador que gozan de la caracterstica de exclusin mutua dentro del monitor.
Los monitores son estructuras de un lenguaje de programacin que ofrecen una funcionalidad equivalente a las de los semforos pero son ms fciles de controlar. La estructura de monitor se ha implementado en varios lenguajes de programacin como: Pascal concurrente, Modulo-2, Java, etc. En concreto, para una lista enlazada se puede necesitar un cierre que bloquee todas las listas enlazadas o bien un cierre por cada elemento de una lista.
Monitores con Seales: (definicin de Hoare) Un monitor es un modulo de software que consta de uno o ms procedimientos, una secuencia de inicio y uno datos locales. Sus caractersticas son las siguientes:
Solo los procedimientos del monitor acceden a variables de datos locales. Un proceso entra en el monitor invocando a uno de sus procedimientos. En el monitor solo un proceso puede ser ejecutado en un momento dado; cualquier otro proceso quedara suspendido esperando la disponibilidad del monitor.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Al ser un proceso por vez, el monitor puede ofrecer un servicio de exclusin mutua fcilmente. As una estructura de datos puede protegerse situndola dentro de un monitor.
Los monitores deben ofrecer herramientas de sincronizacin. Por ejemplo: si un proceso llama a un monitor y una vez dentro de l el proceso queda suspendido esperando alguna condicin, har falta un servicio que libere al monitor y lo deje disponible para el siguiente proceso. Mas tarde cuando la condicin se cumpla el proceso suspendido podr regresar al monitor y ejecutarse desde el momento de la suspensin.
El monitor proporciona variables de condicin que son accesibles solo desde dentro del monitor.
Hay dos funciones para operar variables de condicin: cwait (c): suspende la ejecucin del proceso que llama bajo la condicin "c". El monitor est ahora disponible para otro proceso. csignal (c): retorna la ejecucin de un proceso suspendido despus de un cwait, bajo la misma condicin. Si hay varios procesos elige uno de ellos. Si un proceso de monitor ejecuta un csignal y no hay tareas esperando entonces el csignal de pierde.
Aunque un proceso puede entrar al monitor llamando a cualquiera de sus procedimientos, se puede decir que el monitor tiene un solo punto de acceso, custodiado para que solo un proceso este en el monitor en un instante dado. Si existen otros procesos tratando de entrar al monitor, estos se colocan en una cola de procesos suspendidos esperando la disponibilidad del monitor.
Un proceso dentro de un monitor puede suspenderse a s mismo, temporalmente, bajo la condicin X ejecutando cwait(x), entonces se coloca en una cola de procesos que esperan que cambie la condicin X entonces ejecuta un csignal(x) que avisa a la cola de condicin correspondiente de que la condicin a cambiado.
En el cdigo se puede apreciar la solucin al problema de productor / consumidor usando monitores:
El modulo monitor, buffers_acotado, controla el buffer para almacenar y retirar caracteres. El monitor incluye dos variables de condicin:
No-lleno es verdadero su hay lugar para agregar al menos un carcter.
No-vaci es verdadero si hay al menos un carcter en el buffer.
Un productor solo puede agregar caracteres al buffer mediante el procedimiento aadir del monitor; el productor no tiene acceso directo al buffer.
El procedimiento comprueba si hay espacio en el buffer, mediante la condicin no-lleno, si no lo hay el proceso queda suspendido y cualquier otro proceso INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin (consumidor o productor) puede entrar al monitor. Luego, cuando el buffer ya no esta lleno, el proceso se retira de la cola y es reactivado. Luego de aadir un carcter el proceso activa la condicin no-vaci.
La estructura misma del monitor garantiza la exclusin mutua (solo un proceso por vez puede acceder al buffer). Sin embargo, el programador debe situar correctamente las primitivas cwait( ) y csignal( ) en el monitor para evitar que los procesos depositen elementos en un buffer lleno o los extraigan de uno vaci.
Un proceso sale del monitor inmediatamente despus de ejecutar csignal( ).
Si csignal( ) se ejecuta antes del final entonces ese proceso libera el monitor y esta colocado en una lista de procesos suspendidos. Un nuevo proceso puede entrar el monitor.
Si no hay procesos esperando en la condicin X, la ejecucin de csignal (x) no tiene efecto.
Es posible cometer errores en la sincronizacin de los monitores, por ejemplo, si se omite cualquiera de las funciones csignal() en el monitor buffer _ acotado los procesos que entran en la cola de condicin permanecen colgados permanentemente. Sin embargo la ventaja de los monitores es que todas las funciones de sincronizacin estn incluidas dentro del monitor, lo que permite una fcil deteccin y correccin de fallas de sincronizacin.
Monitores con Notificacin y Difusin (definicin de Lampson y Redell) Son varios los inconvenientes que presenta la solucin de Hoare:
-Si el proceso que ejecuta el csignal( ) no ha terminado en el monitor, se necesitaran dos cambios de procesos adicionales: uno para suspender el proceso y otro para reanudarlo. -La planificacin de procesos asociados con las seales debe ser muy fiable. Si un proceso ejecuta un csignal ( ), el proceso de la cola de condicin correspondiente debe activarse de inmediato, antes de que ingrese otro proceso del exterior o cambie la condicin bajo la que se activ el proceso. Otro caso seria que un proceso productor escribe un carcter en el buffer y falla antes de dar la seal, entonces la cola de condicin no-vaca se colgara para siempre.
Lampson y Redell desarrollaron una definicin de monitores para el lenguaje MESA. La estructura de mesa reemplaza la primitiva csignal( ) por cnotify( ). Cuando un proceso ejecuta cnotify(x) enva una notificacin a la cola de condicin X, lo cual no significa que el proceso que esta ocupando el monitor vaya a detenerse, simplemente el cnotify(x) avisa al proceso de la cola de condicin correspondiente de que ser reanudado en un futuro cercano.
Puesto que esta no garantiza que un proceso exterior entre al monitor, el proceso debe comprobar la condicin nuevamente.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin En el cdigo, la sentencia IF se reemplaza por un bucle While, lo cual genera una evaluacin extra de la variable, pero sin embargo no hay cambios de procesos extra.
Una modificacin til seria asociar un temporizador de guardia a cnotify( ) que permitira que un proceso que ha esperado durante el intervalo mximo sea situado en estado de listo, independientemente de s se ha notificado la condicin.
Con la norma de notificar a los procesos en lugar de reactivarlos, es posible aadir una primitiva de difusin cbroadcast. La difusin provoca que todos los procesos que estn esperando por una condicin se coloquen en el estado de listo. Esto es til cuando un proceso no sabe cuantos procesos deben reactivarse.
El mtodo Lampson/Redell es menos propenso a errores debido a que cada procedimiento comprueba la condicin luego de ser despertado, por medio de la instruccin while, un proceso puede realizar una seal o una difusin incorrectamente sin provocar un error en el programa que la recibe.
Adems este modelo presta un mtodo mas modular de construccin de programas. Hay dos niveles de condicin que deben satisfacerse para los procesos secuenciales cooperantes.
1. Estructura de datos consistentes: significa que el monitor hace cumplir la exclusin mutua y concluye la operacin de entrada o salida antes de permitir cualquier otra operacin sobre el buffer. 2. La misma condicin del nivel 1 y, adems disponer de suficiente memoria para que este proceso pueda completar su solicitud de asignacin.
2.4.3 Interbloqueo (Deadlock) Un proceso esta interbloqueado si est esperando por un evento determinado que nunca va a ocurrir.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Postergacin indefinida (inanicin o Lockout): cuando un proceso espera por un evento que puede ocurrir pero no se sabe cuando.
Condiciones necesarias para que se produzca interbloqueo Coffman, Elphick y Shoshani establecieron las cuatro condiciones necesarias para que se produzca interbloqueo:
1. Condicin de exclusin mutua: los procesos reclaman control exclusivo de los recursos que piden. 2. Condicin de esperar por: los procesos mantienen los recursos que ya les han sido asignados mientras esperan por recursos adicionales. 3. Condicin de no apropiatividad: los recursos no pueden ser extrados de los procesos que los tienen hasta su completa utilizacin. 4. Condicin de espera circular: existe una cadena circular de procesos en la cual cada uno de ellos mantiene a uno o ms recursos que son requeridos por el siguiente proceso de la cadena.
Puntos de estudio del interbloqueo A. Prevencin del interbloqueo: condiciona al sistema para que elimine toda posibilidad de que se produzca interbloqueo. Estrategias:
Negar la condicin de esperar por: cada proceso debe pedir todos los recursos que va a necesitar de golpe. Si el conjunto de todos ellos est disponible, se le asigna todos. Si no esta disponible todo el conjunto completo, no se le asigna ninguno al proceso y tendr que esperar hasta que estn todos disponibles. Negar la condicin de no apropiatividad: cuando un proceso que tiene recursos le es negada una peticin de recursos adicionales, deber liberar sus recursos y, si es necesario, pedirlos de nuevo junto con los recursos adicionales. Negar la condicin de espera circular: cuando se instala un recurso se le asigna un nmero exclusivo, de forma que los procesos deben de INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin solicitar los recursos en orden ascendente de acuerdo a los nmeros asignados a dichos recursos.
B. Evitacin del interbloqueo: condiciona al sistema para que esquive determinadas situaciones con posibilidad de interbloqueo.
C. Deteccin del interbloqueo: determinan si existe o no un interbloqueo, e identifica cules son los procesos y recursos implicados en l.
D. Recuperacin del interbloqueo: pretenden romper el interbloqueo retirando una o ms de las condiciones necesarias.
Estrategias para Resolver Interbloqueos Los resultados de la investigacin sobre el bloqueo mutuo han sido satisfactorios en cuanto a que se han encontrado mtodos limpios y rpidos para manejar la mayora de los problemas ms comunes. Existen cuatro reas de inters relacionadas con los interbloqueos que pueden resumirse como prevencin, tcnicas para evitarlos, deteccin y recuperacin de los mismos.
En la prevencin del interbloqueo interesa ajustar el sistema para eliminar toda posibilidad de que ocurra un bloqueo mutuo. La prevencin suele funcionar pero sus mtodos ocasionan, en general, un aprovechamiento pobre de los recursos. No obstante, estos mtodos se utilizan con frecuencia.
Las tcnicas que tienen como objetivo evitar el interbloqueo imponen condiciones menos atractivas que en la prevencin, para tratar de obtener un aprovechamiento de los recursos. No elimina como las tcnicas de prevencin todas las posibilidades de que se produzca un bloqueo mutuo, pero se esquiva cuanto est a punto de suceder (algoritmo del banquero de Dijkstra).
Los mtodos de deteccin del interbloqueo es utilizan en sistemas que permiten la ocurrencia de los mismos, ya sea de manera voluntaria o involuntaria. Su objetivo es determinar si ha ocurrido un bloqueo mutuo y saber exactamente cules son los procesos y recursos implicados en l.
Los mtodos de recuperacin estn ntimamente ligados a los de deteccin. Sirven para eliminar los interbloqueos detectados en un sistema para poder seguir trabajando y para que los procesos implicados puedan terminar su ejecucin y liberen sus recursos. La recuperacin es un problema complejo, en el mejor de los casos, los sistemas se recuperan de un bloqueo mutuo eliminando completamente uno o varios de los procesos implicados. Despus, se inician de nuevo los procesos eliminados, perdindose la mayor parte o todo el trabajo previo realizado por el proceso.
1.- Desentenderse. El Algoritmo de la Avestruz La estrategia ms sencilla es el algoritmo del avestruz: esconder la cabeza bajo tierra y pretender que el problema no existe. La gente reacciona a esta estrategia de distintos modos segn su formacin. Los matemticos consideran que es inaceptable y argumentan que los interbloqueos se deben evitar a toda costa. Los ingenieros se interrogan sobre la frecuencia del problema, la INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin frecuencia con el que el sistema se para por otras causas y la importancia de los interbloqueos. Si stos se presentan de una vez cada cinco aos, y los sistemas se paran una vez al mes por errores en el hardware, en el compilador o en el sistema operativo, a casi ningn ingeniero le gustara tener que sufrir una degradacin seria de las prestaciones del sistema para garantizar la eliminacin de los interbloqueos.
Por ejemplo, Unix pude sufrir interbloqueos que ni siquiera se detectan, y que, por supuesto, no se eliminan automticamente. El nmero total de procesos en el sistema viene determinado por el nmero de posiciones de la tabla de procesos, que, en definitiva, constituye un recurso limitado. Supongamos ahora que un sistema Unix con 100 posiciones en la tabla de procesos tiene ejecutndose diez programas, cada uno de los cuales ha de crear 12 subprocesos. Despus de que cada proceso haya creado otros 9, los 10 procesos originales y los 90 nuevos llenarn por completo la tabla. Los 10 procesos originales se encontrarn ahora en un bucle infinito intentando crear un nuevo proceso sin poder: se ha producido un interbloqueo. Otros ejemplos de recursos que suelen ser limitados son: el nmero mximo de ficheros que pueden estar abiertos est limitado, el rea en el disco para intercambio con memoria principal. En realidad, casi todas las tablas del sistema operativo representan recursos limitados, deberamos, por tanto, limitar estos recursos para no producir un interbloqueo?
La estrategia UNIX es simplemente desentenderse del problema, suponiendo que la mayora de los usuarios preferirn un interbloqueo ocasional antes que la imposicin de que cada usuario pueda crear un solo proceso, abrir un solo fichero y usar slo una unidad de lo que sea. Veremos a continuacin que se puede adoptar alguna estrategia adecuada que nos permitir prevenir, evitar o detectar y recuperar situaciones de interbloqueo.
2.- Prevencin de Interbloqueos La estrategia empleada con ms frecuencia por los diseadores para tratar el bloqueo mutuo es la prevencin. En esta seccin se examinan los mtodos de prevencin, junto con los efectos que tienen sobre los usuarios y los sistemas, sobre todo desde la perspectiva del rendimiento.
Havender (68) lleg a la conclusin de que si falta alguna de las cuatro condiciones necesarias no puede haber un interbloqueo. Este autor sugiere las siguientes estrategias para negar varias de esas condiciones:
Cada proceso deber pedir todos sus recursos al mismo tiempo y no podr seguir la ejecucin hasta haberlos recibido todos. Si a un proceso que tiene recursos se le niegan los dems, ese proceso deber liberar sus recursos y, en caso necesario, pedirlos de nuevo junto con los recursos adicionales. Se impondr un ordenamiento lineal de los tipos de recursos en todos los procesos; es decir, si a un proceso le han sido asignados recursos de un tipo especfico, en lo sucesivo slo podr pedir aquellos recursos que siguen en el ordenamiento.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Como vemos Havender presenta tres estrategias y no cuatro. Cada una de ellas, est diseada para negar una de las condiciones necesarias. La primera de estas condiciones, esto es, que los procesos exijan el uso exclusivo de los recursos que requieren, es una condicin que no es deseable impedir, porque especficamente queremos permitir la existencia de recursos no compartibles o dedicados.
Negacin de la condicin de espera La primera de las estrategias requiere que los recursos que necesita un proceso sean pedidos de una sola vez. El sistema debe proporcionarlos segn el principio de todo o nada. Si est disponible el conjunto de los recursos que necesita un proceso, entonces el sistema puede asignarle todos los recursos y ste seguir su ejecucin. Si no est disponible alguno de ellos, el proceso debe esperar. Mientras espera no puede tener ningn recurso. Con esto se elimina la condicin de espera y no puede ocurrir un interbloqueo.
Todo esto suena bien, pero puede llevar a un grave desperdicio de recursos. Supongamos que un proceso necesita diez unidades de un determinado recurso para su ejecucin. Como debe solicitarlas todas antes de comenzar, los mantendr en su poder durante toda su ejecucin. Pudiera suceder, que el programa nicamente utilice estos recursos al principio de su ejecucin, por tanto, los recursos estn ociosos el resto del tiempo.
Dividir el programa en varios pasos que se ejecuten de manera relativamente independiente es una tcnica empleada con frecuencia para conseguir una mejor utilizacin de los recursos en estas circunstancias. La asignacin de recursos se controla por etapas. Esta solucin reduce el desperdicio pero implica mucho trabajo extra tanto en el diseo de las aplicaciones como en al ejecucin.
Por otro lado, esta estrategia puede provocar un aplazamiento indefinido, pues los recursos requeridos pueden no estar disponibles todos al tiempo. El sistema podra, entonces, permitir que se fueran acumulando recursos hasta conseguir todos los que necesita un proceso. Pero mientras se acumulan no se pueden asignar a otros procesos y volvemos a infrautilizarlos.
Negacin de la condicin de no apropiacin La segunda estrategia de Havender consiste en liberar los recursos que un proceso tiene asignados cuando se le niegan peticiones de recursos adicionales. De esta forma, se anula la condicin de no apropiacin. Los recursos se pueden quitar al proceso que los tiene antes de que termine su ejecucin.
En este caso tambin existe un costo excesivo. Cuando un proceso libera recursos puede perder todo el trabajo realizado hasta ese momento. El costo puede parecer muy alto, pero la pregunta es: con qu frecuencia ha de pagarse ese precio? Si ocurre de tarde en tarde, entonces ste parece ser un buen mtodo para prevenir el interbloqueo. Si, por el contrario, es muy frecuente, entonces el costo es sustancial y sus efectos demasiado perjudiciales (por ejemplo, para procesos de alta prioridad o plazo fijo). INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Esta estrategia tambin adolece de aplazamiento indefinido. Un proceso puede aplazarse continuamente mientras pide y libera muchas veces los mismos recursos. Si esto ocurre, el sistema puede verse obligado a eliminar el proceso para que otros puedan ejecutarse.
Negacin de la condicin de espera circular La tercera estrategia de Havender anula la posibilidad de un espera circular. Como todos los recursos tienen una numeracin nica y como los procesos deben pedir los recursos en un orden lineal ascendente, es imposible que se presente una espera circular (la figura a continuacin). Esta estrategia presenta las siguientes dificultades:
Los recursos deben pedirse en un orden ascendente por nmero de recursos. El nmero de recurso es asignado por la instalacin y debe tener un tiempo de vida largo (meses o aos). Si se agregan nuevos tipos de recursos, puede ser necesario reescribir los programas y los sistemas. Lgicamente, cuando se asignan los nmeros de recursos, stos deben reflejar el orden normal en que los usan la mayora de las tareas. Pero los procesos que necesiten los recursos en un orden diferente que el previsto por el sistema, los debern adquirir y conservar, quiz durante tiempo antes de utilizarlos realmente, lo que significa un desperdicio considerable. Una de las metas ms importantes de los sistemas operativos actuales es crear ambientes amables con el usuario. Los usuarios deben ser capaces de desarrollar sus aplicaciones sin tener en cuenta molestas restricciones de hardware y software. El ordenamiento lineal impide al usuario escribir sus cdigos libremente.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 2.5 Niveles, Objetivos y criterios de Planificacin. Definicin: La planificacin consiste en un conjunto de polticas y mecanismos incorporados al S. O. y por los que se rige el orden en que se completa el trabajo que hay que realizar. Su objetivo primordial es optimizar el rendimiento del sistema.
Definicin: La planificacin del procesador es la asignacin de los procesadores fsicos a los procesos. La parte del S. O. encargada de tomar esta decisin se denomina planificador y el algoritmo que utiliza se llama algoritmo de planificacin o disciplina.
La planificacin de la CPU, en el sentido de conmutarla entre los distintos procesos, es una de las funciones del sistema operativo. Este despacho es llevado a cabo por un pequeo programa llamado planificador a corto plazo o dispatcher (despachador). La misin del dispatcher consiste en asignar la CPU a uno de los procesos ejecutables del sistema, para ello sigue un determinado algoritmo. En secciones posteriores estudiaremos algunos algoritmos posibles. Para que el dispatcher conmute el procesador entre dos procesos es necesario realizar un cambio de proceso.
Los acontecimientos que pueden provocar la llamada al dispatcher dependen del sistema (son un subconjunto de las interrupciones), pero son alguno de estos:
El proceso en ejecucin acaba su ejecucin o no puede seguir ejecutndose (por una E/S, operacin WAIT, etc.). Un elemento del sistema operativo ordena el bloqueo del proceso en ejecucin (ver estados de un proceso). El proceso en ejecucin agota su quantum o cuanto de estancia en la CPU. Un proceso pasa a estado listo.
Se puede definir el scheduling -algunas veces traducido como -planificacin- como el conjunto de polticas y mecanismos construidos dentro del sistema operativo que gobiernan la forma de conseguir que los procesos a ejecutar lleguen a ejecutarse.
El scheduling est asociado a las cuestiones de:
Cundo introducir un nuevo proceso en el Sistema. Determinar el orden de ejecucin de los procesos del sistema.
El scheduling est muy relacionado con la gestin de los recursos. Existen tres niveles de scheduling, como se ilustra en la figura siguiente, estos niveles son:
Planificador de la CPU o a corto plazo. Planificador a medio plazo. Planificador a largo plazo.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Objetivos de la Planificacin a. Ser justo; b. Maximizar la capacidad de ejecucin; c. Maximizar el nmero de usuarios interactivos recibiendo unos tiempos de respuesta aceptables; d. Equilibrar el uso de recursos; e. Lograr un equilibrio entre respuesta y utilizacin; f. Evitar la postergacin indefinida; g. Asegurar las prioridades; h. Dar preferencia a los procesos que mantienen recursos no compartidos.
Criterios para la Planificacin El principal objetivo de la planificacin a corto plazo es repartir el tiempo del procesador de forma que se optimicen algunos puntos del comportamiento del sistema. Generalmente se fija un conjunto de criterios con los que evaluar las diversas estrategias de planificacin. El criterio ms empleado establece dos clasificaciones. En primer lugar, se puede hacer una distincin entre los criterios orientados a los usuarios y los orientados al sistema. Los criterios orientados al usuario se refieren al comportamiento del sistema tal y como lo perciben los usuarios o los procesos. Uno de los parmetros es el tiempo de respuesta. El tiempo de respuesta es el periodo de tiempo transcurrido desde que se emite una solicitud hasta que la respuesta aparece en la salida. Sera conveniente disponer de una poltica de planificacin que ofrezca un buen servicio a diversos usuarios. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Otros criterios estn orientados al sistema, esto es, se centran en el uso efectivo y eficiente del procesador. Un ejemplo puede ser la productividad, es decir, el ritmo con el que los procesos terminan. La productividad es una medida muy vlida del rendimiento de un sistema y que sera deseable maximizar.
Otra forma de clasificacin es considerar los criterios relativos al rendimiento del sistema y los que no lo son. Los criterios relativos al rendimiento son cuantitativos y, en general, pueden evaluarse o ser analizados fcilmente. Algunos ejemplos son el tiempo de respuesta y la productividad. Los criterios no relativos al rendimiento son, en cambio cualitativos y no pueden ser evaluados fcilmente. Un ejemplo de estos criterios es la previsibilidad. Sera conveniente que el servicio ofrecido a los usuarios tenga las mismas caractersticas en todo momento, independientemente de la existencia de otros trabajos ejecutados por el sistema.
En particular, una disciplina de planificacin debe:
Ser equitativa: debe intentar hacer una planificacin justa, esto es, se debe tratar a todos los procesos de la misma forma y no aplazar indefinidamente ningn proceso. La mejor forma de evitarlo es emplear alguna tcnica de envejecimiento; es decir, mientras un proceso espera un recurso, su prioridad debe crecer.
Ser eficiente: debe maximizar el uso de los recursos tales como intentar que la ocupacin de la CPU sea mxima. Al mismo tiempo se debe intentar reducir el gasto extra por considerar que es trabajo no productivo. Normalmente el idear algoritmos eficientes supone invertir recursos en gestin del propio sistema.
Lograr un tiempo bueno de respuesta, es decir, que los usuarios interactivos reciban respuesta en tiempos aceptables.
Lograr un tiempo de proceso global predecible. Esto quiere decir que un proceso debe ejecutarse aproximadamente en el mismo tiempo y casi al mismo costo con independencia de la carga del sistema.
Elevar al mximo la productividad o el rendimiento, esto es, maximizar el nmero de trabajos procesados por unidad de tiempo. Eso supone, por un lado, dar preferencia a los procesos que ocupan recursos decisivos y, por otro, favorecer a los procesos que muestran un comportamiento deseable. En el primer caso conseguimos liberar el recurso cuanto antes para que est disponible para un proceso de mayor prioridad. Con el segundo criterio escogemos a los procesos que no consumen muchos recursos dejndole al sistema mayor capacidad de actuacin.
Estos criterios son dependientes entre s y es imposible optimizar todos de forma simultnea. Por ejemplo, obtener un buen tiempo de respuesta puede exigir un algoritmo de planificacin que alterne entre los procesos con INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin frecuencia, lo que incrementa la sobrecarga del sistema y reduce la productividad. Por tanto, en el diseo de una poltica de planificacin entran en juego compromisos entre requisitos opuestos; el peso relativo que reciben los distintos requisitos depender de la naturaleza y empleo del sistema.
Planificacin apropiativa frente a no apropiativa. Planificacin no apropiativa: si una vez que se le ha asignado la CPU a un proceso, ya no se le puede retirar.
Ventajas: Es ms fcil predecir los tiempos de respuesta.
Inconvenientes: Los trabajos largos hacen esperar a los cortos.
Planificacin apropiativa: si se le puede retirar la CPU a un proceso mientras est en ejecucin.
Ventajas: tiles en sistemas cuyos procesos de alta prioridad requieren atencin rpida; Permiten obtener tiempos de respuesta aceptable.
Inconvenientes: Conllevan un coste debido al intercambio de contexto; Requieren sobrecarga debido a la necesidad de mantener en memoria principal programas que no se estn ejecutando.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 2.6 Tcnicas de Administracin de Planificacin Algoritmos de planificacin
Mecanismos: A. Utilizacin de prioridades. Prioridad: calificador asignado a un proceso que determina la atencin que va a recibir del sistema.
Segn el agente que asigna la prioridad: Prioridades internas: asignadas automticamente por el S. O.; Prioridades externas: asignadas desde el exterior.
Segn los cambios que sufre la prioridad: Prioridades estticas: no cambian durante la ejecucin del proceso; Prioridades dinmicas: varan durante la ejecucin del proceso.
B. Utilizacin de un quantum de tiempo. Quantum: tiempo mximo que un proceso puede hacer uso del procesador. Puede ser fijo o variable y puede tener el mismo valor para todos los procesos o distinto.
A. Que no usan quantum: 1. Planificacin por orden de llegada (FIFO, primero en entrar-primero en salir). La lista de procesos en estado listo esta ordenada segn el orden de llegada al sistema (creacin del proceso), siendo el ms antiguo el que esta en la cabecera de dicha lista. Es una disciplina no apropiativa, por lo tanto al proceso que esta activo no se le puede retirar la CPU hasta que l la abandone voluntariamente.
Inconvenientes: Bajos rendimientos, procesos largos hacen esperar a procesos cortos; No es til en sistemas interactivos puesto que no garantiza buenos tiempos de respuesta.
Ventajas: Permite predecir el orden de ejecucin de los procesos; Es fcil de implementar.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 2. Planificacin del trabajo ms corto primero (SJF). Es una disciplina no apropiativa. La lista de procesos en estado listo esta ordenada por la cantidad de tiempo de ejecucin estimada, de forma que el proceso ms corto es el primero en la cola. Para establecer este orden se necesita saber el periodo de tiempo de ejecucin de un proceso, y como esto raramente esta disponible, se confa en las estimaciones de los usuarios.
Inconvenientes: Con respecto al algoritmo FIFO, es menos predecible los tiempos de respuesta, sobre todo de los procesos largos; Es poco til en sistemas interactivos puesto que no garantiza tiempos de respuesta razonables.
Ventajas: Con respecto al algoritmo FIFO, reduce al mnimo el tiempo promedio de espera de los trabajos, ya que al favorecer los trabajos cortos sobre los largos reduce el nmero de trabajos en espera.
3. Planificacin del tiempo restante ms corto (SRT). Esta disciplina elige siempre al proceso que le queda menos tiempo de ejecucin estimado para completar su ejecucin; de esta forma aunque un proceso requiera mucho tiempo de ejecucin, a medida que se va ejecutando ira avanzando en la lista de procesos en estado listo hasta llegar a ser el primero. Para realizar esta eleccin, es necesario actualizar el PCB de los procesos a medida que se le asigna tiempo de servicio, lo que supone una mayor sobrecarga adicional. Es una disciplina apropiativa ya que a un proceso activo se le puede retirar la CPU si llega a la lista de procesos en estado listo otro con un tiempo restante de ejecucin estimado menor.
B. Que usan quantum: 1. Planificacin de asignacin en rueda, por turnos (Round Robin (RR) Scheduling). La lista de procesos en estado listo es una cola circular, de forma que el proceso al que se le asigna la CPU pasar posteriormente a ser el ltimo de dicha cola circular.
Si un proceso no agota su quantum debido a que pasa a estado bloqueado, entonces el siguiente proceso de la cola circular pasa a activo sin esperar que se termine el quantum del anterior.
Esta disciplina apropiativa es efectiva en sistemas de tiempo compartido, puesto que garantiza tiempos de respuesta razonables.
2. Planificacin con colas de niveles mltiples. A cada proceso se le asigna una prioridad. La lista de procesos en estado listo esta formada por una serie de colas circulares, donde cada una de ellas contiene a todos aquellos procesos que INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin tienen una misma prioridad. La CPU se asigna siempre al proceso de la cola de mayor prioridad que no este vaca.
Problema: procesos de baja prioridad quedan postergados indefinidamente.
Solucin: prioridad por envejecimiento. La prioridad aumenta gradualmente a medida que el proceso pasa cierto tiempo en el sistema, garantizando su terminacin en un tiempo finito.
3. Planificacin con colas de retroalimentacin de niveles mltiples. Su objetivo es tratar a los procesos de acuerdo a su comportamiento:
Si el proceso se suspende frecuentemente se le debe asignar bastantes veces el procesador con un quantum pequeo; Si el proceso se suspende poco se le debe asignar el procesador menos veces pero con un quantum grande.
La lista de procesos en estado listo esta formada por varios niveles y cada uno de ellos con una cola circular.
Cuando se inserta un nuevo proceso este se aade al final de la cola de mayor nivel gestionada de forma FIFO.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin La CPU se asigna al proceso que se encuentra en la cabecera de la cola de mayor nivel que no este vaca.
Cuando un proceso recibe la CPU puede ocurrir: Que agote su quantum: entonces al pasar a estado listo se coloca al final de la cola del siguiente nivel inferior al que perteneca. Mientras que el proceso consuma totalmente su quantum en cada nivel, ir movindose haca el final de las colas de los niveles inferiores. La cola del nivel ms profundo se gestiona mediante asignacin de rueda.
Que no agote su quantum: entonces cuando pase de estado bloqueado a listo volver al final de la cola del nivel al que perteneca. Se supone que el comportamiento inmediato anterior de un proceso puede ser un buen indicador del comportamiento futuro cercano.
Normalmente, el quantum otorgado al proceso aumenta a medida que el proceso se mueve haca las colas de los niveles inferiores.
En definitiva, este algoritmo trata a los procesos segn su comportamiento, y los separa por categoras segn sus necesidades de CPU.
Variantes: Permitir al proceso moverse haca un nivel superior al anterior cada vez que abandona voluntariamente la CPU antes de agotar su quantum. De esta forma, se responde a los cambios en el comportamiento de un proceso.
Mantener al proceso circulando en asignacin de rueda varias veces a travs de cada cola antes de pasarlo a la siguiente inferior. El nmero de ciclos en cada uno de los niveles se incrementa a medida que el proceso pasa a la cola del nivel siguiente inferior.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Unidad 3. Administracin de Memoria
3.1 Poltica y Filosofa Una de las principales caractersticas de una computadora es la capacidad que tienen para almacenar datos e informacin.
El primero en tener la idea de almacenar un programa en una computadora fue Jonh Von Neumman (participante en la ENIAC). El utiliz la memoria para almacenar datos y programas.
La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento de un byte de tamao. Cada localidad de almacenamiento tiene asignada una direccin que la identifica.
La memoria principal es el lugar donde el CPU lee las instrucciones a ejecutar, as como algunos datos a emplear.
Por qu es importante la memoria? Apoyndonos en los conceptos de Niklaus Wirth, sabemos que:
Programas =Algoritmos +Estructuras de Datos
Dnde recordemos, las Estructuras de Datos (pilas, listas, colas, etc.) son memoria.
Existen dos tipos de memoria primaria: voltil (RAM) y no voltil (ROM). La memoria voltil es parecida a un pizarrn. Puede perder los datos. El administrador de memoria se va a encargar de gestionar la memoria RAM. La memoria ROM slo la utiliza para funciones especficas.
La memoria se puede ver como un casillero en el cual se almacena informacin.
La memoria puede ser esttica o dinmica dependiendo de cmo se gestione.
La memoria est divida en secciones de cdigo, datos estticos, Pila y el Heap (montn).
Conceptos de memoria
Todo sistema operativo tiene un mapa de memoria que indica como estn administrada la memoria y que partes se pueden ocupar.
La filosofa del administrador de memoria consiste en optimizar el uso de este recurso, ya que la memoria es uno de los componentes crticos de todo sistema de cmputo.
La principal problemtica de la memoria principal es que no es persistente. Por este motivo se tienen que implementar estrategias de almacenamiento y recuperacin de informacin. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Las operaciones bsicas que se realizan sobre una memoria son dos: lectura (r) y escritura (w).
Las operaciones anteriores son a nivel usuario. A nivel sistema se tienen llamadas al sistema como malloc, free, allocate, etc. Tambin debe proporcionar opciones de bloqueo y desbloqueo (proteccin).
La ley de Parkinson dice: los programas se expanden hasta llenar la memoria disponible para contenerlos.
Administrador de memoria
Sirve para tener un control sobre los lugares donde estn almacenados los procesos y datos que actualmente se estn utilizando.
Las polticas de administracin de memoria generalmente son duras, es decir no modificables, pero se pueden configurar algunos parmetros para su mejor uso.
Tanto el administrador de memoria y el de archivos son ejemplos claros de un administrador de disponibilidad sobre recursos.
La memoria basa sus polticas y mecanismos en base a jerarqua. Por ejemplo se tienen los registros en el microprocesador, la memoria cach y la RAM
Polticas de asignacin La memoria cach es una memoria de acceso rpido. Es finita, se utiliza en muchos niveles como por ejemplo en microprocesadores, servicios como la Web, etc.
Otro ejemplo de memoria son los buffer o memorias temporales de E/S
Pueden ser locales o globales. Es ms difcil obtener una buena administracin local.
Las polticas en general son globales mientras los mecanismos son locales INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 3.2 Memoria Real La organizacin y administracin de la memoria principal, memoria primaria o memoria real de un sistema ha sido y es uno de los factores ms importantes en el diseo de los S. O.
Los trminos memoria y almacenamiento se consideran equivalentes. Los programas y datos deben estar en el almacenamiento principal para:
Poderlos ejecutar. Referenciarlos directamente.
Se considera almacenamiento secundario o almacenamiento auxiliar al generalmente soportado en discos.
Los hechos demuestran que generalmente los programas crecen en requerimientos de memoria tan rpido como las memorias:
Ley de Parkinson parafraseada: Los programas se desarrollan para ocupar toda la memoria disponible para ellos.
La parte del S. O. que administra la memoria se llama administrador de la memoria:
Lleva un registro de las partes de memoria que se estn utilizando y de aquellas que no. Asigna espacio en memoria a los procesos cuando estos la necesitan. Libera espacio de memoria asignada a procesos que han terminado.
3.2.1 Administracin de almacenamiento Si hay una cosa que toma la mayor parte del da de un administrador de sistemas, esto es la administracin del almacenamiento. Pareciera que los discos nunca tienen espacio suficiente, que se sobrecargan con actividad de E/S o que fallan repentinamente. Por eso es vital tener un conocimiento prctico slido del almacenamiento en disco para poder ser un administrador de sistemas exitoso.
Una vista general del hardware de almacenamiento. Antes de administrar el almacenamiento, primero es necesario entender el hardware en el que estn almacenados los datos. A menos que posea un algn conocimiento sobre la operacin de los dispositivos de almacenamiento masivo, quizs se encuentre en una situacin donde tenga un problema relacionado al almacenamiento pero le falte el conocimiento de fondo para si quiera entender lo que ve. Al tener un entendimiento sobre la forma en que opera el hardware subyacente, podr ms fcilmente determinar si el subsistema de almacenamiento de su computador est funcionando correctamente.
La gran mayora de los dispositivos de almacenamiento masivo utilizan alguna forma de media de rotacin y soportan el acceso aleatorio de los datos en esa INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin media. Esto significa que los componentes siguientes estn presentes en alguna forma dentro de casi todos los dispositivos de almacenamiento masivo:
Plato del disco
Dispositivo de lectura/escritura de datos
Brazos de acceso
Las secciones siguientes exploran con ms detalles cada uno de estos componentes.
Platos de discos La media rotativa utilizada por casi todos los dispositivos de almacenamiento masivo est en la forma de uno o ms platos planos y de forma circular. El plato puede estar compuesto de cualquier nmero de materiales diferentes, tales como aluminio, vidrio y policarbonatos.
La superficie de cada plato se trata de forma que permita el almacenamiento de datos. La naturaleza exacta del tratamiento va a depender de la tecnologa de almacenamiento de datos utilizada. La tecnologa de almacenamiento de datos ms comn est basada en la propiedad de magnetismo; en estos casos los platos se cubren con un compuesto que presenta buenas caractersticas magnticas. Otra tecnologa de almacenamiento de datos comn est basada en principios pticos; en estos casos, los platos se cubren con materiales cuyas propiedades pticas pueden ser modificadas, y en consecuencia, permitiendo almacenar datos pticamente.
Sin importar la tecnologa de almacenamiento utilizada, los platos del disco se giran, causando que su superficie completa barra ms all de otro componente - el dispositivo de lectura/escritura.
Dispositivo de lectura/escritura de datos. El dispositivo de lectura/escritura es el componente que toma los bits y bytes en los que opera un sistema computacional y los convierte en las variaciones magnticas u pticas necesarias para interactuar con los materiales que cubren la superficie de los platos de discos. Algunas veces las condiciones bajo las cuales estos dispositivos deben operar son difciles. Por ejemplo, en un almacenamiento masivo basado en magnetismo, los dispositivos de lectura/escritura (conocidos como cabezales), deben estar muy cerca de la superficie del plato. Sin embargo, si el cabezal y la superficie del plato del disco se tocan, la friccin resultante provocara un dao severo tanto al cabezal como al plato. Por lo tanto, las superficies tanto del cabezal como del plato son pulidas cuidadosamente y el cabezal utiliza aire a presin desarrollado por los platos que giran para flotar sobre la superficie del plato, flotando a una altitud no menor que el grueso de un cabello humano. Por eso es que las unidades de discos magnticos son muy sensibles a choques, cambios drsticos de temperaturas y a la contaminacin del aire. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Los retos que enfrentan los cabezales pticos son de alguna manera diferentes de aquellos para los cabezales magnticos - aqu, el ensamblado de la cabeza debe permanecer a una distancia relativamente constante de la superficie del plato. De lo contrario, los lentes utilizados para enfocarse sobre el plato no producen una imagen lo suficientemente definida.
En cualquier caso, las cabezas utilizan una cantidad muy pequea del rea de superficie del plato para el almacenamiento de datos. A medida que el plato gira por debajo de las cabezas, esta rea de superficie toma la forma de una lnea circular muy delgada.
Si es as como los dispositivos de almacenamiento masivo funcionan, significa que ms del 99% de la superficie del plato se desperdiciara. Se pueden montar cabezas adicionales sobre el plato, pero para utilizar completamente el rea de superficie del plato se necesitan ms de mil cabezales. Lo que se requiere es algn mtodo de mover los cabezales sobre la superficie del plato.
Brazos de acceso. Utilizando una cabeza conectada a un brazo que sea capaz de barrer sobre la superficie completa del plato, es posible utilizar completamente el plato para el almacenamiento de datos. Sin embargo, el brazo de acceso debe ser capaz de dos cosas:
Moverse rpidamente Moverse con gran precisin
El brazo de acceso se debe mover lo ms rpido posible, pues el tiempo que se pierde moviendo el cabezal desde una posicin a la otra es tiempo perdido. Esto se debe a que no se pueden leer o escribir datos hasta que el brazo se detenga.
El brazo de acceso debe ser capaz de moverse con gran precisin porque, como se mencion anteriormente, el rea de superficie utilizada por los cabezales es muy pequea. Por lo tanto, para usar eficientemente la capacidad de almacenamiento del plato, es necesario mover las cabezas solamente lo suficiente para asegurar que cualquier dato escrito en la nueva posicin no sobrescribe los datos escritos en la posicin previa. Esto tiene el efecto de dividir conceptualmente la superficie del plato en miles o ms aros concntricos o pistas. El movimiento del brazo de acceso desde una pista a la siguiente a menudo se conoce como bsqueda y el tiempo que toma el brazo de acceso para moverse de una pista a otra se le conoce como tiempo de bsqueda.
Cuando existen mltiples platos (o un plato que con ambas superficies utilizadas para almacenamiento de datos), se apilan los brazos para cada superficie, permitiendo que se pueda acceder a la misma pista en cada superficie simultneamente. Si se pueden visualizar las pistas para cada superficie con el acceso estacionario sobre una pista dada, aparecern como que estn apiladas una sobre la otra, haciendo una forma cilndrica; por tanto, el conjunto de pistas accesibles en una posicin dada de los brazos de acceso se conocen como cilindro. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 3.2.2 Jerarqua de la Memoria Se conoce como jerarqua de memoria a la organizacin piramidal de la memoria en niveles, que tienen los ordenadores. Su objetivo es conseguir el rendimiento de una memoria de gran velocidad al coste de una memoria de baja velocidad, basndose en el principio de cercana de referencias.
Los puntos bsicos relacionados con la memoria pueden resumirse en:
Cantidad.
Velocidad.
Coste.
La cuestin de la cantidad es simple, cuanto ms memoria haya disponible, ms podr utilizarse. La velocidad ptima para la memoria es la velocidad a la que el procesador puede trabajar, de modo que no haya tiempos de espera entre clculo y clculo, utilizados para traer operandos o guardar resultados. En suma, el costo de la memoria no debe ser excesivo, para que sea factible construir un equipo accesible.
Como puede esperarse los tres factores compiten entre s, por lo que hay que encontrar un equilibrio. Las siguientes afirmaciones son vlidas:
A menor tiempo de acceso mayor coste.
A mayor capacidad mayor coste.
A mayor capacidad menor velocidad.
Se busca entonces contar con capacidad suficiente de memoria, con una velocidad que sirva para satisfacer la demanda de rendimiento y con un coste que no sea excesivo. Gracias a un principio llamado cercana de referencias, es factible utilizar una mezcla de los distintos tipos y lograr un rendimiento cercano al de la memoria ms rpida.
Los niveles que componen la jerarqua de memoria habitualmente son:
Nivel 0: Registros.
Nivel 1: Memoria cach.
Nivel 2: Memoria principal.
Nivel 3: Disco duro (con el mecanismo de memoria virtual).
Nivel 4: Redes (Actualmente se considera un nivel mas de la jerarqua de memorias). INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
En el diseo del sistema informtico, en lo que a la decisin de la memoria a utilizar, se ha de encontrar un compromiso entre su capacidad y su velocidad. Ocurre que en algunas situaciones se necesita una gran capacidad de almacenamiento (es el caso de la memoria secundaria) y en otros es conveniente una mayor velocidad (memoria principal, cach, etc.).
La memoria secundaria trata de proveer una gran capacidad de almacenamiento (sacrificando la velocidad), mientras que la memoria que almacena la informacin que se est procesando en un determinado momento ha de ser rpida aunque no cuente con una gran capacidad.
Desde el punto de vista de la ejecucin de un programa, no todos los datos son accedidos con la misma frecuencia estadstica. Datos prximos (e instrucciones prximas) tienen una mayor probabilidad de ser accedidos. Por esta razn las cachs, aunque no cuentan con una capacidad suficiente como para almacenar un proceso en ejecucin, aumentan notablemente la velocidad del sistema informtico.
Actualmente se suelen utilizar dos niveles de cach en los ordenadores domsticos. La cach de primer nivel est integrada en el interior del P, la cach de segundo nivel normalmente est integrada en la placa base o bien en el circuito impreso que contiene a la CPU.
3.2.3 Estrategias de administracin de la memoria 1. Estrategias de bsqueda: deciden cundo obtener el siguiente fragmento de programa, o de datos, para insertarlo en la memoria principal.
Estrategias de bsqueda por demanda: el momento viene dado cuando algn programa en ejecucin hace referencia al citado fragmento;
Estrategias de bsqueda anticipada: predicen por donde ir el control del programa en el paso siguiente para decidir el momento.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 2. Estrategias de colocacin: deciden donde va a ser colocado un nuevo programa, o un trozo de programa o de datos.
3. Estrategias de reposicin: deciden que fragmento de programa, o de datos, se va a desplazar, para dejar sitio a los programas nuevos o a otros fragmentos.
3.2.4 Asignacin contigua VS No Contigua
Asignacin contigua La asignacin contigua consiste en asignarle a un fichero un rea contigua del almacenamiento secundario. Se requiere que el usuario especifique por adelantado el tamao del rea necesaria para almacenar el fichero que va a crear.
Ventajas: 1. minimiza el tiempo de acceso: el tiempo requerido para el intercambio de informacin entre el disco y la memoria principal, o viceversa, necesita el mnimo nmero de desplazamientos de la cabeza del disco y el rotacional; 2. facilita la implementacin de los directorios: basta almacenar por cada fichero su direccin de comienzo y su longitud.
Desventaja: 1. presenta fragmentacin externa: requiriendo la combinacin de huecos adyacentes y la compactacin de memoria peridicamente.
Este esquema es til cuando no son frecuentes las creaciones, destrucciones y cambios de tamao de los ficheros.
Asignacin no contigua La asignacin no contigua consiste en alojar los ficheros partidos en una serie de trozos del mismo tamao (bloques), no ocupando necesariamente reas contiguas del almacenamiento secundario.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Tamao del bloque: compromiso entre el aprovechamiento de la memoria y la obtencin de una buena velocidad de transferencia.
A) Tamao del bloque grande: se desperdicia memoria ya que los ficheros, sobre todo los pequeos, no conseguirn ocupar todo el bloque;
B) Tamao del bloque pequeo: cuanto mayor sea el tamao del fichero mayor ser el nmero de bloques que se le deben asignar y como estos no se graban contiguos, entonces el tiempo de acceso a ellos ser mayor puesto que existe un retardo en el desplazamiento de la cabeza del disco.
Formas de asignar espacio: 1. Asignacin encadenada: en cada bloque se reserva un espacio en donde se guarda la direccin del siguiente bloque del fichero. El ltimo bloque del fichero se indica siguiendo algn criterio preestablecido. La direccin del primer bloque se encuentra en el directorio donde cuelga el fichero.
Inconvenientes: 1. desperdicio de memoria; 2. sirve solo para realizar acceso secuencial y no directo; 3. la estructura empleada es bastante vulnerable.
Variante de la asignacin encadenada Toda la informacin que contiene los bloques son datos del fichero, almacenndose los apuntadores en una tabla de asignacin de ficheros (FAT). Esta tabla tiene tantas casillas como nmero de bloques en los que se ha dividido el disco, y cada una de ellas contendr el puntero al siguiente bloque lgico dentro del disco.
Si el disco es pequeo entonces se puede mantener la tabla FAT en memoria principal. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Si el tamao del disco es muy grande, entonces la FAT no se podr mantener en memoria principal siendo necesario tener que ir descargndola y cargndola por partes.
2. Asignacin indexada: cada fichero tiene asociada una pequea tabla (ndice) con la que se mantiene la estructura de sus bloques.
Lectura secuencial: se lee la direccin del primer elemento de la tabla de ndices y se accede al primer bloque de datos, luego se lee la direccin del segundo elemento de dicha tabla para leer el segundo bloque de datos, y as sucesivamente.
Lectura directa: se realiza buscando en la tabla la direccin del bloque de datos que se desea leer para acceder a l a continuacin.
Problema: la tabla de ndices se almacena en otro bloque del disco, limitando el tamao del bloque el tamao de la tabla y como consecuencia el nmero de bloques de datos que compone el fichero.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Solucin: cuando el bloque de ndices se completa y el fichero necesita crecer se coloca un segundo nivel de ndices contenido en otro bloque, de forma que la primera entrada de ese bloque direcciona el bloque que contiene la tabla anterior; y la segunda entrada direccionar a la segunda tabla de ndices y as sucesivamente.
Gestin del espacio libre. (I) Tipo de asignacin:
1. Asignacin contigua. Mantener informacin sobre los huecos y tramos ocupados.
2. Asignacin no contigua. Procedimientos:
A. Mapa del disco: estructura de datos almacenada en una zona concreta del disco, cuyo tamao es de tantos bits como bloques tiene el disco. Los bloques libres se representan con el valor 1 y los bloques ocupados con el valor 0 (o viceversa).
B. Usar la FAT: los bloques libres estn marcados con algn distintivo.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin C. Lista de bloques libres.
Comparacin: Si existen muchos bloques libres, la lista de bloques ocupa ms espacio del disco que el mapa, ya que una direccin ocupa ms que los bits del mapa. Si el disco esta dividido en un gran nmero de bloques, el mapa del disco, por su tamao, no se puede mantener en memoria principal para realizar su gestin, mientras que si se usa una lista de bloques basta con mantener la cabecera de esta en memoria principal, gestionndola como una cola (se elige el primer bloque de la lista).
3.2.5 Multiprogramacin de Particin Fija, Particin Variable, con Intercambio de Almacenamiento
Grado de multiprogramacin. La memoria principal se divide en una serie de particiones, conteniendo cada particin un trabajo completo. Estas particiones se protegen mediante los registros de lmites.
Estos registros tambin se usan para la relocalizacin: a = b + d donde a: direccin absoluta; b: base; d: direccin relativa.
Gestin de memoria con particiones fijas. Las particiones son de tamao fijo, conteniendo cada particin un slo trabajo completo.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Modos de carga:
Carga fija o absoluta.
Carga relocalizable.
Problema: desperdicio de memoria debido a que el tamao de las particiones esta establecido a priori (fragmentacin interna).
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Gestin de memoria con particiones variables. Cada trabajo ocupa slo el espacio que necesita.
Tcnicas:
Combinacin de huecos:
Compactacin de memoria:
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Estrategias de colocacin:
Una estrategia de colocacin de memoria determina el lugar donde ser cargado un nuevo proceso en base a un criterio.
Las estrategias de colocacin son:
1. Primer Ajuste. El Sistema Operativo asigna el primer bloque de memoria libre con espacio suficiente para satisfacer la informacin. La bsqueda de este bloque es de manera secuencial.
2. Mejor Ajuste. El sistema operativo busca el bloque de memoria que represente el menor desperdicio segn el requerimiento.
3. Peor Ajuste. El sistema operativo asigna el bloque ms grande que encuentre.
Multiprogramacin con intercambio a disco (Swapping). Se trabaja con los dos niveles de almacenamiento para no limitar el nmero de procesos, manteniendo los programas de los procesos que no estn activos en memoria secundaria. Para conseguir esto, se catalogan los procesos entre los que deben ser residentes en memoria principal y los que pueden pasar a disco. Entre estos ltimos se puede usar prioridades; de forma que un proceso no pasar a disco si existe otro cuya prioridad le obliga a que pase antes.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 3.3 Organizacin de Memoria Virtual Almacenamiento virtual significa la capacidad de direccionar un espacio de almacenamiento mucho mayor que el disponible en el almacenamiento primario de determinado sistema de computacin.
Esta tecnologa apareci en 1960 en la Universidad de Manchester (Inglaterra), en el sistema Atlas.
La ilusin de la memoria virtual est soportada por el mecanismo de traduccin de memoria, junto con una gran cantidad de almacenamiento rpido en disco duro. As en cualquier momento el espacio de direcciones virtual hace un seguimiento de tal forma que una pequea parte de l, est en memoria real y el resto almacenado en el disco, y puede ser referenciado fcilmente. Debido a que slo la parte de memoria virtual que est almacenada en la memoria principal, es accesible a la CPU, segn un programa va ejecutndose, la proximidad de referencias a memoria cambia, necesitando que algunas partes de la memoria virtual se traigan a la memoria principal desde el disco, mientras que otras ya ejecutadas, se pueden volver a depositar en el disco (archivos de paginacin).
Los mtodos ms comunes de implementacin son mediante:
Tcnicas de paginacin.
Tcnicas de segmentacin.
Una combinacin de ambas tcnicas.
3.3.1 Evaluacin de las Organizaciones de Almacenamiento Histricamente el almacenamiento principal se ha considerado como un recurso costoso, por lo cual su utilizacin deba optimizarse.
Por organizacin del almacenamiento se entiende la manera de considerar este almacenamiento:
Se coloca un solo programa de usuario o varios?
Si se encuentran varios programas de usuario: Se concede a cada uno la misma cantidad de espacio o se divide el almacenamiento en porciones o particiones de diferente tamao? Se utilizar un esquema rgido de nmero y tamao de particiones o un esquema dinmico y adaptable? Se requerir que los trabajos de los usuarios sean diseados para funcionar en una particin especfica o se permitir que se ejecuten en cualquiera donde quepan? Se requerir o no que cada trabajo sea colocado en un bloque contiguo de memoria?
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Organizacin del Almacenamiento de Niveles Mltiples Se deben proporcionar los medios para retener programas y datos en un gran almacenamiento auxiliar para:
Permitir que el espacio de direcciones virtuales de un usuario sea mayor que el espacio de direcciones reales. Soportar multiprogramacin de forma efectiva en un sistema con muchos usuarios que compartan el almacenamiento real.
Se utiliza un esquema de almacenamiento de dos niveles:
Primer nivel: almacenamiento real: o En l se ejecutan los procesos y en l deben estar los datos para que un proceso pueda referirse a ellos.
Segundo nivel: almacenamiento auxiliar, secundario o adicional: o Generalmente consta de discos de gran capacidad que pueden mantener los programas y datos que no caben al mismo tiempo en el ms limitado almacenamiento real.
Conceptos bsicos sobre memoria virtual Definicin: memoria virtual (Fotheringham, 1961) es un mtodo que permite direccional un espacio de almacenamiento mucho mayor que el disponible en la memoria principal. Para ello, el S. O. usa memoria a dos niveles y particiona los trabajos en bloques, manteniendo en memoria principal aquellos bloques que se estn usando.
Tamao de los bloques: Con el mismo tamao: pginas. Paginacin. Con diferentes tamaos: segmentos. Segmentacin Segmentos de tamao variable de pginas de tamao fijo. Paginacin/Segmentacin.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Definiciones: 1. Direcciones virtuales: las direcciones a las que se refiere un proceso durante su ejecucin. Espacio de direcciones virtuales. 2. Direcciones reales: las direcciones que tiene la memoria principal. Espacio de direcciones reales.
Los mecanismos de traduccin dinmica de direcciones (DAT) se encargan de transformar las direcciones virtuales a direcciones reales, basndose en que direcciones contiguas dentro del espacio de direcciones virtuales, no tienen por qu ser contiguas dentro del almacenamiento real. Para realizar esta transformacin, los DAT mantienen por cada proceso un mapa que indica qu direcciones virtuales se encuentran en memoria principal y dnde. Para que este mapa no sea muy grande las transformaciones se realizan a nivel de bloque.
Traduccin de una direccin virtual a una direccin real:
3.3.2 Paginacin
Divide: El espacio virtual de direcciones de un trabajo en trozos del mismo tamao (pginas) y,
La memoria principal en bloques del mismo tamao que el de las pginas (marcos de pgina o pginas fsicas).
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Cada trabajo tiene asociado una tabla de mapas de pginas, con tantos elementos como el nmero de pginas en las que se ha dividido el trabajo.
Formato de un elemento de la tabla de pginas:
t bit de residencia de pgina en memoria principal; m direccin de almacenamiento secundario; p direccin real del comienzo del marco de pgina.
A veces contiene el nmero del marco de pgina, con el cual se calcula la direccin real donde comienza dicho marco de pgina.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Tcnicas para realizar la traduccin de direcciones virtuales:
1. Por transformacin directa.
2. Por transformacin asociativa.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 3. Por combinacin de la transformacin asociativa y la directa.
Comparticin:
3.3.3 Segmentacin El espacio virtual de direcciones de un trabajo se divide en trozos de distinto tamao (segmentos), permitiendo que el contenido de cada uno de ellos tenga identidad propia.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Cada trabajo tiene asociado una tabla de mapas de segmentos, con tantos elementos como el nmero de segmentos en los que se ha dividido el trabajo.
Formato de un elemento de la tabla de segmentos:
t bit de residencia del segmento en memoria principal; m direccin de almacenamiento secundario; s direccin real (base) del comienzo del segmento. l longitud del segmento o direccin real del final del segmento; R, W, E, A bits de proteccin (1 si lo posee, 0 no lo posee)
R acceso de lectura, W acceso de escritura, E acceso de ejecucin, A acceso de adicin
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Tcnicas para realizar la traduccin de direcciones virtuales:
1. Por transformacin directa.
2. Por transformacin asociativa.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 3. Por combinacin de la transformacin asociativa y la directa.
Fallos durante la traduccin de una direccin virtual:
1) Fallo de prdida de segmento. El segmento al que se hace referencia no esta en la memoria principal. Este fallo se detecta comprobando el bit de residencia, t, y se soluciona trayendo dicho segmento del almacenamiento secundario, cuya direccin viene indicada por m.
2) Fallo de desbordamiento de segmento. Se hace referencia a una posicin que no pertenece al segmento. Este fallo se detecta realizando la siguiente verificacin:
a) si l indica la longitud del segmento, se comprueba que d < l.; b) si l indica la direccin real donde termina el segmento, se comprueba que s+d l
Si no se cumple la comprobacin correspondiente se aborta la ejecucin del proceso.
3) Fallo de proteccin de segmento. Si se solicita una operacin que no esta permitida. Este fallo se detecta comprobando los bits de proteccin, y si ocurre se cancela la ejecucin del proceso.
3.3.4 Sistema de Paginacin/Segmentacin El espacio virtual de direcciones de un trabajo se divide en segmentos que se gestionan a nivel de pginas. Por otra parte, la memoria principal se divide en marcos de pgina. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Cada trabajo tiene asociado una tabla de mapas de segmentos, con tantos elementos como el nmero de segmentos en los que se ha dividido el trabajo. Adems, por cada segmento tambin existe una tabla de mapas de pginas que tiene tantos elementos como el nmero de pginas en las que se ha dividido el segmento.
Formato de un elemento de la tabla de segmentos: t bit de residencia del segmento en memoria principal; m1 direccin de almacenamiento secundario; s direccin real del comienzo de su tabla de pginas; l longitud del segmento (nmero de pginas); R, W, E, A bits de proteccin (1 si lo posee, 0 no lo posee)
R acceso de lectura, W acceso de escritura, E acceso de ejecucin, A acceso de adicin.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Formato de un elemento de la tabla de pginas: t bit de residencia de pgina en memoria principal; m2 direccin de almacenamiento secundario; p direccin real del comienzo del marco de pgina.
Tcnicas para realizar la traduccin de direcciones virtuales:
1. Por transformacin directa.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 2. Por transformacin asociativa.
3. Por combinacin de la transformacin asociativa y la directa.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Fallos durante la traduccin de una direccin virtual:
A) Fallo de prdida de segmento. Ninguna de las pginas del segmento esta en memoria principal. Este fallo se detecta comprobando el bit de residencia, t, de la tabla de segmentos y se soluciona creando la tabla de pginas para dicho segmento y cargando la pgina referenciada en memoria principal.
B) Fallo de prdida de pgina. Alguna de las pginas del segmento al que pertenece la pgina referenciada esta en memoria principal, pero la pgina en cuestin no. Esto se detecta comprobando el bit de residencia, t, de la tabla de pginas para el citado segmento y se soluciona cargando dicha pgina desde el almacenamiento secundario.
C) Fallo de desbordamiento de segmento. Se hace referencia a una pgina que no posee el segmento (se verifica si p l), y por lo tanto se aborta la ejecucin del proceso.
D) Fallo de proteccin de segmento. Cuando los bits de proteccin indican que la operacin solicitada no esta permitida, en cuyo caso se cancela la ejecucin del proceso. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 3.4 Administracin de Memoria Virtual
3.4.1 Estrategias de Administracin Es un mtodo mediante el cual, un sistema operativo simula tener ms memoria principal que la que existe fsicamente. Para implementar la memoria virtual se utiliza un medio de almacenamiento secundario de alta velocidad de acceso, generalmente en disco duro de la maquina. Un sistema de memoria virtual se implementa utilizando paginacin como mtodo de administracin de memoria bsica y algn mecanismo de intercambio (para descargar paginas de la memoria principal hacia el disco duro y para cargar esas pginas de nuevo a la memoria).
La memoria virtual es una tcnica para proporcionar la simulacin de un espacio de memoria mucho mayor que la memoria fsica de una maquina. Esta ilusin permite que los programas se hagan sin tener en cuenta el tamao exacto de la memoria fsica. La ilusin de la memoria virtual esta soportada por el mecanismo de traduccin de memoria, junto con una gran cantidad de almacenamiento rpido en disco duro. As en cualquier momento el espacio de direcciones virtual hace un seguimiento de tal forma que una pequea parte del, esta en memoria real y el resto almacenado en el disco, y puede ser referenciado fcilmente.
Estrategias de administracin de la memoria virtual. Estrategias del mejor ajuste: Un trabajo que entre en el sistema se colocar en el espacio vaci del almacenamiento principal en el que quepa mejor y que deje la menor cantidad posible de espacio sin utilizar.
Estrategias del primer ajuste: Un trabajo que entre en el sistema se colocara en el almacenamiento principal en el primer vaci disponibles lo bastante grande para contenerlo.
Estrategias del peor ajuste: Consiste en colocar un programa en el almacenamiento primario en el espacio vaci donde peor se ajusta es decir en el espacio ms grande posible.
Estrategias de obtencin: Determina cuando se debe transferir una pgina o un segmento de almacenamiento secundario al primario. Las estrategias de obtencin por demanda esperan a que un proceso en ejecucin haga referencia a una pgina o a un segmento antes de traer la pgina o el segmento de almacenamiento primario. Los esquemas de obtencin anticipada intentan determinar por adelantado a cuales paginas o segmentos har referencia un proceso.
Estrategias de colocacin: Determinan en que lugar del almacenamiento primario se debe colocar una pagina o un segmento entrante. Una pgina entrante se puede colocar en cualquier marco de pgina disponible.
Estrategias de reemplazo: Sirven para decidir cual pgina o segmento se debe desplazar para dar espacio a una pgina o segmento entrante cuando esta completamente ocupado el almacenamiento primario. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Estrategias de Colocacin: Determinan en que lugar del almacenamiento primario se debe colocar una pgina o un segmento entrante. Una pgina entrante se puede colocar en cualquier marco de pgina disponible.
Estrategias de Reemplazo: Sirven para decidir cual pgina o segmento se debe desplazar para dar espacio a una pgina o segmento entrante cuando est completamente ocupado el almacenamiento primario.
La memoria virtual ha llegado a ser un componente esencial de la mayora de los sistemas operativos actuales. Y como en un instante dado, en la memoria slo se tienen unos pocos fragmentos de un proceso dado, se pueden mantener ms procesos en la memoria. Es ms, se ahorra tiempo, porque los fragmentos que no se usan no se cargan ni se descargan de la memoria. Sin embargo, el sistema operativo debe saber cmo gestionar este esquema.
La memoria virtual tambin simplifica la carga del programa para su ejecucin llamada reubicacin, este procedimiento permite que el mismo programa se ejecute en cualquier posicin de la memoria fsica
3.4.2.- Tcnicas de Reemplazo de Pginas. Principio de optimizacin: para obtener un rendimiento ptimo se debe desplazar aquella pgina que no se va a usar en el futuro durante el perodo de tiempo ms largo.
Estrategias:
A. Reposicin de pgina al azar. Se elige al azar la pgina a desplazar, por lo tanto supone poca sobrecarga y no es discriminatoria.
B. Reposicin por el sistema de primero en entrar primero en salir (FIFO). Se desplaza la pgina que lleva ms tiempo almacenada en memoria principal. Se basa en que la pgina que lleva menos tiempo es porque se ha referenciado hace poco, y por tanto la que lleva ms tiempo es porque ya no se usa.
C. Reposicin de pgina menos recientemente usada (LRU). Se desplaza la pgina que no ha sido usada durante el mayor perodo de tiempo. Para ello, es necesario ponerle un sello de tiempo a la pgina cada vez que sea referenciada, suponiendo una sobrecarga adicional importante.
D. Reposicin de pgina menos frecuentemente usada (LFU). Se desplaza la pgina que se ha usado con menos frecuencia, por lo tanto cada pgina posee un contador de utilizacin.
E. Reposicin de pgina no usada recientemente (NUR).
Se basa en que:
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin La pgina que no ha tenido un uso reciente tiene poca probabilidad de ser usada en el futuro y puede por tanto ser reemplazada; La sobrecarga es menor si se reemplaza una pgina que no ha cambiado desde que se cargo en memoria principal, ya que no es necesario llevarla al almacenamiento secundario.
Para llevar a cabo esta estrategia cada pgina va a tener dos bits hardware: bit referenciado y bit modificado o bit sucio. La estrategia NUR elige la pgina a desplazar siguiendo el orden de los siguientes grupos:
1 No referenciado no modificado 2 Referenciado no modificado 3 Referenciado modificado
Cada cierto tiempo se ajusta todos los bits de referencia a 0, apareciendo un nuevo grupo no referenciado modificado.
3.4.4 Paginacin anticipada. El S. O. intenta predecir las pginas que un proceso va a necesitar y precargar estas pginas cuando hay espacio disponible, de forma que mientras que el proceso ejecuta sus pgina actuales, el sistema carga nuevas pginas que estarn disponibles cuando el proceso las pida. Se intenta reducir el tipo de espera de los procesos.
3.4.5 Liberacin de Pgina Cuando se hace evidente que una pgina ya no se necesita se debe liberar el marco de pgina donde esta contenida. Formas: 1. de forma voluntaria: la liberacin es realizada por el usuario mediante mandatos; 2. de forma automtica: la responsabilidad recae en los compiladores y sistemas operativos.
3.4.6 Tamao de la Pgina Consideraciones:
Cuanto ms pequeo sea el tamao de la pgina, mayor ser el espacio de memoria principal ocupada por las tablas de pginas (fragmentacin de tablas). Cuanto ms grande sea el tamao de la pgina, mayor ser la cantidad de informacin, ocupando memoria principal, que nunca va a ser referenciada. Cuanto menor sea el tamao de la pgina, menor ser la fragmentacin interna. Cuanto mayor sea el tamao de la pgina, menor ser el nmero de transferencias.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
Unidad 4. Administracin de Entrada/Salida
4.1 Dispositivos y Manejadores de Dispositivos Utilizaremos el trmino dispositivo para referirnos a cualquier elemento del computador que no sea el procesador o la memoria. Habitualmente los dispositivos se encargan de la entrada/salida, aunque la gestin de dispositivos hay que entenderla en sentido amplio, incluyendo los dispositivos de almacenamiento secundario y los de comunicaciones, e incluso la gestin del tiempo y de la energa. Esta heterogeneidad hace que el tratamiento de los dispositivos por el sistema operativo sea difcilmente generalizable para un estudio sistemtico. En este captulo vamos a intentar exponer un enfoque general de la entrada/salida.
Caractersticas de los dispositivos Los dispositivos se caracterizan por su heterogeneidad, lo que introduce complejidad en el sistema operativo. Algunas de las caractersticas en las que los dispositivos pueden diferir son las siguientes:
Unidad de transferencia. Unos dispositivos utilizan el byte como unidad de transferencia (dispositivos de caracteres, como el teclado o el ratn). Otros transfieren y/o almacenan la informacin en bloques (dispositivos de bloques, como discos y cintas magnticas).
Velocidad. Los rangos en los que se mueven los dispositivos son muy amplios. Los discos y los dispositivos de comunicacin transfieren millones de caracteres por segundo y pueden hacerlo a velocidad constante, mientras que con el teclado se transfiere a lo sumo unos cuantos caracteres por segundo, con un periodo concreto impredecible.
Representacin de los datos. Incluso un mismo dispositivo puede utilizar diferentes codificaciones configurables en la instalacin, como es el caso del teclado y el monitor.
Protocolos de comunicacin. La comunicacin entre el dispositivo y la CPU se realiza de acuerdo a un determinado protocolo que depende del dispositivo y del bus de comunicacin.
Operaciones. Hay dispositivos de entrada, de salida y de entrada/salida. Adems, algunos dispositivos requieren operaciones especficas (por ejemplo, posicionar el cabezal de lectura/escritura en los discos).
Errores. Las condiciones de error varan con la naturaleza del dispositivo. Por ejemplo, en la impresora hay que tratar la falta de papel como una situacin de error especfica, mientras que en un disco puede haber errores en el posicionamiento del cabezal.
Para proporcionar una forma homognea de direccionar los dispositivos, a nivel hardware stos se conectan al sistema mediante controladores. El sistema operativo ya no trata con el dispositivo en s mismo, sino con una interfaz que INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin lo representa mediante un conjunto de direcciones o registros del controlador, que se pueden direccionar en el espacio de direcciones de memoria o constituir un espacio de direcciones independientes. El sistema se comunica con el controlador mediante operaciones de lectura/escritura sobre los registros de datos, estado y control, permitiendo tanto la transferencia de informacin como el diagnstico y configuracin del dispositivo. Estas operaciones las realizan las funciones de ms Bajo nivel del ncleo del sistema operativo, y son dependientes del hardware.
Qu es un manejador de dispositivo? Todos los perifricos conectados a la computadora que estamos usando para correr nuestro S.O. son tratados como archivos especiales (device files) por el sistema operativo. Un perifrico o dispositivo es una terminal, un disco duro, una impresora, un manejador de CD-ROM, o un modem. Todo lo que recibe o enva datos hacia el sistema operativo es un dispositivo.
El concepto de tratar todo en el sistema como un dispositivo es uno de los beneficios de la arquitectura Unix. Cada dispositivo tiene un archivo especial llamado manejador de dispositivo (device file), el cual incluye todas las instrucciones necesarias para que el S.O. se comunique con el dispositivo.
Cuando un nuevo dispositivo es desarrollado, puede ser usado por el S.O. escribiendo su manejador de dispositivo, el cual es usualmente un conjunto de instrucciones que explican como mandar y recibir datos.
Los manejadores de dispositivos permiten al kernel incluir solo el sistema operativo y el soporte de software. Teniendo las instrucciones para comunicarse hacia los dispositivos dentro de un conjunto de archivos. Estos pueden ser buscados cuando son necesitados (en el caso de que raramente sean usados) o almacenados en memoria todo el tiempo cuando el sistema operativo es reiniciado. Los refinamientos hechos hacia un perifrico, pequeos cambios hacia el archivo manejador del dispositivo pueden tener informado al sistema operativo de nuevas caractersticas y capacidades.
Cuando una aplicacin enva datos a un dispositivo, el kernel no tiene que preocuparse por el mecanismo. El kernel solo pasa la peticin al manejador del dispositivo y deja que ste maneje las comunicaciones. Similarmente, cuando estamos tecleando, el manejador de dispositivo de la terminal acepta la accin y la pasa al shell, filtrando cualquier cdigo especial que el kernel no conozca, traducindolo a un formato que el kernel pueda operar.
Diferencia entre dispositivos modo bloque y modo caracter. Los dispositivos de entrada salida se dividen, en general, en dos tipos: dispositivos orientados a bloques y dispositivos orientados a caracteres.
Cada tipo de dispositivo en el sistema Linux se comunica con la aplicacin en una de las formas siguientes: caracter por caracter o como un conjunto de datos en un bloque de tamao predefinido. Las terminales, impresoras y mdems asncronos son dispositivos modo caracter. Cuando se usa el modo caracter se enva uno a la vez y hace eco en la otra terminal. Los manejadores INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin (device drivers) de disco duro y la mayora de manejadores, usan el modo bloque, porque este es el camino ms rpido para enviar o recibir grandes cantidades de informacin. Los archivos de dispositivo (device files) son llamados dispositivos modo carcter o dispositivos modo bloque, basados en la forma de comunicacin.
Cabe mencionar que los dispositivos que operan a modo carcter son distintos de los de modo bloque, en el aspecto de como el dispositivo maneja su bfer. Los dispositivos modo carcter hacen su propio bfer. Los dispositivos modo bloque, usualmente se comunican en bloques de 512 o 1024 bytes y el kernel se ocupa del bfer.
Algunos perifricos necesitan usar archivos de dispositivo a modo bloque y carcter al mismo tiempo. Los manejadores de dispositivo manejan el modo carcter y el modo bloque a travs de dos diferentes archivos de dispositivo. El archivo de dispositivo que se usa depende de como la aplicacin quiera escribir o leer datos hacia el perifrico.
El archivo de dispositivo tiene todos los detalles de si el perifrico opera a modo carcter o modo bloque. Por ejemplo, en Linux, una manera fcil de saber que tipo de modo utiliza un perifrico es obtener un listado largo del archivo de dispositivo. El listado se obtiene con el comando ls -l que muestra los permisos, dueo, grupo, etc. del archivo. Si el primer carcter es una b, indica que el perifrico opera en modo bloque y una c indica que el perifrico opera en modo carcter.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 4.2 Funciones de los Manejadores de Dispositivos Cada driver maneja un tipo de dispositivo o un conjunto de dispositivos relacionados o ms o menos similares.
El trabajo del driver del dispositivo es aceptar solicitudes abstractas desde el software independiente del dispositivo y verificar si tal solicitud ha sido ejecutada.
El driver es quien conoce la estructura del dispositivo y los mecanismos que hacen que trabaje.
Funcin: Enviar rdenes a los dispositivos. Comprobar que se ha realizado correctamente. La peticin de los programas independientes del dispositivo se llevan a una cola.
El manejador de dispositivos es la nica parte del S.O. que conoce los registros del controlador.
Funciones de los mdulos de E/S:
1.- Control y temporizacin para coordinar el trfico entre los recursos internos (memoria, bus) y los dispositivos internos.
2.- Comunicacin con el procesador - Decodificacin de rdenes - Datos - Informacin de estado - Reconocimiento de direccin
3.- Comunicacin con el perifrico. Intercambio de ordenes, informacin del estado datos.
4.- Almacenamiento temporal de datos.
5.- Deteccin de errores.
Funcin de los controladores de dispositivos Cada controlador tiene uno o ms registros de dispositivos, los cuales se utilizan para darle los comandos. Los manejadores de dispositivos proveen estos comandos y verifican su ejecucin adecuada. El manejador del disco es INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin la nica parte del sistema operativo que conoce el nmero de registros de un controlador de disco y el uso que tienen stos. La labor de un manejador de dispositivo es la de aceptar las solicitudes abstractas que le hace el software independiente del dispositivo y verificar la ejecucin de dicha solicitud. El manejador de disco debe decidir cules son las operaciones necesarias del controlador y su orden. Si todo est en orden, el manejador dispondr de datos para transferirlos al software independiente del dispositivo.
Software de E/S independiente del dispositivo
Funciones:
Presentar una interfaz uniforme a los programas de usuario. Asignar nombres y establecer la correspondencia entre nombre y manejadores. En UNIX los dispositivos se tratan como ficheros. N de dispositivo principal: Para localizar el manejador. N de dispositivo secundario: Para especificar la unidad referenciada. Proteger a los dispositivos de accesos no permitidos. Ocultar las diferencias en las unidades de informacin tanto en los dispositivos de bloques como de caracteres. Almacenar temporalmente los datos de los dispositivos (buffering). o Completar bloques, sincronizar, entrada de teclado... Asignar espacio libre en los dispositivos de bloques. Gestionar el uso de los dispositivos dedicados. o Aceptar o rechazar las peticiones (Ej.: OPEN). Tratar los errores.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 4.3 Estructuras de datos para manejo de dispositivos Hay estructuras que se crean en memoria durante la ejecucin de los procesos relacionadas con el uso que estos hacen de los archivos.
El sistema cuenta con una tabla de archivos abiertos (open file table) general donde figura informacin sobre los archivos activos (que estn siendo usados por los procesos) e ndices de referencia al archivo. Algunos sistemas requieren hacer un open previo al primer read.
La llamada a sistema open toma el nombre de archivo, busca en el directorio, copia la entrada del directorio en la tabla de archivos abiertos. Todo esto si estas acciones son permitidas de acuerdo a los modos de proteccin del archivo.
Un puntero para accederlo rpidamente es tambin puesto en la tabla de archivos abiertos.
En un sistema multiusuario, un archivo puede ser abierto por ms de dos usuarios simultneamente, cada uno con su puntero.
Hay dos tipos de tablas. La tabla por proceso contiene informacin sobre los archivos abiertos por el proceso y contiene un apuntador a la segunda tabla, la de los archivos abiertos en todo el sistema. Esta segunda tabla tiene informacin independiente del proceso que lo ejecute como ubicacin del archivo en el disco, medida del archivo, etc.
La tabla del sistema tiene tambin la cantidad de procesos que tienen abierto el archivo, y con cada close este valor se va decrementando. Cuando queda en cero, se remueve esa entrada.
La informacin asociada a un archivo abierto es:
Puntero (File pointer)
Contador de aperturas del file (File open count) cuando lo tiene abierto mas de un proceso simultneamente
Ubicacin del archivo en el disco
Hay sistemas que permiten compartir entre varios procesos, secciones de un archivo: un archivo ejecutable que reside en disco y es llevado a memoria y forma parte del espacio de direcciones de varios procesos; o archivos de datos cuyos bloques en memoria son accedidos por varios procesos.
En el manejo de los dispositivos de E/S es necesario, introducir dos nuevos trminos:
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Buffering (uso de memoria intermedia).
El buffering trata de mantener ocupados tanto la CPU como los dispositivos de E/S. La idea es sencilla, los datos se leen y se almacenan en un buffer, una vez que los datos se han ledo y la CPU va a iniciar inmediatamente la operacin con ellos, el dispositivo de entrada es instruido para iniciar inmediatamente la siguiente lectura. La CPU y el dispositivo de entrada permanecen ocupados. Cuando la CPU est libre para el siguiente grupo de datos, el dispositivo de entrada habr terminado de leerlos. La CPU podr empezar el proceso de los ltimos datos ledos, mientras el dispositivo de entrada iniciar la lectura de los datos siguientes.
Para la salida, el proceso es anlogo. En este caso los datos de salida se descargan en otro buffer hasta que el dispositivo de salida pueda procesarlos.
Este sistema soluciona en forma parcial el problema de mantener ocupados todo el tiempo la CPU y los dispositivos de E/S. Ya que todo depende del tamao del buffer y de la velocidad de procesamiento tanto de la CPU como de los dispositivos de E/S.
El manejo de buffer es complicado. Uno de los principales problemas reside en determinar tan pronto como sea posible que un dispositivo de E/S haya finalizado una operacin. Este problema se resuelve mediante las interrupciones. Tan pronto como un dispositivo de E/S acaba con una operacin interrumpe a la CPU, en ese momento la CPU detiene lo que est haciendo e inmediatamente transfiere el control a una posicin determinada. Normalmente las instrucciones que existen en esta posicin corresponden a una rutina de servicio de interrupciones. La rutina de servicio de interrupcin comprueba si el buffer no est lleno o no est vaco y entonces inicia la siguiente peticin de E/S. La CPU puede continuar entonces el proceso interrumpido.
Cada diseo de computadora tiene su propio mecanismo de interrupcin, pero hay varias funciones comunes que todos contemplan. El buffering puede ser de gran ayuda pero pocas veces es suficiente.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Spooling.
El problema con los sistemas de cintas es que una lectora de tarjetas no poda escribir sobre un extremo mientras la CPU lea el otro. Los sistemas de disco eliminaron esa dificultad, moviendo la cabeza de un rea del disco a otra.
En un sistema de discos, las tarjetas se leen directamente desde la lectora sobre el disco. La posicin de las imgenes de las tarjetas se registra en una tabla mantenida por el sistema operativo. En la tabla se anota cada trabajo una vez ledo. Cuando se ejecuta un trabajo sus peticiones de entrada desde la tarjeta se satisfacen leyendo el disco. Cuando el trabajo solicita la salida, sta se copia en el buffer del sistema y se escribe en el disco. Cuando la tarea se ha completado se escribe en la salida realmente.
Esta forma de procesamiento se denomina spooling, utiliza el disco como un buffer muy grande para leer tan por delante como sea posible de los dispositivos de entrada y para almacenar los ficheros hasta que los dispositivos de salida sean capaces de aceptarlos.
La ventaja sobre el buffering es que el spooling solapa la E/S de un trabajo con la computacin de otro. Es una caracterstica utilizada en la mayora de los sistemas operativos.
Afecta directamente a las prestaciones. Por el costo de algo de espacio en disco y algunas tablas, la CPU puede simultanear la computacin de un trabajo con la E/S de otros. De esta manera, puede mantener tanto a la CPU como a los dispositivos de E/S trabajando con un rendimiento mucho mayor.
Adems mantiene una estructura de datos llama job spooling, que hace que los trabajos ya ledos permanezcan en el disco y el sistema operativo puede seleccionar cual ejecutar, por lo tanto se hace posible la planificacin de trabajos. Otro objetivo es minimizar las prdidas adicionales por cableado y las variaciones de la atenuacin con la temperatura, sin embargo, se observan resultados que demuestran la existencia de importantes diferencias sobre lo INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin previsto. Tales diferencias se deben a diseos calculados a veces para mejorar otras propiedades, como la resistencia mecnica, la calidad de empalme, el coeficiente de relleno (nmero de fibras por mm2) o el costo de produccin.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 4.4 Operaciones de Entrada /Salida
Tcnicas de Comunicacin de E/S
Entrada/salida por consulta o programada. La CPU accede a los registros desde programa. Para saber si el dispositivo est listo, se hace una consulta peridica.
Entrada/salida por interrupciones. El dispositivo avisa a la CPU cuando est listo. La entrada/salida se hace mediante una rutina de servicio de interrupcin.
Entrada/salida por acceso directo a memoria. El dispositivo accede directamente a la memoria. Avisa a la CPU del inicio o final de la operacin.
Entrada/salida por consulta La operacin de I/O se controla por la CPU. Antes de realizar la operacin se comprueba el (los) registro(s) de estado, para ver si el dispositivo est listo.
Ventajas: sencillez.
Desventajas: Ritmo de transferencia limitado por la velocidad de la CPU. Tiempo de respuesta elevado, mayor que el periodo de consulta. Sobrecarga de la CPU para operaciones de consulta que podran evitarse.
Entrada/salida por interrupciones Permite al dispositivo marcar el instante en que se hace la transferencia de datos. El mecanismo de interrupcin est presente en casi todos los computadores.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Las interrupciones se pueden enmascarar.
Se utiliza para evitar la interrupcin cuando se accede a datos compartidos con ella.
Para cada interrupcin se puede instalar una rutina de servicio de interrupcin.
Al llegar la interrupcin, el procesador interrumpe el programa en ejecucin y enmascara esa interrupcin. Despus ejecuta la rutina de servicio de interrupcin. Al acabar, el procesador restaura el estado anterior y el programa interrumpido contina.
Estructura habitual. Acceder al dispositivo causante de la interrupcin y hacer que cese la peticin de interrupcin. Si es necesario, acceder al controlador de interrupciones para hacer lo mismo. Realizar la transferencia de datos.
El modelo es el de una tarea concurrente ms. Ejecuta a la mxima prioridad del sistema.
Entrada/salida por acceso directo a memoria El ritmo de transferencia es superior al de los otros mtodos. El instante de I/O lo marca el dispositivo con interrupciones. Hay lneas para desconectar a la CPU de la memoria.
Registros del dispositivo: IODIR: Direccin de memoria para la operacin de I/O. CONT: Contador de nmero de bytes a transferir.
Funcionamiento habitual: La CPU carga los valores en los registros del dispositivo. El dispositivo solicita el uso de la memoria: DMA-request. La CPU se lo concede: DMA-acknowledge. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin El dispositivo transfiere los datos. Para cada uno, incrementa IODIR y decrementa CONT. Cuando CONT llega a 0 se devuelve el control de la memoria a la CPU (DMA-request) y se enva una interrupcin de aviso.
I) OPERACIN DE E/S SIN DMA: Primero el controlador lee el bloque desde el drive, bit a bit en forma serial, hasta que el bloque entero este dentro del buffer interno del controlador.
Chequea si no existe ningn error. El controlador genera una interrupcin. El Sistema Operativo comienza su ejecucin, lee el bloque del buffer del controlador por byte o word de manera iterativa y lo almacena en memoria.
II) OPERACIN DE E/S COM DMA: El Sistema Operativo enva al controlador tres items de informacin: La direccin del bloque, La direccin de memoria donde ir el bloque, El nmero de bytes a transferir.
Luego, el controlador lee el bloque entero desde el dispositivo lo coloca en su buffer interno y chequea si ocurri algn error. Copia el primer byte o word en memoria principal, incrementa la direccin de memoria y decrementa la cantidad de bytes o word a transferir. El controlador genera una interrupcin. El sistema operativo ya tiene disponible el bloque de informacin en memoria.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Unidad 5. Sistemas de Archivos
5.1 Conceptos Utilizando la memoria principal los procesos pueden almacenar y tambin compartir informacin. Sin embargo, la cantidad de informacin que se puede almacenar es limitada, an con memoria virtual. Adems, deja de existir cuando el proceso termina, y --peor an-- se pierde si se corta la luz.
En sntesis, se requiere otra clase de almacenamiento, que cumpla los siguientes requisitos:
Que permita guardar grandes volmenes de informacin. Que la informacin sobreviva a los procesos que la usan. Que mltiples procesos puedan acceder a la informacin de manera concurrente.
La solucin usual es guardar la informacin en disco, organizndola lgicamente en unidades llamadas archivos. Los archivos son administrados por una parte del sistema operativo que se conoce como sistema de archivos.
Definiciones: Un fichero es un conjunto de informacin con cierta entidad y con vista a su conservacin y a su utilizacin en un entorno informtico. A la informacin contenida en un fichero se puede referenciar como un todo mediante un nombre que se le asocia a cada fichero y que lo identifica.
El sistema de ficheros es la parte del S. O. encargada de gestionar los datos almacenados en el almacenamiento secundario.
Ms formalmente, un sistema de archivos es un conjunto de tipo de datos abstractos que son implementados para el almacenamiento, la organizacin jerrquica, la manipulacin, el acceso, el direccionamiento y la recuperacin de datos. Los sistemas de archivos comparten mucho en comn con la tecnologa de las bases de datos.
En general, los sistemas operativos tienen su propio sistema de archivos. En ellos, los sistemas de archivos pueden ser representados de forma textual (ej.: el shell de DOS) o grficamente (ej.: Explorador de archivos en Windows) utilizando un gestor de archivos.
El software del sistema de archivos se encarga de organizar los archivos (que suelen estar segmentados fsicamente en pequeos bloques de pocos bytes) y directorios, manteniendo un registro de qu bloques pertenecen a qu archivos, qu bloques no se han utilizado y las direcciones fsicas de cada bloque.
Los sistemas de archivos pueden ser clasificados en tres categoras: sistemas de archivo de disco, sistemas de archivos de red y sistemas de archivos de propsito especial.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Ejemplos de sistemas de archivos son: FAT, UMSDOS, NTFS, UDF, ext2, ext3, ext4, ReiserFS, XFS, etc.
Desde el punto de vista del usuario, un archivo suele tener los siguientes atributos:
A) Nombre. Ms que nada, para ayudar a los humanos. Las reglas para nombrar archivos varan de un sistema a otro (cuntos caracteres, qu caracteres, maysculas y minsculas diferentes, extensin, etc.).
B) Tipo. Muchos sistemas clasifican los archivos en distintos tipos (por ejemplo, texto, ejecutable, etc.).
C) Contenido.
D) Tamao. Actual y mximo.
E) Fecha y hora. De creacin, de la ltima modificacin, del ltimo acceso.
F) Usuarios. Identificador del creador y del dueo actual.
G) Atributos de proteccin. Quin tiene derecho a hacer qu con el archivo.
H) Otros atributos. Oculto, sistema, respaldado, etc.
Funciones que debe ofrecer el sistema de ficheros:
1. Permitir que los usuarios puedan crear, borrar y modificar sus ficheros; 2. Permitir que los usuarios puedan compartir sus ficheros de una forma controlada; 3. Proporcionar varios tipos de acceso controlado a la hora de la comparticin; 4. Permitir que los usuarios puedan estructurar sus ficheros; 5. Permitir que los usuarios puedan ordenar la transferencia de informacin entre ficheros; 6. Proporcionar recursos para realizar respaldos y recuperaciones de informacin; 7. Permitir que los usuarios puedan referenciar sus ficheros mediante nombres simblicos; 8. Proporcionar posibilidades de cifrado y descifrado para conseguir seguridad y privacidad; INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 9. Ofrecer al usuario una interfaz amable, ofreciendo una vista lgica de los datos y de las funciones que se pueden realizar con ellos; 10. Efectuar las operaciones sobre los datos de forma independiente al dispositivo; 11. Gestionar la memoria secundaria.
Operaciones sobre archivos El sistema operativo debe permitir operaciones sobre los archivos, mediante llamadas al sistema.
Crear y eliminar. Abrir y cerrar. Leer y escribir (tpicamente, a partir de la posicin actual). Reposicionarse. Obtener y cambiar atributos. Renombrar.
La informacin acerca de un archivo, exceptuando su contenido, se guarda en una entrada del directorio. Dicha entrada contiene un puntero a la ubicacin en disco del archivo. Una interfaz muy general para la llamada al sistema que escribe en un archivo, podra ser una que especifique
Nombre del archivo. Posicin desde donde se va a escribir. Informacin a escribir (Ej., puntero y tamao)
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 5.2 Nocin de Archivo Real y Virtual Los sistemas de archivos o ficheros (en ingls: filesystem), estructuran la informacin guardada en una unidad de almacenamiento (normalmente un disco duro de una computadora), que luego ser representada ya sea textual o grficamente utilizando un gestor de archivos. La mayora de los sistemas operativos manejan su propio sistema de archivos.
Lo habitual es utilizar dispositivos de almacenamiento de datos que permiten el acceso a los datos como una cadena de bloques de un mismo tamao, a veces llamados sectores, usualmente de 512 bytes de longitud. El software del sistema de archivos es responsable de la organizacin de estos sectores en archivos y directorios y mantiene un registro de qu sectores pertenecen a qu archivos y cules no han sido utilizados. En la prctica, un sistema de archivos tambin puede ser utilizado para acceder a datos generados dinmicamente, como los recibidos a travs de una conexin de red (sin la intervencin de un dispositivo de almacenamiento).
Los sistemas de archivos tradicionales proveen mtodos para crear, mover, renombrar y eliminar tanto archivos como directorios, pero carecen de mtodos para crear, por ejemplo, enlaces adicionales a un directorio o archivo (enlace duro en Unix) o renombrar enlaces padres (".." en Unix).
Un sistema de archivos virtual (abreviado como VFS, del ingls Virtual File System), tambin denominado conmutador de sistema de archivos virtual, es una capa de abstraccin encima de un sistema de archivos ms concreto. El propsito de un VFS es permitir que las aplicaciones cliente tengan acceso a diversos tipos de sistemas de archivos concretos de una manera uniforme. Puede ser utilizada para tender un puente sobre las diferencias en los sistemas de archivos de Windows, de Mac OS y Unix, de modo que las aplicaciones pudieran tener acceso a archivos en los sistemas de archivos locales de esos tipos sin tener que saber a qu tipo de sistema de archivos estn teniendo acceso.
Un VFS especifica un interfaz (o un contrato) entre el kernel y un sistema de archivos en concreto.
La mayora de usuarios de computadoras comprendern con mucha facilidad el trmino archivo relacionndolo directamente con ejemplos tales como los archivos de texto que se pueden generar con cualquier procesador de texto. Una caracterstica de este tipo de archivos es que a mayor texto que almacena el archivo, mayor es el espacio en disco que consume dicho archivo. Por ejemplo, una lnea corta de texto ocupa menos espacio en disco que esa misma lnea copiada cien veces.
Sin embargo al hablar de archivos virtuales las cosas son diferentes, pues este tipo de archivos no consumen espacio en el disco duro, sino que se almacenan en la memoria voltil, es decir la aquel tipo de memoria cuya informacin se pierde al interrumpirse el flujo de corriente elctrica, esto es, la memoria RAM INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 5.3 Componentes de un Sistema de Archivos Tanenbaum (1997) expone los siguientes componentes de Archivos en su investigacin:
Mtodos de Acceso. Se ocupan de la manera en que se tendr acceso a la informacin almacenada en el archivo. Ejemplo: Secuencial, Directo, indexado, etc.
Administracin de Archivos. Se ocupa de ofrecer los mecanismos para almacenar, compartir y asegurar archivos, as como para hacer referencia a ellos.
Administracin de Almacenamiento Secundario. Se ocupa de asignar espacio para los archivos en los dispositivos de almacenamiento secundario.
Mecanismos de Integridad. Se ocupan de garantizar que no se corrompa la informacin de un archivo, de tal manera que solo la informacin que deba estar en el, se encuentre ah. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 5.4 Organizacin Lgica y Fsica Se refiere a las diferentes maneras en las que puede ser organizada la informacin de los archivos, as como las diferentes maneras en que sta puede ser accedida. Dado que hay 2 niveles de visin de los archivos (fsico y lgico), se puede hablar tambin de 2 aspectos de organizacin de archivos: Organizacin de archivos lgicos y de archivos fsicos.
De Archivos Lgicos. Contempla la organizacin desde el punto de vista lgico. Por ejemplo, secuencial, directo, etc.
De Archivos Fsicos. Contempla la administracin de archivos desde la perspectiva fsica, particularmente la organizacin del almacenamiento en disco a nivel de pistas y sectores.
Organizacin lgica de los ficheros. Definicin: la organizacin lgica de un fichero se refiere a la manera en que se disponen sus registros dentro del almacenamiento secundario, en base a realizar un acceso a nivel lgico.
Organizaciones comunes: A. Acceso secuencial: la informacin del fichero se procesa en orden consecutivo, por ello una operacin de lectura leer el siguiente registro y una operacin de escritura aadir el registro al final del fichero.
B. Acceso directo: se accede a los registros de un fichero sin seguir un orden particular, sino usando una clave. Si la clave es nica existen dos mtodos de bsqueda:
1. Direccionamiento disperso: se usa una funcin que tomando como entrada la clave devuelve la direccin fsica de ese registro;
2. Fichero indexado: se usa una tabla ndice en donde es significativo el orden de las claves
Organizacin fsica de los ficheros. Este tipo de organizacin muestra a su vez, 2 aspectos importantes: Mtodos de Asignacin de Espacio Libre y Asignacin de Espacio de Almacenamiento del Archivo.
Tambin J. L. Peterson; A. Silberschatz menciona los siguientes mtodos de asignacin:
Mtodos de Asignacin de Espacio Libre Un mtodo de asignacin de espacio libre determina la manera en que un Sistema Operativo controla los lugares del disco que no estn siendo ocupados. Para el control del espacio libre se puede utilizar como base alguno de los mtodos tericos: Vector de Bits, Lista Ligada, Por Agrupacin y por Contador.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Vector de Bits Se tiene un arreglo de bits, el nmero de bits que tiene, representa cada sector del disco, o sea que si los sectores 10 y 11 estn ocupados su representacin ser:
Lista Ligada Existe una cabecera en la que se tiene la direccin del primer sector vaci, ese sector a su vez, tiene un apuntador al siguiente bloque, y as sucesivamente hasta que se encuentre una marca indicando que ya no hay espacio libre.
Por Agrupacin Es similar a la lista ligada, solo que en este se tiene por cada sector, un grupo de apuntadores a varios espacios vacos, al final de cada bloque se tiene un apuntador a otro grupo de apuntadores.
Por Contador Aqu, por cada conjunto de bloques contiguos que estn vacos, se tiene por cada apuntador, un nmero de inicio y el tamao del grupo de sectores vacos. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 5.5 Mecanismos de acceso a los Archivos El trmino organizacin de ficheros se aplica a la forma en que se colocan los datos contenidos en los registros sobre el soporte informtico (disco, cinta,..) durante su grabacin.
Existen dos formas bsicas de organizacin de ficheros: secuencial y relativa. En la organizacin secuencial los registros se van grabando unos a continuacin de los otros, en el orden que se van dando de alta, mientras que en la organizacin relativa los registros se graban en las posiciones que les corresponda segn el valor que guarden en el campo clave.
El modo de acceso se refiere al procedimiento que se tiene que seguir para poder situarse en un registro determinado para poder hacer una operacin de lectura o grabacin del mismo. El modo de acceso puede ser secuencial o directo. En el modo de acceso secuencial para llegar a un registro es necesario pasar por todos los anteriores, mientras que en el modo de acceso directo se puede llegar directamente a un registro conociendo nicamente el valor del campo clave.
Al modo de acceso directo se puede llegar de varias formas:
La posicin que ocupa el registro dentro del fichero coincide con el contenido de la clave.
Calculando la posicin que ocupa el registro en el fichero mediante una transformacin del contenido del campo clave (acceso aleatorio - Hashing).
Mediante el uso de tablas de ndices. La localizacin de un registro se hace buscando en la tabla de ndices el valor del campo clave y obtenemos la posicin en que est grabado el registro dentro del fichero. (Acceso indexado - Keyed).
La eleccin de una forma de organizacin determinada est en funcin del tipo de aplicacin que le vamos a dar al fichero. Dos factores influyen directamente en la seleccin: la memoria necesaria para almacenar los datos y la velocidad de acceso a los mismos.
Ejemplo: Un fichero en el que los registros se actualicen todos juntos una vez al mes, y el tiempo necesario para la actualizacin no sea importante, no puede tener la misma organizacin que un fichero que se actualice todos los das varias veces poniendo al da los datos que contienen sus registros y el tiempo empleado para la actualizacin sea el menor posible.
Ficheros Con Organizacin Secuencial
1.- Caractersticas de la Organizacin Secuencial
Un fichero con organizacin secuencial es aquel en el que los registros se van grabando uno a continuacin de otro, sobre el soporte informtico, sin dejar huecos en medio. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
En este tipo de ficheros existe, por tanto, una correspondencia total entre el orden lgico y el orden fsico, si entendemos por orden lgico el orden en que son dados de alta y recuperados los registros, y por orden fsico el orden en que estn grabados los registros en el soporte.
Los registros normalmente estarn ordenados por el contenido de uno o ms campos para hacer ms fcil el trabajo de bsqueda, insercin y borrado de registros.
La organizacin secuencial es aconsejable para ficheros con un ndice de utilizacin muy elevado y estable.
2.- Ventajas e Inconvenientes de la Organizacin Secuencial:
Podemos citar como ventajas:
1. Aprovecha al mximo el soporte, al no dejar huecos entre los registros.
2. Rpido acceso al registro siguiente. Por lo que se hace ideal cuando en cada operacin de actualizacin o consulta se van a procesar la mayora de los registros.
3. Se pueden utilizar cualquier tipo de registros: de longitud fija, variable o indefinida.
4. Se pueden grabar en cualquier tipo de soporte, tanto en secuenciales como direccionables.
5. Todos los lenguajes de programacin disponen de instrucciones para trabajar con este tipo de ficheros.
Entre los inconvenientes destacaremos:
1. El nico modo de acceso es el acceso secuencial, por lo que para leer el registro que ocupe la posicin n es necesario leer los n-1 registros anteriores. Esto hace que este tipo de organizacin no sea adecuado para ficheros en los que se necesita procesar frecuentemente registros aislados, es decir que tengan un ndice de utilizacin bajo.
2. No se pueden insertar registros entre los que ya estn grabados. Si tenemos el fichero ordenado por el contenido de un campo y queremos dar de alta un registro, que segn ese orden debera ir entre dos registros que ya existen en el fichero, es necesario copiar todo el fichero en uno nuevo, grabando en el nuevo fichero todos los registros, insertando el registro que se quiere dar de alta en la posicin que le corresponda. Otra posibilidad es ir dando de alta los registros al final del fichero y a continuacin realizar una operacin de reordenacin de todo el fichero. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin
3. Si el fichero est grabado en un soporte secuencia por ejemplo una cinta magntica, para poder hacer modificaciones o borrado de registros es necesario hacer una copia del fichero en un fichero nuevo. Si el soporte no es secuencial las modificaciones se pueden hacer sobre el mismos registro, y el borrado se puede hacer de forma lgica, es decir, mediante la grabacin de una marca en el registro.
3.- Utilizacin de Ficheros con Organizacin Secuencial.
En el momento de utilizar los ficheros con organizacin secuencial tenemos que tener en cuenta el soporte sobre el que estn grabados, pues algunas operaciones que se pueden hacer en los soportes direccionables no se pueden hacer en los soportes secuenciales, como pueden ser las modificaciones y borrado lgico de registros.
El formato de las instrucciones que nos permiten manejar los datos contenidos en un fichero con organizacin secuencial depender del lenguaje de programacin con el que trabajemos. De forma general podemos resumir las instrucciones empleadas en el manejo de este tipo de ficheros en las siguientes:
Abrir (OPEN) Abrir un fichero para poder trabajar con sus registros. Se puede abrir de tres formas: o INPUT (I) - Slo para leer registros. o OUTPUT (0) - Slo para escribir registros. o INPUT-OUPUT (I-O) - Para leer y escribir. o EXTEND (E) - Para aadir registros al final del fichero
Cerrar (CLOSE) Cerrar el fichero, cuando ya no se va trabajar mas con sus registros.
Leer (READ) Pasar la informacin de un registro a la memoria principal del ordenador para que el programa pueda trabajar con los datos que contiene. Cada vez que se da una orden de leer se lee el siguiente registro.
Escribir (WRITE) Graba en el soporte la informacin de un registro con la informacin que tenga en la memoria principal.
Reescribir (REWRITE) Graba sobre un registro que ya existe en el fichero. Antes de utilizar esta instruccin se tiene que leer antes el registro que se va a reescribir con una orden de leer (READ).
Para poder utilizar los datos del fichero el sistema operativo utiliza un indicador, o puntero, que se coloca sealando al primer registro de datos del fichero, cuando se da la orden de Abrir (OPEN), y se va desplazando, siempre en la INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin misma direccin, cada vez que se lee o graba un registro. La estructura del fichero se completa con un registro de cabecera que contiene informacin acerca del fichero y un registro que sirve de marca de final de fichero, o EOF (EOF - End Of File), que el sistema utiliza para saber cual es el ltimo registro del fichero. El registro de final de fichero (E.O.F.) se graba, por primera vez en el momento de la creacin del fichero y se va desplazando cuando se aaden nuevos registros al final del mismo.
Variantes De La Organizacin Secuencial.
Con el fin de mejorar las prestaciones de la organizacin secuencial surgen una serie de organizaciones que son una variante de esta y que pueden ser utilizados con soportes direccionables. Las ms empleadas son:
a) La organizacin secuencial indexada, en la que los registros con los datos se graban en un fichero secuencialmente, pero se pueden recuperar con acceso directo gracias a la utilizacin de un fichero adicional, llamado de ndices, que contiene informacin de la posicin que ocupa cada registro en el fichero de datos.
b) La organizacin secuencial encadenada, que nos permite tener los registros ordenados segn un orden lgico diferente del orden fsico en el que estn grabados gracias a la utilizacin de unos campos adicionales llamados punteros.
Organizacin Secuencial-Indexada.
1.- Caractersticas de la Organizacin Secuencial-Indexada.
A los ficheros con este tipo de organizacin se les llama, tambin, ficheros indexados, por que se basa en la utilizacin de ndices, que permiten el acceso a un registro del fichero de forma directa, sin tener que leer los anteriores. Estos ndices son similares a los de los libros. Si nos interesa leer un captulo concreto podemos recurrir al ndice que nos dice en que pgina comienza, y abrimos el libro por esa pgina, sin tener que mirar en todas las pginas anteriores para localizarlo.
Las caractersticas ms relevantes de un fichero indexado, son las siguientes:
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin a) El diseo del registro tiene que tener un campo, o combinacin de campos, que permita identificar cada registro de forma nica, es decir, que no pueda haber dos registros que tengan la misma informacin en l. A este campo se le llama campo clave y es el que va a servir de ndice. Un mismo fichero puede tener ms de un campo clave, pero al menos uno de ellos no admitir valores duplicados y se le llama clave primaria. A las restantes se les llama claves alternativas.
b) Permiten utilizar el modo de acceso secuencial y el modo de acceso directo para leer la informacin guardada en sus registros.
El modo de acceso directo se hace conociendo el contenido del campo clave del registro que queremos localizar. Con esa informacin el sistema operativo puede consultar el ndice y conocer la posicin del registro dentro del fichero.
En el modo de acceso secuencial los registros son ledos ordenados por el contenido del campo clave, independientemente del orden en que se fueron grabando (El orden lgico no es igual al orden fsico), debido a que el acceso a los datos se hace a travs del ndice, que para hacer ms fcil la bsqueda de los registros permanece siempre ordenado por el campo clave.
c) Solamente se puede grabar en un soporte direccionable. Ej.: disco magntico. Si esto no fuera as no podra emplear el acceso directo.
2.- Estructura de los Ficheros con Organizacin Secuencial-Indexada.
Un archivo con organizacin secuencial indexada est formado por:
A) El archivo secuencial o rea de datos: Es el rea en la que se escriben los registros cuando el archivo es creado el fichero.
Los registros de un fichero con organizacin secuencial-indexada se graban en un soporte de almacenamiento directo, en secuencia ascendente, de acuerdo con los valores de la clave y en pginas o bloques de longitud fija.
B) El rea de ndices es creada por el sistema al mismo tiempo que se van almacenando los datos. Contiene una tabla que asocia las claves con las direcciones de los registros en el rea de datos.
Cada entrada del rea de ndices est formada por el valor ms alto de la clave de cada grupo de registros y un puntero con la direccin del primer registro del grupo.
C) Un rea de Excedentes (o de overflow) donde se graban los registros que no tienen sitio en el rea de datos. Los nuevos registros se insertan y quedan enlazados entre s mediante punteros conservando el orden lgico que marca la clave o ndice principal.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin Del tratamiento de los ndices y punteros se encarga el sistema operativo por lo que no va a crear problemas al usuario cuando maneja este tipo de ficheros. El usuario sabe lo que sucede cuando solicita una consulta de un registro, pero no sabe como se realiza internamente esa consulta.
3.- ndices A Varios Niveles.
Existen diferentes formas de manejar los ndices, dependiendo del sistema operativo o el lenguaje de programacin con el que se trabaja. Las organizaciones de ndices mas utilizadas en la prctica son la ISAM (Indexed Sequential Access Method) y la VSAM (Virtual Storage Access Method).
Cuando el fichero de datos tiene muchos registros puede que el fichero de ndices se haga demasiado largo y las bsquedas en l se vayan haciendo lentas, ya que cuantos ms registros tenga, mas crece el tiempo necesario para localizar un registro. Para evitar este problema se recurre a la utilizacin de ndices a varios niveles, de forma que se sustituye un rea de ndices nica, pero de m tamao grande, por varias reas de ndices de menor tamao donde la bsqueda es ms rpida.
Para damos una idea de c como se organizaran los ndices a varios niveles podemos emplear un ejemplo de un fichero, con organizacin ISAM, grabado en un disco duro con un cierto nmero de platos. Podemos representar de forma muy simplificada la posible estructura del almacenamiento del archivo que constar de las siguientes reas de ndices:
1 Nivel: (ndice maestro) Seala el cilindro en que se encuentra almacenado el registro que nos interesa.
2 Nivel: (ndice de cilindros) Seala en que pista est ese registro, dentro del cilindro.
3 Nivel: (ndice de pista) Seala, dentro de la pista, en que bloque, o sector, se encuentra el registro.
4.- Ventajas e Inconvenientes de la Organizacin Secuencial Indexada
La organizacin secuencial indexada permite el acceso directo a los registros, sin los inconvenientes de la existencia de huecos como en la organizacin directa, y el tratamiento secuencial de los registros, propio de la organizacin secuencial.
Esta organizacin es muy utilizada, tanto para procesos en los que intervienen pocos registros como para aquellos en los que se maneja el fichero completo.
Las principales ventajas:
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 1. Permite el acceso secuencial. Esto es muy interesante cuando la tasa de actividad es alta. En el acceso secuencial, adems, los registros se leen ordenados por el campo clave.
2. Permite el acceso directo a los registros. Realmente emula el acceso directo, empleando para ello las tablas de ndices. Primero busca la clave en el rea de ndices y luego va a leer al rea de datos en la direccin que le indica la tabla.
3. Se pueden actualizar los registros en el mismo fichero, sin necesidad de crear un fichero nuevo de copia en el proceso de actualizacin. Permite tanto el PROCESO POR LOTES (procesos en diferido que hay que preparar previamente) como el PROCESO EN TIEMPO REAL (las actualizaciones de la informacin se llevan a cabo en el momento en que se producen).
Inconvenientes:
1. Ocupa mas espacio en el disco que los ficheros secuenciales, debido al uso del rea de ndices.
2. Tiene tendencia a que aumente el tiempo medio de acceso a los registros, cuando se producen muchas altas nuevas con claves que hay que intercalar entre las existentes, ya que aumenta el rea de overflow. Requiere una reorganizacin peridica.
3. Solo se puede utilizar soportes direccionables.
4. Obliga a una inversin econmica mayor, por la necesidad de programas y, a veces, m hardware mas sofisticado.
Organizacin Directa (Ramdom, Aleatoria, Relativa)
1.- Caractersticas de La Organizacin Directa.
La organizacin directa est basada en la independencia entre el orden en que se dan de alta los registros y la posicin en la que se graban en el soporte. La posicin en la que se graban los registros est en funcin de la informacin que tenga el campo clave del registro.
En esta organizacin el espacio total disponible para el fichero se divide en celdas destinadas cada una de ellas a contener un registro y slo uno. Las celdas estn numeradas correlativamente y se puede acceder al contenido de un registro, de forma directa, si conocemos la direccin relativa de la celda en la que est grabado.
Esta organizacin slo es posible en soportes direccionables, pues el acceso a los registros se hace sin necesidad de leer los anteriores. Es la organizacin INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin que tienen un menor tiempo de acceso a un registro, en acceso directo. Se usan cuando el acceso a los datos de un registro se hace siempre empleando la misma clave y la velocidad de acceso a un registro es lo que ms nos importa.
Como queda dicho para poder localizar un registro es necesario conocer el valor de la clave. A las tcnicas utilizadas para convertir el valor de la clave de un registro C, en la direccin relativa de la celda del fichero en que va a estar grabado D se le llama tcnicas de direccionamiento. El elegir una buena tcnica de direccionamiento es fundamental en este tipo de organizacin.
A la hora de elegir una tcnica de direccionamiento debemos pedirle:
1) Que sea fcil de aplicar. Tenemos que tener en cuenta que en esta organizacin es el usuario el que se encarga de calcular la posicin en la que se van a guardar los registros y no como en los ficheros indexados que era el sistema operativo el que se encargaba de esto.
2) Que deje el menor nmero de huecos posible. Se debe procurar que el mtodo seleccionado nos proporcione valores entre 1 y n, siendo n el nmero de celdas que tiene el fichero, sin dejar celdas vacas.
3) Que las claves de registros diferentes nos den direcciones diferentes. Cuando dos o ms claves diferentes proporcionan, al aplicar la tcnica de direccionamiento, la misma direccin se dice que produce sinnimos. Tambin se dice que esos registros colisionan.
Cuando las claves de dos registros dieron lugar a un sinnimo (indican la misma celda), slo uno de ellos puede ser almacenado en esa celda y tenemos que tener previsto algn procedimiento para calcular la posicin en la que se tiene que grabar el otro registro. Los mtodos ms empleados para el tratamiento de sinnimos son los siguientes:
a) Almacenar el registro que colisiona en el primer hueco libre que se encuentre a partir de la direccin que le corresponde, y que est ya ocupada. A este mtodo se le conoce como bsqueda lineal o direccionamiento abierto.
b) Creando una zona especial del fichero en la que se grabarn todos los registros que dieron lugar a un sinnimo. A esta zona del fichero se le suele llamar rea de desbordamiento (overflow) o de excedentes. Este es el sistema ms empleado.
Clasificacin de Las Tcnicas de Direccionamiento
El mayor obstculo para el uso de los archivos relativos es la necesidad de identificar los registros lgicos por un nmero relativo de registro, cuando en realidad el usuario los va a identificar por el valor de un campo del registro, como puede ser el n de factura, el D.N.I. de una persona, etc. Para poder transformar el valor de la clave en la direccin relativa del registro en el fichero INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin hay una gran cantidad de tcnicas de direccionamiento que podemos clasificar en tres grupos:
- Direccionamiento directo - Por asociacin - Aleatorio (hashing)
A) Direccionamiento directo:
El caso ptimo de aplicacin de esta organizacin se da cuando las claves en el fichero son numricas y toman valores de 1 a n sin huecos intermedios. En este caso la clave k nos conducir a la celda k-sima del fichero pudiendo acceder fcilmente a los datos de ste registro. El campo clave de cada registro contiene su direccin en el fichero. Ej.: fichero de facturas donde tomamos como clave el n de factura.
B) Direccionamiento por asociacin:
Los valores de la clave se almacenan en una tabla en memoria en la que cada elemento asocia cada valor de la clave con la direccin relativa en la que est almacenado el registro. Puesto que la tabla debe prever la inclusin de todas las direcciones posibles del archivo, su principal inconveniente resulta determinar su tamao y mantenerla ordenada por los valores de la clave.
Ejemplo: Clave ------ ------------ C1 1 C2 2 C3 3
C) Direccionamiento aleatorio (Hashing):
En este caso hay que buscar una funcin, a ser posible biunvoca, que relacione los posibles valores de la clave con el conjunto de nmeros correlativos de celda. Esta funcin consistir en realizar una serie de clculos matemticos con el valor de la clave hasta obtener un nmero entre 1 y n, siendo n el nmero de celdas que tiene el fichero.
El principal inconveniente que presenta este tipo de direccionamiento es el que se pueden producir sinnimos ya que el nmero que se obtiene al aplicar los clculos es un nmero aleatorio y puede que dos claves diferentes den como resultado el mismo nmero, y eso nos obliga a tener previsto un mtodo para el tratamiento de los sinnimos. En los dos tipos anteriores nunca se producen sinnimos.
Ventajas e Inconvenientes de La Organizacin Directa Podemos citar como ventajas:
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 1. Al emplear un modo de acceso directo son los ficheros que permiten acceder de la forma ms rpida posible a un registro cualquiera del fichero. Por tanto es la organizacin ideal para los procesos en los que el tiempo de acceso a los registros es lo ms importante, siempre y cuando el acceso se haga siempre por el campo clave.
El caso ms favorable para utilizar la organizacin directa es cuando las claves son numricas y permiten utilizar el direccionamiento directo.
2. Permite la actualizacin de los registros en el mismo fichero, sin necesidad de copiar el fichero.
3. Permite realizar procesos de actualizacin en tiempo real.
Entre los inconvenientes destacan:
1. La relacin entre clave y direccin (N de registro) la define el programador y slo l es responsable de manejarla correctamente. El acceso a un registro se hace indicndole al sistema su direccin relativa dentro del fichero (n de registro) y la comprobacin de s el registro ledo es o no el que buscamos la tiene que hacer el programador, el sistema operativo no nos avisa de posibles errores que se produzcan el clculo de la direccin.
2. Cuando el rango de claves posibles es muy superior al de claves que realmente estn grabadas en el fichero, habr mucho espacio desaprovechado puesto que tenemos que reservar espacio a todos y cada uno de los registros tericamente posibles. Pueden existir celdas vacas.
3. El algoritmo de direccionamiento debe garantizamos que no se nos producirn dos direcciones iguales para dos valores de clave distintos. En el caso de no elegir un buen mtodo de direccionamiento puede que la aparicin de sinnimos haga complicado el acceso a algunos registros debido a que tendramos que emplear un mtodo de tratamiento de sinnimos que debe controlar el programador.
4. No permite el acceso secuencial a los registros por otro orden que no sea el orden en que estn grabados en el soporte.
5. Slo se puede utilizar un campo clave para acceder a los registros. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 5.6 Manejo de Espacio de Memoria Secundaria La gestin de la memoria secundaria se realiza mediante los sistemas de ficheros. Los datos en la memoria secundaria se almacenan en forma de ficheros o archivos.
El S.O. determina en qu zonas de la Memoria secundaria se pueden almacenar datos
La memoria secundaria requiere que la computadora use sus canales de entrada/salida para acceder a la informacin y se utiliza para almacenamiento a largo plazo de informacin persistente.
Que sin embargo, la mayora de los sistemas operativos usan los dispositivos de almacenamiento secundario como rea de intercambio para incrementar artificialmente la cantidad aparente de memoria principal en la computadora. La memoria secundaria tambin se llama "de almacenamiento masivo".
Habitualmente, la memoria secundaria o de almacenamiento masivo tiene mayor capacidad que la memoria primaria, pero es mucho ms lenta. En las computadoras modernas, los discos duros suelen usarse como dispositivos de almacenamiento masivo. El tiempo necesario para acceder a un byte de informacin dado almacenado en un disco duro es de unas milsimas de segundo (milisegundos). En cambio, el tiempo para acceder al mismo tipo de informacin en una memoria de acceso aleatorio se mide en mil-millonsimas de segundo (nanosegundos).
Los espacios de direcciones involucrados en el manejo de la memoria son de tres tipos:
Direcciones fsicas: Son aquellas que referencian alguna posicin en la memoria fsica.
Direcciones lgicas: Son las direcciones utilizadas por los procesos. Sufren una serie de transformaciones, realizadas por el procesador (la MMU), antes de convertirse en direcciones fsicas.
Direcciones lineales: Direcciones lineales se obtienen a partir de direcciones lgicas tras haber aplicado una transformacin dependiente de la arquitectura. Los programas de usuario siempre tratan con direcciones virtuales, nunca ven las direcciones fsicas reales.
Dado que la memoria principal es voltil y muy pequea para almacenar todos los datos y los programas en forma permanente, el sistema de cmputo provee memoria secundaria para respaldar la memoria principal.
La mayora de las computadoras modernas utilizan discos como medio de almacenamiento en lnea, para programas y datos.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin El sistema operativo es responsable de las siguientes actividades respecto a la administracin de la memoria secundaria:
Administracin del espacio de memoria libre. Alojamiento de memoria Planificacin del disco
Organizar el almacenamiento de datos en memoria secundaria Sabemos que en los ordenadores cualquier cosa se almacena en forma de tiras binarias, compuestas por unos y ceros. La msica, fotos, documentos, e incluso programas no son ms que enormes colecciones de 1 y 0. Para hacer uso de ello, es necesario que estas tiras de 1 y 0 que representan datos se almacenen en la memoria principal, junto con los programas que los gestionan. Pero la memoria principal es limitada y cara comparado con otro tipo de memoria: la secundaria es decir, discos duros, disquetes, CD, dvd, memorias flash, etc.
Estos dispositivos de memoria secundaria tienen en general un coste por bit muchsimo menor que el de la memoria principal, pero son mucho ms lentos. Adems, sus contenidos perduran aunque no dispongan de corriente elctrica (cosa que no ocurre con la memoria principal). Pues bien, el S.O. es el encargado de gestionar estos dispositivos, que son muy distintos entre s, de tal manera que los programas y, en ltima instancia, los usuarios tengan una experiencia similar con todos ellos. Bsicamente, el S.O. organiza la informacin en el interior de los dispositivos de memoria secundaria mediante un sistema de ficheros y directorios.
Organizando la informacin en ficheros se logra que dispositivos heterogneos tengan un comportamiento similar. Cada S.O. utiliza uno o varios sistemas de ficheros. Por ejemplo, FAT o NTFS, utilizados por Windows; EXT2 o EXT3, utilizado por Linux; ISO-9660, que es un sistema utilizado por los CD-ROM, etc.
Gestionar la carga de ejecutables desde la memoria secundaria a la principal Con todos los ficheros que puede haber en un dispositivo de almacenamiento secundario, podemos hacer dos grandes grupos:
Los que contienen datos Los que contienen cdigo ejecutable
En el primer grupo podemos incluir cualquier fichero que contenga informacin capaz de ser manipulada por los programas de aplicacin. Por ejemplo, imgenes GIF o JPG, sonido MP3, ASF, AU video AVI, MPG documentos de texto de Word, de OpenOffice, de WordPerfect, Hojas de clculo, bases de datos o cualquier otro tipo de dato imaginable. Hay muchos ficheros en cualquier disco duro que se pueden incluir en este grupo. Algunos de ellos, ni siquiera los manejamos directamente. Las aplicaciones se encargan de manipularlos sin necesidad de que les prestemos atencin ninguna. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin En el segundo grupo se incluyen todos aquellos ficheros que contienen cdigo que la CPU debe interpretar: son los que conforman los programas y aplicaciones. Ejemplo de ello pueden ser los EXE o DLL de Windows. Pues bien, cuando iniciamos un programa, realmente le estamos pidiendo al S.O. que entregue a la CPU una serie de rdenes almacenadas en uno o varios ficheros. Esta accin es ms complicada de lo que parece, porque en los SO actuales, normalmente puede haber en ejecucin ms de un programa a la vez. Pues bien, es el S.O. el que carga el cdigo desde la memoria secundaria a la principal, haciendo todos los preparativos necesarios para recibir al nuevo programa. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 5.7 Modelo Jerrquico A este modelo se le llama rbol ya que se usa una estructura de rbol invertida con las races en la parte superior del diseo para su representacin. Es similar al modelo en red ya que los datos se representan mediante registros llamados nodos y las relaciones se suelen llamar lazos o enlaces. Sus caractersticas son:
Una coleccin de arbole forman una BD Padre es un nodo vinculado a otros de nivel inferior Gemelos son los nodos al mismo nivel y tienen el mismo padre Hojas son los nodos que no tienen hijos Altura es la cantidad de niveles Camino son las lneas que unen los nodos no puede haber mas de un camino al mismo sitio o nodo Rama es un camino que termina en una hoja Familia es el conjunto de padres e hijos, etc. Momento es el nmero total de nodos en un rbol Peso es la cantidad de hojas que tiene el rbol
Un sistema de archivos tiene directorios que asocian un nombre de archivo a cada archivo, usualmente conectando el nombre de archivo a un ndice en una tabla de asignacin de archivos de algn tipo (como FAT en sistemas de archivos MS-DOS o los i-nodos de los sistemas Unix).
La estructura de directorios suele ser jerrquica, ramificada o "en rbol", aunque en algn caso podra ser plana. En algunos sistemas de archivos los nombres de archivos son estructurados, con sintaxis especiales para extensiones de archivos y nmeros de versin. En otros, los nombres de archivos son simplemente cadenas de texto y los meta datos de cada archivo son alojados separadamente.
En los sistemas de archivos jerrquicos, usualmente, se declara la ubicacin precisa de un archivo con una cadena de texto llamada "ruta" (o path en ingls). La nomenclatura para rutas vara ligeramente de sistema en sistema, pero mantienen por lo general una misma estructura. Una ruta viene dada por una sucesin de nombres de directorios y subdirectorios, ordenados jerrquicamente de izquierda a derecha y separados por algn carcter especial que suele ser una barra ('/') o barra invertida ('\') y puede terminar en el nombre de un archivo presente en la ltima rama de directorios especificada.
Los archivos son almacenados por medio de directorios, esta clasificacin se de acuerdo a la conveniencia del usuario o de la empresa. La estructura tiene una forma de rbol con raz, este mtodo es el ms utilizado debido a que la revisin o bsqueda se realiza de forma sencilla. Para acceder a los archivos que se almacenan en un sistema jerrquico, el usuario debe indicar el o los directorios que se deben recorrer para localizar el archivo deseado, a esto se le denomina ruta de acceso del archivo. La ruta de acceso puede ser de dos formas:
Ruta absoluta.- Este tipo de ruta de acceso inicia siempre con una diagonal INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin invertida \ C:\Edit c:\SOS\sistemas\report.txt
Ruta relativa.- Este tipo de ruta de acceso realiza la bsqueda del archivo en el directorio de trabajo actual, si el archivo no se localiza aqu, el S.O. lo buscar en los directorios especificados en el PATH de un archivo con extensin .BAT. C:\Edit report.txt
Estructura del sistema de ficheros. El nombre simblico de un fichero puede estar formado por una raz y una extensin.
Un directorio es una estructura que permite organizar los ficheros de un sistema.
Los nombres simblicos de los ficheros deben ser nicos dentro del directorio. Para identificar un fichero es necesario dar su direccin completa partiendo del directorio raz (pathname o ruta de acceso). (Ejemplo: \Directorio1\Directorio3\Fichero4)
Conceptos: 1. Directorio de trabajo (working directory o directorio activo). Se puede dar la direccin de un fichero a partir del directorio de trabajo (ruta de acceso relativa). (Ejemplo: si el directorio de trabajo es Directorio1 Directorio3\Fichero4)
2. Lista de bsqueda. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin A cada proceso se le asigna una lista de direcciones de directorios, de forma que si el proceso hace referencia a un fichero y este no esta en su directorio de trabajo, se busca en los directorios que indica dicha lista de bsqueda.
3. Ficheros que hacen referencia a dispositivos de E/S.
4. Enlace (Link). Es un mecanismo que permite que un determinado fichero se vea en dos puntos distintos de la estructura sin necesidad de que existan dos copias del mismo fichero
Estructura interna de un directorio. Un directorio se implementa generalmente mediante una tabla, donde cada fila corresponde a uno de los elementos que cuelga de ese directorio. Con esta tabla se puede obtener:
Conocimiento sobre los elementos que dependen del directorio;
Acceso a un elemento directamente: si el elemento es un directorio se obtendr la direccin donde comienza la tabla que lo representa; en caso de que sea un fichero se obtendr la direccin de comienzo de su tabla de ndices o la direccin del primer bloque del fichero, dentro de la FAT o directamente al bloque del disco que lo contiene;
Localizacin de un fichero o directorio dada su ruta de acceso: se comienza buscando en la tabla del directorio raz la direccin de la segunda referencia del pathname y as sucesivamente hasta hallar el componente requerido o producirse un error debido a que alguna de las referencias no se encuentren en sus respectivas tablas.
En dicha tabla se guarda informacin esencial de cada uno de los elementos: tamao del fichero, fecha de creacin y de ltimo acceso, tipo de fichero, etc.
Por ejemplo, UNIX solo almacena el nombre simblico del fichero y el nmero de i-node, ya que adems gestiona la tabla de i-nodes donde guarda la INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin informacin esencial de cada fichero: tamao, propietario del fichero y las direcciones para localizar los bloques de datos del fichero en el disco. Existen trece direcciones que se ajustan al siguiente
La Jerarqua nos lleva a una divisin de la direccin a memoria, donde encontramos el bloque en el nivel de la jerarqua y un indicador del elemento en el bloque.
Los niveles de son:
Nivel 1: Memoria cach: es una clase de memoria RAM esttica de acceso aleatorio y alta velocidad.
Nivel 2: Memoria Principal: es donde son ejecutados los programas y procesos de una computadora y es el espacio real que existen en memoria para que se ejecuten los procesos.
Nivel 3: Memoria virtual: divide la memoria en bloques y los va asignando a los diferentes procesos. Adems, de este modo, no es necesario tener todo el cdigo del programa en ejecucin en la memoria (nos bastan ciertos bloques). Asimismo, podemos ejecutar programas de tamao ms grande que la memoria principal. Todo esto nos permite una mayor cantidad de procesos simultneos en memoria. INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin 5.8 Mecanismos de Recuperacin en Caso de Falla Debido a que los archivos se mantienen tanto en memoria principal como en el disco, debemos asegurarnos de que un fallo del sistema no de por resultado la perdida de datos o inconsistencia en los mismos.
La destruccin de la informacin, ya sea accidental o intencional, es una realidad y tiene distintas causas:
Fallas de hardware y de software. Fenmenos meteorolgicos atmosfricos. Fallas en el suministro de energa. Incendios e inundaciones. Robos, vandalismo (incluso terrorismo). Etc.
Esta posible destruccin de la informacin debe ser tenida en cuenta por:
Los sistemas operativos en general. Los sistemas de archivos en particular.
Una tcnica muy usada para asegurar la disponibilidad de los datos es realizar respaldos peridicos:
Hacer con regularidad una o ms copias de los archivos y colocarlas en lugar seguro.
Todas las actualizaciones realizadas luego del ltimo respaldo pueden perderse.
Otra tcnica es pasar todas las transacciones a un archivo, copindolas en otro disco: Genera una redundancia que puede ser costosa. En caso de fallas en el disco principal, puede reconstruirse todo el trabajo perdido si el disco de reserva no se da tambin.
Tambin existe la posibilidad del respaldo incremental: Durante una sesin de trabajo los archivos modificados quedan marcados. Cuando un usuario se retira del sistema (deja de trabajar), un proceso del sistema efecta el respaldo de los archivos marcados. Se debe tener presente que es muy difcil garantizar una seguridad absoluta de los archivos.
El mtodo correcto de manejar fallos consiste bsicamente en detectarlos a tiempo y de forma correcta. La inclusin de equipos de test en el sistema es esencial para mantener esta capacidad de monitorizacin.
INSTITUTO TECNOLGICO DE VERACRUZ SISTEMAS OPERATIVOS PLAN 2010 X COMPETENCIAS Lic. Martha Martnez Moreno Depto. De Sistemas y Computacin En cualquier caso, la cada total o parcial del sistema se puede subsanar en parte si hay puntos de restauracin del sistema (chkpt). Esta posibilidad aumenta la disponibilidad de recuperacin en caso de fallos.
Un Caso Prctico Los diseadores de Windows (Microsoft, 2000) disearon un nuevo sistema de archivos, el sistema de archivos de W2K (NTFS), que cumple requisitos de estaciones de trabajo y servidores.
La esencia de recuperacin, est en el registro. Cada operacin que modifica el sistema de archivos se trata como una transaccin, se registra en un archivo de registro. Por medio del registro, una transaccin parcialmente completada en el momento de la cada del sistema, puede rehacerse o deshacerse ms tarde, cuando se recupere el sistema.
Pasos a dar para asegurar la recuperabilidad:
NTFS primero lleva al registro del sistema de archivo para grabar en el archivo de registro de la cach, cualquier transaccin que modifique la estructura del volumen. NTFS modifica el volumen (en la cach). El gestor de cach llama al registro del sistema de archivos para indicarle que lleve el archivo de registro al disco. Una ves que el archivo de registro actualizado est seguro en el disco, el gestor de cach lleva los cambios del volumen al disco.