You are on page 1of 4

Sistemas de archivos.

La gestin adecuada del acceso a disco es oro de los aspectos i m p o r t a n t e s e n e l p r o c e s o d e a d m i n i s t r a c i n d e s i s t e m a s o p e r a t i v o s multiusuario y multitarea y es imprescindible mantener una estructura bsica con un cierto nivel organizativo. El sistema operativo interacta con los usuarios y las aplicaciones, y se hace necesario un m o d e l o d e seguridad dependiente de la forma en que se almacenan los ficheros en los dispositivos. Un sistema de archivos puede verse desde dos c a t e g o r a s l g i c a s d e ficheros Archivos compartidos con otras mquinas o privados. Archivos variables o estticos. Sistema de archivos son los mtodos y estructuras de datos que un sistema operativo utiliza para seguir la pista de los archivos de un disco o particin; es decir, es la manera en la que se organizan los archivos en el disco. El trmino tambin es utilizado para referirse a una particin o disco que se est utilizando para almacenamiento, o el tipo del sistema de archivos que utiliza. As uno puede decir tengo dos sistemas de archivo refirindose a que tiene dos particiones en las que almacenar archivos, o que uno utiliza el sistema de archivos extendido, refirindose al tipo del sistema de archivos. La diferencia entre un disco o particin y el sistema de archivos que contiene es importante. Unos pocos programas (incluyendo, razonablemente, aquellos que crean sistemas de archivos) trabajan directamente en los sectores crudos del disco o particin; si hay un archivo de sistema existente all ser destruido o corrompido severamente. La mayora de programas trabajan sobre un sistema de archivos, y por lo tanto no utilizarn una particin que no contenga uno (o que contenga uno del tipo equivocado). Antes de que una particin o disco sea utilizada como un sistema de archivos, necesita ser iniciada, y las estructura de datos necesitan escribirse al disco. Este proceso se denomina construir un sistema de archivos. La mayora de los sistemas de archivos UNIX tienen una estructura general parecida, aunque los detalles exactos pueden variar un poco. Los conceptos centrales son superbloque, nodo-i, bloque de datos, bloque de directorio, y bloque de indireccin. El superbloque tiene informacin del sistema de archivos en conjunto, como su tamao (la informacin precisa aqu depende del sistema de archivos). Un nodo-i tiene toda la informacin de un archivo, salvo su nombre. El nombre se almacena en el directorio,

junto con el nmero de nodo-i. Una entrada de directorio consiste en un nombre de archivo y el nmero de nodo-i que representa al archivo. El nodo-i contiene los nmeros de varios bloques de datos, que se utilizan para almacenar los datos en el archivo. Slo hay espacio para unos pocos nmeros de bloques de datos en el nodo-i; en cualquier caso, si se necesitan ms, ms espacio para punteros a los bloques de datos son colocados de forma dinmica. Estos bloques colocados dinmicamente son bloques indirectos; el nombre indica que para encontrar el bloque de datos, primero hay que encontrar su nmero en un bloque indirecto. Los sistemas de archivos UNIX generalmente nos permiten crear un agujero en un archivo (esto se realiza con la llamada al sistema lseek(); compruebe su pgina de manual), lo que significa que el sistema de archivos simplemente intenta que en un lugar determinado en el archivo haya justamente cero bytes, pero no existan sectores del disco reservados para ese lugar en el archivo (esto significa que el archivo utilizar un poco menos de espacio en disco). Esto ocurre frecuentemente en especial para pequeos binarios, libreras compartidas de Linux, algunas bases de datos, y algunos pocos casos especiales. (los agujeros se implementan almacenando un valor especial en la direccin del bloque de datos en el bloque indirecto o en el nodo-i. Esta direccin especial indica que ningn bloque de datos est localizado para esa parte del archivo, y por lo tanto, existe un agujero en el archivo)

Los sistemas operativos multiprogramados necesitan del concepto de proceso. El sistema operativo debe entremezclar la ejecucin de un nmero de procesos para maximizar la utilizacin de los recursos del ordenador. Al mismo tiempo, los sistemas de tiempo compartido deben proporcionar un tiempo de respuesta razonable. El sistema operativo debe asignar recursos a los procesos de acuerdo a una poltica especfica (ciertas funciones o aplicaciones son de mayor prioridad), mientras impide los interbloqueos. Por ltimo, el sistema operativo debe ofrecer un soporte para llevar a cabo la comunicacin entre procesos. El concepto de proceso es clave en los sistemas operativos modernos. La gestin del procesador mediante multiprogramacin, revolucion la concepcin de los sistemas operativos, e introdujo el trmino proceso como elemento necesario para realizar dicha gestin. Por lo dems, este tema trata sobre la definicin de proceso, el estudio de sus propiedades, y la gestin que realiza el sistema operativo para crear la abstraccin de proceso, aunque esto ltimo se completar en el tema de planificacin. Por ltimo, descubriremos que el concepto de proceso encierra, en realidad, dos caractersticas potencialmente independientes: por un lado, es una unidad a la que se le asigna y posee recursos y, por otro, es una unidad planificable. Basndonos en esta distincin

emprenderemos el estudio de los threads (hebra o hilo), o tambin llamados procesos ligeros .

Qu es un proceso ? Hasta ahora hemos utilizado siempre el trmino programa. A partir de ahora distinguiremos entre programa y proceso. Un programa es una secuencia de instrucciones escrita en un lenguaje dado. Un procesoes una instancia de ejecucin de un programa, caracterizado por su contador de programa, su palabra de estado, sus registros del procesador, su segmento de texto, pila y datos, etc. Un programa es un concepto esttico, mientras que un proceso es un concepto dinmico. Es posible que un programa sea ejecutado por varios usuarios en un sistema multiusuario, por cada una de estas ejecuciones existir un proceso, con su contador de programa, registros, etc. El sistema operativo necesita el concepto de proceso para poder gestionar el procesador mediante la tcnica de multiprogramacin o de tiempo compartido, de hecho, el proceso es la unidad planificable, o de asignacin de la CPU.

Estados de un proceso y Transiciones de estado 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 eventoque le permita poder proseguir su ejecucin. Hay otros estados de los procesos, pero en la presente exposicin 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. Transiciones de estado de los procesos A continuacin se dan ejemplos de eventos que pueden provocar transiciones de estado en un proceso en este modelo de tres estados (ver figura 2.1). La mayora de estos eventos se discutirn con profundidad a lo largo del curso:

De ejecucin Bloqueado: al iniciar una operacin de E/S, al realizar una operacin WAIT sobre un semforo a cero (en el tema de procesos concurrentes se estudiarn los semforos). De ejecucin Listo: por ejemplo, en un sistema de tiempo compartido, cuando el proceso que ocupa la CPU lleva demasiado tiempo ejecutndose continuamente (agota su cuanto) el sistema operativo decide que otro proceso ocupe la CPU, pasando el proceso que ocupaba la CPU a estado listo. De Listo en ejecucin: cuando lo requiere el planificador de la CPU (veremos el planificador de la CPU en el tema de planificacin de procesos). De Bloqueado Listo: se dispone del recurso por el que se haba bloqueado el proceso. Por ejemplo, termina la operacin de E/S, o se produce una operacin SIGNAL sobre el semforo en que se bloque el proceso, no habiendo otros procesos bloqueados en el semforo. Obsrvese que de las cuatro transiciones de estado posibles, la nica iniciada por el proceso de usuario es el bloqueo, las otras tres son iniciadas por entidades externas al proceso.

Interpretacin de la figura. Como podemos observar en esta figura tenemos una serie de transiciones posibles entre estados de proceso, representados a partir mediante una gama de colores. Estos colores hay que interpretarlos de forma que, el color del borde de los estados representa a dichos estados, los colores dentro de los circulos nos dicen las posibles alternativas de acceso hacia otro estado, y los colores de las flechas nos representan hacia que estado nos dirigimos si seguimos la misma. Un proceso es un programa o servicio normalmente en estado de ejecucin o que esta siendo utilizado por Ubuntu. Por ejemplo, si estas navegando con Firefox, tendrs un proceso en ejecucin en el mismo momento en tu sistema.

You might also like