jueves, 14 de mayo de 2015

Acceso a discos en lenguaje ensamblador

Qué es el acceso a dispositivos de almacenamiento

Los dispositivos de almacenamiento se pueden clasificar de acuerdo al modo de acceso a los datos que contienen:
Pueden ser:
Acceso Aleatorio:
El método de acceso aleatorio es la forma en que la computadora accede a los datos de manera directa y veloz, sin interactuar directamente con datos ó espacio físico dónde se encuentran otros datos. 

A continuación se expone una analogía para entender mejor el concepto.

Imaginemos un patio cuadrado, en el que se encuentran de pie varias personas. Si tu intentas ir con alguno de ellos, solamente te diriges hacia el, sin la necesidad de interactuar directamente con los demás.

El acceso aleatorio es similar, si la computadora requiere un dato específico, solamente se dirigirá hacia el dato sin necesidad de haber interactuado con otros datos ó directamente en la superficie dónde se encuentren grabados.
 
 
Aqui se muestra el acceso aleatorio cuando un Lector o escritor se dirige directamente al dato que se busca.
 
 
Dispositivos donde se realiza este modo de acceso:
  1. Disco duro.
  2. Memoria USB
  3. Disquete
  4. Memoria RAM
  5. Unidad SSD
  6. Memoria Caché
  7. Lector de disco óptico (CD/DVD/HD-DVD ó Blu-ray):
  8. Unidad LS-120
 
Acceso secuencial:
 
El método de acceso secuencial es la forma en que la computadora accede a los datos de manera que es necesario interactuar directamente con los datos ó el espacio físico dónde se encuentran otros datos.
 
 
El acceso secuencial es similar, si la computadora requiere un dato específico, tiene que recorrer el espacio dónde se encuentra otra información hasta llegar al lugar dónde esta el dato requerido.
 
Dispositivos en el que se realiza este modo de acceso.
  1. Tocadiscos: para reproducir la melodía específica del disco de vinilo, la aguja recorre por lo menos parte de la anterior canción para que se reproduzca la elegida por el usuario.
  2. Lectora de cintas de respaldo: tanto para leer como para escribir un dato, es necesario que la cabeza magnética recorra parte de la cinta.
  3. Grabador de discos ópticos (CD, DVD, HD-DVD ó Blu-ray): el proceso de grabado se hace de manera espiral por medio de un rayo láser, el cuál escribe sobre tal espiral un dato a continuación del otro.
  4. Casetera: tanto para leer como para escribir un dato, es necesario que la cabeza magnética recorra parte del casete.
 


 

 
Se muestra el modo de acceso secuencial donde el lector/escritor de datos tiene que pasar sobre cada dato anterior al que realmente busca.
 
 
Acceso al disco en ensamblador
 
Para leer o escribir en un disco, no se realiza byte a byte, sino más bien en bloques de bytes, debido a que el acceso a disco implica movimientos mecánicos además de que el acceso se da por sectores; en este proceso no intervienen el CPU, puesto que solo envía los comandos a la interfase que maneja la unidad de disco y ésta es la que se encarga de leer o escribir información de un área especial de memoria, llamada DMA; este proceso es conocido como acceso directo a memoria.

Para el manejo de disco desde BIOS se hace uso de la INT 13h, y con servicios de la misma interrupción. Para el manejo de disco desde el sistema DOS, se utilizan los discos a los cuales se le halla aplicado el comando: format
el cual realiza un formato a nivel de BIOS (INT 13h), es decir mapea todos los sectores físicos de un disco en sectores lógicos, divide el disco en 4 áreas básicas de información: 
Boot record: Contiene la información acerca del formato del disco, tal como número de sectores, número tracks, número de lados, etc. Además contiene un pequeño programa que se encargará de bajar el sistema operativo (boot del sistema).

Boot Strap:

Lee el primer sector del disco (boot record) y le transfiere el control.

Boot del sistema:

Pasa a memoria los archivos del sistema operativo, les transfiere el control para que aparezca el prompt del sistema.

Tabla de localización de archivos (FAT): En esta tabla se guarda una lista de los sectores ocupados por cada archivo contenido en el disco.

Directorio: Se guarda información acerca de los archivos en el disco (nombre, extensión, tamaño, fecha y hora de última actualización, atributos y un apuntador a su correspondiente en el FAT).
 
Archivos (área de datos): Es donde se guarda la información contenida en los archivos.


En DOS, para trabajar con archivos se necesitan dos estructuras de datos:

Un área de memoria para el DTA, donde se van a escribir los registros.

DTA DB 128 DUP (0)

Un área para el bloque de control de archivos (FCB) en donde se guarda información importante para el acceso a archivo.

FCB DB 36 DUP (0)



Un bloque de archivo consta de 80h registros de 80h bytes cada uno. Al iniciar el manejo de un archivo los únicos campos del FCB que se inicializan son el de la unidad, el nombre y la extensión; los demás bytes se ponen en cero y son actualizados por el sistema.




Forma de acceder a los discos en ensamblador
los datos se registran sobre la superficie del disco en una serie de circunferencias concentricas llamadas pistas (track).
Varias pistas , una por cada cara del disco (generalmente 2) , componen un cluster. cada pista esta divida en porciones iguales  llamadas sectores. un sector es la unidad basica del almacenamiento en un disco. El tamamaño de un sector se mide en bytes y depende de las caracteristicas del disco.
un ejemplo de las 3 rutinas son : que permiten lectura y escritura absoluta de sectores, asi como la determinacion del espacio libre disponible en un disco.



Ejemplo:
programa de demuestre en su ejecucion el acceso a disco para grabar y leer

Codigo:




1 comentario :