Vous êtes sur la page 1sur 36

Unidad 3.

Software del Sistema Operativo


El software del sistema operativo en un sistema computacional desempea un papel por dems importante, permitir que los usuarios puedan interactuar con el sistema. El software del sistema operativo se mantiene funcionando durante todo el tiempo que una computadora se encuentra encendida, sin embargo su labor no es tan visible como la labor del software de aplicacin, el cual analizaremos en la unidad nmero 4. Cada vez que inicias una nueva aplicacin, el software del sistema operativo tiene que disponer de todo lo necesario para que dicha aplicacin funcione, de entrada debe asignarle memoria RAM. Pero adems las aplicaciones demandan de recursos durante el tiempo que se mantienen funcionando, piensa que ests trabajando con MS Word y requieres imprimir un documento. El sistema operativo debe hacer lo que sea necesario para que el dispositivo de hardware, en este caso la impresora responda a la aplicacin de manera satisfactoria, cmo, pues permitindole a esta imprimir. Esta comunicacin entre la aplicacin y la impresora es administrada por el sistema operativo. Piensa que mientras el sistema operativo est atendido lo anteriormente descrito, otras aplicaciones estn tambin ejecutndose y que tambin necesitan que les sea asignada memoria RAM, probablemente tambin requieran establecer comunicacin con los dispositivos de hardware.

Figura 1. Cualquiera que sea el sistema operativo que prefieras, desempea las mismas funciones. La interrogante es, Cul de ellos las desempea mejor.

El sistema operativo tiene la capacidad de administrar todos esos procesos y miles ms, sin embargo, su labor no es del todo visible a nivel de usuario. Piensa, cuando abres un archivo ste es desplegado por la aplicacin correspondiente, bast quizs con que localizaras el archivo e hicieras doble click sobre l para que este fuera abierto, al menos eso es lo que a nivel de usuarios percibes. Sin embargo digamos que tras bambalinas el sistema operativo tuvo que realizar todo un conjunto de procesos a nivel interno para que el archivo pudiera ser abierto, procesos que implicaron el manejo de interrupciones, manejo de seales elctricas, direcciones fsicas y dems elementos que se analizarn en breve en el curso.

Pgina1

No importa qu sistema operativo utilices, ya sea Windows, Linux, Solaris, Etc., El sistema operativo realiza entonces muchas tareas, y para responder a estas, el sistema operativo debe: Administrar dispositivos, Administrar memoria, Compartir recursos y Controlar los procesos.

El estudiar estas funciones te ayudar a comprender los tipos de problemas que hacen que el sistema computacional funcione a menor capacidad de lo esperado, y lo que puedes hacer para mejorar la funcionalidad.

3.1 Estructura del software del sistema operativo.


As como se discuti previamente para el hardware, el software del sistema operativo tiene su propia estructura. El sistema operativo no es una sola entidad, sino una composicin de muchas capas, cada una con su propia rea de responsabilidad. Las capas del sistema operativo y las aplicaciones que el usuario maneja son "tareas" o "procesos" que compiten para acceder el CPU y los dems recursos del hardware. La responsabilidad primordial del sistema operativo consiste en administrar la competencia utilizando una programacin de procesos adecuada, lo cual tiene gran impacto en el desempeo del sistema.

3.1.1 Las Capas de Software


Administracin de Capas y Procesos Encapsulacin y Abstraccin Capas de Software

Administracin de Capas y Procesos


Los sistemas de software, incluido el sistema operativo estn compuestos de mltiples capas. Cada capa se encarga de desempear ciertas funciones cuyos resultados sern enviados a la siguiente capa superior o inferior y as hasta completar un servicio. Lo interesante de esta estructura es que cada capa requiere nicamente los productos de la capa superior o inferior ms no requiere saber cmo se obtuvieron dichos productos. Para que esto quede ms claro hagamos algunas analogas.

Pgina2

Por ejemplo, supongamos que vas a comer al rea de comida rpida de Costco, ordenas una Rebanada de Pizza, un Chicken Bake y un Refresco y el pago lo realizas con tu tarjeta de crdito. (T eres una capa) Firmas el voucher correspondiente a una rebanada de Pizza, un Chicken Bake y un Refresco. Sin embargo, a ojos del banco tu simplemente realizaste un consumo en Costco Quertaro por X pesos. (El banco es otra capa) El banco no requiere ms detalles, no le interesa si tu refresco fue Coca Cola regular o light, o si la rebanada de pizza fue hawaiana o suprema.

Figura 3.Cada una de estas personas representa una capa en el proceso de compra de una rebanada de pizza en Costo, y aunque a ninguno de ellos les interesa cmo es que cada uno realiza su trabajo, s les interesan los productos de su trabajo para poder desarrollar el propio.

Sin embargo, la orden estuvo integrada de varios platillos. La persona encargada de servir tu orden (esta persona es otra capa) necesita conocer los niveles de detalle de la comida para saber qu platillos va a entregar y en qu orden. Ni ms ni menos, necesita saber de qu especialidad deseas la rebanada de pizza; italiana, hawaiana, marinera, etc. Supongamos que el primer platillo fue la rebanada de pizza. Los detalles de su preparacin son manejados por la cocina, donde el cocinero (quien es otra capa) combin los ingredientes, pasta para la base, salsa de tomate, queso, etc. Pero, de dnde vino la salsa de tomate? Esta fue producida por una compaa (otra capa) que proces los tomates que quizs cosecharon un grupo de agricultores (otra capa) que viven en algn lugar que al cocinero que prepara la pizza en Costco Quertaro no le interesa. Y si al cocinero esta informacin le es irrelevante, a ti como consumidor te es an ms.

Pgina3

Figura 4. De dnde vino el queso, la salsa o el salami son detalles del proceso que no te interesan, lo que te interesa es que el proceso se realice de forma satisfactoria, o sea, que tengas una rebanada de pizza que satisfaga tu apetito.

Y de la misma manera, las personas que sembraron y cosecharon los tomates no necesitan saber que sus tomates fueron procesados para fabricar la salsa que se coloc en la base de una pizza cocinada en Costco Quertaro de la cual se tom una rebanada que fue pagada y consumida por un alumno de la Facultad de Informtica que tena hambre. Al organizar el proceso de produccin en capas relativamente independientes, el sistema entero permanece manejable y se pueden lograr grandes rendimientos. En la ciencia de la computacin, los principios subyacentes a dichos beneficios se conocen como encapsulacin y abstraccin.

Encapsulacin y Abstraccin
La encapsulacin significa que cada capa necesita una cantidad limitada de conocimiento para hacer su tarea, y ninguna otra capa tiene acceso a esa informacin. En el ejemplo anterior, el agricultor no sabe para qu se utilizarn sus tomates. E cocinero no necesita saber cmo se produce el queso. Y t no necesitas saber que los que la salsa te tomate lleva condimentos. En el mundo del software, la encapsulacin significa que el programa de procesador de palabras no necesita saber cmo controlar las unidades de disco para abrir o guardar los archivos; hay capas de software por debajo que manejan esos detalles. Sin embargo, si una capa estuviera completamente encapsulada, no tendra capacidad para comunicarse con las diferentes capas. Para que haya cierta cantidad de intercambio de informacin, pero no demasiada, el diseador de la capa debe especificar una abstraccin que la capa promete soportar. El rea de comida rpida de Costco soporta una abstraccin llamada "pizza italiana", en la cual un cliente puede pedir x cantidad de rebanadas o de pizzas y la cocina

Pgina4

responder producindolas y entregndolas al cliente. En la cocina se llevan a cabo muchos procesos que el cliente no ve. Por ejemplo, la cocina puede tener un horno grande y uno chico y el gerente puede decidir cual usar para abastecer una orden. En algunas ocasiones es ms sensato hacer dos pizzas pequeas una mediana o grande ande. De vez en cuando uno de los hornos est en mantenimiento. Todos estos detalles estn escondidos del cliente; en terminologa computacional, se dice que la informacin est encapsulada. Ms an, aunque el cliente supiera que la cocina tiene dos hornos, no tiene derecho a especificar cual horno quiere que se utilice para su orden debido a que no hay un lugar en la orden para que se indique ese dato. En terminologa computacional diramos que la abstraccin de la orden de pizza no soporta o no tiene capacidad para llevar a cabo la eleccin de hornos. Al existir abstracciones bien definidas en cada capa, una implementacin puede ser reemplazada por otra sin afectar las capas superiores e inferiores. Hay muchas lugares que venden pizzas. Si todos aceptan la misma forma de pedido, es muy posible cambiar de proveedor. En una computadora, es posible tener varias implementaciones o aplicaciones de un componente de software y cambiar de uno a otro. Por ejemplo, un navegador de Internet le llama a un programa ayuda cuando necesita que se escuche un archivo de sonido o un clip de video. Hay varios programas que pueden desempear esta funcin. Todo lo que tienes que hacer es indicarle al navegador cual programa de sonido quieres utilizar. El aislamiento de funcionamiento significa que en caso de que haya un programa disponible de sonido mejor, t puedes elegirlo; no tienes que cambiar de navegador.

Pgina5

Capas de Software
Las capas de software que forman parte de un sistema computacional son las siguientes:

USUARIO
Scripts o Macros de Usuario

Interfaz del Usuario

Aplicacin

Bibliotecas de Ejecucin (Run Time)

Interfaz de Programas de Aplicacin (API)

Sistema Operativo

Ncleo (Kernel)

Controladores de Dispositivos (Drivers)

BIOS

HARDWARE
Figura 5.En un sistema computacional existen varias capas de software, cada una con funciones bien definidas.

Si observas la figura, notars que la estructura se encuentra delimita por la parte inferior por el HARDWARE y por la parte superior por el USUARIO. Estos definitivamente no son elementos que formen parte del software sin embargo cada una de las capas del software (en color naranja) trabajan en conjunto para que exista la interaccin hardware/ usuario. Repasaremos cada capa de abajo hacia arriba:

Pgina6

El Hardware, para nuestro propsito, es la capa ms baja de la computadora: los componentes fsicos que lo constituyen. En realidad hay varias capas dentro del hardware, ya que la computadora est hecha de tableros de circuitos, los tableros contienen mltiples chips, los chips estn compuestos de varios circuitos, y los circuitos estn compuestos de transistores. Pero como sta unidad trata con el software, digamos que esas abstracciones no nos interesan, ignoraremos esos detalles.

Figura 6 En la unidad 1 se mencion que el software del sistema habla el mismo lenguaje que el hardware, en esta unidad te dars cuanta que la relacin es ms estrecha an.

El BIOS, o Basic Input/Output System (Sistema Bsico de Entrada/Salida), es la capa ms fundamental del software. Esta capa trabaja directamente con las seales que controlan los componentes del hardware. La mayor parte de su trabajo se lleva a cabo cuando se prende la computadora.

Figura 7 El BIOS es quizs el software ms pequeo dentro del software de base, sin embargo su importancia es vital para el funcionamiento del sistema computacional.

Pgina7

Controladores de los Dispositivos (Drivers) Son los programas que ayudan al sistema operativo a comunicarse con los dispositivos de modelos especficos. Para agregar un dispositivo nuevo al hardware es necesario que est instalado el controlador del dispositivo en el disco duro. (Los componentes perifricos por lo general incluyen un disquete que contiene los controladores necesarios.) El controlador del dispositivo de un disco duro, por ejemplo, sabe cuantas pistas tiene el disco y los comandos que debe enviar a la unidad de disco para que el brazo se mueva a una pista especfica para escribir o leer datos. La gran ventaja de este arreglo es que el vendedor del sistema operativo no es responsable de dar soporte a cada dispositivo perifrico inventado, o que pueda ser inventado en el futuro. El fabricante del dispositivo proporciona el controlador y mientras el controlador obedezca las convenciones establecidas para comunicarse con el sistema operativo, el dispositivo funciona.

Figura 8 As como tu credencial de estudiante te permite identificarte como alumno de la Facultad de informtica de la UAQ, los controladores le permiten a los dispositivos perifricos y dems componentes de hardware identificarse como componentes del sistema computacional.

Pgina8

El ncleo es el corazn del sistema operativo y desempea las funciones cruciales para que todo se mantenga operando. Administra la memoria, programa la secuencia de las tareas, y maneja los diferentes tipos de interrupciones que pueden ocurrir. El ncleo debe permanecer siempre en la memoria RAM y debido a su naturaleza, debe correr sin algunos de los mecanismos que protegen contra instrucciones errneas o accesos ilegales de memoria. Por lo tanto, se mantiene lo ms pequeo posible.

Sistema Operativo

Ncleo

Figura 9 Imagina que la estructura del sistema operativo es similar a un aguacate si, suena un tanto extrao, pero descuida que tu profesor te explicar por qu.

La capa restante del sistema operativo es mucho ms grande que el ncleo. Esta capa lleva a cabo todas las dems funciones que un sistema operativo debe realizar. Por ejemplo, incluye un sistema de archivos para administrar las carpetas (folders) y los archivos en un disco. Encontrars una explicacin detallada del material en 3.4 Sistema de Archivos. El sistema de archivos se comunica con el ncleo para desempear acciones bsicas, como iniciar la operacin de transferencia de datos a un dispositivo perifrico. La Interfaz del Programa de Aplicacin, o API, es la capa mediante la cual los programas del usuario (aplicaciones) se comunican con el sistema operativo. Por ejemplo, supongamos que una aplicacin del navegador decide que necesita ms memoria para desplegar un archivo de imagen grande. El sistema operativo es responsable de estar al tanto de qu programas estn usando qu partes de memoria en un momento dado. Dicha informacin est encapsulada en el sistema operativo y la aplicacin desconoce la manera en la que se organiza la informacin. La aplicacin no necesita saber eso. Para la administracin de la memoria, el sistema operativo define una abstraccin conocida como llamada API. El diseador de la aplicacin tiene que saber cual llamada API usar para

Pgina9

pedir memoria adicional. Si sale una versin nueva del sistema operativo que utiliza una nueva manera de controlar la memoria, el programa de aplicacin continuar funcionando mientras la llamada API permanezca igual.

Las Bibliotecas de Ejecucin (Run-time) son colecciones de rutinas de software de las que dependen los programas de aplicacin. Por ejemplo, si programas una aplicacin en el lenguaje de programacin C para abrir un archivo y leer datos, puedes hacer uso de las funciones integradas fopen y fscanf. Las funciones son llamadas de una biblioteca de rutinas de entrada y salida llamadas stdio las cuales pueden ser utilizadas por cualquier programa en C. Las funciones harn las llamadas API apropiadas para que el sistema operativo haga lo que necesitas. Lo bueno de la abstraccin stdio es que tu programa no depende de un conjunto especfico de llamadas API, y por lo tanto puede correr en cualquier otra computadora que tenga compilador C y una implementacin de la biblioteca de ejecucin de C. La mayora de los programas toman rutinas de varias bibliotecas. En la capa de aplicacin encontrars las rutinas que hacen el trabajo para el cual las aplicaciones fueron creadas. La capa de Interfaz del Usuario es responsable de la comunicacin entre la aplicacin y el usuario. Tpicamente es una interfaz de usuario grfico (GUI) compuesta de botones y mens desplegables. Supongamos que el usuario utiliza la aplicacin para abrir un archivo. Esto requiere de cierto dilogo manejado por el GUI. Primero, en el men Archivo el usuario hace clic a Abrir.... La ventana de dilogo Abrir aparece y le pide al usuario que seleccione un archivo. Una vez que el usuario selecciona el archivo, la interfaz GUI le pasa el pedido y el nombre del archivo a la aplicacin, quien a su vez abre y procesa el archivo.

Figura 10 Las interfaces de usuario son porciones de software que permiten al usuario interactuar cmodamente con las aplicaciones..

Pgina 10

Muchas aplicaciones permiten a los usuarios crear scripts o macros. Estas son rutinas que utilizan el conjunto de comandos de la aplicacin para realizar una tarea determinada. Los scripts y macros permiten a los usuarios automatizar las secuencias de acciones que llevan a cabo con frecuencia.

Figura 11 Probablemente si ejecutas MS Excel en tu computadora observes que en la barra de herramientas aparecen unos iconos similares a los que ves en esta figura, son precisamente los controles que permiten controlar la MACROS que se pueden crear con MS Visual Basic para aplicaciones.

Por ejemplo, una macro de Microsoft Excel puede abrir un archivo, copiar nmeros de un archivo a una hoja de clculo, hacer algunos clculos y escribir los resultados en otro archivo. Si dichos clculos actualizan los valores del portafolio de acciones, el usuario seguramente querr llevar a cabo los clculos todos los das y por lo tanto, vale la pena hacer un script para que puedan ser ejecutados mediante el uso de unas cuantas teclas. De esta manera, el usuario puede olvidarse de los detalles. Los scripts estn localizados en la capa superior a la de la jerarqua de aplicacin ya que estn construidos por comandos de la capa de la aplicacin.

La industria de la computacin depende de los especialistas de cada una de las capas de la lista anterior. Algunas personas se dedican a escribir software de BIOS, mientras otros se concentran en mejorar la tecnologa de las interfases grficas de usuario. Sin embargo, debido a que los usuarios desean utilizar la computadora para diversas funciones, la mayor parte de los programadores se encuentran en la capa de aplicacin.

Pgina 11

3.1.2 El BIOS: Vida en el Fondo


El Papel del BIOS
La mayor parte de este curso habla acerca de las capas de jerarqua superiores de software como son los sistemas de archivos, los sistemas operativos y las aplicaciones. En esta seccin, veremos la capa de ms bajo nivel del software de la computadora: el BIOS o el Sistema Bsico de Entrada y Salida. El sistema BIOS desempea tres grandes funciones: Inicializa el equipo de cmputo cuando se prende la computadora, Carga el sistema operativo y Provee el soporte bsico para los dispositivos como el teclado, el ratn y los puertos seriales.

El sistema BIOS siempre est presente, pero solo es visible cuando se prende la computadora. Despus del inicio, el sistema operativo toma el control.

Figura 12 Al encender tu computadora probablemente veas algo similar a lo que se muestra en la imagen. Se trata del BIOS en ejecucin y despus de esto no lo vuelves a ver .s

Pgina 12

Al prender la computadora no hay sistema operativo en la memoria. La memoria RAM est vaca. (Recuerda que la memoria RAM es voltil, pierde la informacin cuando se apaga la computadora). El sistema BIOS debe residir en otro tipo de memoria para llevar a cabo su funcin. El BIOS reside en un chip del la memoria ROM (memoria de slo lectura) en la tarjeta principal. La memoria ROM es permanente; retiene los datos almacenados cuando se apaga la computadora. Al encender la computadora, el procesador automticamente ejecuta las instrucciones del ROM. Debido a que la memoria ROM es ms lenta que la memoria RAM, en la mayora de los sistemas lo primero que hace el BIOS es copiarse del ROM al RAM. A partir de ese momento, le dice al procesador que tome todas sus instrucciones de la RAM.

Figura 13 es importante distinguir que BIOS y ROM no son los mismo; ROM es el chip (hardware) que contiene al BIOS (software)

Otro tipo de memoria que el BIOS utiliza es la memoria CMOS. El CMOS (Complementary Metal Oxide Semiconductor -Semiconductor de xido de Metal Complementario) es una tecnologa basada en transistores y capacitares que utiliza muy poca energa. En la tarjeta principal se incluye una cantidad pequea de memoria CMOS para almacenar los parmetros de configuracin de BIOS que controlan el equipo de cmputo.

Figura 14 CMOS se basa en un esquema de capacitares y transistores que almacenan informacin, y para que esa informacin se mantenga almacenada es necesario mantener energizados los transistores/capacitares con una pequea bateria.

Pgina 13

La memoria CMOS es voltil, pero al apagar la computadora su contenido se preserva por una pequea batera que se encuentra en la tarjeta principal. La tarjeta principal continuamente recarga la batera y puede durar aos, pero si la batera se desconecta o se acaba, cuando se vuelva a encender la computadora el BIOS regresa a los parmetros de configuracin originales. Ahora puedes ver lo importante que es que el CMOS consuma poca energa. El mayor inconveniente de la tecnologa CMOS es que es ms lento que el DRAM regular. Sin embargo, esto no es tan importante si la memoria CMOS solamente almacena la configuracin de parmetros BIOS, ya que el contenido slo se utiliza en el arranque de la computadora. Al encender la computadora, el BIOS inicia su ejecucin con el examen POST ("Power-On Self Test" o Examen de Encendido).

Figura 15 Una vez que el POST concluye, el BIOS invoca al programa que ha de cargar al Sistema Operativo. La imagen muestra esta parte del proceso y como podrs observar, el sistema operativo no fue encontrado.

Secuencia del POST:


1. El BIOS habilita la tarjeta de video (la pantalla brilla) y se despliega informacin bsica as como el tipo de tarjeta de video instalada, el nombre del fabricante del BIOS y la versin del BIOS.

2. Despus determina la cantidad de memoria RAM instalada en el sistema y puede hacer un examen de memoria. Este examen depende de un parmetro en la configuracin del BIOS. (En los sistemas de mucha memoria, se puede desactivar el examen de memoria para producir un encendido ms rpido.) La configuracin de la memoria y los resultados de los exmenes se desplegarn en la pantalla.
Pgina 14

3. El BIOS verifica cuales tarjetas de expansin y adaptadores estn presentes y los inicializa.

4. Para concluir la secuencia POST, el BIOS despliega la informacin de la configuracin del sistema, as como el tipo de procesador instalado, la informacin de la memoria cach, los tipos de unidades de disco, las direcciones de los puertos seriales y paralelos y la lista de otras tarjetas de expansin detectadas. Una vez que se finaliza la secuencia POST, el siguiente trabajo del BIOS es cargar el programa que a su vez cargar al sistema operativo. Para hacer esto es necesario que BIOS conozca suficiente sobre las unidades de disco para poder leer un grupo de datos llamados Registro de Inicio Maestro (Master Boot Register), o MBR. De manera convencional el MBR se encuentra en la primera pista del disco. El programa MBR carga al sistema operativo y lo empieza a operar

______________________________________________________________________ INVESTIGA! Master Boot Record?? No, no se trata del Spartan de HALO!!! Investiga qu es el Master Boot Record y por qu es tan importante. ______________________________________________________________________

En cul unidad de disco se debe cargar el sistema operativo en computadoras con unidades de disco mltiples? Para encontrar el sistema operativo, el BIOS sigue un orden de bsqueda. Empieza buscando en la unidad A, la cual es generalmente la unidad de disquete. Si no hay disco en esa unidad, o si el disco no contiene el MBR, busca en la unidad de disco B (segunda unidad de disquete). Si no tiene xito, busca el MBR en la unidad de disco C, la cual normalmente es el disco duro principal. Y as continua hasta encontrarlo.

Resulta muy til verificar primero las unidades de disquete porque son medios removibles a diferencia del disco duro. Por lo tanto, si no deseas cargar el sistema operativo que se encuentra en el disco duro, todo lo que tienes que hacer es poner un disco de arranque.

Pgina 15

______________________________________________________________________ INVESTIGA! Anteriormente era comn que como medida de seguridad se creara un Disco de Arranque con un diskette, pero las cosas han cambiado. Investiga qu es un disco de arranque, cmo se crea un disco de arranque, qu contiene. Se puede crear un disco de arranque usando algn otro medio diferente a un disco? Claro, en ese caso ya no se tratara precisamente de un disco de arranque pero la funcionalidad sera la misma. ______________________________________________________________________

3.1.3 Control de Proceso


Un proceso es una instancia de un programa en ejecucin, es decir, un proceso NO es un programa. En palabras ms simples, un programa o bien una aplicacin es una entidad pasiva que se carga en memoria RAM y que comienza a funcionar ejecutando procesos, los cuales deben ser administrados por el sistema operativo. Qu propiedades de los procesos debe administrar el sistema operativo: Las instrucciones de un programa destinadas a ser ejecutadas por el microprocesador. Su estado de ejecucin en un momento dado, esto es, los valores de los registros de la CPU para dicho programa. Su memoria de trabajo, es decir, la memoria que ha reservado y sus contenidos. Otra informacin que permite al sistema operativo su planificacin.

Esta definicin vara ligeramente en el caso de sistemas operativos multihilo o multithread, donde un proceso consta de uno o ms hilos, la memoria de trabajo (compartida por todos los hilos) y la informacin de planificacin. Cada hilo consta de instrucciones y estado de ejecucin. Los procesos son creados y destruidos por el sistema operativo, as como tambin este se debe hacer cargo de la comunicacin entre procesos, pero lo hace a peticin de otros procesos. El mecanismo por el cual un proceso crea otro proceso se denomina bifurcacin (fork). Los nuevos procesos pueden ser independientes y no compartir el espacio de memoria con el proceso que los ha creado o ser creados en el mismo espacio de memoria. En los sistemas operativos multihilo es posible crear tanto hilos como procesos. La diferencia estriba en que un proceso solamente puede crear hilos para s mismo y en que dichos hilos comparten toda la memoria reservada para el proceso.

Pgina 16

______________________________________________________________________ INVESTIGA! Hey, hey!!! Multihilo? Multithread? Qu es eso? Investiga qu significo Multihilo o Multithread y cmo los sistemas operativos implementan dicha capacidad. ______________________________________________________________________

Estados de un proceso.
El principal trabajo del procesador es ejecutar las instrucciones de mquina que se encuentran en memoria principal. Estas instrucciones se encuentran en forma de programas. Para que un programa pueda ser ejecutado, el sistema operativo crea un nuevo proceso, y el procesador ejecuta una tras otra las instrucciones del mismo. En un entorno de multiprogramacin, el procesador intercalar la ejecucin de instrucciones de varios programas que se encuentran en memoria. El sistema operativo es el responsable de determinar las pautas de intercalado y asignacin de recursos a cada proceso.

Modelo de dos estados


El modelo de estados ms simple es el de dos estados. En este modelo, un proceso puede estar ejecutndose o no. Cuando se crea un nuevo proceso, se pone en estado de No ejecucin. En algn momento el proceso que se est ejecutando pasar al estado No ejecucin y otro proceso se elegir de la lista de procesos listos para ejecutar para ponerlo en estado Ejecucin. De esta explicacin se desprende que es necesario que el sistema operativo pueda seguirle la pista a los procesos, conociendo su estado y el lugar que ocupa en memoria. Adems los procesos que no se estn ejecutando deben guardarse en algn tipo de cola mientras esperan su turno para ejecutar.

Pgina 17

Modelo de cinco estados


El modelo anterior de 2 estados funcionara bien con una cola FIFO y planificacin por turno rotatorio para los procesos que no estn en ejecucin, si los procesos estuvieran siempre listos para ejecutar. En la realidad, los procesos utilizan datos para operar con ellos, y puede suceder que no se encuentren listos, o que se deba esperar algn suceso antes de continuar, como una operacin de Entrada/Salida. Es por esto que se necesita un estado donde los procesos permanezcan esperando la realizacin de la operacin de Entrada Salida por parte del Sistema Operativo hasta que puedan proseguir. Se divide entonces al estado No ejecucin en dos estados: Listo y Espera. Se agregan adems un estado Nuevo y otro Terminado.

Los cinco estados de este diagrama son los siguientes segn Osliyo:

Ejecucin: el proceso est actualmente en ejecucin. Listo: el proceso est listo para ser ejecutado, slo est esperando que el planificador de corto plazo as lo disponga. Espera: el proceso no puede ejecutar hasta que no se produzca cierto suceso, como la finalizacin de una operacin de Entrada/Salida solicitada por una llamada al sistema operativo. Nuevo: El proceso recin fue creado y todava no fue admitido por el sistema operativo. En general los procesos que se encuentran en este estado todava no fueron cargados en la memoria principal. Terminado: El proceso fue expulsado del grupo de procesos ejecutables, ya sea porque termin o por algn fallo, como un error de proteccin, aritmtico, etc.

Los nuevos estados Nuevo y Terminado son tiles para la gestin de procesos. En este modelo los estados Espera y Listo tienen ambos colas de espera. Cuando un nuevo proceso es admitido por el sistema operativo, se sita en la cola de listos. A falta de un esquema de prioridades sta puede ser una cola FIFO. Cuando se da un suceso se pasan a la cola de listos los procesos que esperaban por ese suceso. Si existe un esquema con diferentes niveles de prioridad de procesos es conveniente mantener varias colas de procesos listos, una para cada nivel de prioridad, lo que ayuda a determinar cul es el proceso que ms conviene ejecutar a continuacin. Asimismo, existen varias colas en estado de espera, como mnimo una por cada perifrico.

Pgina 18

Una de las razones para implementar el estado Espera era poder hacer que los procesos se puedan mantener esperando algn suceso, por ejemplo una Entrada/Salida. Sin embargo, al ser mucho ms lentas estas operaciones, puede suceder que en nuestro modelo de cinco estados todos los procesos en memoria estn esperando en el estado Espera y que no haya ms memoria disponible para nuevos procesos. Podra conseguirse ms memoria, aunque es probable que esto slo permita procesos ms grandes y no necesariamente nuevos procesos. Adems hay un costo asociado a la memoria y de cualquier forma es probable que se llegara al mismo estado con el tiempo.

Otra solucin es el intercambio. El intercambio se lleva a cabo moviendo una parte de un proceso o un proceso completo desde la memoria principal al disco, quedando en el estado Suspendido. Despus del intercambio, se puede aceptar un nuevo proceso o traer a memoria un proceso suspendido anteriormente. El problema que se presenta ahora es que puede ser que si se decide traer a memoria un proceso que est en el estado Suspendido, el mismo todava se encuentre en espera. Slo convendra traerlo cuando ya est listo para ejecutar, esto implica que ya aconteci el suceso que estaba esperando. Para tener esta diferenciacin entre procesos suspendidos, ya sean listos como en espera, se utilizan cuatro estados: Listo, Espera, Espera y suspendido y Listo y suspendido.

Pgina 19

Procesos Suspendidos (Hold)


Dos o ms procesos pueden cooperar mediante seales de forma que uno obliga a detenerse a los otros hasta que reciban una seal para continuar.

Se usa una variable de tipo Semforo para sincronizar los procesos. Si un proceso est esperando una seal, se suspende (Hold) hasta que la seal se enve (SIGNAL). Se mantiene una cola de procesos en espera en el semforo. La forma de elegir los procesos de la cola en ESPERA es mediante una poltica FIFO (First In First Out) tambin llamada FCFS (First Come First Served), Round Robin, etc.

La sincronizacin explcita entre procesos es un caso particular del estado "bloqueado". En este caso, el suceso que permite desbloquear un proceso no es una operacin de entrada/salida, sino una seal generada a propsito por el programador desde otro proceso.

3.2 Administracin y Configuracin de Dispositivos


Otra funcin del sistema operativo es administrar los dispositivos de entrada y salida que estn instalados en la computadora. Para tener control del equipo de cmputo a este nivel se requiere de la interaccin entre el ncleo del sistema operativo, los controladores de los dispositivos y el BIOS. En algunas ocasiones, el usuario puede modificar los parmetros que determinan la manera que el sistema operativo o el controlador de dispositivos trabaja con un dispositivo perifrico para lograr un mejor desempeo de la computadora.

3.2.1 Manejo de Interrupciones


Interrupciones
El manejo de las interrupciones es una de las tareas ms importantes del ncleo (kernel) del sistema operativo. Una interrupcin le seala al procesador que un evento ha ocurrido y que requiere de atencin inmediata. A menudo las interrupciones estn asociadas con una operacin de entrada/salida, pero existen otros tipos de interrupciones tambin. El ncleo identifica lo que caus la interrupcin y responde de manera apropiada. Debe actuar con rapidez. Debe administrar cada interrupcin en menos de una milsima de segundo para evitar la prdida de informacin debido a la siguiente interrupcin. Para ver como se manejan las interrupciones, observemos la manera en que las personas manejan una interrupcin. Supongamos que te encuentras leyendo un manual en tu escritorio. Quizs sea la documentacin de un nuevo software que compraste. Has ledo

Pgina 20

varias pginas del manual cuando entra un mensajero, pide disculpas por interrumpirte y te pide recibas un paquete y firmes de recibido. Para responder a sta interrupcin, primero le pones un separador de libros al manual para marcar la pgina donde te quedaste y dejas el manual sobre tu escritorio. Ahora, con tus manos libres, firmas de recibido, tomas el paquete y lo colocas en tu escritorio para abrirlo despus. Vuelves a tomar el manual, lo abres en la pgina sealada y sigues con tu lectura. El ncleo del sistema operativo maneja las interrupciones de una manera similar. A continuacin se explica cmo responde a una interrupcin de teclado; lo cual ocurre cada vez que oprimes una tecla. Antes de que oprimas una tecla el procesador est ocupado ejecutando algn otro programa. Vamos a suponer que ests usando la computadora para editar una pgina de Web y el procesador est ocupado tratando de desplegar un archivo de imagen que acabas de cargar. En ese momento, teclas "http". Al oprimir la letra "h", el teclado le trasmite un byte de datos a la interfaz PS/2 del teclado en la tarjeta principal. La interfaz interrumpe al procesador para pasarle el byte de datos al controlador del dispositivo. Esto se debe hacer rpidamente antes de que oprimas la letra "t" para que no se pierda la informacin de la siguiente letra que se teclea. La interfaz del teclado le manda al procesador una seal llamada IRQ (interrupt request) o peticin de interrupcin. Cuando el procesador recibe la seal, detiene la ejecucin del programa de aplicacin (en nuestro caso un editor de pgina de Web), y toma nota de la direccin de la ltima instruccin que se ejecut. Enseguida, se va a la direccin del administrador de interrupciones del teclado, y comienza la ejecucin de las instrucciones que encuentra all. Debido a que el registro del procesador contiene los datos del programa que el usuario estaba manipulando antes, el administrador de las interrupciones debe almacenar los contenidos de ese registro antes de poder usarlo. Una vez que se almacenaron los registros, est libre para examinar el estado de la interfaz del teclado y aceptar el byte de datos de entrada. Coloca el byte en un rea de almacenamiento que el controlador de teclado revisar en su siguiente corrida, probablemente en el siguiente milisegundo. Luego, el administrador de interrupciones restituye el contenido de los registros previamente almacenados y le transfiere el control a la tarea que se estaba ejecutando anteriormente (en este caso la aplicacin de edicin de pgina de Web), y contina su ejecucin partiendo del lugar en el que se qued al ocurrir la interrupcin. Todo sucedi en unos cien microsegundos; el programa de aplicacin ni se enter de la interrupcin.

Prioridad de Interrupciones e Interrupciones Anidadas


Para completar el tema de las interrupciones, se expondrn dos conceptos adicionales. Primero veremos las prioridades de las interrupciones. Supongamos que dos personas entran a tu oficina al mismo tiempo. (O entra una persona y antes de que puedas verlo, entra otra.) Si una de las dos personas es el cliente ms importante e impaciente de la compaa y el otro es un vendedor ambulante, con seguridad atenders primero las necesidades del cliente importante y hars al vendedor que espere. El cliente tiene alta prioridad. El procesador tambin asigna prioridades a los diferentes tipos de interrupciones. Los dispositivos de baja velocidad, como el teclado, tienen baja prioridad. Los dispositivos de alta velocidad como el disco SCSI tienen prioridad alta ya que para funcionar de manera ptima requieren de una respuesta rpida.

Pgina 21

El siguiente concepto que estudiaremos son las interrupciones anidadas. Supongamos que alguien te hace una pregunta mientras ests leyendo un manual. Para atender la interrupcin, bajas el manual, escuchas la pregunta y buscas la respuesta en un libro de referencia. Al estar haciendo esto, suena el telfono otra interrupcin! Para contestar el telfono, separas el lugar donde te quedaste en el libro de referencia, lo bajas y tomas la llamada. La persona con la pregunta tendr que esperarte. Cuando terminas con la llamada, vuelves a tomar el libro de referencia, y le contestas la pregunta a la persona que te esperaba. Una vez hecho todo esto, la persona se retira y t puedes volver a tomar tu manual y continuar la lectura. Tmalo como que la segunda interrupcin se encuentra anidada dentro de la primera. Las interrupciones no se pueden anidar de forma infinita porque un administrador de interrupciones solo permite que una interrupcin sea interrumpida por una de mayor prioridad. Por lo tanto, en el ejemplo anterior, si te encontrabas en la llamada telefnica, una segunda llamada telefnica no poda interrumpirte hasta que hayas terminado con la primera llamada. De la misma manera, se pueden prevenir las interrupciones de los dispositivos de entrada/salida si el procesador se encuentra atendiendo una interrupcin de mayor prioridad.

Trampas y Fallas
Una trampa (trap) es un evento similar a una interrupcin. La diferencia es que la trampa es provocada por la ejecucin de instrucciones del procesador mientras que la interrupcin la provoca una seal externa. Un ejemplo es la divisin entre cero. Si un programa de usuario trata de dividir un nmero entre cero, los resultados no tienen sentido y la ejecucin no puede continuar de manera segura. De manera similar al manejo de la interrupcin, el procesador se "traba" pero sin la presin del tiempo. El administrador de trampas puede imprimir un mensaje de error y terminar el programa del usuario, o puede responder de otra manera, tal como forzar a que el resultado de la instruccin de la divisin sea 0 permitiendo que el programa contine ejecutndose. Un uso comn para las trampas es cuando los programas de aplicacin requieren algo del sistema operativo. El programa de aplicacin carga la informacin que quiere en un registro y usa una instruccin especial de trampa para llamar la atencin del sistema operativo. Un tercer tipo de evento se conoce como falla (fault). Una falla ocurre cuando se le pide al equipo de cmputo que haga algo que no puede hacer, tal como acceder una localizacin de memoria inexistente. (Los programadores del lenguaje C que utilizan apuntadores probablemente vean este tipo de falla de "memoria inexistente" al depurar su cdigo.) Tambin pueden ocurrir fallas si los circuitos de correccin de errores de la memoria detectan errores sin correccin, si se trata de dividir entre cero o si el programa contiene una instruccin ilegal. Las fallas y las trampas se manejan de manera similar.

Pgina 22

3.2.2 Memoria Virtual


Administracin de Memoria Relocalizacin Memoria Virtual

Administracin de Memoria
Una de las tareas ms importantes del ncleo (kernel) del sistema operativo es la administracin de la memoria del sistema. Una computadora personal tpica actualmente cuenta con una memoria principal (DRAM) de 64 MB o ms. Una parte de la memoria principal queda reservada para el sistema operativo, pero la mayor parte est disponible para los programas del usuario. Supongamos que un usuario est usando un navegador, un editor y un juego computacional. Cada programa necesita cierta cantidad de memoria, pero ninguno necesita acceso a toda la memoria. El ncleo (kernel) le asigna una cantidad de memoria a cada programa y controla lo que cada programa utiliza. Los sistemas operativos modernos, as como Windows y Linux, manejan la memoria virtual, la cual aumenta la flexibilidad de los programas. (Se explicar el concepto de memoria virtual ms adelante.) Para entender mejor la razn por la cual la memoria virtual es til, empezaremos por analizar el funcionamiento de sistemas operativos antiguos, tal como MS-DOS. En los sistemas operativos antiguos, todos los programas se ejecutaban en espacio de direcciones reales, ya que no haba espacio de direcciones virtuales. Los programas ejecutables escritos en cdigo binario de mquina, contienen instrucciones y datos. Tanto las instrucciones como los datos contienen direcciones de memoria. Por lo tanto, cuando haces un programa en este cdigo (o el compilador traduce tu programa de lenguaje de alto nivel), t (o el compilador) debes calcular la direccin para cada instruccin y para cada dato. Supongamos que empiezas en cero y ordenas todas las instrucciones y datos en secuencia de tal manera que el programa ocupa las direcciones de memoria del 0 al 8,462. Ahora, supongamos que alguien ms escribe sus programas de la misma manera, empezando con la direccin 0. Obviamente, no se pueden ejecutar dos programas simultneamente con ese esquema - ya que tan pronto cargues el segundo programa, el primero se borrar.

Relocalizacin
Antes de que se inventara la memoria virtual, se invent otra solucin. Los programadores codificaban sus programas de tal forma que cada posicin de memoria contena una direccin marcada de manera especial en un archivo binario. Cuando un usuario ejecutaba el programa, el sistema operativo la asignaba memoria de algn lado y cargaba el programa a esa rea de memoria. Con esto, se "arreglaban" todas las referencias de direcciones que estaban marcadas de manera especial para que apuntaran a la direccin correcta. Por ejemplo, digamos que el programa original contiene una tabla de informacin localizada a partir de la direccin de memoria 700. Otra parte del programa, en la posicin 210, contiene la direccin de la tabla (en este ejemplo la direccin 700) y est marcado de manera especial ya que contiene una direccin. El

Pgina 23

sistema operativo carga el programa a la memoria empezando en la direccin 30,000. Al hacer esto, cambia el valor de la posicin 30,210 del 700 al 30,700 y as respectivamente. Dicho proceso se conoce como relocalizacin. El esquema anterior le brinda a la computadora la habilidad de cargar varios programas a la memoria simultneamente en cualquier parte de la memoria que se encuentre disponible en ese momento. Su ventaja es que es simple de implementar y no requiere cambios en el hardware. Sin embargo, dicho esquema tiene algunas deficiencias serias. En primer lugar, debido a la manera en la que trabaja la relocalizacin, la memoria asignada al programa debe ser contigua. Supongamos que un usuario est ejecutando seis programas cortos al mismo tiempo. Un tiempo despus, se cierran tres programas y quedan corriendo los programas 1, 3, y 6. Ahora el usuario desea ejecutar una aplicacin compleja y grande, pero desafortunadamente posiblemente no haya lugar para ponerlo. Si el programa de aplicacin no puede acomodarse en el espacio que usaba el programa 2, 4 o el 5, entonces no cabe en la memoria, aunque la cantidad de bloques disponibles no contiguos totales de memoria libres sean ms que suficientes. Otra desventaja de este mtodo es que el tamao del programa que se ejecuta est limitado a la cantidad de memoria que se encuentra fsicamente instalada en la computadora, menos la memoria que requiere el sistema operativo. Sin embargo, los programas grandes no ocupan toda la memoria al mismo tiempo. Un programa que requiere de mucho espacio de direccin puede requerir acceder solamente unos cuantos miles de instrucciones y un par de miles de bytes de datos a la vez. Sera ms eficiente asignarle al programa grande slo un poco de la memoria RAM a la vez y mantener el resto de su espacio de direccin en algn otro lugar, tal como en un disco. Esto es lo que la memoria virtual permite que se haga.

Memoria Virtual
En un sistema de memoria virtual, cada programa se ejecuta en su propio espacio de direccin. De ese modo, cuando un programa se carga en memoria, no es necesario relocalizar. Un espacio de direccin virtual puede ser ms grande o ms pequeo que la memoria fsica del procesador. Sin embargo, para que funcione este esquema, se requiere del soporte del equipo de cmputo para la memoria virtual. Primero, la memoria se divide en partes llamadas pginas. Una pgina es la unidad ms pequea de memoria que se le puede asignar a un programa. En las plataformas de Pentium, una pgina es de 4KB. En segundo lugar, el procesador debe tener la habilidad de convertir una direccin virtual en una real Los procesadores que soportan memoria virtual, tal como Pentium, pueden ejecutarse en dos diferentes modos. En modo real, las direcciones hacen referencia a las posiciones fsicas de la RAM. Solamente el ncleo puede correr en modo real. En el modo virtual, cada direccin se convierte a una posicin fsica de memoria por medio de una tabla de pginas. La tabla de pginas le asigna su direccin real en RAM a cada pgina en el espacio de direccin virtual. Veamos como esto aplica al programa hipottico que se describi anteriormente. El programa se ejecutar en su espacio de direccin virtual empezando en la posicin de cero. Cuando el procesador carga el programa a la RAM empezando en la direccin 30,000, le asigna a la pgina 0 de la tabla de pgina el valor de 30,000. Ahora, cuando

Pgina 24

una instruccin carga la direccin de la posicin virtual de 210, los circuitos de traduccin de direccin del procesador cargan los datos de la posicin fsica 30,210. El valor de esa posicin de memoria es 700 (recuerda que la posicin 210 tiene la direccin de la tabla, la cual es 700), la cual es la direccin virtual de la tabla. En el caso de que otra instruccin trate de acceder la tabla usando la direccin 700, el mecanismo de traduccin de direccin har una intervencin y convertir la referencia a la posicin 30,700. Cuando el programa del usuario est en modo virtual, siempre se hace la traduccin de direcciones. Toda referencia de memoria se traduce. Esto sucede muy rpidamente debido a que la traduccin tiene lugar en el chip del procesador. Usando el esquema de memoria virtual, cada programa tiene su tabla de pginas y el ncleo lo maneja. Adems, la memoria fsica asignada al programa no tiene que ser contigua. La tabla de pgina del programa hipottico pudiera decir: La pgina 0 empieza en la direccin real 30,000, la pgina 1 empieza en la direccin real 34,000, la pgina 2 en la 62,000, y as sucesivamente. El programa de usuario no conoce en que rea de la memoria fsica est corriendo, porque vive en un mundo virtual y no puede ver las direcciones reales. Con un poco de ayuda del hardware, podemos llevar este esquema un paso ms adelante y separar por completo a la memoria virtual de la RAM. Digamos que no deseamos cargar el programa entero al RAM al mismo tiempo, y cargamos solo unas cuantas pginas. Les ponemos un marcador especial a las pginas que no deseamos cargar que diga "esta pgina no est en RAM". Ahora, cuando empiece la ejecucin del programa del usuario y se haga una referencia a la pgina cero, se traduce correctamente. Al hacer una referencia de memoria a la pgina uno, el procesador busca en la tabla de pgina y hace una traduccin correcta y todo est bien. Luego, el programa hace una referencia a una posicin de memoria de la pgina siete, que fue una de las que no se cargaron a RAM. Los circuitos de traduccin revisan la tabla de pgina y se encuentran con un marcador "no est en RAM" y se genera una falla de pgina (page fault). Esta es un tipo de interrupcin. El procesador detiene la ejecucin del programa del usuario y le pasa el control al ncleo del sistema operativo. El ncleo busca ciertos registros de estados para encontrar de donde viene la falla de pgina y concluye: "Ah, l quiere acceder la pgina virtual siete. Tomar algo de RAM y cargar la pgina siete del programa. Ahora, arreglar la tabla de pginas y le dir que intente la instruccin de nuevo." De esa manera, el control se le regresa al programa de usuario y contina como si no hubiera pasado nada. Con el soporte del equipo de cmputo, los programas verdaderamente viven en un mundo virtual. No saben qu partes del RAM utilizan, ni tampoco saben cuales pginas se encuentran en RAM, ni cuales estn en disco. Cada vez que el proceso hace referencia a una pgina que se encuentra en disco, la pgina se mueve a la memoria RAM. Cuando el proceso no ha hecho referencia a una pgina por algn tiempo, esta se puede pasar al disco. La memoria virtual provee a los programas de usuario de memoria limpia. Ya no es necesario preocuparse por compartir espacio de direccin con el sistema operativo o con otras aplicaciones. Tampoco es necesario preocuparse por la cantidad de memoria fsica de la computadora. Tienen un espacio de direccin virtual para usar como gusten, y el ncleo implementa los detalles. Una desventaja de utilizar disco duro para la memoria virtual, es que mantiene al disco duro tan ocupado que se puede retrasar el acceso a otros archivos. Para los sistemas que

Pgina 25

tienen accesos de archivos muy frecuentes y requieren memoria virtual, es aconsejable poner el archivo de intercambio (swap file), es decir, el archivo que contiene las pginas de memoria virtual, en una unidad de disco aparte.

3.2.3 Sistema de Archivos:


Clusters y Tablas de Asignacin de Archivos
Los discos estn divididos en pistas (tracks) y sectores. Observa la siguiente figura.

Figura 1 Pistas y sectores en un disco Los sectores estn compuestos por una cantidad fija de bytes, generalmente 512 bytes. Para almacenar un archivo, se le asignan uno o ms sectores del disco. Si el archivo solamente tiene una lnea o dos de texto, el archivo cabe en una fraccin del sector. En dicho caso, el resto del sector se queda sin usar. A la parte del sector que no se utiliza la llamaremos espacio vaco (slack space). Un archivo demasiado grande, con millones de bytes, probablemente no pueda ser almacenado en una sola pista. Tal archivo requerir miles de sectores en varias pistas (no se requiere que sean pistas contiguas). Debido a que por lo general existen cientos o miles de archivos en un disco y cada uno de ellos tiene asignado uno o ms sectores, es necesario llevar una organizacin de archivos. El fundamento bsico de la organizacin de archivos en disco es el mismo an cuando existen diversas maneras de organizarlos. Debido a que los sectores son pequeos, los sistemas computacionales modernos los agrupan en clusters y hacen lectura y escritura a un cluster entero a la vez. Un cluster es la cantidad ms pequea de espacio que cualquier archivo puede ocupar en un disco. Un cluster contiene 4, 8, 16, 32 o 64 sectores adyacentes (el nmero debe ser una potencia de 2). El tamao de cluster depende de la capacidad del disco, mientras ms grande sea el disco, ms grande ser el tamao del cluster. Se reserva una pequea parte del disco a la Tabla de Asignacin de Archivos (File Allocation Table -FAT), la cual contiene un registro para cada cluster del disco.

Pgina 26

Por lo tanto, el FAT es el mapa del disco. A cada cluster que forma parte de un archivo se le asigna el nmero del siguiente cluster de dicho archivo. Esta asignacin se la proporciona la tabla FAT. De esta manera, todos los clusters que integran un archivo estn encadenados. Si se conoce la direccin del primer cluster del archivo, se pueden encontrar todos los clusters siguientes de la cadena. La tabla FAT le asigna un carcter especial al ltimo cluster indicando que es el ltimo en la cadena.

Pero qu es FAT
Tabla de Asignacin de Archivos, en ingls, File Allocation Table (FAT) es un sistema de archivos desarrollado para MS-DOS, as como el sistema de archivos principal de las ediciones no empresariales de Microsoft Windows hasta Windows Me. FAT es relativamente sencillo. A causa de ello, es un formato popular para disquetes admitido prcticamente por todos los sistemas operativos existentes para el PC. Se utiliza como mecanismo de intercambio de datos entre sistemas operativos distintos que coexisten en la misma computadora, lo que se conoce como entorno multiarranque. Tambin se utiliza en tarjetas de memoria y dispositivos similares. Las implementaciones ms extendidas de FAT tienen algunas desventajas. Cuando se borran y se escriben nuevos archivos tiende a dejar fragmentos dispersos de stos por todo el soporte. Con el tiempo, esto hace que el proceso de lectura o escritura sea cada vez ms lento. La denominada desfragmentacin es la solucin a esto, pero es un proceso largo que debe repetirse regularmente para mantener el sistema de archivos en perfectas condiciones. FAT tampoco fue diseado para ser redundante ante fallos. Inicialmente solamente soportaba nombres cortos de archivo: ocho caracteres para el nombre ms tres para la extensin. Tambin carece de permisos de seguridad: cualquier usuario puede acceder a cualquier archivo.

Historia y versiones
El sistema de archivos FAT fue creado por Bill Gates y Marc McDonald en 1977 con el objeto de manejar discos en BASIC. Fue incorporado por primera vez en el sistema operativo QDOS por Tim Paterson en Agosto de 1980, para las computadoras S-100 de arquitectura Intel 8086. Este sistema de archivos fue la principal diferencia entre QDOS y CP/M.

Pgina 27

FAT12
La versin inicial de FAT se conoce ahora como FAT12. Es un sistema de archivos para disquete, por lo que tiene varias limitaciones:

No soporta anidacin de carpeta. Las direcciones de bloque solamente contienen 12 bits. Esto complica la implementacin. El tamao del disco se almacena como una cuenta de 16 bits expresada en sectores, lo que limita el espacio manejable a 32 megabytes.

En aquella poca, el habitual disquete (5,25 pulgadas en una sola cara) constaba de 40 pistas con 8 sectores por pista, resultando en una capacidad inferior a 160 kilobytes. Este lmite exceda la capacidad en ms de un orden de magnitud, y al mismo tiempo, permita encajar todas las estructuras de control en la primera pista. Por tanto, se evitaba el movimiento de los cabezales en las operaciones de lectura y escritura. Estos lmites fueron superados en los aos posteriores. Con el propsito de soportar el reciente IBM PC, que dispona de un disco duro de 10 megabytes, MS-DOS 2.0, y carpetas anidadas, simplemente se utilizaron clusters de 8 kilobytes en el disco duro. El formato de FAT en s mismo no cambi. En 1984, IBM lanz el PC AT, con 20 megabytes de disco duro. Al mismo tiempo, Microsoft lanz MS-DOS 3.0. Las direcciones de los cluster fueron ampliadas a 16 bits, permitiendo un nmero mayor de clusters (65.536 exactamente). Por tanto, soportaba mayores tamaos de sistema de archivos. A pesar de todo, no hubo mejoras en el lmite mximo de 32 megabytes. MS-DOS 3.0 tambin incorpor soporte a disquetes de alta densidad de 5'25 pulgadas (1'2 megabytes de capacidad), con 15 sectores por pista, y en consecuencia, ms espacio para FAT. Esto probablemente forz una dudosa optimizacin del tamao del clster, que baj de dos sectores a slo uno. El efecto global fue una reduccin significativa de los tiempos de lectura y escritura frente a los disquetes de doble densidad.

Pgina 28

Estructura de la FAT12 en un disquete de 1'44M: Primer sector fsico del disco flexible (Pista Cero) 3 Byte Cdigo mquina de salto ( jmp short 0x3E; nop ) 0EBh 03Ch 090h 8 Byte Cadena que identifica el fabricante del disco 'mkdosfs',0 2 Byte Bytes por sector 512 1 Byte Sectores por cluster 1 2 Byte Sectores reservados 1 1 Byte Nmero de FAT's 2 2 Byte Entradas mximas en directorio raz 244 2 Byte Sectores totales 2880 1 Byte Descriptor de medio (0F0h para discos de 1'44M) 240 2 Byte Sectores por fat 9 12 512 Byte 2 Byte Sectores por pista 2 Byte Nmero de caras 2 4 Byte Sectores ocultos 0 4 Byte Longitud total de sectores 0 1 Byte Nmero de unidad 0 1 Byte Banderas 0 1 Byte Firma (029h) 41 4 Byte Nmero de serie 4294967295 12 Byte Etiqueta de volumen 'DISCO EJPLO ' 8 Byte Identificador de formato 'FAT12 ' 446 Byte Cdigo mquina del cargador de arranque [...] 2 Byte Firma de unidad arrancable 055AAh

FAT16
En 1987 apareci lo que hoy se conoce como el formato FAT16. Se elimin el contador de sectores de 16 bits. El tamao de la particin ahora estaba limitado por la cuenta de sectores por clster, que era de 8 bits. Esto obligaba a usar clusters de 32 Kbytes con los usuales 512 bytes por sector. As que el lmite definitivo de FAT16 se situ en los 2 gigabytes. Esta mejora estuvo disponible en 1988 gracias a MS-DOS 4.0. Mucho ms tarde, Windows NT aument el tamao mximo del cluster a 64 kilobytes gracias al "truco" de considerar la cuenta de clusters como un entero sin signo. No obstante, el formato resultante no era compatible con otras implementaciones de la poca, y adems, generaba mucha fragmentacin interna (se ocupaban clusters enteros aunque solamente se precisaran unos pocos bytes). Windows 98 fue compatible con esta extensin en lo referente a lectura y escritura. Sin embargo, sus utilidades de disco no eran capaces de trabajar con ella.

Pgina 29

VFAT y FASTFAT
Windows 3.11 introdujo un nuevo esquema de acceso a los sistemas de archivos, usando el modo protegido de 32 bits (presente en los Intel 386 y posteriores) esquivando el ncleo de MS-DOS. Para ello, usaba directamente el BIOS o el hardware de la unidad de disco. Esto tambin permita utilizar una cach, acelerando el acceso. Todo esto se denomin VFAT o FAT virtual. Windows NT 3.1 proporcionaba la misma aproximacin, pero denominndolo FASTFAT. Sin embargo, era natural que los controladores de Windows NT utilizasen el modo protegido de 32 bits. A menudo se confunde con el soporte LFN (nombres largos de archivo) ya que ste estaba habilitado por defecto en Windows 95.

LFN o Nombres largos de archivo


Uno de los objetivos de los diseadores de Windows 95 fue el uso de nombres ms largos para los archivos. Se implement sobre FAT utilizando un truco en el modo de almacenar los ndices de los directorios. Esta implementacin tambin se conoce como VFAT por culpa del controlador de Windows 95 que lo incorpor por primera vez. Los nombres largos tambin se soportaron en Windows NT a partir de la versin 3.5.

FAT32
FAT32 fue la respuesta para superar el lmite de tamao de FAT16 al mismo tiempo que se mantena la compatibilidad con MS-DOS en modo real. Microsoft decidi implementar una nueva generacin de FAT utilizando direcciones de cluster de 32 bits (aunque slo 28 de esos bits se utilizaban realmente). En teora, esto debera permitir aproximadamente 268.435.538 clusters, arrojando tamaos de almacenamiento cercanos a los dos terabytes. Sin embargo, debido a limitaciones en la utilidad ScanDisk de Microsoft, no se permite que FAT32 crezca ms all de 4.177.920 clusters por particin (es decir, unos 124 gigabytes). Posteriormente, Windows 2000 y XP situaron el lmite de FAT32 en los 32 gigabytes. Microsoft afirma que es una decisin de diseo, sin embargo, es capaz de leer particiones mayores creadas por otros medios. FAT32 apareci por primera vez en Windows 95 OSR2. Era necesario reformatear para usar las ventajas de FAT32. Curiosamente, DriveSpace 3 (incluido con Windows 95 y 98) no lo soportaba. Windows 98 incorpor una herramienta para convertir de FAT16 a FAT32 sin prdida de los datos. Este soporte no estuvo disponible en la lnea empresarial hasta Windows 2000. El tamao mximo de un archivo en FAT32 es 4 gigabytes, lo que resulta engorroso para aplicaciones de captura y edicin de video, ya que los archivos generados por stas superan fcilmente ese lmite.

Pgina 30

Otros fabricantes
Otros sistemas operativos tales como GNU/Linux, FreeBSD y BeOS soportan FAT, y la mayora tambin soportan VFAT y FAT32 en menor extensin. Las primeras ediciones de GNU/Linux tambin apoyaron un formato conocido como UMSDOS. Este consista en una variante de FAT que admita los permisos de seguridad tpicos en Unix, adems de los nombres largos de ste. Para ello, se almacenaba esta informacin en un archivo FAT separado que se denominaba "--linux--.---" (por tanto, conservando compatibilidad total). UMSDOS qued en desuso con la aparicin de VFAT en recientes versiones del ncleo de Linux. El sistema operativo Mac OS X tambin soporta sistemas de archivos FAT, siempre que no se trate del volumen de arranque del sistema.

FAT y Metadatos
NOTA: Los meta-datos son atributos asociados a un archivo pero que no forman parte de l (por ejemplo, la fecha o el autor). Este concepto recibe otras denominaciones tales como filesystem fork, alternate data streams (en Windows), etc. El sistema de archivos FAT no est diseado para albergar meta-datos. Algunos sistemas operativos que los necesitan incorporaron varios mtodos para simularlos. Por ejemplo, almacenndolos en archivos o carpetas extra (de manera similar a UMSDOS) o tambin otorgando una semntica especial a estructuras no usadas en el formato original. No obstante, este ltimo mtodo no es compatible con herramientas no preparadas para esta extensin. Por ejemplo, una herramienta de desfragmentacin podra destruir los meta-datos. Mac OS, a travs de la utilidad PC Exchange, almacena meta-datos en un archivo oculto denominado "FINDER.DAT" (uno por carpeta). Mac OS X almacena los metadatos en un archivo oculto denominado como su propietario, pero comenzando por ".-". Cuando se trata de meta-datos de una carpeta, los almacena en un archivo oculto llamada ".DS_Store". OS/2 tambin depende fuertemente del uso de meta-datos. Los almacena en un archivo oculto denominado "EA DATA. SF" en la carpeta raz del volumen. Tambin reserva dos bytes en el archivo (o carpeta) para poder indexarlo. Los meta-datos se acceden a travs del escritorio Workplace Shell, a travs de guiones REXX, o a travs de utilidades como 4OS2. Windows NT soporta meta-datos en los sistemas de archivos HPFS, NTFS y FAT (mediante el mismo mecanismo que OS/2). Pero no es posible copiar meta-datos entre sistemas de archivos distintos. Windows 2000 se comporta exactamente igual que Windows NT, pero ignora los meta-datos cuando copia archivos desde FAT32 a otros sistemas de archivos.

Pgina 31

Perspectivas de futuro
Dado que Microsoft no seguir soportando sistemas operativos basados en MS-DOS, es poco probable que se desarrollen nuevas versiones de FAT. NTFS es un sistema de archivos superior a ste en mltiples aspectos: eficiencia, rendimiento y fiabilidad. Su principal desventaja es el excesivo tamao que desperdicia en pequeos volmenes y su limitado soporte en otros sistemas operativos. Sus especificaciones son un secreto comercial; no obstante, esto est cambiando, gracias a la ingeniera inversa, pues ya es posible leer y escribir en particiones NTFS en Linux con herramientas como NTFS-3G. FAT es, hoy por hoy, el sistema de archivos habitual en medios de almacenamiento extrables (con la excepcin hecha del CD y DVD). FAT12 se usaba en disquetes, y FAT16 en el resto de medios (por ejemplo, tarjetas de memoria y Memorias USB). La mayora de estos medios no son lo suficientemente grandes como para beneficiarse de FAT32. FAT se utiliza por motivos de compatibilidad y menor desperdicio del espacio disponible. El soporte FAT32 en Windows 2000 y XP est limitado a discos de 32 gigabytes, lo que obliga a usuarios de discos duros modernos a usar NTFS o utilizar utilidades de terceros al margen de Windows. Esta limitacin afecta a la hora de instalar, pero no al uso: Windows XP puede acceder a discos FAT32 de hasta 2 terabytes, aunque en el momento de instalar, no permitir formatear un disco FAT32 de ms de 32 GB, y obligar a usar NTFS. La solucin alternativa es formatear antes el disco en FAT32 (por ejemplo con la ayuda de un LiveCd de GNU/Linux), y a continuacin instalar Windows XP.

Diseo
El sistema de archivos FAT se compone de cuatro secciones: 1. El sector de arranque. Siempre es el primer sector de la particin (volumen) e incluye informacin bsica, punteros a las dems secciones, y la direccin de la rutina de arranque del sistema operativo. 2. La regin FAT. Contiene dos copias de la tabla de asignacin de archivos (por motivos de seguridad). Estos son mapas de la particin, indicando qu clusters estn ocupados por los archivos. 3. La regin del directorio raz. Es el ndice principal de carpetas y archivos. 4. La regin de datos. Es el lugar donde se almacena el contenido de archivos y carpetas. Por tanto, ocupa casi toda la particin. El tamao de cualquier archivo o carpeta puede ser ampliado siempre que queden suficientes clusters libres. Cada cluster est enlazado con el siguiente mediante un puntero. Si un determinado cluster no se ocupa por completo, su espacio remanente se desperdicia.

La tabla de asignacin de archivos


Una particin se divide en un conjunto de clusters de idntico tamao. Son pequeos bloques discontinuos. El tamao del clster depende de la variante de FAT utilizada.

Pgina 32

Vara entre 2 y 32 kilobytes. Cada archivo ocupa uno o ms clusters en funcin de su tamao. De manera que un archivo queda representado por una cadena secuencial de clusters (una lista enlazada). Cada clster de la cadena no tiene por qu ser adyacente al anterior. Esto es lo que provoca la fragmentacin. La tabla de asignacin de archivos consta de una lista de entradas. Cada entrada contiene informacin sobre un clster:

La direccin del siguiente clster en la cadena. Si es pertinente, la indicacin de "fin de archivo" (que es tambin el fin de la cadena). Un carcter especial para indicar que el clster es defectuoso. Un carcter especial para indicar que el clster est reservado (es decir, ocupado por un archivo). El nmero cero para indicar que el clster est libre (puede ser usado por un archivo).

El tamao de estas entradas tambin depende de la variante FAT en uso: FAT16 usa entradas de 16 bits, FAT32 usa entradas de 32 bits, etc.

El directorio raz
Este ndice es un tipo especial de archivo que almacena las sub-carpetas y archivos que componen cada carpeta. Cada entrada del directorio contiene el nombre del archivo o carpeta (mximo 8 caracteres), su extensin (mximo 3 caracteres), sus atributos (archivo, carpeta, oculto, del sistema, o volumen), la fecha y hora de creacin, la direccin del primer cluster donde estn los datos, y por ltimo, el tamao que ocupa. El directorio raz ocupa una posicin concreta en el sistema de archivos, pero los ndices de otras carpetas ocupan la zona de datos como cualquier otro archivo. Los nombres largos se almacenan ocupando varias entradas en el ndice para el mismo archivo o carpeta.

Pgina 33

Y qu es NTFS
NTFS (New Technology File System) es un sistema de archivos diseado especficamente para Windows NT (incluyendo las versiones Windows 2000, Windows 2003, Windows XP, Windows Vista y Windows 7), con el objetivo de crear un sistema de archivos eficiente, robusto y con seguridad incorporada desde su base. Tambin admite compresin nativa de ficheros, cifrado (esto ltimo slo a partir de Windows 2000) e incluso transacciones (slo a partir de Windows Vista). Est basado en el sistema de archivos HPFS de IBM/Microsoft usado en el sistema operativo OS/2, y tambin tiene ciertas influencias del formato de archivos HFS diseado por Apple.

______________________________________________________________________ INVESTIGA! FAT y NTFS no son los nicos sistemas de archivos. Investiga qu es HPFS y HFS, adems, qu sistema de archivos implementa el sistema operativo SOLARIS. ______________________________________________________________________

NTFS permite definir el tamao del clster, a partir de 512 bytes (tamao mnimo de un sector) de forma independiente al tamao de la particin. Es un sistema adecuado para las particiones de gran tamao requeridas en estaciones de trabajo de alto rendimiento y servidores. Puede manejar volmenes de, tericamente, hasta 264-1 clsteres. En la prctica, el mximo volumen NTFS soportado es de 232-1 clsteres (aproximadamente 16 Terabytes usando clsteres de 4KB). Los inconvenientes que plantea son:

Necesita para s mismo una buena cantidad de espacio en disco duro, por lo que no es recomendable su uso en discos con menos de 400 MB libres. No es compatible con MS-DOS, Windows 95, Windows 98 ni Windows ME. No puede ser utilizado en memorias flash.

Pgina 34

Caractersticas
NTFS, el sistema de archivos estndar de Windows NT y de sus descendientes (las gamas 2000, 2003, XP,Vista y 7), las versiones 9x (MS-DOS, Windows 95, Windows 98 y Windows ME), no pueden leer este sistema de archivos de manera predeterminada, pero existen utilidades para salvar esta carencia. NTFS ha reemplazado al anterior sistema de ficheros de Microsoft, llamado FAT, comn a MS-DOS y a las versiones tempranas de Windows. NTFS incorpora muchas mejoras sobre el sistema FAT como compatibilidad mejorada con metadatos, y el uso de estructura de datos avanzadas (rboles-B) para optimizar el rendimiento, estabilidad, y el aprovechamiento del espacio en disco, adems de nuevas caractersticas adicionales, como la seguridad, las listas de control de acceso o el registro de transacciones (journaling). El tamao mnimo recomendado para la particin es de 10 GB. Aunque son posibles tamaos mayores, el mximo recomendado en la prctica para cada volumen es de 2 TB (Terabytes). El tamao mximo de fichero viene limitado por el tamao del volumen. Hay tres versiones de NTFS: v1.2 en NT 3.51 , NT 4, v3.0 en Windows 2000 y v3.1 en Windows XP , Windows 2003 Server , Windows Vista y Windows 2008 . Estas versiones reciben en ocasiones las denominaciones v4.0, v5.0 , v5.1 , v 5.2, y v 6.0 en relacin con la versin de Windows en la que fueron incluidas. Las versiones ms recientes han incluido algunas caractersticas nuevas, tales como cuotas de disco y puntos de montaje de volmenes.

Funcionamiento
Todo lo que tiene que ver con los ficheros, se almacena en forma de metadatos. Esto permiti una fcil ampliacin de caractersticas durante el desarrollo de Windows NT. un ejemplo lo hallamos en la inclusin de campos de indexado aadidos para posibilitar el funcionamiento de Active Directory. Los nombres de archivo son almacenados en Unicode (UTF-16), y la estructura de archivos en rboles-B, una estructura de datos compleja que acelera el acceso a los archivos y reduce la fragmentacin, que era lo ms criticado del sistema FAT. Se emplea un registro transaccional (journal) para garantizar la integridad del sistema de archivos (pero no la de cada archivo). Los sistemas que emplean NTFS han demostrado tener una estabilidad mejorada, que resultaba un requisito ineludible considerando la naturaleza inestable de las versiones ms antiguas de Windows NT. Sin embargo, a pesar de lo descrito anteriormente, este sistema de archivos posee un funcionamiento prcticamente secreto, ya que Microsoft no ha liberado su cdigo como hizo con FAT. Gracias a la ingeniera inversa, aplicada sobre el sistema de archivos, se desarroll controladores como el NTFS-3G que actualmente proveen a sistemas operativos

Pgina 35

GNU/Linux, Solaris, MacOS X o BSD, entre otros, de soporte completo de lectura y escritura en particiones NTFS.

Interoperabilidad
Microsoft provee medios para convertir particiones FAT32 a NTFS, pero no en sentido contrario, (NTFS a FAT32). Partition Magic de Symantec y el proyecto de cdigo abierto NTFSResize son ambos capaces de redimensionar particiones NTFS. Con la herramienta convert incluida en los sistemas NT , (Windows 2000 en adelante) , se puede cambiar un disco con sistema de ficheros FAT32 a NTFS sin perder ningn dato con la instruccin "convert [unidad]:/fs:ntfs" Por razones de la historia absolutamente todas las versiones de Windows que todava no soportan NTFS almacenan internamente la fecha y hora como hora local, y consecuentemente los sistemas de ficheros correspondientes a esas versiones de Windows, tambin tratan la hora localmente. Sin embargo, Windows NT y sus sucesores almacenan la hora en formato GMT/UTC, y hacen las conversiones apropiadas a la hora de mostrar las fechas. De este modo al copiar archivos entre un volumen NTFS y uno no-NTFS, deben hacerse las conversiones "al vuelo", lo que puede originar ambigedades si el horario de verano est activo en la copia de unos archivos y no en el de otros, pudiendo dar lugar a ficheros cuya marca de hora est una hora desplazada.

Pgina 36

Vous aimerez peut-être aussi