Arquitectura interna de la CPU (Central Process Unit)

Anuncio
COMPUTACION 1
ORGANIZACIÓN Y ARQUITECTURA INTERNA DE LA CPU
Diagrama de bloques
Los bloques funcionales básicos son: la unidad de procesamiento central (CPU), la memoria principal, y
el procesador de Entrada − Salida.
Unidad de proceso central: esta es la responsable de la interpretación y ejecución de instrucciones
contenidas en la memoria principal, las comunicaciones entre la CPU y la memoria principal se
realizan a través de 2 canales funcionalmente distintos: el de direcciones y el de datos.
Para introducir en la memoria, una instrucción especifica, la CPU envía a dicha memoria la dirección
de la instrucción por el canal de direcciones y recibe por el mismo medio la instrucción que está en esa
dirección.
Parte de la instrucción es utilizada por la CPU para identificar la operación. Esta parte se llama código
de operación de la instrucción. La información restante se utiliza para determinar la o las localidades
de los datos con los cuales se va a efectuar la operación.
La acción de leer una instrucción en la CPU y prepararla para su ejecución se denomina ciclo de
búsqueda. Para completar una instrucción la CPU decodifica el código de operación, genera las señales
de control que se necesitan para introducir los operandos requeridos y controla la ejecución de la
instrucción.
Por ejemplo, suponiendo que la operación especificada consiste en sumar 2 números requeridos en 2
registros de la CPU y almacenar el resultado en un tercer registro de la CPU. Para efectuar esta
instrucción, la CPU identificará los 2 registros y generará las señales de control adecuados para
conectar los registros a la unidad de Aritmética y Lógica (ULA).
La CPU también haría que la ULA funcione como sumadora y dirija la salida hacia el tercer registro.
El proceso de realización que especifica una función se denomina ciclo de ejecución.
Los nombres ciclos de búsqueda y ciclos de ejecución derivan de la naturaleza cíclica de la operación de
la computadora una vez que esta empieza a funcionar repite los ciclos de búsqueda y ejecución de
manera continua. Para hacer referencia a cada ciclo suele utilizar el termino ciclo de maquina.
La CPU puede dividirse funcionalmente en 3 subunidades, la unidad de control, dedicada a los ciclos de
búsqueda y ejecución, la ULA que desempeña funciones aritméticas como por ejemplo, suma y resta, de
lógica por ejemplo AND, OR y un conjunto de registros dedicados al almacenamiento de datos en la
CPU y a ciertas funciones de control.
Registro e instrucciones de la CPU
Registros
Instrucciones
Aritmética y Lógica
1
Movimientos
de datos
Operaciones de datos en bloque
Instrucciones de control de programa
Instrucciones Instrucciones de Entrada−Salida
La CPU contiene un conjunto de localidades de almacenamiento temporal de datos de alta velocidad llamada
registro. Algunos de los registros están dedicados al control, y solo la unidad de control tiene acceso a ellos.
Los registros restantes son los registros de uso general y el programador es el usuario que tiene acceso a ellos.
Dentro del conjunto básico de registros de control se deben incluir a los siguientes:
• Contador de programa (PC).
• Registro de direcciones de la memoria (MAR).
• Registro de datos (RD).
• Registro de instrucciones (ER).
• Palabra de estado de programa (PSW).
• (PC): La función del PC consiste en seguir la pista de la instrucción por buscar (capturar) en el siguiente
ciclo de maquina, por lo tanto contiene la dirección de la siguiente instrucción por ejecutar. El PC es
modificado dentro del ciclo de búsqueda de la instrucción actual mediante la suma de una constante. El
numero que se agrega al PC es la longitud de una instrucción en palabras.
Por lo tanto, si una instrucción tiene una palabra de longitud se agrega 1 al PC, si una instrucción tiene dos
palabras de largo se agrega 2, y así sucesivamente.
• Registro de direcciones de la memoria (MAR): funciona como registro de enlace entre la CPU y el canal
de direcciones. Cuando se logra el acceso a la memoria la dirección es colocada en el MAR por la unidad
de control y ahí permanece hasta que se completa la transacción. El numero de bit que hay en el MAR es
igual al del canal de direcciones.
La diferencia que existe entre el PC y el MAR es que durante el ciclo de ejecución de una instrucción, el PC y
el MAR sirven al mismo fin. Sin embargo, muchas de las instrucciones de la maquina hacen referencia a la
memoria y operan con los datos que están en ella. Como la dirección de los datos suele ser diferente de la
instrucción siguiente se necesita el MAR.
• Registro de datos: la función del RD consiste en proporcionar un área de almacenamiento temporal
(memoria intermedia, acumulada o buffer) de datos que se intercambian entre la PCU y la memoria. Los
datos pueden ser instrucciones (obtenidos en el ciclo de ejecución) o datos del operando (obtenidos en el
ciclo de ejecución). Debido a su conexión directa con el canal de datos el RD contiene el mismo numero de
bit que dicho canal.
• Registro de instrucciones (ER): es un registro que conserva el código de operación de la instrucción en
todo el ciclo de la maquina. El código es empleado por la unidad de control de la CPU para generar las
señales apropiadas que controla le ejecución de la instrucción. La longitud del ER es la longitud en bit del
código de operación.
• Palabra de estado de programa (PSW): la palabra de estado o condición de programa almacena
información pertinente sobre el programa que este ejecutándose. Por ejemplo al completarse una función de
la unidad aritmética lógica se modifica un conjunto de bit llamados códigos (o señales de condición). Estos
bit especifican si el resultado de una operación aritmética fue 0 o negativo o si el resultado se desbordó.
2
El programa puede verificar estos bit en las instrucciones siguientes cambiar en forma condicional su flujo de
control según su valor.
Además el PSW contiene bit que hacen posible que la computadora responda a solicitudes de servicio
asincrónicas generadas por dispositivos de Entrada−Salida, o condiciones de error interno. Estas señales se
denominan interrupciones.
Los registros restantes que se pueden encontrar en un microprocesador son de uso general. Estos se utilizan
para almacenar información en forma temporal. También retienen operandos que participan en operaciones de
la ULA.
Algunas veces el conjunto de instrucciones de la computadora y el esquema de direccionamiento de la
arquitectura restringe el uso de alguno de estos registros.
Si bien en todas las maquinas la información contenida en el registro puede manipularse como datos
ordinarios durante la ejecución de algunas instrucciones los datos se utilizan en forma explícita para decidir
una dirección de la memoria. La ventaja de usar registros para retener datos de operaciones es la velocidad.
Tipo de instrucciones
Las instrucciones pueden clasificarse en 5 categorías:
• Instrucciones de aritmética y lógica.
• Instrucciones de movimientos de datos.
• Operaciones de datos en bloques.
• Instrucciones de control del programa.
• Instrucciones de Entrada − Salida.
• Instrucciones de Aritmética y Lógica:
Entre ellas se encuentran operaciones binarias, las cuales requieren dos operandos y producen un resultado
único. La suma, la resta, la multiplicación y división, son operaciones standard en la mayor parte de las
maquinas con excepción de algunas mini−computadoras y microprocesadores. Las operaciones de lógica
incluida en el conjunto de instrucciones son las operaciones AND, NAND, NOR, XAND, XOR.
También dentro de las instrucciones de aritmética y lógica se encuentran las operaciones de desplazamiento y
las de rotación.
• Instrucciones de movimientos de datos:
Esta instrucción da por resultados la copia de datos desde una localidad de operando a otra; además del código
de operación, estas instrucciones requieren información que identifique los operandos fuentes y destinos. En
una computadora de uso general, los datos se pueden mover de:
• Registro a registro.
• Registro a memoria.
• Memoria a registro.
• Memoria a memoria.
• Operaciones de datos en bloques:
Son aquellas que se efectúan con un conjunto de operandos y no con un solo operando. También dentro de
esta instrucción se encuentra la de control del programa. Esto hace posible que un programa se adapte a la
secuencia inherente al ciclo de maquina de la computadora. En otras palabras, se pueden pasar por alto
3
secciones de instrucciones como resultado de la activación de un código de condiciones o como resultado
directo del diseño del programa.
• Instrucciones de control del programa
• Instrucciones de Entrada − salida:
Desde el punto de vista de la programación para el acceso a la memoria o a un periférico simplemente se
requiere el mismo conjunto de instrucciones. Estos sistemas se denominan sistemas de Entrada − Salida
mapeados por memoria.
La programación de un dispositivo en estos sistemas requiere el conocimiento de este dispositivo y sus
características, aunque no se necesitan instrucciones especiales. El dispositivo se caracteriza como un
conjunto de localidades de la memoria que se dividen en dos subcategorias: un conjunto de registro de estado
de control y un registro de información.
Registro de estado y control. Estos suelen contener información acerca del estado inactivo, ocupado, etc. En
estos registros también se almacena información de control, como por ejemplo el tipo de paridad y la
velocidad de transmisión de los datos.
La información contenida en los registros de estado y control se utiliza principalmente para proporcionar una
imagen global del hardware cuando este en el programa
Registro de información: estos constituyen una memoria intermedia para la información que se transfiere
entre la CPU y el periférico. En el caso de un dispositivo se transfieren datos sobre la base de carácter por
carácter y suele haber solo dos registros. Uno que retiene datos de la CPU al dispositivo y otro que utilice
datos del dispositivo a la CPU. Si la Entrada − Salida programada se realiza en un dispositivo unidireccional
(solo transmite o solo recibe) entonces únicamente se necesitara un registro.
Memoria
Los grandes sistemas de computación suelen dar servicio a grandes cantidades de usuarios. Desde el punto de
vista operativo la memoria es una de los principales elementos que componen nuestros sistemas.
Un sistema operativo es un conjunto de programas que hace posible que el usuario de un sistema de
computación tenga acceso controlado a sus recursos, entre esos recursos se encuentran, la CPU, la memoria y
los dispositivos de Entrada − Salida. El sistema operativo asigna tiempo a la CPU, distribuye el espacio
disponible en la memoria, asigna y controla dispositivos de Entrada − Salida, para cada usuario. Estas
funciones se realizan en forma transparente, es decir que el programador escribe el programa como si todo el
sistema de la computadora estuviere dedicado a ese programa. Para ofrecer algunas características del sistema
operativo la arquitectura de la maquina debe poseer ciertas propiedades. Para comenzar la maquina debe tener
por lo menos 2 modos de operación diferentes.
Una forma, se denomina modo de supervisión y el otro modo del usuario.
Cuando la maquina esta en modo del supervisor, la CPU puede ejecutar todas las instrucciones de la maquina.
Este es el modo de operación en el cual corren los programas de los distintos sistemas operativos lo que le da
un control del sistema. Todas las peticiones de servicio de los dispositivos periféricos pasan por el sistema
operativo ya que las instrucciones de Entrada − Salida, solamente pueden emitirse cuando la maquina se
encuentra en modo supervisor.
En el modo usuario, la CPU no puede ejecutar todo el conjunto de instrucciones (en particular no se permite la
ejecución de las instrucciones de control de la maquina y de Entrada − Salida.
4
Organización de la memoria
La memoria es un condensador que si retiene corriente es 1 y si no es 0, se necesita un condensador por bit.
Por ejemplo 32 Mb es igual a 32000000 bytes o sea 32000000 * 8 condensadores.
+−
Existen dos tipos de memoria: las memorias dinámicas y las memorias estáticas. Las memorias que se suelen
usar en los sistemas informáticos (RAM) son dinámicas, quedando relegadas las estáticas a aplicaciones un
tanto especiales como puede ser mantener datos en ellas después de haber desconectado el equipo y
alimentando a estas a través de baterías.
Las memorias estáticas presentan una serie de inconvenientes con respecto a las dinámicas; por ejemplo
tienen una respuesta mas lenta que las dinámicas y es mas difícil su integración al necesitar mas electrónica
para realizar la célula biestable que es encarga de generar el 0 o el 1 lógico correspondiente al bit.
Otro problema lo constituye su mayor consumo, ya que su constitución interna es mas complicada que la de
una memoria dinámica.
Las memorias dinámicas son las mas generalizadas y constituyen el grueso de la RAM del ordenador. Poseen
respecto a la mayoría de las memorias la ventaja de contar con una mayor velocidad, mayor capacidad de
almacenamiento y un menor consumo. En contra partida, presentan el inconveniente de que precisan una
electrónica especial para su utilización, la función de esta electrónica es generar el refresco de la memoria. La
necesidad de los refrescos de las memorias dinámicas se debe al funcionamiento de las mismas, ya que este se
basa en generar durante un tiempo la información que contiene. Transcurrido este lapso la señal que contenía
la célula biestable se va perdiendo. Para que no ocurra esta perdida, es necesario que antes que transcurra el
tiempo máximo que la memoria puede mantener la señal se realice una lectura del valor que tiene y se
recargue la misma.
Es preciso considerar que a cada bit de la memoria le corresponde un pequeño condensador al que le
aplicamos una pequeña carga eléctrica y que mantienen durante un tiempo en función de la constante de
descarga. Generalmente el refresco de memoria se realiza cíclicamente y cuando esta trabajando el DMA. El
refresco de la memoria en modo normal esta a cargo del controlador del canal que también cumple la función
de optimizar el tiempo requerido para la operación del refresco.
Posiblemente, en mas de una ocasión en la computadora aparecen errores de paridad en la memoria debido a
que las memorias que se están utilizando son de una velocidad inadecuada ya que las mismas se descargan
antes de poder ser refrescadas.
Distribución de la memoria
La distribución de la memoria dentro de la computadora se suele denominar mapa de memoria y en el es
posible observar en que zona se encuentran ubicados los registros y programas del sistema operativo. De
acuerdo a la cantidad de bit que maneja el microprocesador es la capacidad máxima permitida que se puede
direccionar en la maquina.
Independientemente de esta disponibilidad de memoria el limite real de direccionamiento va a estar dado por
el sistema operativo que se esta usando, por ejemplo el sistema operativo D.O.S. independientemente de la
memoria instalada puede direccionar como área de trabajo 640 Kb.
Dispositivos de Entrada − Salida
5
Desde el punto de vista de un sistema de computación los dispositivos de Entrada−Salida solo comprenden
uno de los cuatro componentes principales de una computadora, sin embargo las ramificaciones de
Entrada−Salida extienden esta simple representación y pueden tratarse en varios niveles diferentes. Las
propiedades físicas y eléctricas de los dispositivos, la interfaz o controlador con que interactúa el procesador
central y el apoyo de software del sistema operativo en uso.
La unidad de Entrada−Salida puede contar en realidad de muchas interfaces o controladores, incluir un
procesador de Entrada − Salida de uso especial pero manejado por la CPU o ambas cosas.
El problema de Entrada−Salida puede restringirse en general de las otras consideraciones lógicas y eléctricas
en un sistema de computación porque requiere una reconversión en una o varias de las siguientes áreas:
Velocidad: velocidad de transferencia de datos
Lógica: formato de los datos, codificación.
Eléctrica: niveles de señales, modalidad analogica−digital y digital−analogica.
Física: funciones electromecánicas, ópticas, de audio, etc.
Las operaciones de Entrada−Salida casi siempre requieren un cambio de velocidad para sincronizar la CPU
con el dispositivo de Entrada−Salida. Esto impone restricciones tanto al hardware como al software. Por
ejemplo el periférico mas conocido, la terminal de vídeo, típicamente puede actualizarse por medio de una
línea de comunicaciones en serie, a una velocidad no mayor de 960 caracteres por segundo, una impresora
matricial en la que intervienen componentes electromecánicos a 2000 caracteres por segundo. Sin embargo
una CPU puede procesar instrucciones cientos o miles de veces mas rápido que esto. Además debe manejar
múltiples dispositivos de Entrada−Salida en forma simultanea y realizar otras funciones de calculo en lugar a
esperar a que se complete cada operación de Entrada−salida.
En las transacciones de Entrada−salida siempre existen operaciones entre el CPU y el periférico y un apoyo de
un protocolo lógico que a menudo implica comunicaciones de transferencia de datos sincronizados (solicitud
y reconocimiento). La especificación y el diseño global del dispositivo influye en el formato lógico de los
datos. Además, casi toda la Entrada−salida implica un cambio fundamental en la representación eléctrica o
física de la información.
Dentro de la computadora los datos y señales de control acostumbran a estar en la forma de niveles de voltaje
o de acuerdo a una lógica dada.
La operación de Entrada−salida a menudo implica una conversión entre analógico, mecánico, magnético, de
audio u otra forma para almacenamiento, transmisión o exhibición de datos. Se considera el campo de
Entrada−Salida desde 3 puntos de vista principales: hardware, software y diseño.
Tipos y ejemplos de dispositivos
Cuatro clases principales de técnicas se aplican comúnmente en forma individual o combinada para controlar
la transferencia de datos de Entrada − Salida:
• Entrada − Salida controlada por programa: el procesador supervisa todas las transferencias de Entrada −
Salida a través de la iniciación de ordenes y la verificación del estado del dispositivo. Esta técnica se
emplea en aplicaciones especializadas y diagnósticos de dispositivos. La Entrada − Salida por programa
utiliza la interfaz de hardware en forma mas simple pero no aprovecha eficientemente los recursos.
• Entrada − Salida por interrupciones: las funciones son iniciadas bajo el control del programa pero la
6
sincronización se maneja por medio de solicitudes de interrupción al hardware y el dispositivo asociado
interrumpe el servicio de rutinas. Se utilizan en aplicaciones de baja o media velocidad en un entorno
especializado o de multiprocesamiento. La Entrada − Salida activada por interrupciones utiliza hardware de
complejidad relativamente baja y permite el diseño de software eficiente.
• Acceso directo a memoria (DMA): la transferencia de Entrada − Salida de un bloque de datos completo se
establece bajo el control del programa y se implementa con hardware de uso especial que transfiere datos
directamente hacia o desde la memoria principal. Esto ocurre sin mas intervención de la CPU en forma
concurrente con la ejecución del programa. El DMA se utiliza en dispositivos de velocidad media o alta en
forma muy eficiente pero requiere una interfaz de hardware mas completa. Entre los usos mas comunes se
cuenta los controladores de cinta o disco magnético, enlace entre los procesadores y procesadores de
gráficos de alta velocidad.
• Entrada − Salida mapeada por direcciones: la transferencia de datos se realiza entre la CPU y la región
lógica del espacio direccionable del programa, que en realidad es parte de un dispositivo de Entrada −
Salida, tal como una pantalla de imágenes o un canal de direcciones en lugar de la memoria principal. Esta
técnica permite tanto la manipulación del programa de datos como las transferencias directas entre el
dispositivo de Entrada − Salida y el almacenamiento final de la información. La Entrada − Salida mapeada
por direcciones es un mecanismo eficiente y transparente que se utiliza con dispositivos estructurados, no es
una extensión del DMA sino una técnica alternativa para ciertas aplicaciones.
Estructuras de canales de Entrada − salida
La configuración de Entrada − Salida es en términos generales la sección menos estandarizada de un sistema
de computación, aunque solo puede disponerse de un numero pequeño de opciones del procesador, la
selección del tipo y números de dispositivos de Entrada − Salida depende considerablemente de las
aplicaciones. Además la configuración de Entrada − Salida tiende a cambiar conforme se desarrolla y expande
el sistema.
Es muy deseable poder agregar o desmontar dispositivos sin tener que volver a configurar la maquina
básicamente minimizando al mismo tiempo el costo y la complejidad. El método fundamental para alcanzar
estas metas es el diseño del hardware y de la modularidad de dicho diseño.
El vehículo habitual para lograrla en el sistema de Entrada − salida es el canal de Entrada − Salida común.
En este canal se interconectan dispositivos de Entrada − Salida, la CPU y la memoria principal y permite
comunicaciones flexibles entre estas unidades. Las funciones principales del canal de Entrada − Salida hace
posible que múltiples dispositivos:
• Transfieren información por trayectorias de datos comunes compartiendo y reduciendo la complejidad del
hardware.
• Se agregan o desmontan dispositivos simplemente enchufando o desenchufando sus cables (plug and play).
• Se enlace vía a un mecanismo, el canal de Entrada − Salida empleando especificaciones lógicas, eléctricas
y físicas estandarizadas. Esta estandarización hace posible que familias enteras de computadoras con
diverso nivel de rendimiento utilicen los mismos periféricos. Además, el diseñador de una interfaz del
dispositivo de Entrada − Salida no necesita estar familiarizado con el diseño de la CPU, ni conocer con que
maquina en particular va a funcionar la interfaz. Solo debe comprender las características del canal, cuyas
especificaciones necesarias pueden clasificarse en 3 categorías:
• Lógicas: definición y agrupación de señales relacionadas de polaridad lógica, por ejemplo: dirección, datos,
control, sincronización, etc.
• Eléctricas y físicas: niveles de señales, tipos de cables, conectores, etc.
• Protocolo: reglas de uso del canal, tal como las relaciones de tiempo (temporización, sincronización,
reconocimiento y arbitraje).
7
Organización lógicas y física del almacenamiento magnético
Organización lógica
MASTER BOOT
BOOT
FAT # 1
FAT # 2
DIRECTORIO RAIZ
DATOS
Almacenamiento Magnético: el almacenamiento de datos sobre un medio magnético se realiza magnetizando
el medio en el sentido u otro. Durante le lectura, cada cambio de estado magnético (transición) produce un
pulso en la cabeza lectora, el sentido de la transición es irrelevante, lo que cuenta son los tiempos en que estas
transiciones se producen . la técnica del registro se conoce como MFM (modulación en frecuencia
modificada) esta es una mejora del método anterior (MF: modulación en frecuencia) que se aplicaba a
dispositivos de simple densidad.
En FM cada aproximadamente 4 milisegundos se considera una celda, que codifica un BIT.
Los limites de las celdas están dados por transiciones fijas que sirven para sincronizar o la controladora con el
medio leído (reloj). En medio de cada celda, una transición extra indica 1, y su ausencia un 0.
Las características del medio imponen una restricción al tamaño de la celda y a la densidad de información
grabada. El método MFM se basa en suprimir las transiciones del reloj. Excepto entre dos ceros. Como
consecuencia , el tiempo entre transiciones equivale como mínimo a una celda completa . Las celdas pueden
entonces hacerse en la mitad de tamaño que FM y por lo tanto lograr que la densidad de grabación sea doble.
Sectorización: cada pista del disco almacena una cadena de Bit, que codifica información. Esta codificación
incluye, además de los datos del usuario, información adicional que permite sincronizar la lectura y sectorizar
la pista.
Las pistas se dividen en un cierto numero de sectores sobre los cuales se reparte la información del usuario.
La sincronización requerida para determinar el comienzo de la pista se obtiene por medio de una marca óptica
llamada orificio de índex.
Un fotosensor determina el momento en que pasa por un punto determinado, allí comienza la lectura de la
pista. El comienzo de la pista contiene bytes de sincronización y a continuación uno tras otro los sectores que
incluyen espacios sin información ni transiciones magnéticas. El acceso a un sector es en cierta manera
secuencial.
Una técnica alternativa que no se usa en los discos flexibles pero si en algunos rígidos es la sectorización dura.
Además del índex, casa sector incluye 2 registros de información el de identificación y el de datos.
El registro de identificación incluye una etiquete que indica a que pista y a que lado pertenece el sector, cual
es su numero y a que lado pertenece el sector, cual es su numero y que longitud de datos tiene. El registro de
datos contiene los datos específicamente narrados, en ambos contiene un par de bytes de control (CRC)
permite verificar si ha habido corrupción en la información o error en la lectura.
8
Posicionamiento: un sector de un floppy se caracteriza por 3 parámetros: pista, lado o cabeza y numero de
sectores. Para acceder a un sector el dispositivo debe seleccionar la cabeza lectora que corresponda,
trasladarla hasta la pista a leer y leer la pista hasta encontrar una etiqueta con la identificación del sector
buscado.
El posicionamiento de la cabeza lectora o grabadora se realiza mediante un motor paso a paso, durante el
encendido de la maquina la posición de la cabeza es recalibrada, llevando la cabeza hasta la pista 0, lo que se
determina mediante un sensor óptico o mecánico. Cuando el acceso debe hacerse sobre la pista N, la cabeza es
avanzada o retrocedida la cantidad de pasos necesarios.
ORGANIZACION LÓGICA DE LA INFORMACION
La administración de un sistema de archivos depende de un delicado equilibrio: la consistencia de los datos
que permiten acceder a la información contenida en los archivos.
Cuando esa consistencia se pierde, la información aunque presente e inalterada se puede tornar irrecuperable.
D.O.S. administra el acceso a un sistema de archivos de forma análoga a un sistema manual de índices y
numeración de paginas.
Area de sistema:
La primera área a considerar es la tabla de partición, existe una por cada unidad lógica, en el primer sector de
los mismos; en la primera unidad lógica comparte el sector con el código de Master Boot del disco. La tabla
de partición incluye unos pocos datos fundamentalmente posición y tamaño de la partición (medidos en
cilindros). Solo se altera durante operaciones tales como particionamiento o formateo del disco y no durante la
operación normal.
En el cilindro siguiente ala tabla de partición comienza el sector de boot y a continuación la tabla de alocación
de archivos (FAT). Si bien en Nº de FAT es parametrizable los medios magnéticos incluyen uniformemente 2;
uno principal y otro secundario, que deberían ser idénticos. La función de la copia secundaria es,
exclusivamente la de un resguardo para el caso en que se presente un error de lectura de la tabla primaria.
A continuación de ambas FAT se presenta el área del directorio raíz.
Clusters:
A los fines de organización todo disco se divide en pequeños elementos denominados clusters, cada uno de los
cuales abarca 1 o mas sectores y que se consideran numerados correlativamente partiendo del comienzo del
área de archivos del disco (es decir a continuación del área de sistemas).
Es habitual el uso de clusters de 2 Kb., 4 sectores de 512 bytes.
Un archivo D.O.S. toma una cantidad entera de clusters (si bien el ultimo esta ocupando solo parcialmente).
No se requiere que los clusters de un archivo sean consecutivos; en rigor un archivo puede incluir clusters
diseminados a lo largo del disco.
El acceso a un archivo implica conocer esta secuencia de clusters que lo integran, y eventualmente alterarla
para elongarlo o truncarlo; la información necesaria para ello se almacena en directorios y en la FAT.
Directorio raíz:
9
Es un área dividía en entradas de 32 bytes, cada una de las cuales corresponde a un archivo. El numero de
entradas es variable (generalmente 512) y determina la extensión del directorio, que ocupa un numero entero
de sectores. Cada entrada se divide en campos que contienen el nombre del archivo, sus atributos, fecha y
hora de ultima modificación e información acerca de la localización del archivo.
Subdirectorio: una clase especial de archivos son los subdirectorios. Si bien D.O.S. no permite accederlos de
manera análoga a los archivos, el mismo los trata en forma similar.
Un subdirectorio se diferencia de un archivo común por una marca de atributo, y su contenido se estructura en
entradas, tal como ocurre con el directorio raíz.
FAT
Se trata de un mapa del disco, dividido en clusters. La FAT es un arreglo de tantas celdas como clusters
integran el disco; en cada celda se almacena un puntero que indica que clusters sigue al correspondiente a la
celda en la secuencia.
Nótese que de ninguna manera se indican en la FAT a que archivo pertenece un clusters; simplemente se
codifican cadenas.
Supongamos que el primer clusters de un archivo es el 2033 (surge de la entrada de directorio que define el
archivo). La posición 2033 de la FAT, a su vez contiene el valor 3854; esto indica que el archivo incluye los
clusters 2033−3854..., en ese orden. Un valor de −1 (FFF o FFFF en hexadecimal) indica el fin de la cadena es
decir, el ultimo clusters del archivo.
El almacenamiento del archivo se deduce entonces partiendo de la entrada de directorio y recorriendo la
secuencia codificada en la FAT.
Naturalmente no todos los clusters pertenecen a algún archivo. Los clusters libres son marcados en la FAT
con un 0.
Clusters no ocupados, pero cuyo uso esta prohibido en general por corresponder en sectores defectuosos
Falta de concordancia entre la longitud de archivo (que debiera ocupar 3 clusters) y la de la cadena que
presenta la FAT.
Localización
La información que en cada entrada de directorio permite determinar que clusters integran el archivo viene
dada en forma de punteros. Cada entrada contiene la longitud (bytes) del archivo y el numero del 1er. clusters
del mismo.
El resto de los clusters del archivo surge del examen de la FAT.
Organización
El esquema así delineado resulta bastante remitivo: una simple alteración de la FAT puede ¨confundir¨ al
operativo respecto de la localización de los archivos. La organización de D.O.S. no es redundante y si
expuesta a inconsistencias.
10
La mejor manera de comprender las inconsistencias del área de sistema es a través de la consideración de
errores puntuales .D.O.S. no efectúa ningún reconocimiento global (el utilitario CHKDSK apenas realiza
rudimentariamente esta función), de manera que aun un caos en el área de sistemas es ¨visto¨ por D.O.S. como
una gran cantidad de errores puntuales o como un conjunto de situaciones, correctas que no tienen
consistencias entre sí.
Algunas de las inconsistencias que se puedan redundar:
• El número de un clusters que integran un archivo es ilegal: O (clusters libre), FFFF (bud clusters, no
usable), o un número que excede la capacidad del disco lógico.
• Falta de concordancia entre la longitud de archivo almacenada en la entrada de directorio y la longitud
de la cadena (que viene dada por la cantidad de clusters enhebrados hasta encontrar el código del
ultimo clusters o fin de archivo). D.O.S. no detecta sino uno de las 2 posibilidades: que la cadena
termine antes de haber alcanzado la longitud total del archivo. Si la cadena es más larga que la
correspondiente a la longitud declarada, D.O.S. lo ignorara.
• Enlace cruzado: Nada en la FAT impide declarar un mismo clusters como siguiente a otros dos. (solo
un analisis global pone de manifiesto entre error). Basta que 2 celdas de la FAT contengan el mismo
puntero. Así, las cadenas de 2 archivos pueden convergir en un punto dado en una sola cadena.
Consecuencias: Cuando se escribe el archivo A, también se esta escribiendo el archivo B. La cadena común
se trunca o se elonga conforme a la operación sobre A o B, indistintamente. En particular, así se borra A, B
queda truncado, (la cadena común a ambos es eliminada, y posteriormente aparecerá una inconsistencia al
acceder a B: el clusters en el que se producía el enlace cruzado aparecerá como libre, cuando se esperaba que
formara parte de la cadena de B).
• Enlace cruzado múltiple: mas de 2 archivos pueden convergir en una cadena única.
• Cadenas circulares: El enlace cruzado puede involucrar a 1 solo archivo .D.O.S. leerá (o escribirá)
cíclicamente el archivo, cuya secuencia de clusters codificada en la FAT podría ser, en un ejemplo
arbitrario: 2033−3854−2033....
• Cadenas perdidas, una cadena normal o anómala puede no estar apuntada por ninguna entrada de
directorio (o sea, no pertenecer a ningún archivo).
• Anomalías en la entrada de directorio. El clusters definido en la entrada de directorio como 1ro. del
archivo puede ser ilegal. Así mismo, el atributo del archivo puede ser erróneo (por ej.: un archivo de
texto que aparezca con el atributo de subdirectorio).
Perdidas de consistencia: posponiendo la consideración de posibles orígenes, se ve que la arquitectura del
sistema de archivos de D.O.S. esta claramente expuesta a que un error aun puntual) en la información
contenida en el área de sistemas genere inconsistencias graves e impida la recuperación de la información
grabada.
Paradójicamente, en esos casos, la información "perdida" sigue permaneciendo en el disco... mezclada con
decenas de miles de clusters de otras piezas de información. Lo que se ha esfumado es la posibilidad de
rescatarla adecuadamente
7
13
PC
MAR
11
MDR
IR
PSW
OR
NOR
AND
NAND
Desplazamiento
Rotación
Reg. a Reg.
Reg. a Mem.
Mem. A reg.
Mem a mem.
Reg. estados y control
Reg. De información
Memoria
CPU
Vídeo
Almacenamiento
Dispositivos de ENTRADA − SALIDA
12
Descargar